Mercurial > vim
comparison src/vim9execute.c @ 20353:a8a76fd967ab v8.2.0732
patch 8.2.0732: Vim9: storing value in dict messes up stack
Commit: https://github.com/vim/vim/commit/f163bd5e41e8ea1d32e7977e671598a9d6f7b23c
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun May 10 21:47:43 2020 +0200
patch 8.2.0732: Vim9: storing value in dict messes up stack
Problem: Vim9: storing value in dict messes up stack.
Solution: Correct item count of stack.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 10 May 2020 22:00:04 +0200 |
parents | e29b2ec8d4d2 |
children | fd1b6f4f497e |
comparison
equal
deleted
inserted
replaced
20352:8ce5690fdb49 | 20353:a8a76fd967ab |
---|---|
1284 goto failed; | 1284 goto failed; |
1285 clear_tv(tv); | 1285 clear_tv(tv); |
1286 } | 1286 } |
1287 clear_tv(tv_idx); | 1287 clear_tv(tv_idx); |
1288 clear_tv(tv_list); | 1288 clear_tv(tv_list); |
1289 ectx.ec_stack.ga_len -= 3; | |
1289 } | 1290 } |
1290 break; | 1291 break; |
1291 | 1292 |
1292 // store value in dict variable | 1293 // store value in dict variable |
1293 case ISN_STOREDICT: | 1294 case ISN_STOREDICT: |
1317 goto failed; | 1318 goto failed; |
1318 clear_tv(tv); | 1319 clear_tv(tv); |
1319 } | 1320 } |
1320 clear_tv(tv_key); | 1321 clear_tv(tv_key); |
1321 clear_tv(tv_dict); | 1322 clear_tv(tv_dict); |
1323 ectx.ec_stack.ga_len -= 3; | |
1322 } | 1324 } |
1323 break; | 1325 break; |
1324 | 1326 |
1325 // push constant | 1327 // push constant |
1326 case ISN_PUSHNR: | 1328 case ISN_PUSHNR: |