aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/option.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 469aeecc23..797dd1dfe7 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -2770,6 +2770,10 @@ did_set_string_option (
? ((shada_idx = findoption((char_u *) "shada")))
: shada_idx)
: opt_idx);
+ // Update free_oldval now that we have the opt_idx for 'shada', otherwise
+ // there would be a disconnect between the check for P_ALLOCED at the start
+ // of the function and the set of P_ALLOCED at the end of the fuction.
+ free_oldval = (options[opt_idx].flags & P_ALLOCED);
for (s = p_shada; *s; ) {
/* Check it's a valid character */
if (vim_strchr((char_u *)"!\"%'/:<@cfhnrs", *s) == NULL) {