STASIS
A pipeline delivery generator
Loading...
Searching...
No Matches
core_mem.h File Reference
#include "environment.h"
#include "strlist.h"
Include dependency graph for core_mem.h:

Go to the source code of this file.

Macros

#define guard_runtime_free(X)
 
#define guard_strlist_free(X)
 
#define guard_free(X)
 
#define ARRAY_COUNT(ARR)
 
#define guard_array_free_by_count(ARR, COUNT)
 
#define guard_array_free(ARR)
 
#define guard_array_n_free(ARR, LEN)
 

Macro Definition Documentation

◆ ARRAY_COUNT

#define ARRAY_COUNT ( ARR)
Value:
sizeof((ARR)) / sizeof((*ARR))

◆ guard_array_free

#define guard_array_free ( ARR)
Value:
do { \
for (size_t ARR_I = 0; ARR && ARR[ARR_I] != NULL; ARR_I++) { \
guard_free(ARR[ARR_I]); \
} \
guard_free(ARR); \
} while (0)

◆ guard_array_free_by_count

#define guard_array_free_by_count ( ARR,
COUNT )
Value:
do { \
for (size_t ARR_I = 0; (ARR) && ARR_I < (COUNT); ARR_I++) { \
guard_free((ARR)[ARR_I]); \
} \
guard_free((ARR)); \
} while (0)

◆ guard_array_n_free

#define guard_array_n_free ( ARR,
LEN )
Value:
do { \
for (size_t ARR_I = 0; ARR && ARR_I < LEN ; ARR_I++) { \
guard_free(ARR[ARR_I]); \
} \
guard_free(ARR); \
} while (0)

◆ guard_free

#define guard_free ( X)
Value:
do { free(X); (X) = NULL; } while (0)

◆ guard_runtime_free

#define guard_runtime_free ( X)
Value:
do { runtime_free(X); (X) = NULL; } while (0)
void runtime_free(RuntimeEnv *env)
Definition environment.c:462

◆ guard_strlist_free

#define guard_strlist_free ( X)
Value:
do { strlist_free(X); (*X) = NULL; } while (0)
void strlist_free(struct StrList **pStrList)
Definition strlist.c:17