[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50107] trunk/blender/source/blender: all areas of blender now do node tree id user count management, except for some exceptions like making a node tree local and material clipboard .

Campbell Barton ideasman42 at gmail.com
Wed Aug 22 11:35:47 CEST 2012


Revision: 50107
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50107
Author:   campbellbarton
Date:     2012-08-22 09:35:46 +0000 (Wed, 22 Aug 2012)
Log Message:
-----------
all areas of blender now do node tree id user count management, except for some exceptions like making a node tree local and material clipboard.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/lamp.c
    trunk/blender/source/blender/blenkernel/intern/library.c
    trunk/blender/source/blender/blenkernel/intern/material.c
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/blenkernel/intern/texture.c
    trunk/blender/source/blender/blenkernel/intern/world.c
    trunk/blender/source/blender/editors/space_node/node_group.c

Modified: trunk/blender/source/blender/blenkernel/intern/lamp.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/lamp.c	2012-08-22 09:10:16 UTC (rev 50106)
+++ trunk/blender/source/blender/blenkernel/intern/lamp.c	2012-08-22 09:35:46 UTC (rev 50107)
@@ -120,7 +120,7 @@
 	lan->curfalloff = curvemapping_copy(la->curfalloff);
 
 	if (la->nodetree)
-		lan->nodetree = ntreeCopyTree_ex(la->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		lan->nodetree = ntreeCopyTree(la->nodetree);
 	
 	if (la->preview)
 		lan->preview = BKE_previewimg_copy(la->preview);
@@ -223,7 +223,7 @@
 
 	/* is no lib link block, but lamp extension */
 	if (la->nodetree) {
-		ntreeFreeTree_ex(la->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		ntreeFreeTree(la->nodetree);
 		MEM_freeN(la->nodetree);
 	}
 	

Modified: trunk/blender/source/blender/blenkernel/intern/library.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/library.c	2012-08-22 09:10:16 UTC (rev 50106)
+++ trunk/blender/source/blender/blenkernel/intern/library.c	2012-08-22 09:35:46 UTC (rev 50107)
@@ -348,7 +348,7 @@
 			if (!test) *newid = (ID *)BKE_action_copy((bAction *)id);
 			return 1;
 		case ID_NT:
-			if (!test) *newid = (ID *)ntreeCopyTree_ex((bNodeTree *)id, FALSE); /* TODO: do_id_user arg needs checking */
+			if (!test) *newid = (ID *)ntreeCopyTree((bNodeTree *)id);
 			return 1;
 		case ID_BR:
 			if (!test) *newid = (ID *)BKE_brush_copy((Brush *)id);
@@ -881,7 +881,7 @@
 			BKE_action_free((bAction *)id);
 			break;
 		case ID_NT:
-			ntreeFreeTree_ex((bNodeTree *)id, FALSE); /* TODO: do_id_user arg needs checking */
+			ntreeFreeTree((bNodeTree *)id);
 			break;
 		case ID_BR:
 			BKE_brush_free((Brush *)id);

Modified: trunk/blender/source/blender/blenkernel/intern/material.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/material.c	2012-08-22 09:10:16 UTC (rev 50106)
+++ trunk/blender/source/blender/blenkernel/intern/material.c	2012-08-22 09:35:46 UTC (rev 50107)
@@ -101,7 +101,7 @@
 	
 	/* is no lib link block, but material extension */
 	if (ma->nodetree) {
-		ntreeFreeTree_ex(ma->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		ntreeFreeTree(ma->nodetree);
 		MEM_freeN(ma->nodetree);
 	}
 
@@ -235,7 +235,7 @@
 	if (ma->preview) man->preview = BKE_previewimg_copy(ma->preview);
 
 	if (ma->nodetree) {
-		man->nodetree = ntreeCopyTree_ex(ma->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		man->nodetree = ntreeCopyTree(ma->nodetree);
 	}
 
 	man->gpumaterial.first = man->gpumaterial.last = NULL;
@@ -1483,7 +1483,11 @@
 	}
 }
 
-/* copy/paste buffer, if we had a propper py api that would be better */
+/**
+ * \brief copy/paste buffer, if we had a propper py api that would be better
+ * \note matcopybuf.nodetree does _NOT_ use ID's
+ * \todo matcopybuf.nodetree's  node->id's are NOT validated, this will crash!
+ */
 static Material matcopybuf;
 static short matcopied = 0;
 
@@ -1511,7 +1515,7 @@
 	matcopybuf.ramp_spec = NULL;
 
 	if (matcopybuf.nodetree) {
-		ntreeFreeTree_ex(matcopybuf.nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		ntreeFreeTree_ex(matcopybuf.nodetree, FALSE);
 		MEM_freeN(matcopybuf.nodetree);
 		matcopybuf.nodetree = NULL;
 	}
@@ -1537,7 +1541,7 @@
 			matcopybuf.mtex[a] = MEM_dupallocN(mtex);
 		}
 	}
-	matcopybuf.nodetree = ntreeCopyTree_ex(ma->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+	matcopybuf.nodetree = ntreeCopyTree_ex(ma->nodetree, FALSE);
 	matcopybuf.preview = NULL;
 	matcopybuf.gpumaterial.first = matcopybuf.gpumaterial.last = NULL;
 	matcopied = 1;
@@ -1561,7 +1565,7 @@
 	}
 
 	if (ma->nodetree) {
-		ntreeFreeTree_ex(ma->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		ntreeFreeTree(ma->nodetree);
 		MEM_freeN(ma->nodetree);
 	}
 
@@ -1582,7 +1586,7 @@
 		}
 	}
 
-	ma->nodetree = ntreeCopyTree_ex(matcopybuf.nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+	ma->nodetree = ntreeCopyTree_ex(matcopybuf.nodetree, FALSE);
 }
 
 

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c	2012-08-22 09:10:16 UTC (rev 50106)
+++ trunk/blender/source/blender/blenkernel/intern/node.c	2012-08-22 09:35:46 UTC (rev 50107)
@@ -1188,7 +1188,7 @@
 	}
 	else if (cd.local && cd.lib) {
 		/* this is the mixed case, we copy the tree and assign it to local users */
-		bNodeTree *newtree = ntreeCopyTree_ex(ntree, FALSE); /* TODO: do_id_user arg needs checking */
+		bNodeTree *newtree = ntreeCopyTree(ntree);
 		
 		newtree->id.us = 0;
 		
@@ -1299,7 +1299,7 @@
 	if (ntreetype->local_merge)
 		ntreetype->local_merge(localtree, ntree);
 
-	ntreeFreeTree_ex(localtree, FALSE); /* TODO: do_id_user arg needs checking */
+	ntreeFreeTree_ex(localtree, FALSE);
 	MEM_freeN(localtree);
 }
 

Modified: trunk/blender/source/blender/blenkernel/intern/texture.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/texture.c	2012-08-22 09:10:16 UTC (rev 50106)
+++ trunk/blender/source/blender/blenkernel/intern/texture.c	2012-08-22 09:35:46 UTC (rev 50107)
@@ -430,7 +430,7 @@
 	tex->id.icon_id = 0;
 	
 	if (tex->nodetree) {
-		ntreeFreeTree_ex(tex->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		ntreeFreeTree(tex->nodetree);
 		MEM_freeN(tex->nodetree);
 	}
 }
@@ -697,7 +697,7 @@
 		if (tex->nodetree->execdata) {
 			ntreeTexEndExecTree(tex->nodetree->execdata, 1);
 		}
-		texn->nodetree = ntreeCopyTree_ex(tex->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		texn->nodetree = ntreeCopyTree(tex->nodetree);
 	}
 	
 	return texn;

Modified: trunk/blender/source/blender/blenkernel/intern/world.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/world.c	2012-08-22 09:10:16 UTC (rev 50106)
+++ trunk/blender/source/blender/blenkernel/intern/world.c	2012-08-22 09:35:46 UTC (rev 50107)
@@ -67,7 +67,7 @@
 
 	/* is no lib link block, but world extension */
 	if (wrld->nodetree) {
-		ntreeFreeTree_ex(wrld->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		ntreeFreeTree(wrld->nodetree);
 		MEM_freeN(wrld->nodetree);
 	}
 
@@ -129,7 +129,7 @@
 	}
 
 	if (wrld->nodetree) {
-		wrldn->nodetree = ntreeCopyTree_ex(wrld->nodetree, FALSE); /* TODO: do_id_user arg needs checking */
+		wrldn->nodetree = ntreeCopyTree(wrld->nodetree);
 	}
 	
 	if (wrld->preview)

Modified: trunk/blender/source/blender/editors/space_node/node_group.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_group.c	2012-08-22 09:10:16 UTC (rev 50106)
+++ trunk/blender/source/blender/editors/space_node/node_group.c	2012-08-22 09:35:46 UTC (rev 50107)
@@ -421,10 +421,11 @@
 		node->new_node = NULL;
 
 	/* wgroup is a temporary copy of the NodeTree we're merging in
-	 *	- all of wgroup's nodes are transferred across to their new home
-	 *	- ngroup (i.e. the source NodeTree) is left unscathed
+	 * - all of wgroup's nodes are transferred across to their new home
+	 * - ngroup (i.e. the source NodeTree) is left unscathed
+	 * - temp copy. don't change ID usercount
 	 */
-	wgroup = ntreeCopyTree_ex(ngroup, FALSE); /* TODO: do_id_user arg needs checking */
+	wgroup = ntreeCopyTree_ex(ngroup, FALSE);
 
 	/* add the nodes into the ntree */
 	for (node = wgroup->nodes.first; node; node = nextn) {




More information about the Bf-blender-cvs mailing list