From 15b61b5c4fc68700c0bd3f9a5a4104c780191213 Mon Sep 17 00:00:00 2001 From: Ryan Pavlik Date: Tue, 18 Jun 2019 13:51:23 -0500 Subject: [PATCH] util: Add U_ZERO and U_ZERO_ARRAY wrappers for memset. Ensures the type is always correct. --- src/xrt/auxiliary/util/u_misc.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/xrt/auxiliary/util/u_misc.h b/src/xrt/auxiliary/util/u_misc.h index 86770ef8e..d9b6025eb 100644 --- a/src/xrt/auxiliary/util/u_misc.h +++ b/src/xrt/auxiliary/util/u_misc.h @@ -10,6 +10,7 @@ #pragma once #include +#include // for memset #ifdef __cplusplus extern "C" { @@ -41,6 +42,25 @@ extern "C" { #define U_TYPED_ARRAY_CALLOC(TYPE, COUNT) \ ((TYPE *)calloc((COUNT), sizeof(TYPE))) +/*! + * Zeroes the correct amount of memory based on the type pointed-to by the + * argument. + * + * Use instead of memset(..., 0, ...) on a structure or pointer to structure. + * + * @ingroup aux_util + */ +#define U_ZERO(PTR) memset((PTR), 0, sizeof(*(PTR))) + +/*! + * Zeroes the correct amount of memory based on the type and size of the static + * array named in the argument. + * + * Use instead of memset(..., 0, ...) on an array. + * + * @ingroup aux_util + */ +#define U_ZERO_ARRAY(ARRAY) memset((ARRAY), 0, sizeof(ARRAY)) #ifdef __cplusplus }