[Bf-blender-cvs] [0f88a35] master: Datablock management: remove 'proxy_from' pointer from 'is ID used' checks.
Bastien Montagne
noreply at git.blender.org
Fri Oct 7 10:23:07 CEST 2016
Commit: 0f88a3546cbd020af3f5c47b049ae4ecc6bc54ba
Author: Bastien Montagne
Date: Fri Oct 7 10:20:40 2016 +0200
Branches: master
https://developer.blender.org/rB0f88a3546cbd020af3f5c47b049ae4ecc6bc54ba
Datablock management: remove 'proxy_from' pointer from 'is ID used' checks.
Pretty much same reason as for the 'from' pointer of shapekeys - runtime
data creating loops and 'ghost' dependencies between datablocks.
We need to handle them in cases like remapping, but whall not take them
into account to check dependencies between datablocks... :/
===================================================================
M source/blender/blenkernel/intern/library_query.c
===================================================================
diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c
index 85ddd4d..08f9c43 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -1036,6 +1036,10 @@ static int foreach_libblock_id_users_callback(void *user_data, ID *self_id, ID *
if ((GS(self_id->name) == ID_KE) && (((Key *)self_id)->from == *id_p)) {
return IDWALK_RET_NOP;
}
+ /* XXX another hack, for similar reasons as above one. */
+ if ((GS(self_id->name) == ID_OB) && (((Object *)self_id)->proxy_from == (Object *)*id_p)) {
+ return IDWALK_RET_NOP;
+ }
if (*id_p && (*id_p == iter->id)) {
#if 0
More information about the Bf-blender-cvs
mailing list