[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41912] branches/bmesh/blender/source/ blender/bmesh: ensure dirty flags / index arrays are in a valid state before & after executing a BMO in debug mode .

Campbell Barton ideasman42 at gmail.com
Wed Nov 16 14:06:50 CET 2011


Revision: 41912
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41912
Author:   campbellbarton
Date:     2011-11-16 13:06:49 +0000 (Wed, 16 Nov 2011)
Log Message:
-----------
ensure dirty flags / index arrays are in a valid state before & after executing a BMO in debug mode.

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/bmesh.h
    branches/bmesh/blender/source/blender/bmesh/bmesh_error.h
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh.h	2011-11-16 12:56:33 UTC (rev 41911)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh.h	2011-11-16 13:06:49 UTC (rev 41912)
@@ -332,6 +332,8 @@
 
 void BM_ElemIndex_Ensure(BMesh *bm, const char hflag);
 
+void BM_ElemIndex_Validate(BMesh *bm, const char *location, const char *func, const char *msg_a, const char *msg_b);
+
 /*start/stop edit*/
 void bmesh_begin_edit(struct BMesh *bm, int flag);
 void bmesh_end_edit(struct BMesh *bm, int flag);

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh_error.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh_error.h	2011-11-16 12:56:33 UTC (rev 41911)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh_error.h	2011-11-16 13:06:49 UTC (rev 41912)
@@ -26,6 +26,9 @@
 int BMO_CatchOpError(BMesh *bm, BMOperator *catchop, int errorcode, char **msg);
 #endif
 
+#define BM_ELEM_INDEX_VALIDATE(_bm, _msg_a, _msg_b) \
+	BM_ElemIndex_Validate(_bm, __FILE__ ":" STRINGIFY(__LINE__), __func__, _msg_a, _msg_b)
+
 /*------ error code defines -------*/
 
 /*error messages*/

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c	2011-11-16 12:56:33 UTC (rev 41911)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c	2011-11-16 13:06:49 UTC (rev 41912)
@@ -1289,6 +1289,10 @@
 	va_list list;
 	BMOperator op;
 
+#ifdef DEBUG
+	BM_ELEM_INDEX_VALIDATE(bm, "pre bmo", fmt);
+#endif
+
 	va_start(list, fmt);
 	if (!BMO_VInitOpf(bm, &op, fmt, list)) {
 		printf("%s: failed, format is:\n    \"%s\"\n", __func__, fmt);
@@ -1299,6 +1303,10 @@
 	BMO_Exec_Op(bm, &op);
 	BMO_Finish_Op(bm, &op);
 
+#ifdef DEBUG
+	BM_ELEM_INDEX_VALIDATE(bm, "post bmo", fmt);
+#endif
+
 	va_end(list);
 	return 1;
 }




More information about the Bf-blender-cvs mailing list