diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-11-26 04:35:27 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-11-26 04:38:31 +0300 |
commit | d7708d135ebff7539b034df16158638b2e11e1c0 (patch) | |
tree | d4c9d0186876b80a5259631842631faab66e63cf /source/blender/blenlib | |
parent | 77ac33db7b449011e3edaa25a24d0ee193b843c1 (diff) |
Partial revert of last commit
Keep index using the outer scope for GHASH iter macros,
while its often nice, in some cases to declare in the for loop,
it means you cant use as a counter after the loop exits, and in some cases signed/unsigned may matter.
API changes should really be split off in their own commits too.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r-- | source/blender/blenlib/BLI_ghash.h | 36 | ||||
-rw-r--r-- | source/blender/blenlib/intern/BLI_ghash.c | 3 |
2 files changed, 19 insertions, 20 deletions
diff --git a/source/blender/blenlib/BLI_ghash.h b/source/blender/blenlib/BLI_ghash.h index 030e20efce6..9503da6e53e 100644 --- a/source/blender/blenlib/BLI_ghash.h +++ b/source/blender/blenlib/BLI_ghash.h @@ -95,7 +95,7 @@ void BLI_ghash_flag_clear(GHash *gh, unsigned int flag); GHashIterator *BLI_ghashIterator_new(GHash *gh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT; -unsigned BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh); +void BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh); void BLI_ghashIterator_free(GHashIterator *ghi); void BLI_ghashIterator_step(GHashIterator *ghi); @@ -116,15 +116,15 @@ BLI_INLINE bool BLI_ghashIterator_done(GHashIterator *ghi) { return !ghi # define _gh_Entry void #endif -#define GHASH_ITER(gh_iter_, ghash_) \ - for (BLI_ghashIterator_init(&gh_iter_, ghash_); \ - BLI_ghashIterator_done(&gh_iter_) == false; \ - BLI_ghashIterator_step(&gh_iter_)) +#define GHASH_ITER(gh_iter_, ghash_) \ + for (BLI_ghashIterator_init(&gh_iter_, ghash_); \ + BLI_ghashIterator_done(&gh_iter_) == false; \ + BLI_ghashIterator_step(&gh_iter_)) -#define GHASH_ITER_INDEX(gh_iter_, ghash_, i_) \ - for (unsigned i_ = BLI_ghashIterator_init(&gh_iter_, ghash_); \ - BLI_ghashIterator_done(&gh_iter_) == false; \ - BLI_ghashIterator_step(&gh_iter_), i_++) +#define GHASH_ITER_INDEX(gh_iter_, ghash_, i_) \ + for (BLI_ghashIterator_init(&gh_iter_, ghash_), i_ = 0; \ + BLI_ghashIterator_done(&gh_iter_) == false; \ + BLI_ghashIterator_step(&gh_iter_), i_++) /** \name Callbacks for GHash * @@ -243,21 +243,21 @@ GSet *BLI_gset_pair_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT; /* rely on inline api for now */ BLI_INLINE GSetIterator *BLI_gsetIterator_new(GSet *gs) { return (GSetIterator *)BLI_ghashIterator_new((GHash *)gs); } -BLI_INLINE unsigned BLI_gsetIterator_init(GSetIterator *gsi, GSet *gs) { BLI_ghashIterator_init((GHashIterator *)gsi, (GHash *)gs); return 0; } +BLI_INLINE void BLI_gsetIterator_init(GSetIterator *gsi, GSet *gs) { BLI_ghashIterator_init((GHashIterator *)gsi, (GHash *)gs); } BLI_INLINE void BLI_gsetIterator_free(GSetIterator *gsi) { BLI_ghashIterator_free((GHashIterator *)gsi); } BLI_INLINE void *BLI_gsetIterator_getKey(GSetIterator *gsi) { return BLI_ghashIterator_getKey((GHashIterator *)gsi); } BLI_INLINE void BLI_gsetIterator_step(GSetIterator *gsi) { BLI_ghashIterator_step((GHashIterator *)gsi); } BLI_INLINE bool BLI_gsetIterator_done(GSetIterator *gsi) { return BLI_ghashIterator_done((GHashIterator *)gsi); } -#define GSET_ITER(gs_iter_, gset_) \ - for (BLI_gsetIterator_init(&gs_iter_, gset_); \ - BLI_gsetIterator_done(&gs_iter_) == false; \ - BLI_gsetIterator_step(&gs_iter_)) +#define GSET_ITER(gs_iter_, gset_) \ + for (BLI_gsetIterator_init(&gs_iter_, gset_); \ + BLI_gsetIterator_done(&gs_iter_) == false; \ + BLI_gsetIterator_step(&gs_iter_)) -#define GSET_ITER_INDEX(gs_iter_, gset_, i_) \ - for (unsigned i_ = BLI_gsetIterator_init(&gs_iter_, gset_); \ - BLI_gsetIterator_done(&gs_iter_) == false; \ - BLI_gsetIterator_step(&gs_iter_), i_++) +#define GSET_ITER_INDEX(gs_iter_, gset_, i_) \ + for (BLI_gsetIterator_init(&gs_iter_, gset_), i_ = 0; \ + BLI_gsetIterator_done(&gs_iter_) == false; \ + BLI_gsetIterator_step(&gs_iter_), i_++) /* For testing, debugging only */ diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c index 157ee1e37a0..7e6dabdffef 100644 --- a/source/blender/blenlib/intern/BLI_ghash.c +++ b/source/blender/blenlib/intern/BLI_ghash.c @@ -934,7 +934,7 @@ GHashIterator *BLI_ghashIterator_new(GHash *gh) * \param ghi The GHashIterator to initialize. * \param gh The GHash to iterate over. */ -unsigned BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh) +void BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh) { ghi->gh = gh; ghi->curEntry = NULL; @@ -947,7 +947,6 @@ unsigned BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh) ghi->curEntry = ghi->gh->buckets[ghi->curBucket]; } while (!ghi->curEntry); } - return 0; } /** |