Fix T64764: 'Reload' on linked libraries disconnects proxy armature datablocks.

Note that this only fixes the core issue reported (caused by own dummy
mistake in rBd0df7fb3b94ea), investigating that report uncovered at leat
two more issues, including a crasher (when reloading after an undo)...
This commit is contained in:
Bastien Montagne 2019-05-22 09:23:17 +02:00
parent b471e48c30
commit 5a3c44937f
Notes: blender-bot 2023-02-14 10:48:33 +01:00
Referenced by issue #64764, 'Reload' on linked libraries disconnects proxy armature datablocks
2 changed files with 9 additions and 3 deletions

View File

@ -591,7 +591,7 @@ static void library_foreach_ID_link(Main *bmain,
CALLBACK_INVOKE(object->parent, IDWALK_CB_NEVER_SELF);
CALLBACK_INVOKE(object->track, IDWALK_CB_NEVER_SELF);
/* object->proxy is refcounted, but not object->proxy_group... *sigh* */
CALLBACK_INVOKE(object->proxy, IDWALK_CB_NEVER_SELF);
CALLBACK_INVOKE(object->proxy, IDWALK_CB_USER | IDWALK_CB_NEVER_SELF);
CALLBACK_INVOKE(object->proxy_group, IDWALK_CB_NOP);
/* Special case!

View File

@ -729,7 +729,10 @@ static void lib_relocate_do(Main *bmain,
}
if (new_id) {
#ifdef PRINT_DEBUG
printf("before remap, old_id users: %d, new_id users: %d\n", old_id->us, new_id->us);
printf("before remap of %s, old_id users: %d, new_id users: %d\n",
old_id->name,
old_id->us,
new_id->us);
#endif
BKE_libblock_remap_locked(bmain, old_id, new_id, remap_flags);
@ -739,7 +742,10 @@ static void lib_relocate_do(Main *bmain,
}
#ifdef PRINT_DEBUG
printf("after remap, old_id users: %d, new_id users: %d\n", old_id->us, new_id->us);
printf("after remap of %s, old_id users: %d, new_id users: %d\n",
old_id->name,
old_id->us,
new_id->us);
#endif
/* In some cases, new_id might become direct link, remove parent of library in this case. */