[Bf-blender-cvs] [018d336] master: Cleanup: use BKE's ntreeFromID in readfile instead of local same function.

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


Commit: 018d336cbd51a9e4b75f8270e90397d35192496f
Author: Bastien Montagne
Date:   Thu Jul 14 15:32:25 2016 +0200
Branches: master
https://developer.blender.org/rB018d336cbd51a9e4b75f8270e90397d35192496f

Cleanup: use BKE's ntreeFromID in readfile instead of local same function.

Also, no need to set ntree->id.lib to NULL after BKE_libblock_copy_nolib(),
generic datablock copy function always make copy local.

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

M	source/blender/blenkernel/intern/node.c
M	source/blender/blenloader/intern/readfile.c

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

diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 1058b22..eec0997 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -1211,7 +1211,6 @@ static bNodeTree *ntreeCopyTree_internal(bNodeTree *ntree, Main *bmain, bool ski
 	}
 	else {
 		newtree = BKE_libblock_copy_nolib(&ntree->id, true);
-		newtree->id.lib = NULL;	/* same as owning datablock id.lib */
 	}
 
 	id_us_plus((ID *)newtree->gpd);
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 4ef30fe..79cd8a7 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2756,22 +2756,6 @@ static void lib_link_nodetree(FileData *fd, Main *main)
 	}
 }
 
-/* get node tree stored locally in other IDs */
-static bNodeTree *nodetree_from_id(ID *id)
-{
-	if (!id)
-		return NULL;
-	switch (GS(id->name)) {
-		case ID_SCE: return ((Scene *)id)->nodetree;
-		case ID_MA: return ((Material *)id)->nodetree;
-		case ID_WO: return ((World *)id)->nodetree;
-		case ID_LA: return ((Lamp *)id)->nodetree;
-		case ID_TE: return ((Tex *)id)->nodetree;
-		case ID_LS: return ((FreestyleLineStyle *)id)->nodetree;
-	}
-	return NULL;
-}
-
 /* updates group node socket identifier so that
  * external links to/from the group node are preserved.
  */
@@ -6350,11 +6334,9 @@ static void lib_link_screen(FileData *fd, Main *main)
 						snode->id = newlibadr(fd, sc->id.lib, snode->id);
 						snode->from = newlibadr(fd, sc->id.lib, snode->from);
 						
-						ntree = nodetree_from_id(snode->id);
-						if (ntree)
-							snode->nodetree = ntree;
-						else {
-							snode->nodetree = newlibadr_us(fd, sc->id.lib, snode->nodetree);
+						if (snode->id) {
+							ntree = ntreeFromID(snode->id);
+							snode->nodetree = ntree ? ntree : newlibadr_us(fd, sc->id.lib, snode->nodetree);
 						}
 						
 						for (path = snode->treepath.first; path; path = path->next) {
@@ -6734,11 +6716,11 @@ void blo_lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *cursc
 					snode->id = restore_pointer_by_name(id_map, snode->id, USER_REAL);
 					snode->from = restore_pointer_by_name(id_map, snode->from, USER_IGNORE);
 					
-					ntree = nodetree_from_id(snode->id);
-					if (ntree)
-						snode->nodetree = ntree;
-					else
-						snode->nodetree = restore_pointer_by_name(id_map, (ID*)snode->nodetree, USER_REAL);
+					if (snode->id) {
+						ntree = ntreeFromID(snode->id);
+						snode->nodetree = ntree ? ntree :
+						                          restore_pointer_by_name(id_map, (ID *)snode->nodetree, USER_REAL);
+					}
 					
 					for (path = snode->treepath.first; path; path = path->next) {
 						if (path == snode->treepath.first) {




More information about the Bf-blender-cvs mailing list