aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/mark.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/mark.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/mark.c')
-rw-r--r--src/nvim/mark.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/nvim/mark.c b/src/nvim/mark.c
index 7c76bd2162..a134905d98 100644
--- a/src/nvim/mark.c
+++ b/src/nvim/mark.c
@@ -73,17 +73,23 @@ int setmark(int c)
void free_fmark(fmark_T fm)
{
dict_unref(fm.additional_data);
- fm.additional_data = NULL;
}
/// Free xfmark_T item
void free_xfmark(xfmark_T fm)
{
xfree(fm.fname);
- fm.fname = NULL;
free_fmark(fm.fmark);
}
+/// Free and clear fmark_T item
+void clear_fmark(fmark_T *fm)
+ FUNC_ATTR_NONNULL_ALL
+{
+ free_fmark(*fm);
+ memset(fm, 0, sizeof(*fm));
+}
+
/*
* Set named mark "c" to position "pos".
* When "c" is upper case use file "fnum".
@@ -1409,6 +1415,7 @@ void free_jumplist(win_T *wp)
for (i = 0; i < wp->w_jumplistlen; ++i) {
free_xfmark(wp->w_jumplist[i]);
}
+ wp->w_jumplistlen = 0;
}
void set_last_cursor(win_T *win)
@@ -1428,5 +1435,6 @@ void free_all_marks(void)
free_xfmark(namedfm[i]);
}
}
+ memset(&namedfm[0], 0, sizeof(namedfm));
}
#endif