Mercurial > vim
comparison src/vim9.h @ 31758:85f93e094810 v9.0.1211
patch 9.0.1211: storing value in interface member does not always work
Commit: https://github.com/vim/vim/commit/f7d1c6e1884c76680980571f1cf15e0928d247b5
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jan 16 20:47:57 2023 +0000
patch 9.0.1211: storing value in interface member does not always work
Problem: Storing value in interface member does not always work.
Solution: Convert the index on the interface to the index on the object.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 16 Jan 2023 22:00:03 +0100 |
parents | 48431422f766 |
children | 5ce5d78afcc9 |
comparison
equal
deleted
inserted
replaced
31757:9050141c785f | 31758:85f93e094810 |
---|---|
76 ISN_STOREENV, // pop into environment variable isn_arg.string | 76 ISN_STOREENV, // pop into environment variable isn_arg.string |
77 ISN_STOREREG, // pop into register isn_arg.number | 77 ISN_STOREREG, // pop into register isn_arg.number |
78 // ISN_STOREOTHER, // pop into other script variable isn_arg.other. | 78 // ISN_STOREOTHER, // pop into other script variable isn_arg.other. |
79 | 79 |
80 ISN_STORENR, // store number into local variable isn_arg.storenr.stnr_idx | 80 ISN_STORENR, // store number into local variable isn_arg.storenr.stnr_idx |
81 ISN_STOREINDEX, // store into list or dictionary, type isn_arg.vartype, | 81 ISN_STOREINDEX, // store into list or dictionary, using |
82 // value/index/variable on stack | 82 // isn_arg.storeindex; value/index/variable on stack |
83 ISN_STORERANGE, // store into blob, | 83 ISN_STORERANGE, // store into blob, |
84 // value/index 1/index 2/variable on stack | 84 // value/index 1/index 2/variable on stack |
85 | 85 |
86 ISN_UNLET, // unlet variable isn_arg.unlet.ul_name | 86 ISN_UNLET, // unlet variable isn_arg.unlet.ul_name |
87 ISN_UNLETENV, // unlet environment variable isn_arg.unlet.ul_name | 87 ISN_UNLETENV, // unlet environment variable isn_arg.unlet.ul_name |
484 // arguments to ISN_STORE_CLASSMEMBER, ISN_LOAD_CLASSMEMBER, ISN_GET_ITF_MEMBER | 484 // arguments to ISN_STORE_CLASSMEMBER, ISN_LOAD_CLASSMEMBER, ISN_GET_ITF_MEMBER |
485 typedef struct { | 485 typedef struct { |
486 class_T *cm_class; | 486 class_T *cm_class; |
487 int cm_idx; | 487 int cm_idx; |
488 } classmember_T; | 488 } classmember_T; |
489 // arguments to ISN_STOREINDEX | |
490 typedef struct { | |
491 vartype_T si_vartype; | |
492 class_T *si_class; | |
493 } storeindex_T; | |
489 | 494 |
490 /* | 495 /* |
491 * Instruction | 496 * Instruction |
492 */ | 497 */ |
493 struct isn_S { | 498 struct isn_S { |
538 debug_T debug; | 543 debug_T debug; |
539 deferins_T defer; | 544 deferins_T defer; |
540 echowin_T echowin; | 545 echowin_T echowin; |
541 construct_T construct; | 546 construct_T construct; |
542 classmember_T classmember; | 547 classmember_T classmember; |
548 storeindex_T storeindex; | |
543 } isn_arg; | 549 } isn_arg; |
544 }; | 550 }; |
545 | 551 |
546 /* | 552 /* |
547 * Info about a function defined with :def. Used in "def_functions". | 553 * Info about a function defined with :def. Used in "def_functions". |