[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