[Bf-blender-cvs] [39dee8a] master: Fix T48844: Nodetrees of appended materials/textures/etc. were not correctly made local.

Bastien Montagne noreply at git.blender.org
Thu Jul 14 18:33:29 CEST 2016


Commit: 39dee8a201040ad32a239ea749b6ae838f32da72
Author: Bastien Montagne
Date:   Thu Jul 14 18:18:54 2016 +0200
Branches: master
https://developer.blender.org/rB39dee8a201040ad32a239ea749b6ae838f32da72

Fix T48844: Nodetrees of appended materials/textures/etc. were not correctly made local.

Previous commits now allow to use id_make_local() here, as one would expect.

Note that I also checked T36003 case, working fine as well with new code.

===================================================================

M	source/blender/blenkernel/intern/library.c

===================================================================

diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index c123b5e..2e06652 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -1602,14 +1602,8 @@ void BKE_library_make_local(Main *bmain, const Library *lib, const bool untagged
 			{
 				if (lib == NULL || id->lib == lib) {
 					if (id->lib) {
-						/* for Make Local > All we should be calling id_make_local,
-						 * but doing that breaks append (see #36003 and #36006), we
-						 * we should make it work with all datablocks and id.us==0 */
-						id_clear_lib_data(bmain, id); /* sets 'id->tag' */
-
-						/* why sort alphabetically here but not in
-						 * id_clear_lib_data() ? - campbell */
-						id_sort_by_name(lbarray[a], id);
+						/* In this specific case, we do want to make ID local even if it has no local usage yet... */
+						id_make_local(bmain, id, false, true);
 					}
 					else {
 						id->tag &= ~(LIB_TAG_EXTERN | LIB_TAG_INDIRECT | LIB_TAG_NEW);




More information about the Bf-blender-cvs mailing list