aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2015-08-13 23:34:42 +0300
committerZyX <kp-pav@yandex.ru>2015-10-08 22:00:41 +0300
commite4c0741206b7d3e307d5ecf8bdb5d0266d952513 (patch)
tree107c988cef4dbe151205fdce8b516a2d7701043b /src
parent689390210a03aef00b627327dc8ce8723f2ecb4d (diff)
downloadrneovim-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.c6
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]);