[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54504] trunk/blender/source/blender/ windowmanager/intern/wm_event_system.c: Fix #34126: report list memory leak when calling operator from python and the

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Feb 12 17:04:58 CET 2013


Revision: 54504
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54504
Author:   blendix
Date:     2013-02-12 16:04:58 +0000 (Tue, 12 Feb 2013)
Log Message:
-----------
Fix #34126: report list memory leak when calling operator from python and the
operator context poll failing.

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	2013-02-12 15:58:06 UTC (rev 54503)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2013-02-12 16:04:58 UTC (rev 54504)
@@ -590,6 +590,9 @@
 		}
 
 		if (wm_operator_register_check(wm, op->type)) {
+			/* take ownership of reports (in case python provided own) */
+			op->reports->flag |= RPT_FREE;
+
 			wm_operator_register(C, op);
 			WM_operator_region_active_win_set(C);
 		}
@@ -935,6 +938,9 @@
 			wm_operator_finished(C, op, 0);
 		}
 		else if (retval & OPERATOR_RUNNING_MODAL) {
+			/* take ownership of reports (in case python provided own) */
+			op->reports->flag |= RPT_FREE;
+
 			/* grab cursor during blocking modal ops (X11)
 			 * Also check for macro
 			 */
@@ -1170,13 +1176,6 @@
 	
 	if (!is_undo && wm && (wm == CTX_wm_manager(C))) wm->op_undo_depth--;
 
-	/* keep the reports around if needed later */
-	if ((retval & OPERATOR_RUNNING_MODAL) ||
-	    ((retval & OPERATOR_FINISHED) && wm_operator_register_check(CTX_wm_manager(C), ot)))
-	{
-		reports->flag |= RPT_FREE; /* let blender manage freeing */
-	}
-	
 	return retval;
 }
 




More information about the Bf-blender-cvs mailing list