Merge pull request #5118 from douzzer/20220405-declaration-after-statement

20220405 declaration after statement
This commit is contained in:
David Garske
2022-05-06 16:16:52 -07:00
committed by GitHub
7 changed files with 60 additions and 31 deletions

View File

@ -5482,6 +5482,11 @@ int wolfSSL_X509_cmp(const WOLFSSL_X509 *a, const WOLFSSL_X509 *b)
} }
#else #else
{ {
word32 idx = 0;
int sz;
byte lbit = 0;
int rawLen;
unsigned char* rawKey;
#ifdef WOLFSSL_SMALL_STACK #ifdef WOLFSSL_SMALL_STACK
RsaKey *rsa = (RsaKey*)XMALLOC(sizeof(RsaKey), NULL, RsaKey *rsa = (RsaKey*)XMALLOC(sizeof(RsaKey), NULL,
DYNAMIC_TYPE_RSA); DYNAMIC_TYPE_RSA);
@ -5492,11 +5497,6 @@ int wolfSSL_X509_cmp(const WOLFSSL_X509 *a, const WOLFSSL_X509 *b)
#else #else
RsaKey rsa[1]; RsaKey rsa[1];
#endif #endif
word32 idx = 0;
int sz;
byte lbit = 0;
int rawLen;
unsigned char* rawKey;
if (wc_InitRsaKey(rsa, NULL) != 0) { if (wc_InitRsaKey(rsa, NULL) != 0) {
WOLFSSL_MSG("wc_InitRsaKey failure"); WOLFSSL_MSG("wc_InitRsaKey failure");

View File

@ -3648,6 +3648,7 @@ void bench_md5(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MD5_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MD5_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MD5_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -3741,6 +3742,7 @@ void bench_sha(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -3832,6 +3834,7 @@ void bench_sha224(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA224_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA224_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA224_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -3918,6 +3921,7 @@ void bench_sha256(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA256_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA256_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA256_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -4007,6 +4011,7 @@ void bench_sha384(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA384_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA384_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA384_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -4093,6 +4098,7 @@ void bench_sha512(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA512_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA512_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA512_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -4181,6 +4187,7 @@ void bench_sha3_224(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_224_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_224_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_224_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -4267,6 +4274,7 @@ void bench_sha3_256(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -4353,6 +4361,7 @@ void bench_sha3_384(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_384_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_384_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_384_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -4439,6 +4448,7 @@ void bench_sha3_512(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_512_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_512_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_512_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@ -4805,6 +4815,7 @@ static void bench_hmac(int useDeviceID, int type, int digestSz,
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
#ifdef WOLFSSL_ASYNC_CRYPT #ifdef WOLFSSL_ASYNC_CRYPT
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MAX_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MAX_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MAX_DIGEST_SIZE, HEAP_HINT);
#else #else
byte digest[BENCH_MAX_PENDING][WC_MAX_DIGEST_SIZE]; byte digest[BENCH_MAX_PENDING][WC_MAX_DIGEST_SIZE];
#endif #endif
@ -5619,6 +5630,11 @@ void bench_dh(int useDeviceID)
WC_DECLARE_ARRAY(agree, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(agree, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
WC_DECLARE_ARRAY(priv, byte, BENCH_MAX_PENDING, BENCH_DH_PRIV_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(priv, byte, BENCH_MAX_PENDING, BENCH_DH_PRIV_SIZE, HEAP_HINT);
WC_DECLARE_VAR(priv2, byte, BENCH_DH_PRIV_SIZE, HEAP_HINT); WC_DECLARE_VAR(priv2, byte, BENCH_DH_PRIV_SIZE, HEAP_HINT);
WC_INIT_ARRAY(pub, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
WC_INIT_ARRAY(agree, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
WC_INIT_ARRAY(priv, byte, BENCH_MAX_PENDING, BENCH_DH_PRIV_SIZE, HEAP_HINT);
#ifdef WC_DECLARE_VAR_IS_HEAP_ALLOC #ifdef WC_DECLARE_VAR_IS_HEAP_ALLOC
if (pub[0] == NULL || pub2 == NULL || agree[0] == NULL || priv[0] == NULL || priv2 == NULL) { if (pub[0] == NULL || pub2 == NULL || agree[0] == NULL || priv[0] == NULL || priv2 == NULL) {
ret = MEMORY_E; ret = MEMORY_E;
@ -5920,6 +5936,14 @@ void bench_ecc(int useDeviceID, int curveId)
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
#endif #endif
#ifdef HAVE_ECC_DHE
WC_INIT_ARRAY(shared, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
#endif
#if !defined(NO_ASN) && defined(HAVE_ECC_SIGN)
WC_INIT_ARRAY(sig, byte, BENCH_MAX_PENDING, ECC_MAX_SIG_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
#endif
#ifdef WOLFSSL_ASYNC_CRYPT #ifdef WOLFSSL_ASYNC_CRYPT
deviceID = useDeviceID ? devId : INVALID_DEVID; deviceID = useDeviceID ? devId : INVALID_DEVID;
#else #else

View File

@ -8246,7 +8246,9 @@ int WARN_UNUSED_RESULT AES_GCM_decrypt_C(
XMEMCPY(p, scratch, partial); XMEMCPY(p, scratch, partial);
} }
/* ConstantCompare returns cumulative or of the bytewise XOR. */ /* ConstantCompare returns the cumulative bitwise or of the bitwise xor of
* the pairwise bytes in the strings.
*/
res = ConstantCompare(authTag, Tprime, authTagSz); res = ConstantCompare(authTag, Tprime, authTagSz);
/* convert positive retval from ConstantCompare() to all-1s word, in /* convert positive retval from ConstantCompare() to all-1s word, in
* constant time. * constant time.

View File

@ -271,7 +271,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] cnt Number of elements required. * @param [in] cnt Number of elements required.
*/ */
#define DECL_ASNGETDATA(name, cnt) \ #define DECL_ASNGETDATA(name, cnt) \
ASNGetData* name = NULL; ASNGetData* name = NULL
/* Allocates the dynamic BER decoding data. /* Allocates the dynamic BER decoding data.
* *
@ -327,7 +327,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] cnt Number of elements required. * @param [in] cnt Number of elements required.
*/ */
#define DECL_ASNSETDATA(name, cnt) \ #define DECL_ASNSETDATA(name, cnt) \
ASNSetData* name = NULL; ASNSetData* name = NULL
/* Allocates the dynamic DER encoding data. /* Allocates the dynamic DER encoding data.
* *
@ -383,7 +383,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] cnt Number of elements required. * @param [in] cnt Number of elements required.
*/ */
#define DECL_ASNGETDATA(name, cnt) \ #define DECL_ASNGETDATA(name, cnt) \
ASNGetData name[cnt]; ASNGetData name[cnt]
/* No implementation as declartion is static. /* No implementation as declartion is static.
* *
@ -402,7 +402,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] heap Dynamic memory allocation hint. * @param [in] heap Dynamic memory allocation hint.
*/ */
#define CALLOC_ASNGETDATA(name, cnt, err, heap) \ #define CALLOC_ASNGETDATA(name, cnt, err, heap) \
XMEMSET(name, 0, sizeof(name)); XMEMSET(name, 0, sizeof(name))
/* No implementation as declartion is static. /* No implementation as declartion is static.
* *
@ -417,7 +417,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] cnt Number of elements required. * @param [in] cnt Number of elements required.
*/ */
#define DECL_ASNSETDATA(name, cnt) \ #define DECL_ASNSETDATA(name, cnt) \
ASNSetData name[cnt]; ASNSetData name[cnt]
/* No implementation as declartion is static. /* No implementation as declartion is static.
* *
@ -436,7 +436,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] heap Dynamic memory allocation hint. * @param [in] heap Dynamic memory allocation hint.
*/ */
#define CALLOC_ASNSETDATA(name, cnt, err, heap) \ #define CALLOC_ASNSETDATA(name, cnt, err, heap) \
XMEMSET(name, 0, sizeof(name)); XMEMSET(name, 0, sizeof(name))
/* No implementation as declartion is static. /* No implementation as declartion is static.
* *
@ -28634,7 +28634,9 @@ static int DecodeAsymKey(const byte* input, word32* inOutIdx, word32 inSz,
const byte* priv; const byte* priv;
const byte* pub; const byte* pub;
#else #else
int ret = 0;
DECL_ASNGETDATA(dataASN, edKeyASN_Length); DECL_ASNGETDATA(dataASN, edKeyASN_Length);
CALLOC_ASNGETDATA(dataASN, edKeyASN_Length, ret, NULL);
#endif #endif
if (input == NULL || inOutIdx == NULL || inSz == 0 || if (input == NULL || inOutIdx == NULL || inSz == 0 ||
@ -28714,10 +28716,6 @@ static int DecodeAsymKey(const byte* input, word32* inOutIdx, word32 inSz,
return ASN_PARSE_E; return ASN_PARSE_E;
return 0; return 0;
#else #else
int ret = 0;
CALLOC_ASNGETDATA(dataASN, edKeyASN_Length, ret, NULL);
if (ret == 0) { if (ret == 0) {
/* Require OID. */ /* Require OID. */
word32 oidSz; word32 oidSz;

View File

@ -15740,7 +15740,7 @@ static int dh_fips_generate_test(WC_RNG *rng)
{ {
int ret = 0; int ret = 0;
#ifdef WOLFSSL_SMALL_STACK #ifdef WOLFSSL_SMALL_STACK
DhKey *key = (DhKey *)XMALLOC(sizeof *key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);; DhKey *key = (DhKey *)XMALLOC(sizeof *key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
#else #else
DhKey key[1]; DhKey key[1];
#endif #endif
@ -19570,20 +19570,22 @@ WOLFSSL_TEST_SUBROUTINE int openssl_pkey1_test(void)
sizeof_client_cert_der_4096, SSL_FILETYPE_ASN1); sizeof_client_cert_der_4096, SSL_FILETYPE_ASN1);
keyLenBits = 4096; keyLenBits = 4096;
#else #else
XFILE f; {
XFILE f;
f = XFOPEN(clientKey, "rb"); f = XFOPEN(clientKey, "rb");
if (!f) { if (!f) {
err_sys("can't open ./certs/client-key.der, " err_sys("can't open ./certs/client-key.der, "
"Please run from wolfSSL home dir", -41); "Please run from wolfSSL home dir", -41);
ret = -9000; ret = -9000;
goto openssl_pkey1_test_done; goto openssl_pkey1_test_done;
}
cliKeySz = (long)XFREAD(tmp, 1, FOURK_BUF, f);
XFCLOSE(f);
} }
cliKeySz = (long)XFREAD(tmp, 1, FOURK_BUF, f);
XFCLOSE(f);
/* using existing wolfSSL api to get public and private key */ /* using existing wolfSSL api to get public and private key */
x509 = wolfSSL_X509_load_certificate_file(clientCert, SSL_FILETYPE_ASN1); x509 = wolfSSL_X509_load_certificate_file(clientCert, SSL_FILETYPE_ASN1);
#endif /* USE_CERT_BUFFERS */ #endif /* USE_CERT_BUFFERS */
@ -23360,7 +23362,7 @@ static int ecc_exp_imp_test(ecc_key* key)
int ret; int ret;
int curve_id; int curve_id;
#ifdef WOLFSSL_SMALL_STACK #ifdef WOLFSSL_SMALL_STACK
ecc_key *keyImp = (ecc_key *)XMALLOC(sizeof *keyImp, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);; ecc_key *keyImp = (ecc_key *)XMALLOC(sizeof *keyImp, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
#else #else
ecc_key keyImp[1]; ecc_key keyImp[1];
#endif #endif

View File

@ -515,7 +515,8 @@ decouple library dependencies with standard string, memory and so on.
VAR_TYPE* VAR_NAME = (VAR_TYPE*)XMALLOC(sizeof(VAR_TYPE) * (VAR_SIZE), (HEAP), DYNAMIC_TYPE_WOLF_BIGINT) VAR_TYPE* VAR_NAME = (VAR_TYPE*)XMALLOC(sizeof(VAR_TYPE) * (VAR_SIZE), (HEAP), DYNAMIC_TYPE_WOLF_BIGINT)
#define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ #define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
VAR_TYPE* VAR_NAME[VAR_ITEMS]; \ VAR_TYPE* VAR_NAME[VAR_ITEMS]; \
int idx##VAR_NAME, inner_idx_##VAR_NAME; \ int idx##VAR_NAME, inner_idx_##VAR_NAME
#define WC_INIT_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
for (idx##VAR_NAME=0; idx##VAR_NAME<(VAR_ITEMS); idx##VAR_NAME++) { \ for (idx##VAR_NAME=0; idx##VAR_NAME<(VAR_ITEMS); idx##VAR_NAME++) { \
(VAR_NAME)[idx##VAR_NAME] = (VAR_TYPE*)XMALLOC(VAR_SIZE, (HEAP), DYNAMIC_TYPE_WOLF_BIGINT); \ (VAR_NAME)[idx##VAR_NAME] = (VAR_TYPE*)XMALLOC(VAR_SIZE, (HEAP), DYNAMIC_TYPE_WOLF_BIGINT); \
if ((VAR_NAME)[idx##VAR_NAME] == NULL) { \ if ((VAR_NAME)[idx##VAR_NAME] == NULL) { \
@ -538,7 +539,8 @@ decouple library dependencies with standard string, memory and so on.
#define WC_DECLARE_ARRAY_DYNAMIC_DEC(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ #define WC_DECLARE_ARRAY_DYNAMIC_DEC(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP)
#define WC_DECLARE_ARRAY_DYNAMIC_EXE(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) #define WC_DECLARE_ARRAY_DYNAMIC_EXE(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
WC_INIT_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP)
#define WC_FREE_ARRAY_DYNAMIC(VAR_NAME, VAR_ITEMS, HEAP) \ #define WC_FREE_ARRAY_DYNAMIC(VAR_NAME, VAR_ITEMS, HEAP) \
WC_FREE_ARRAY(VAR_NAME, VAR_ITEMS, HEAP) WC_FREE_ARRAY(VAR_NAME, VAR_ITEMS, HEAP)
#else #else
@ -547,6 +549,7 @@ decouple library dependencies with standard string, memory and so on.
VAR_TYPE VAR_NAME[VAR_SIZE] VAR_TYPE VAR_NAME[VAR_SIZE]
#define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ #define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
VAR_TYPE VAR_NAME[VAR_ITEMS][VAR_SIZE] VAR_TYPE VAR_NAME[VAR_ITEMS][VAR_SIZE]
#define WC_INIT_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) do {} while(0)
#define WC_FREE_VAR(VAR_NAME, HEAP) /* nothing to free, its stack */ #define WC_FREE_VAR(VAR_NAME, HEAP) /* nothing to free, its stack */
#define WC_FREE_ARRAY(VAR_NAME, VAR_ITEMS, HEAP) /* nothing to free, its stack */ #define WC_FREE_ARRAY(VAR_NAME, VAR_ITEMS, HEAP) /* nothing to free, its stack */