[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28306] trunk/blender/source/blender/ windowmanager/intern/wm_event_system.c: Fix case of accessing freed windowmanager memory after reading a file.

Brecht Van Lommel brecht at blender.org
Tue Apr 20 16:58:46 CEST 2010


Revision: 28306
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28306
Author:   blendix
Date:     2010-04-20 16:58:46 +0200 (Tue, 20 Apr 2010)

Log Message:
-----------
Fix case of accessing freed windowmanager memory after reading a file.

Modified Paths:
--------------
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2010-04-20 11:24:49 UTC (rev 28305)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2010-04-20 14:58:46 UTC (rev 28306)
@@ -420,7 +420,7 @@
 
 		retval= op->type->exec(C, op);
 
-		if(op->type->flag & OPTYPE_UNDO)
+		if(op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm)
 			wm->op_undo_depth--;
 	}
 	
@@ -570,7 +570,7 @@
 
 			retval= op->type->invoke(C, op, event);
 
-			if(op->type->flag & OPTYPE_UNDO)
+			if(op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm)
 				wm->op_undo_depth--;
 		}
 		else if(op->type->exec) {
@@ -579,7 +579,7 @@
 
 			retval= op->type->exec(C, op);
 
-			if(op->type->flag & OPTYPE_UNDO)
+			if(op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm)
 				wm->op_undo_depth--;
 		}
 		else
@@ -782,7 +782,7 @@
 
 		retval= op->type->exec(C, op);
 
-		if(op->type->flag & OPTYPE_UNDO)
+		if(op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm)
 			wm->op_undo_depth--;
 	}
 	else
@@ -1072,7 +1072,7 @@
 
 			retval= ot->modal(C, op, event);
 
-			if(ot->flag & OPTYPE_UNDO)
+			if(ot->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm)
 				wm->op_undo_depth--;
 
 			/* putting back screen context, reval can pass trough after modal failures! */
@@ -1217,7 +1217,7 @@
 
 						retval= handler->op->type->exec(C, handler->op);
 
-						if(handler->op->type->flag & OPTYPE_UNDO)
+						if(handler->op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm)
 							wm->op_undo_depth--;
 						
 						if (retval & OPERATOR_FINISHED)





More information about the Bf-blender-cvs mailing list