Simplify M_ON_EXCEPTION / M_IF_EXCEPTION
This commit is contained in:
1 parent
6cba7ad8ba
commit
12ee3213b0
2 files changed
+16
-8
No files matched your search
@@ -4542,16 +4542,13 @@ m_core_parse2_enum (const char str[], const char **endptr)
|
|||||||
// Rest of initialization code
|
// Rest of initialization code
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Do nothing if exceptions are not enabled.
|
||||||
*/
|
*/
|
||||||
#define M_ON_EXCEPTION(fix) \
|
#define M_ON_EXCEPTION(...) for(bool cont = true; cont; cont = false) \
|
||||||
for(bool cont = true; cont; cont = false) \
|
|
||||||
M_DEFER_TRY_INJECT_PRE(cont, fix) \
|
|
||||||
for( ; cont ; cont = false) \
|
|
||||||
M_DEFER_TRY_INJECT_POST(cont, fix) \
|
|
||||||
for( ; cont; cont = false)
|
|
||||||
|
|
||||||
/* If exceptions are activated, M_IF_EXCEPTION will expand the code */
|
/* If exceptions are activated, M_IF_EXCEPTION will expand the code.
|
||||||
#define M_IF_EXCEPTION(fix) (void) 0
|
Do nothing if exceptions are not enabled. */
|
||||||
|
#define M_IF_EXCEPTION(...) (void) 0
|
||||||
|
|
||||||
/* Declare a variable, initialize it, continue if the initialization succeeds,
|
/* Declare a variable, initialize it, continue if the initialization succeeds,
|
||||||
and clears the variable afterwards.
|
and clears the variable afterwards.
|
||||||
|
|||||||
@@ -156,6 +156,17 @@ struct m_exception_s {
|
|||||||
/********************************** INTERNAL *********************************/
|
/********************************** INTERNAL *********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#undef M_IF_EXCEPTION
|
||||||
|
#define M_IF_EXCEPTION(...) __VA_ARGS__
|
||||||
|
|
||||||
|
#undef M_ON_EXCEPTION
|
||||||
|
#define M_ON_EXCEPTION(...) \
|
||||||
|
for(bool cont = true; cont; cont = false) \
|
||||||
|
M_DEFER_TRY_INJECT_PRE(cont, __VA_ARGS__) \
|
||||||
|
for( ; cont ; cont = false) \
|
||||||
|
M_DEFER_TRY_INJECT_POST(cont, __VA_ARGS__) \
|
||||||
|
for( ; cont; cont = false)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Define the C++ back-end.
|
* Define the C++ back-end.
|
||||||
* It is fully different from C back-end as it reuses the classic try of the C++.
|
* It is fully different from C back-end as it reuses the classic try of the C++.
|
||||||
|
|||||||
Reference in new issue
Block a user