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/eval.c b/src/eval.c
index 3b789da..fbbae63 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -234,7 +234,7 @@
s = expr->vval.v_string;
if (s == NULL || *s == NUL)
return FAIL;
- vim_memset(&funcexe, 0, sizeof(funcexe));
+ CLEAR_FIELD(funcexe);
funcexe.evaluate = TRUE;
if (call_func(s, -1, rettv, argc, argv, &funcexe) == FAIL)
return FAIL;
@@ -253,7 +253,7 @@
s = partial_name(partial);
if (s == NULL || *s == NUL)
return FAIL;
- vim_memset(&funcexe, 0, sizeof(funcexe));
+ CLEAR_FIELD(funcexe);
funcexe.evaluate = TRUE;
funcexe.partial = partial;
if (call_func(s, -1, rettv, argc, argv, &funcexe) == FAIL)
@@ -475,7 +475,7 @@
funcexe_T funcexe;
rettv->v_type = VAR_UNKNOWN; // clear_tv() uses this
- vim_memset(&funcexe, 0, sizeof(funcexe));
+ CLEAR_FIELD(funcexe);
funcexe.firstline = curwin->w_cursor.lnum;
funcexe.lastline = curwin->w_cursor.lnum;
funcexe.evaluate = TRUE;
@@ -649,7 +649,7 @@
int quiet = flags & GLV_QUIET;
// Clear everything in "lp".
- vim_memset(lp, 0, sizeof(lval_T));
+ CLEAR_POINTER(lp);
if (skip)
{
@@ -1715,7 +1715,7 @@
funcexe_T funcexe;
// Invoke the function.
- vim_memset(&funcexe, 0, sizeof(funcexe));
+ CLEAR_FIELD(funcexe);
funcexe.firstline = curwin->w_cursor.lnum;
funcexe.lastline = curwin->w_cursor.lnum;
funcexe.evaluate = evaluate;
@@ -2805,7 +2805,7 @@
else
s = (char_u *)"";
- vim_memset(&funcexe, 0, sizeof(funcexe));
+ CLEAR_FIELD(funcexe);
funcexe.firstline = curwin->w_cursor.lnum;
funcexe.lastline = curwin->w_cursor.lnum;
funcexe.evaluate = evaluate;
@@ -5507,7 +5507,7 @@
init_tv(typval_T *varp)
{
if (varp != NULL)
- vim_memset(varp, 0, sizeof(typval_T));
+ CLEAR_POINTER(varp);
}
/*