diff options
author | ZyX <kp-pav@yandex.ru> | 2015-08-16 18:54:41 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2015-10-08 22:00:46 +0300 |
commit | 22906265a2647aadcbc3ab9ab8a590bffd95002c (patch) | |
tree | 215022e521cad6040f8cccdb9c4cd24fe470d013 /src/nvim/mark.c | |
parent | be45e750267a7cb52b625b2e1e71796be18d8061 (diff) | |
download | rneovim-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.c | 12 |
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 |