[Bf-blender-cvs] [a2a5ae5] master: Fix Py's IDs user mapping: do not consider ShapeKeys' from here.

Bastien Montagne noreply at git.blender.org
Thu Sep 15 11:29:33 CEST 2016


Commit: a2a5ae5b54713d59287aebf189428270feddbb23
Author: Bastien Montagne
Date:   Thu Sep 15 11:12:31 2016 +0200
Branches: master
https://developer.blender.org/rBa2a5ae5b54713d59287aebf189428270feddbb23

Fix Py's IDs user mapping: do not consider ShapeKeys' from here.

This is internal pointer helper for scene evaluation and tools, though exposed to bpy API,
it can give false 'dependency cycles' in bpy.data.user_map() results.

That's followup to rBe007552442634 really, both should be backported to 2.78

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

M	source/blender/python/intern/bpy_rna_id_collection.c

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

diff --git a/source/blender/python/intern/bpy_rna_id_collection.c b/source/blender/python/intern/bpy_rna_id_collection.c
index 95c2b3a..1037c83 100644
--- a/source/blender/python/intern/bpy_rna_id_collection.c
+++ b/source/blender/python/intern/bpy_rna_id_collection.c
@@ -40,7 +40,9 @@
 #include "BKE_library_query.h"
 
 #include "DNA_ID.h"
+/* Those folowing are only to support hack of not listing some internal 'backward' pointers in generated user_map... */
 #include "DNA_object_types.h"
+#include "DNA_key_types.h"
 
 #include "bpy_util.h"
 #include "bpy_rna_id_collection.h"
@@ -98,6 +100,10 @@ static int foreach_libblock_id_user_map_callback(
 			/* We skip proxy_from here, since it some internal pointer which is not irrelevant info for py/API level. */
 			return IDWALK_RET_NOP;
 		}
+		else if ((GS(self_id->name) == ID_KE) && (id_p == (ID **)&((Key *)self_id)->from)) {
+			/* We skip from here, since it some internal pointer which is not irrelevant info for py/API level. */
+			return IDWALK_RET_NOP;
+		}
 
 		/* pyrna_struct_hash() uses ptr.data only,
 		 * but pyrna_struct_richcmp() uses also ptr.type,




More information about the Bf-blender-cvs mailing list