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
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2016-11-10 19:05:36 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2016-11-10 19:09:16 +0300
commite316636fa84974fcfd989a8b4787535c4d250001 (patch)
tree90ef0236535318d916fd0fe61aec5ff08f6a357f /source/blender/blenkernel/intern/library.c
parentf0d53ac10966ea15500ccd75ecabce00bbfd0c56 (diff)
Fix `BKE_library_make_local()` trying to also make local proxified objects.
Proxified objects can never be local, we can totally ignore them here. This 'fixes' the asserts related to usercount when trying to remap poselib of localized proxified objects (not sure what exactly was going on wrong here, but proxies are a giant can of worms for sane data-blocks handling anyway :/).
Diffstat (limited to 'source/blender/blenkernel/intern/library.c')
-rw-r--r--source/blender/blenkernel/intern/library.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 14804d0077a..fc87dade891 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -1672,9 +1672,10 @@ void BKE_library_make_local(
/* The check on the second line (LIB_TAG_PRE_EXISTING) is done so its
* possible to tag data you don't want to be made local, used for
* appending data, so any libdata already linked wont become local
- * (very nasty to discover all your links are lost after appending)
- * */
+ * (very nasty to discover all your links are lost after appending).
+ * Also, never ever make proxified objects local, would not make any sense. */
if (!do_skip && id->tag & (LIB_TAG_EXTERN | LIB_TAG_INDIRECT | LIB_TAG_NEW) &&
+ !(GS(id->name) == ID_OB && ((Object *)id)->proxy_from != NULL) &&
((untagged_only == false) || !(id->tag & LIB_TAG_PRE_EXISTING)))
{
if (lib == NULL || id->lib == lib) {