Lines Matching refs:funcstack
536 funcstack_T *funcstack = ALLOC_CLEAR_ONE(funcstack_T); in handle_closure_in_use() local
541 if (funcstack == NULL) in handle_closure_in_use()
543 funcstack->fs_var_offset = argcount + STACK_FRAME_SIZE; in handle_closure_in_use()
544 funcstack->fs_ga.ga_len = funcstack->fs_var_offset + dfunc->df_varcount; in handle_closure_in_use()
545 stack = ALLOC_CLEAR_MULT(typval_T, funcstack->fs_ga.ga_len); in handle_closure_in_use()
546 funcstack->fs_ga.ga_data = stack; in handle_closure_in_use()
549 vim_free(funcstack); in handle_closure_in_use()
582 ++funcstack->fs_min_refcount; in handle_closure_in_use()
585 *(stack + funcstack->fs_var_offset + idx) = *tv; in handle_closure_in_use()
595 ++funcstack->fs_refcount; in handle_closure_in_use()
596 pt->pt_funcstack = funcstack; in handle_closure_in_use()
597 pt->pt_outer.out_stack = &funcstack->fs_ga; in handle_closure_in_use()
620 funcstack_check_refcount(funcstack_T *funcstack) in funcstack_check_refcount() argument
623 garray_T *gap = &funcstack->fs_ga; in funcstack_check_refcount()
626 if (funcstack->fs_refcount > funcstack->fs_min_refcount) in funcstack_check_refcount()
628 for (i = funcstack->fs_var_offset; i < gap->ga_len; ++i) in funcstack_check_refcount()
633 && tv->vval.v_partial->pt_funcstack == funcstack in funcstack_check_refcount()
637 if (done == funcstack->fs_min_refcount) in funcstack_check_refcount()
646 vim_free(funcstack); in funcstack_check_refcount()