Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2019-05-23 11:17:43 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2019-05-23 11:19:30 +0300
commit054dbb833e15275e0e991e2c15e754a3e7583716 (patch)
tree934ccff5d7abeac4e35fe4a9c17422416e00eb5f /source
parent3a702ec028231e7deb012edac3eee5ed7f2436d4 (diff)
Fix (unreported) missing remapping of proxy_from pointer.
That would break proxy behavior after a library reload. The usual super-annoying loop-back pointers... At least that one is easily detectable and can be fixed in-place. Found while investigating T64764.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/library_remap.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/library_remap.c b/source/blender/blenkernel/intern/library_remap.c
index de9dbd06f23..7e3af8528cb 100644
--- a/source/blender/blenkernel/intern/library_remap.c
+++ b/source/blender/blenkernel/intern/library_remap.c
@@ -241,6 +241,13 @@ static int foreach_libblock_remap_callback(void *user_data, ID *id_self, ID **id
if (!is_indirect || is_obj_proxy) {
id_remap_data->status |= ID_REMAP_IS_LINKED_DIRECT;
}
+ /* We need to remap proxy_from pointer of remapped proxy... sigh. */
+ if (is_obj_proxy && new_id != NULL) {
+ Object *ob = (Object *)id;
+ if (ob->proxy == (Object *)new_id) {
+ ob->proxy->proxy_from = ob;
+ }
+ }
}
}