diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2016-10-07 11:20:40 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2016-10-07 11:20:40 +0300 |
commit | 0f88a3546cbd020af3f5c47b049ae4ecc6bc54ba (patch) | |
tree | 8f2ee9c1489f9aded0beb5b2d20b55717500b0fd /source/blender/blenkernel/intern/library_query.c | |
parent | e7981a3e93be84d7e141d43dfd4516cfcb271ec3 (diff) |
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... :/
Diffstat (limited to 'source/blender/blenkernel/intern/library_query.c')
-rw-r--r-- | source/blender/blenkernel/intern/library_query.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c index 85ddd4dcbb3..08f9c439a7a 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 |