diff options
author | ZyX <kp-pav@yandex.ru> | 2015-08-13 23:34:42 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2015-10-08 22:00:41 +0300 |
commit | e4c0741206b7d3e307d5ecf8bdb5d0266d952513 (patch) | |
tree | 107c988cef4dbe151205fdce8b516a2d7701043b /src | |
parent | 689390210a03aef00b627327dc8ce8723f2ecb4d (diff) | |
download | rneovim-e4c0741206b7d3e307d5ecf8bdb5d0266d952513.tar.gz rneovim-e4c0741206b7d3e307d5ecf8bdb5d0266d952513.tar.bz2 rneovim-e4c0741206b7d3e307d5ecf8bdb5d0266d952513.zip |
ops: Fix access to unsaved register when iterating over registers
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/ops.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/ops.c b/src/nvim/ops.c index 5ba1d8b2f5..b3e889c0ec 100644 --- a/src/nvim/ops.c +++ b/src/nvim/ops.c @@ -5336,11 +5336,11 @@ const void *op_register_iter(const void *const iter, char *const name, const yankreg_T *iter_reg = (iter == NULL ? &(y_regs[0]) : (const yankreg_T *const) iter); - while (reg_empty(iter_reg) && iter_reg - &(y_regs[0]) < NUM_SAVED_REGISTERS) { + while (iter_reg - &(y_regs[0]) < NUM_SAVED_REGISTERS && reg_empty(iter_reg)) { iter_reg++; } - if (reg_empty(iter_reg)) { - *reg = (yankreg_T) {.y_array = NULL}; + if (iter_reg - &(y_regs[0]) == NUM_SAVED_REGISTERS || reg_empty(iter_reg)) { + *reg = (yankreg_T) { .y_array = NULL }; return NULL; } size_t iter_off = iter_reg - &(y_regs[0]); |