patch 8.2.0559: clearing a struct is verbose
Problem: Clearing a struct is verbose.
Solution: Define and use CLEAR_FIELD() and CLEAR_POINTER().
diff --git a/src/if_mzsch.c b/src/if_mzsch.c
index 0ee922d..8cc2e21 100644
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -1927,7 +1927,7 @@
MZ_GC_REG();
self = scheme_malloc_fail_ok(scheme_malloc_tagged, sizeof(vim_mz_window));
- vim_memset(self, 0, sizeof(vim_mz_window));
+ CLEAR_POINTER(self);
#ifndef MZ_PRECISE_GC
scheme_dont_gc_ptr(self); // because win isn't visible to GC
#else
@@ -2311,7 +2311,7 @@
MZ_GC_REG();
self = scheme_malloc_fail_ok(scheme_malloc_tagged, sizeof(vim_mz_buffer));
- vim_memset(self, 0, sizeof(vim_mz_buffer));
+ CLEAR_POINTER(self);
#ifndef MZ_PRECISE_GC
scheme_dont_gc_ptr(self); // because buf isn't visible to GC
#else
@@ -2634,8 +2634,7 @@
MZ_GC_VAR_IN_REG(1, rest);
MZ_GC_REG();
- array = ALLOC_MULT(char *, new_len + 1);
- vim_memset(array, 0, (new_len+1) * sizeof(char *));
+ array = ALLOC_CLEAR_MULT(char *, new_len + 1);
rest = line_list;
for (i = 0; i < new_len; ++i)
@@ -2818,8 +2817,7 @@
MZ_GC_VAR_IN_REG(1, rest);
MZ_GC_REG();
- array = ALLOC_MULT(char *, size + 1);
- vim_memset(array, 0, (size+1) * sizeof(char *));
+ array = ALLOC_CLEAR_MULT(char *, size + 1);
rest = list;
for (i = 0; i < size; ++i)