From f13c729b26befae8709a8e565a27d6fd31101d44 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Mar 2017 05:16:07 +1100 Subject: WM: free operators when repeating Needed since the active operator isn't ensured to be the last. --- source/blender/windowmanager/intern/wm.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/blender/windowmanager/intern/wm.c') diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index 8fe38a97dac..4351cd22b18 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -107,6 +107,17 @@ void WM_operator_free(wmOperator *op) MEM_freeN(op); } +void WM_operator_free_all_after(wmWindowManager *wm, struct wmOperator *op) +{ + op = op->next; + while (op != NULL) { + wmOperator *op_next = op->next; + BLI_remlink(&wm->operators, op); + WM_operator_free(op); + op = op_next; + } +} + /** * Use with extreme care!, * properties, customdata etc - must be compatible. -- cgit v1.2.3