mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
r17435@tombo: nickm | 2008-07-30 08:50:54 -0400
Allow alternate form of SMARTLIST_FOREACH with paired BEGIN and END macros. This lets the compiler tell us which line an error has occurred on. svn:r16256
This commit is contained in:
parent
e5bc5f11b8
commit
f366d10a2f
@ -195,15 +195,21 @@ char *smartlist_join_strings2(smartlist_t *sl, const char *join,
|
||||
* }
|
||||
* </pre>
|
||||
*/
|
||||
#define SMARTLIST_FOREACH(sl, type, var, cmd) \
|
||||
#define SMARTLIST_FOREACH_BEGIN(sl, type, var) \
|
||||
STMT_BEGIN \
|
||||
int var ## _sl_idx, var ## _sl_len=(sl)->num_used; \
|
||||
type var; \
|
||||
for (var ## _sl_idx = 0; var ## _sl_idx < var ## _sl_len; \
|
||||
++var ## _sl_idx) { \
|
||||
var = (sl)->list[var ## _sl_idx]; \
|
||||
cmd; \
|
||||
} STMT_END
|
||||
var = (sl)->list[var ## _sl_idx];
|
||||
|
||||
#define SMARTLIST_FOREACH_END(var) \
|
||||
} STMT_END
|
||||
|
||||
#define SMARTLIST_FOREACH(sl, type, var, cmd) \
|
||||
SMARTLIST_FOREACH_BEGIN(sl,type,var) { \
|
||||
cmd; \
|
||||
} SMARTLIST_FOREACH_END(var)
|
||||
|
||||
/** Helper: While in a SMARTLIST_FOREACH loop over the list <b>sl</b> indexed
|
||||
* with the variable <b>var</b>, remove the current element in a way that
|
||||
|
Loading…
Reference in New Issue
Block a user