patch 8.0.1496: clearing a pointer takes two lines
Problem: Clearing a pointer takes two lines.
Solution: Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,
closes #2629)
diff --git a/src/macros.h b/src/macros.h
index 6e4b813..43d6c94 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)