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>2013-01-19 04:53:33 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-01-19 04:53:33 +0400
commitf251eb3f0cc7d785d3e9925147575cbd379842d8 (patch)
tree5864476cd0dd1de278236d88b96ce05cd0e7e2b6 /source/blender/bmesh/intern
parenta8abc11e42fefd8e6192e3a9bcc185b6428d36f4 (diff)
minor dyntopo speedup: was doing 2x ghash lookups for BM_log_face_removed(), BM_log_vert_removed(), only one needed.
Diffstat (limited to 'source/blender/bmesh/intern')
-rw-r--r--source/blender/bmesh/intern/bmesh_log.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source/blender/bmesh/intern/bmesh_log.c b/source/blender/bmesh/intern/bmesh_log.c
index 2ad65bead07..fa5bfe34a11 100644
--- a/source/blender/bmesh/intern/bmesh_log.c
+++ b/source/blender/bmesh/intern/bmesh_log.c
@@ -806,8 +806,11 @@ void BM_log_vert_removed(BMesh *bm, BMLog *log, BMVert *v)
unsigned int v_id = bm_log_vert_id_get(log, v);
void *key = SET_INT_IN_POINTER(v_id);
- if (BLI_ghash_lookup(entry->added_verts, key)) {
- BLI_ghash_remove(entry->added_verts, key, NULL, NULL);
+ /* if it has a key, it shouldn't be NULL */
+ BLI_assert(!!BLI_ghash_lookup(entry->added_verts, key) ==
+ !!BLI_ghash_haskey(entry->added_verts, key));
+
+ if (BLI_ghash_remove(entry->added_verts, key, NULL, NULL)) {
range_tree_uint_release(log->unused_ids, v_id);
}
else {
@@ -844,8 +847,11 @@ void BM_log_face_removed(BMLog *log, BMFace *f)
unsigned int f_id = bm_log_face_id_get(log, f);
void *key = SET_INT_IN_POINTER(f_id);
- if (BLI_ghash_lookup(entry->added_faces, key)) {
- BLI_ghash_remove(entry->added_faces, key, NULL, NULL);
+ /* if it has a key, it shouldn't be NULL */
+ BLI_assert(!!BLI_ghash_lookup(entry->added_faces, key) ==
+ !!BLI_ghash_haskey(entry->added_faces, key));
+
+ if (BLI_ghash_remove(entry->added_faces, key, NULL, NULL)) {
range_tree_uint_release(log->unused_ids, f_id);
}
else {