[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53901] trunk/blender/source/blender/bmesh /intern/bmesh_log.c: minor dyntopo speedup: was doing 2x ghash lookups for BM_log_face_removed(), BM_log_vert_removed( ), only one needed.

Campbell Barton ideasman42 at gmail.com
Sat Jan 19 01:53:34 CET 2013


Revision: 53901
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53901
Author:   campbellbarton
Date:     2013-01-19 00:53:33 +0000 (Sat, 19 Jan 2013)
Log Message:
-----------
minor dyntopo speedup: was doing 2x ghash lookups for BM_log_face_removed(), BM_log_vert_removed(), only one needed.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_log.c

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_log.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_log.c	2013-01-19 00:17:10 UTC (rev 53900)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_log.c	2013-01-19 00:53:33 UTC (rev 53901)
@@ -806,8 +806,11 @@
 	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 @@
 	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 {




More information about the Bf-blender-cvs mailing list