[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36455] trunk/blender/source/blender/ editors/mesh: fix [#27266] EdgeSplit + RemoveDoubles + MoveView = Crash

Campbell Barton ideasman42 at gmail.com
Tue May 3 06:18:23 CEST 2011


Revision: 36455
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36455
Author:   campbellbarton
Date:     2011-05-03 04:18:23 +0000 (Tue, 03 May 2011)
Log Message:
-----------
fix [#27266] EdgeSplit + RemoveDoubles + MoveView = Crash

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

Modified: trunk/blender/source/blender/editors/mesh/editmesh_mods.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_mods.c	2011-05-03 04:09:56 UTC (rev 36454)
+++ trunk/blender/source/blender/editors/mesh/editmesh_mods.c	2011-05-03 04:18:23 UTC (rev 36455)
@@ -143,9 +143,10 @@
 		(obedit && obedit->type==OB_MESH && (obedit->mode & OB_MODE_EDIT))
 	  ) {
 		EditMesh *em= me->edit_mesh;
+		int totvert= em->totvert, totedge= em->totedge, totface= em->totface;
 
 		len = removedoublesflag(em, 1, 1, scene->toolsettings->doublimit);
-		if (len) {
+		if (totvert != em->totvert || totedge != em->totedge || totface != em->totface) {
 			if (update) {
 				DAG_id_tag_update(&me->id, 0);
 			}

Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2011-05-03 04:09:56 UTC (rev 36454)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2011-05-03 04:18:23 UTC (rev 36455)
@@ -483,10 +483,11 @@
 {
 	Object *obedit= CTX_data_edit_object(C);
 	EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
+	int totvert= em->totvert, totedge= em->totedge, totface= em->totface;
 
 	int count = removedoublesflag(em,1,0,RNA_float_get(op->ptr, "limit"));
 	
-	if(count) {
+	if (totvert != em->totvert || totedge != em->totedge || totface != em->totface) {
 		recalc_editnormals(em);
 
 		DAG_id_tag_update(obedit->data, 0);
@@ -5919,6 +5920,7 @@
 	EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
 	int count= 0, uvs= RNA_boolean_get(op->ptr, "uvs");
 	EditSelection *ese;
+	int totvert= em->totvert, totedge= em->totedge, totface= em->totface;
 
 	switch(RNA_enum_get(op->ptr, "type")) {
 		case 3:
@@ -5949,7 +5951,7 @@
 			break;
 	}
 
-	if(!count)
+	if (!(totvert != em->totvert || totedge != em->totedge || totface != em->totface))
 		return OPERATOR_CANCELLED;
 
 	recalc_editnormals(em);




More information about the Bf-blender-cvs mailing list