[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20008] branches/blender2.5/blender/source /blender/editors/util/ed_util.c: 2.5

Ton Roosendaal ton at blender.org
Thu Apr 30 14:51:38 CEST 2009


Revision: 20008
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20008
Author:   ton
Date:     2009-04-30 14:51:38 +0200 (Thu, 30 Apr 2009)

Log Message:
-----------
2.5

Bug reported by Joshua: quitting Blender via window header quit widget
didn't free editmode stuff.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/util/ed_util.c

Modified: branches/blender2.5/blender/source/blender/editors/util/ed_util.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/util/ed_util.c	2009-04-30 12:45:13 UTC (rev 20007)
+++ branches/blender2.5/blender/source/blender/editors/util/ed_util.c	2009-04-30 12:51:38 UTC (rev 20008)
@@ -42,6 +42,7 @@
 
 #include "BKE_context.h"
 #include "BKE_global.h"
+#include "BKE_main.h"
 
 #include "ED_armature.h"
 #include "ED_mesh.h"
@@ -52,39 +53,45 @@
 
 /* ********* general editor util funcs, not BKE stuff please! ********* */
 
+/* frees all editmode stuff */
 void ED_editors_exit(bContext *C)
 {
-	Object *ob= CTX_data_edit_object(C);
+	Scene *sce;
 	
 	/* frees all editmode undos */
 	undo_editmode_clear();
 	undo_imagepaint_clear();
 	
-	/* global in meshtools... */
-	mesh_octree_table(ob, NULL, NULL, 'e');
-	
-	if(ob) {
-		if(ob->type==OB_MESH) {
-			Mesh *me= ob->data;
-			if(me->edit_mesh) {
-				free_editMesh(me->edit_mesh);
-				MEM_freeN(me->edit_mesh);
-				me->edit_mesh= NULL;
+	for(sce=G.main->scene.first; sce; sce= sce->id.next) {
+		if(sce->obedit) {
+			Object *ob= sce->obedit;
+		
+			/* global in meshtools... */
+			mesh_octree_table(ob, NULL, NULL, 'e');
+			
+			if(ob) {
+				if(ob->type==OB_MESH) {
+					Mesh *me= ob->data;
+					if(me->edit_mesh) {
+						free_editMesh(me->edit_mesh);
+						MEM_freeN(me->edit_mesh);
+						me->edit_mesh= NULL;
+					}
+				}
+				else if(ob->type==OB_ARMATURE) {
+					ED_armature_edit_free(ob);
+				}
+				else if(ob->type==OB_FONT) {
+					//			free_editText();
+				}
+				//		else if(ob->type==OB_MBALL) 
+				//			BLI_freelistN(&editelems);
+				//	free_editLatt();
+				//	free_posebuf();
 			}
 		}
-		else if(ob->type==OB_ARMATURE) {
-			ED_armature_edit_free(ob);
-		}
-		else if(ob->type==OB_FONT) {
-			//			free_editText();
-		}
-		//		else if(ob->type==OB_MBALL) 
-		//			BLI_freelistN(&editelems);
 	}
 	
-	//	free_editLatt();
-	//	free_posebuf();
-	
 }
 
 





More information about the Bf-blender-cvs mailing list