comparison src/vim9.h @ 24984:71b1e2ef0069 v8.2.3029

patch 8.2.3029: Vim9: crash when using operator and list unpack assignment Commit: https://github.com/vim/vim/commit/035bd1c99f2a8eda5ee886adde4f97ea71fb167f Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jun 21 19:44:11 2021 +0200 patch 8.2.3029: Vim9: crash when using operator and list unpack assignment Problem: Vim9: crash when using operator and list unpack assignment. (Naohiro Ono) Solution: Get variable value before operation. (closes #8416)
author Bram Moolenaar <Bram@vim.org>
date Mon, 21 Jun 2021 19:45:03 +0200
parents 2818b8108d92
children 70f55a30f03c
comparison
equal deleted inserted replaced
24983:94f7f4cd68b7 24984:71b1e2ef0069
206 // arguments to ISN_UCALL and ISN_XCALL 206 // arguments to ISN_UCALL and ISN_XCALL
207 typedef struct { 207 typedef struct {
208 char_u *cuf_name; 208 char_u *cuf_name;
209 int cuf_argcount; // number of arguments on top of stack 209 int cuf_argcount; // number of arguments on top of stack
210 } cufunc_T; 210 } cufunc_T;
211
212 // arguments to ISN_GETITEM
213 typedef struct {
214 varnumber_T gi_index;
215 int gi_with_op;
216 } getitem_T;
211 217
212 typedef enum { 218 typedef enum {
213 JUMP_ALWAYS, 219 JUMP_ALWAYS,
214 JUMP_IF_FALSE, // pop and jump if false 220 JUMP_IF_FALSE, // pop and jump if false
215 JUMP_AND_KEEP_IF_TRUE, // jump if top of stack is truthy, drop if not 221 JUMP_AND_KEEP_IF_TRUE, // jump if top of stack is truthy, drop if not
430 subs_T subs; 436 subs_T subs;
431 cexpr_T cexpr; 437 cexpr_T cexpr;
432 isn_T *instr; 438 isn_T *instr;
433 tostring_T tostring; 439 tostring_T tostring;
434 tobool_T tobool; 440 tobool_T tobool;
441 getitem_T getitem;
435 } isn_arg; 442 } isn_arg;
436 }; 443 };
437 444
438 /* 445 /*
439 * Info about a function defined with :def. Used in "def_functions". 446 * Info about a function defined with :def. Used in "def_functions".