Move GHash/GSet/LinkList iterators to BLI files
Those are not depsgraph or C++ specific and can be used by everyone.
This commit is contained in:
parent
aab3a0fda3
commit
71dcead790
@ -296,6 +296,25 @@ double BLI_ghash_calc_quality(GHash *gh);
|
||||
double BLI_gset_calc_quality(GSet *gs);
|
||||
#endif /* GHASH_INTERNAL_API */
|
||||
|
||||
#define GHASH_FOREACH_BEGIN(type, var, what) \
|
||||
do { \
|
||||
GHashIterator gh_iter##var; \
|
||||
GHASH_ITER(gh_iter##var, what) { \
|
||||
type var = (type)(BLI_ghashIterator_getValue(&gh_iter##var)); \
|
||||
|
||||
#define GHASH_FOREACH_END() \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define GSET_FOREACH_BEGIN(type, var, what) \
|
||||
do { \
|
||||
GSetIterator gh_iter##var; \
|
||||
GSET_ITER(gh_iter##var, what) { \
|
||||
type var = (type)(BLI_gsetIterator_getKey(&gh_iter##var));
|
||||
|
||||
#define GSET_FOREACH_END() \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -125,6 +125,11 @@ if ((lb)->last && (lb_init || (lb_init = (lb)->last))) { \
|
||||
(lb_iter != lb_init)); \
|
||||
}
|
||||
|
||||
#define LINKLIST_FOREACH(type, var, list) \
|
||||
for (type var = (type)((list)->first); \
|
||||
var != NULL; \
|
||||
var = (type)(((Link*)(var))->next))
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -43,6 +43,7 @@ extern "C" {
|
||||
#include "DNA_windowmanager_types.h"
|
||||
|
||||
#include "BLI_task.h"
|
||||
#include "BLI_listbase.h"
|
||||
|
||||
#include "BKE_idcode.h"
|
||||
#include "BKE_library.h"
|
||||
|
@ -46,28 +46,3 @@
|
||||
|
||||
# define foreach(x, y) for (x; false; (void)y)
|
||||
#endif
|
||||
|
||||
#define GHASH_FOREACH_BEGIN(type, var, what) \
|
||||
do { \
|
||||
GHashIterator gh_iter##var; \
|
||||
GHASH_ITER(gh_iter##var, what) { \
|
||||
type var = reinterpret_cast<type>(BLI_ghashIterator_getValue(&gh_iter##var)); \
|
||||
|
||||
#define GHASH_FOREACH_END() \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define GSET_FOREACH_BEGIN(type, var, what) \
|
||||
do { \
|
||||
GSetIterator gh_iter##var; \
|
||||
GSET_ITER(gh_iter##var, what) { \
|
||||
type var = reinterpret_cast<type>(BLI_gsetIterator_getKey(&gh_iter##var)); \
|
||||
|
||||
#define GSET_FOREACH_END() \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define LINKLIST_FOREACH(type, var, list) \
|
||||
for (type var = (type)((list)->first); \
|
||||
var != NULL; \
|
||||
var = (type)(((Link*)(var))->next))
|
||||
|
Loading…
Reference in New Issue
Block a user