[Bf-blender-cvs] [6e17fb8] master: Fix T42593: Rigify crash when I press "Generate" - corrupted IDGroup's listbase of children

Bastien Montagne noreply at git.blender.org
Fri Nov 14 16:46:37 CET 2014


Commit: 6e17fb8fe3d5106cb56dc37aa8f404c699ff44a8
Author: Bastien Montagne
Date:   Fri Nov 14 16:38:11 2014 +0100
Branches: master
https://developer.blender.org/rB6e17fb8fe3d5106cb56dc37aa8f404c699ff44a8

Fix T42593: Rigify crash when I press "Generate" - corrupted IDGroup's listbase of children

Nothing related to rigify actually, recent hack in py handling of IDProp (rB3346ab03)
was breaking integrity of IDGroup's listbase of children IDProps...

Took me hours to nail this down, should have bisected for once. :/

===================================================================

M	source/blender/python/generic/idprop_py_api.c

===================================================================

diff --git a/source/blender/python/generic/idprop_py_api.c b/source/blender/python/generic/idprop_py_api.c
index d2920df..b6790de 100644
--- a/source/blender/python/generic/idprop_py_api.c
+++ b/source/blender/python/generic/idprop_py_api.c
@@ -519,6 +519,10 @@ bool BPy_IDProperty_Map_ValidateAndCreate(PyObject *name_obj, IDProperty *group,
 		    (prop_exist->type == prop->type) &&
 		    (prop_exist->subtype == prop->subtype))
 		{
+			/* Preserve prev/next links!!! See T42593. */
+			prop->prev = prop_exist->prev;
+			prop->next = prop_exist->next;
+
 			IDP_FreeProperty(prop_exist);
 			*prop_exist = *prop;
 			MEM_freeN(prop);




More information about the Bf-blender-cvs mailing list