Add NOCLEAR property to M_BASIC_OPLIST and prepare injection for M_DEFER

This commit is contained in:
Patrick Pelissier committed 2023-03-18 17:25:08 +01:00
1 parent b7214ad11d
commit 42d3042c15
1 file changed
+11 -5
+11 -5
View File
@@ -3796,7 +3796,7 @@ static inline size_t m_core_cstr_hash(const char str[])
(INIT(M_INIT_BASIC), INIT_SET(M_SET_BASIC), SET(M_SET_BASIC), \
CLEAR(M_NOTHING_DEFAULT), EQUAL(M_EQUAL_BASIC), CMP(M_CMP_BASIC), \
INIT_MOVE(M_MOVE_DEFAULT), MOVE(M_MOVE_DEFAULT) , \
RESET(M_INIT_BASIC), \
RESET(M_INIT_BASIC), PROPERTIES( (NOCLEAR(1)) ), \
ADD(M_ADD_DEFAULT), SUB(M_SUB_DEFAULT), \
MUL(M_MUL_DEFAULT), DIV(M_DIV_DEFAULT), \
HASH(M_HASH_DEFAULT), SWAP(M_SWAP_DEFAULT) , \
@@ -3809,7 +3809,7 @@ static inline size_t m_core_cstr_hash(const char str[])
(INIT(M_INIT_BASIC), INIT_SET(M_SET_BASIC), SET(M_SET_BASIC), \
CLEAR(M_NOTHING_DEFAULT), EQUAL(M_EQUAL_BASIC), CMP(M_CMP_BASIC), \
INIT_MOVE(M_MOVE_DEFAULT), MOVE(M_MOVE_DEFAULT) , \
RESET(M_INIT_BASIC), \
RESET(M_INIT_BASIC), PROPERTIES( (NOCLEAR(1)) ), \
ADD(M_ADD_DEFAULT), SUB(M_SUB_DEFAULT), \
MUL(M_MUL_DEFAULT), DIV(M_DIV_DEFAULT), \
HASH(M_HASH_DEFAULT), SWAP(M_SWAP_DEFAULT) , \
@@ -3822,7 +3822,7 @@ static inline size_t m_core_cstr_hash(const char str[])
(INIT(M_INIT_BASIC), INIT_SET(M_SET_BASIC), SET(M_SET_BASIC), \
CLEAR(M_NOTHING_DEFAULT), EQUAL(M_EQUAL_BASIC), CMP(M_CMP_BASIC), \
INIT_MOVE(M_MOVE_DEFAULT), MOVE(M_MOVE_DEFAULT) , \
RESET(M_INIT_BASIC), \
RESET(M_INIT_BASIC), PROPERTIES( (NOCLEAR(1)) ), \
ADD(M_ADD_DEFAULT), SUB(M_SUB_DEFAULT), \
MUL(M_MUL_DEFAULT), DIV(M_DIV_DEFAULT), \
HASH(M_HASH_DEFAULT), SWAP(M_SWAP_DEFAULT) )
@@ -4250,8 +4250,14 @@ m_core_parse2_enum (const char str[], const char **endptr)
#define M_DEFER_INTERNAL(clear, cont) \
for(bool cont = true; cont; cont = false) \
for( (void) 0; cont ; (clear), cont = false) \
for( (void) 0; cont; cont = false) \
M_DEFER_TRY_INJECT_PRE(cont, clear) \
for( (void) 0; cont ; (clear), cont = false) \
M_DEFER_TRY_INJECT_POST(cont, clear) \
for( (void) 0; cont; cont = false)
// Theses macros will be overrided by m-try if needed.
#define M_DEFER_TRY_INJECT_PRE(cont, clear) /* Nothing */
#define M_DEFER_TRY_INJECT_POST(cont, clear) /* Nothing */
/* Declare a variable, initialize it, continue if the initialization succeeds,