Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-11-26 04:35:27 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-11-26 04:38:31 +0300
commitd7708d135ebff7539b034df16158638b2e11e1c0 (patch)
treed4c9d0186876b80a5259631842631faab66e63cf
parent77ac33db7b449011e3edaa25a24d0ee193b843c1 (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.
-rw-r--r--source/blender/blenkernel/intern/pbvh.c1
-rw-r--r--source/blender/blenkernel/intern/pbvh_bmesh.c1
-rw-r--r--source/blender/blenlib/BLI_ghash.h36
-rw-r--r--source/blender/blenlib/intern/BLI_ghash.c3
4 files changed, 21 insertions, 20 deletions
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index 115a415cca7..ab377416995 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -1244,6 +1244,7 @@ void BKE_pbvh_get_grid_updates(PBVH *bvh, bool clear, void ***r_gridfaces, int *
void **faces = MEM_mallocN(sizeof(*faces) * tot, "PBVH Grid Faces");
GSetIterator gs_iter;
+ int i;
GSET_ITER_INDEX (gs_iter, face_set, i) {
faces[i] = BLI_gsetIterator_getKey(&gs_iter);
}
diff --git a/source/blender/blenkernel/intern/pbvh_bmesh.c b/source/blender/blenkernel/intern/pbvh_bmesh.c
index 07f1874e1e4..71354c2613f 100644
--- a/source/blender/blenkernel/intern/pbvh_bmesh.c
+++ b/source/blender/blenkernel/intern/pbvh_bmesh.c
@@ -264,6 +264,7 @@ static bool pbvh_bmesh_node_limit_ensure(PBVH *bvh, int node_index)
BBC *bbc_array = MEM_mallocN(sizeof(BBC) * bm_faces_size, "BBC");
GSetIterator gs_iter;
+ int i;
GSET_ITER_INDEX (gs_iter, bm_faces, i) {
BMFace *f = BLI_gsetIterator_getKey(&gs_iter);
BBC *bbc = &bbc_array[i];
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;
}
/**