[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45233] trunk/blender/source/blender/ editors/mesh/editmesh_utils.c: fix [#30699] blender crashes when dissolving faces

Campbell Barton ideasman42 at gmail.com
Wed Mar 28 08:44:31 CEST 2012


Revision: 45233
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45233
Author:   campbellbarton
Date:     2012-03-28 06:44:19 +0000 (Wed, 28 Mar 2012)
Log Message:
-----------
fix [#30699] blender crashes when dissolving faces

thanks to Francisco De La Cruz for investigating and providing fix.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/editmesh_utils.c

Modified: trunk/blender/source/blender/editors/mesh/editmesh_utils.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_utils.c	2012-03-28 06:34:18 UTC (rev 45232)
+++ trunk/blender/source/blender/editors/mesh/editmesh_utils.c	2012-03-28 06:44:19 UTC (rev 45233)
@@ -146,7 +146,9 @@
 	if (BMO_error_get(em->bm, &errmsg, NULL)) {
 		BMEditMesh *emcopy = em->emcopy;
 
-		if (report) BKE_report(op->reports, RPT_ERROR, errmsg);
+		if (report) {
+			BKE_report(op->reports, RPT_ERROR, errmsg);
+		}
 
 		BMEdit_Free(em);
 		*em = *emcopy;
@@ -154,7 +156,14 @@
 		MEM_freeN(emcopy);
 		em->emcopyusers = 0;
 		em->emcopy = NULL;
-		return 0;
+
+		/* when copying, tessellation isn't to for faster copying,
+		 * but means we need to re-tessellate here */
+		if (em->looptris == NULL) {
+			BMEdit_RecalcTessellation(em);
+		}
+
+		return FALSE;
 	}
 	else {
 		em->emcopyusers--;
@@ -167,9 +176,9 @@
 			MEM_freeN(em->emcopy);
 			em->emcopy = NULL;
 		}
+
+		return TRUE;
 	}
-
-	return 1;
 }
 
 int EDBM_op_callf(BMEditMesh *em, wmOperator *op, const char *fmt, ...)




More information about the Bf-blender-cvs mailing list