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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to