diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-08-11 13:34:44 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-08-12 02:17:49 +0200 |
commit | 71378a40308cd987626ebccb5882897d41c86c7a (patch) | |
tree | 0341f2fb5ac5e0813986e740ea512e99a6cd80f0 /src/nvim/eval/typval.c | |
parent | feee862064554a789891e3450762464a6ec2535d (diff) | |
download | rneovim-71378a40308cd987626ebccb5882897d41c86c7a.tar.gz rneovim-71378a40308cd987626ebccb5882897d41c86c7a.tar.bz2 rneovim-71378a40308cd987626ebccb5882897d41c86c7a.zip |
free_buffer: rework b:changedtick handling #9163
- Re-enable Test_BufLeave_Wipe. 66f5e5c7d7ce
This is my (probably-wrong) application of Zyx's suggestion in #9163:
> free_buffer_stuff() already removes changedtick. It is better to
> make `free_options` a flag variable and avoid calling
> buf_init_changedtick() based on some flag there: current workflow
> looks weird as it first removes `b:changedtick`, then re-adds it
> by calling buf_init_changedtick(), then remove again.
> Also based on my understanding it looks logical to not remove
> `b:changedtick`, but to *replace* it with something allocated if
> needed based on examining reference count before calling
> `unref_var_dict`. Because now you have key disappearing from
> dictionary for no good reason.
Patch-By: Nikolai Aleksandrovich Pavlov <kp-pav@yandex.ru>
Diffstat (limited to 'src/nvim/eval/typval.c')
-rw-r--r-- | src/nvim/eval/typval.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/nvim/eval/typval.c b/src/nvim/eval/typval.c index 91a1d083c7..106b8f6eed 100644 --- a/src/nvim/eval/typval.c +++ b/src/nvim/eval/typval.c @@ -1272,7 +1272,7 @@ void tv_dict_item_free(dictitem_T *const item) /// @param[in] di Item to copy. /// /// @return [allocated] new dictionary item. -static dictitem_T *tv_dict_item_copy(dictitem_T *const di) +dictitem_T *tv_dict_item_copy(dictitem_T *const di) FUNC_ATTR_NONNULL_RET FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT { dictitem_T *const new_di = tv_dict_item_alloc((const char *)di->di_key); |