summaryrefslogtreecommitdiff
path: root/src/macros.h
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-02-10 18:45:26 +0100
committerBram Moolenaar <Bram@vim.org>2018-02-10 18:45:26 +0100
commitd23a823669d93fb2a570a039173eefe4856ac806 (patch)
tree617130258eae70e3bd7ef7b6da9c494ffee7b572 /src/macros.h
parent42443c7d7fecc3a2a72154bb6139b028438617c2 (diff)
downloadvim-git-d23a823669d93fb2a570a039173eefe4856ac806.tar.gz
patch 8.0.1496: clearing a pointer takes two linesv8.0.1496
Problem: Clearing a pointer takes two lines. Solution: Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi, closes #2629)
Diffstat (limited to 'src/macros.h')
-rw-r--r--src/macros.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/macros.h b/src/macros.h
index 6e4b813c0..43d6c94cf 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -379,3 +379,14 @@
# define mch_enable_flush()
# define mch_disable_flush()
#endif
+
+/*
+ * Like vim_free(), and also set the pointer to NULL.
+ */
+#define VIM_CLEAR(p) \
+ do { \
+ if ((p) != NULL) { \
+ vim_free(p); \
+ (p) = NULL; \
+ } \
+ } while (0)