mirror of
https://github.com/neovim/neovim.git
synced 2025-09-12 22:38:16 +00:00
buffer: Remove b:changedtick from b: before freeing b:
Avoids loosing b:changedtick value at `:bdelete`.
This commit is contained in:
@@ -686,6 +686,15 @@ free_buffer_stuff (
|
|||||||
free_buf_options(buf, true);
|
free_buf_options(buf, true);
|
||||||
ga_clear(&buf->b_s.b_langp);
|
ga_clear(&buf->b_s.b_langp);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
// Avoid loosing b:changedtick when deleting buffer: clearing variables
|
||||||
|
// implies using clear_tv() on b:changedtick and that sets changedtick to
|
||||||
|
// zero.
|
||||||
|
hashitem_T *const changedtick_hi = hash_find(
|
||||||
|
&buf->b_vars->dv_hashtab, (const char_u *)"changedtick");
|
||||||
|
assert(changedtick_hi != NULL);
|
||||||
|
hash_remove(&buf->b_vars->dv_hashtab, changedtick_hi);
|
||||||
|
}
|
||||||
vars_clear(&buf->b_vars->dv_hashtab); // free all internal variables
|
vars_clear(&buf->b_vars->dv_hashtab); // free all internal variables
|
||||||
hash_init(&buf->b_vars->dv_hashtab);
|
hash_init(&buf->b_vars->dv_hashtab);
|
||||||
buf_init_changedtick(buf);
|
buf_init_changedtick(buf);
|
||||||
|
Reference in New Issue
Block a user