comparison src/vim9compile.c @ 20259:b69e30dc6e6a v8.2.0685

patch 8.2.0685: Build failure Commit: https://github.com/vim/vim/commit/3df02f507f96a246366f96dcce156a0ae7b95611 Author: Bram Moolenaar <Bram@vim.org> Date: Sun May 3 15:47:33 2020 +0200 patch 8.2.0685: Build failure Problem: Build failure. Solution: Include missing changes.
author Bram Moolenaar <Bram@vim.org>
date Sun, 03 May 2020 16:00:04 +0200
parents aac52c32a91f
children 350bb78345ba
comparison
equal deleted inserted replaced
20258:ed616e60438d 20259:b69e30dc6e6a
3902 */ 3902 */
3903 static int 3903 static int
3904 compile_expr1(char_u **arg, cctx_T *cctx) 3904 compile_expr1(char_u **arg, cctx_T *cctx)
3905 { 3905 {
3906 char_u *p; 3906 char_u *p;
3907
3908 // TODO: Try parsing as a constant. If that works just one PUSH
3909 // instruction needs to be generated.
3907 3910
3908 // evaluate the first expression 3911 // evaluate the first expression
3909 if (compile_expr2(arg, cctx) == FAIL) 3912 if (compile_expr2(arg, cctx) == FAIL)
3910 return FAIL; 3913 return FAIL;
3911 3914
6632 { 6635 {
6633 for (idx = 0; idx < dfunc->df_instr_count; ++idx) 6636 for (idx = 0; idx < dfunc->df_instr_count; ++idx)
6634 delete_instr(dfunc->df_instr + idx); 6637 delete_instr(dfunc->df_instr + idx);
6635 VIM_CLEAR(dfunc->df_instr); 6638 VIM_CLEAR(dfunc->df_instr);
6636 } 6639 }
6637 if (dfunc->df_funcstack != NULL)
6638 {
6639 // Decrease the reference count for the context of a closure. If down
6640 // to zero free it and clear the variables on the stack.
6641 if (--dfunc->df_funcstack->fs_refcount == 0)
6642 {
6643 garray_T *gap = &dfunc->df_funcstack->fs_ga;
6644 typval_T *stack = gap->ga_data;
6645 int i;
6646
6647 for (i = 0; i < gap->ga_len; ++i)
6648 clear_tv(stack + i);
6649 ga_clear(gap);
6650 vim_free(dfunc->df_funcstack);
6651 }
6652 dfunc->df_funcstack = NULL;
6653 }
6654 6640
6655 dfunc->df_deleted = TRUE; 6641 dfunc->df_deleted = TRUE;
6656 } 6642 }
6657 6643
6658 /* 6644 /*