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:
Sergey Sharybin 2017-05-30 12:21:19 +02:00
parent aab3a0fda3
commit 71dcead790
4 changed files with 25 additions and 25 deletions

@ -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))