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.
This commit is contained in:
Bastien Montagne
2019-05-23 10:17:43 +02:00
parent 3a702ec028
commit 054dbb833e

View File

@@ -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;
}
}
}
}