Skip to content

Commit 3921362

Browse files
committed
WC_VAR macros
1 parent 75a6621 commit 3921362

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

wolfssl/wolfcrypt/types.h

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,10 +708,11 @@ enum {
708708
idx##VAR_NAME = 0; \
709709
}
710710

711-
#if defined(WOLFSSL_ASYNC_CRYPT) || defined(WOLFSSL_SMALL_STACK)
711+
#if defined(WOLFSSL_SMALL_STACK)
712712
#define WC_DECLARE_VAR_IS_HEAP_ALLOC
713713
#define WC_DECLARE_VAR(VAR_NAME, VAR_TYPE, VAR_SIZE, HEAP) \
714714
VAR_TYPE* VAR_NAME = NULL
715+
#define WC_VAR_OK(VAR_NAME) ((VAR_NAME) != NULL)
715716
#define WC_ALLOC_VAR(VAR_NAME, VAR_TYPE, VAR_SIZE, HEAP) \
716717
do { \
717718
(VAR_NAME) = (VAR_TYPE*)XMALLOC(sizeof(VAR_TYPE) * (VAR_SIZE), \
@@ -720,13 +721,23 @@ enum {
720721
WC_ALLOC_DO_ON_FAILURE(); \
721722
} \
722723
} while (0)
724+
#define WC_ALLOC_VAR_EX(VAR_NAME, VAR_TYPE, VAR_SIZE, HEAP, TY, ONFAIL)\
725+
do { \
726+
(VAR_NAME) = (VAR_TYPE*)XMALLOC(sizeof(VAR_TYPE) * (VAR_SIZE), \
727+
(HEAP), TY); \
728+
if ((VAR_NAME) == NULL) { \
729+
ONFAIL; \
730+
} \
731+
} while (0)
723732
#define WC_CALLOC_VAR(VAR_NAME, VAR_TYPE, VAR_SIZE, HEAP) \
724733
do { \
725734
WC_ALLOC_VAR(VAR_NAME, VAR_TYPE, VAR_SIZE, HEAP); \
726735
XMEMSET(VAR_NAME, 0, sizeof(VAR_TYPE) * (VAR_SIZE)); \
727736
} while (0)
728737
#define WC_FREE_VAR(VAR_NAME, HEAP) \
729738
XFREE(VAR_NAME, (HEAP), DYNAMIC_TYPE_WOLF_BIGINT)
739+
#define WC_FREE_VAR_EX(VAR_NAME, HEAP, TYPE) \
740+
XFREE(VAR_NAME, (HEAP), TYPE)
730741
#define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
731742
WC_DECLARE_HEAP_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP)
732743
#define WC_ARRAY_ARG(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE) \
@@ -743,10 +754,14 @@ enum {
743754
#define WC_DECLARE_VAR(VAR_NAME, VAR_TYPE, VAR_SIZE, HEAP) \
744755
VAR_TYPE VAR_NAME[VAR_SIZE]
745756
#define WC_ALLOC_VAR(VAR_NAME, VAR_TYPE, VAR_SIZE, HEAP) WC_DO_NOTHING
757+
#define WC_ALLOC_VAR_EX(VAR_NAME, VAR_TYPE, VAR_SIZE, HEAP, TYPE, ONFAIL)\
758+
WC_DO_NOTHING
759+
#define WC_VAR_OK(VAR_NAME) 1
746760
#define WC_CALLOC_VAR(VAR_NAME, VAR_TYPE, VAR_SIZE, HEAP) \
747761
XMEMSET(VAR_NAME, 0, sizeof(var))
748762
#define WC_FREE_VAR(VAR_NAME, HEAP) WC_DO_NOTHING \
749763
/* nothing to free, its stack */
764+
#define WC_FREE_VAR_EX(VAR_NAME, HEAP, TYPE) WC_DO_NOTHING
750765
#define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
751766
VAR_TYPE VAR_NAME[VAR_ITEMS][(VAR_SIZE) / sizeof(VAR_TYPE)] /* NOLINT(bugprone-sizeof-expression) */
752767
#define WC_ARRAY_ARG(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE) \

0 commit comments

Comments
 (0)