aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorFlorian Walch <florian@fwalch.com>2014-12-23 21:37:19 +0100
committerFlorian Walch <florian@fwalch.com>2014-12-23 21:48:22 +0100
commit5e542ba56e7d34516ebe7d717b84959d476eb04c (patch)
treebe21f27d4151ad7e3094b5f7e596bf7b3aad8d2e /src/nvim/eval.c
parent89bab9b90e3730c5b7685e7a25c5ec3fb6b1d8c8 (diff)
downloadrneovim-5e542ba56e7d34516ebe7d717b84959d476eb04c.tar.gz
rneovim-5e542ba56e7d34516ebe7d717b84959d476eb04c.tar.bz2
rneovim-5e542ba56e7d34516ebe7d717b84959d476eb04c.zip
vim-patch:7.4.513
Problem: Crash because reference count is wrong for list returned by getreg(). Solution: Increment the reference count. (Kimmy Lindvall) https://code.google.com/p/vim/source/detail?r=v7-4-513
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 67a68f70d5..ffae24a380 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -9553,6 +9553,9 @@ static void f_getreg(typval_T *argvars, typval_T *rettv)
rettv->v_type = VAR_LIST;
rettv->vval.v_list =
get_reg_contents(regname, (arg2 ? kGRegExprSrc : 0) | kGRegList);
+ if (rettv->vval.v_list != NULL) {
+ rettv->vval.v_list->lv_refcount++;
+ }
} else {
rettv->v_type = VAR_STRING;
rettv->vval.v_string = get_reg_contents(regname, arg2 ? kGRegExprSrc : 0);