[Bf-blender-cvs] [09d6ad6] master: Fix T38108: blender freeze in remembering operator properties.
Brecht Van Lommel
noreply at git.blender.org
Wed Jan 8 17:54:56 CET 2014
Commit: 09d6ad614242ff007bf952ce815082b2eafb024c
Author: Brecht Van Lommel
Date: Wed Jan 8 17:48:38 2014 +0100
https://developer.blender.org/rB09d6ad614242ff007bf952ce815082b2eafb024c
Fix T38108: blender freeze in remembering operator properties.
===================================================================
M source/blender/windowmanager/intern/wm_event_system.c
===================================================================
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index ee8ad08..2233827 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -893,6 +893,8 @@ bool WM_operator_last_properties_init(wmOperator *op)
bool changed = false;
if (op->type->last_properties) {
+ IDPropertyTemplate val = {0};
+ IDProperty *replaceprops = IDP_New(IDP_GROUP, &val, "wmOperatorProperties");
PropertyRNA *iterprop;
if (G.debug & G_DEBUG_WM) {
@@ -915,13 +917,19 @@ bool WM_operator_last_properties_init(wmOperator *op)
* but for now RNA doesn't access nested operators */
idp_dst->flag |= IDP_FLAG_GHOST;
- IDP_ReplaceInGroup(op->properties, idp_dst);
+ /* add to temporary group instead of immediate replace,
+ * because we are iterating over this group */
+ IDP_AddToGroup(replaceprops, idp_dst);
changed = true;
}
}
}
}
RNA_PROP_END;
+
+ IDP_MergeGroup(op->properties, replaceprops, true);
+ IDP_FreeProperty(replaceprops);
+ MEM_freeN(replaceprops);
}
return changed;
More information about the Bf-blender-cvs
mailing list