aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/buffer.c
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2015-08-16 18:54:41 +0300
committerZyX <kp-pav@yandex.ru>2015-10-08 22:00:46 +0300
commit22906265a2647aadcbc3ab9ab8a590bffd95002c (patch)
tree215022e521cad6040f8cccdb9c4cd24fe470d013 /src/nvim/buffer.c
parentbe45e750267a7cb52b625b2e1e71796be18d8061 (diff)
downloadrneovim-22906265a2647aadcbc3ab9ab8a590bffd95002c.tar.gz
rneovim-22906265a2647aadcbc3ab9ab8a590bffd95002c.tar.bz2
rneovim-22906265a2647aadcbc3ab9ab8a590bffd95002c.zip
mark: Clear marks in some cases, but do not do useless job in free_\*
Diffstat (limited to 'src/nvim/buffer.c')
-rw-r--r--src/nvim/buffer.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index a25a51c6ce..d0fad0e002 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -557,9 +557,9 @@ static void free_buffer(buf_T *buf)
unref_var_dict(buf->b_vars);
aubuflocal_remove(buf);
dict_unref(buf->additional_data);
- free_fmark(buf->b_last_cursor);
- free_fmark(buf->b_last_insert);
- free_fmark(buf->b_last_change);
+ clear_fmark(&buf->b_last_cursor);
+ clear_fmark(&buf->b_last_insert);
+ clear_fmark(&buf->b_last_change);
for (size_t i = 0; i < NMARKS; i++) {
free_fmark(buf->b_namedm[i]);
}
@@ -569,6 +569,8 @@ static void free_buffer(buf_T *buf)
if (autocmd_busy) {
// Do not free the buffer structure while autocommands are executing,
// it's still needed. Free it when autocmd_busy is reset.
+ memset(&buf->b_namedm[0], 0, sizeof(buf->b_namedm));
+ memset(&buf->b_changelist[0], 0, sizeof(buf->b_changelist));
buf->b_next = au_pending_free_buf;
au_pending_free_buf = buf;
} else {