[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41299] trunk/blender/source/blender: edits ontop of Alex's patch from r41292.

Campbell Barton ideasman42 at gmail.com
Wed Oct 26 23:22:36 CEST 2011


Revision: 41299
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41299
Author:   campbellbarton
Date:     2011-10-26 21:22:35 +0000 (Wed, 26 Oct 2011)
Log Message:
-----------
edits ontop of Alex's patch from r41292.

pass main rather than use G.main when naming from -> to relative paths.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41292

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_library.h
    trunk/blender/source/blender/blenkernel/intern/action.c
    trunk/blender/source/blender/blenkernel/intern/armature.c
    trunk/blender/source/blender/blenkernel/intern/brush.c
    trunk/blender/source/blender/blenkernel/intern/curve.c
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/blenkernel/intern/lattice.c
    trunk/blender/source/blender/blenkernel/intern/library.c
    trunk/blender/source/blender/blenkernel/intern/material.c
    trunk/blender/source/blender/blenkernel/intern/mball.c
    trunk/blender/source/blender/blenkernel/intern/mesh.c
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/blenkernel/intern/particle.c
    trunk/blender/source/blender/blenkernel/intern/speaker.c
    trunk/blender/source/blender/blenkernel/intern/texture.c
    trunk/blender/source/blender/blenkernel/intern/world.c
    trunk/blender/source/blender/blenlib/BLI_bpath.h
    trunk/blender/source/blender/blenlib/intern/bpath.c

Modified: trunk/blender/source/blender/blenkernel/BKE_library.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_library.h	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/BKE_library.h	2011-10-26 21:22:35 UTC (rev 41299)
@@ -59,7 +59,7 @@
 int id_unlink(struct ID *id, int test);
 
 int new_id(struct ListBase *lb, struct ID *id, const char *name);
-void id_clear_lib_data(struct ListBase *lb, struct ID *id);
+void id_clear_lib_data(struct Main *bmain, struct ID *id);
 
 struct ListBase *which_libbase(struct Main *mainlib, short type);
 

Modified: trunk/blender/source/blender/blenkernel/intern/action.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/action.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/action.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -137,14 +137,14 @@
 	
 	// XXX: double-check this; it used to be just single-user check, but that was when fake-users were still default
 	if ((act->id.flag & LIB_FAKEUSER) && (act->id.us<=1)) {
-		id_clear_lib_data(&bmain->action, (ID *)act);
+		id_clear_lib_data(bmain, (ID *)act);
 		return;
 	}
 	
 	BKE_animdata_main_cb(bmain, make_localact_init_cb, &mlac);
 	
 	if (mlac.local && mlac.lib==0) {
-		id_clear_lib_data(&bmain->action, (ID *)act);
+		id_clear_lib_data(bmain, (ID *)act);
 	}
 	else if (mlac.local && mlac.lib) {
 		mlac.actn= copy_action(act);

Modified: trunk/blender/source/blender/blenkernel/intern/armature.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/armature.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/armature.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -141,7 +141,7 @@
 
 	if (arm->id.lib==NULL) return;
 	if (arm->id.us==1) {
-		id_clear_lib_data(&bmain->armature, (ID *)arm);
+		id_clear_lib_data(bmain, (ID *)arm);
 		return;
 	}
 
@@ -153,7 +153,7 @@
 	}
 
 	if(local && lib==0) {
-		id_clear_lib_data(&bmain->armature, (ID *)arm);
+		id_clear_lib_data(bmain, (ID *)arm);
 	}
 	else if(local && lib) {
 		bArmature *armn= copy_armature(arm);

Modified: trunk/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/brush.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/brush.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -201,7 +201,7 @@
 	if(brush->clone.image) {
 		/* special case: ima always local immediately. Clone image should only
 		   have one user anyway. */
-		id_clear_lib_data(&bmain->brush, (ID *)brush->clone.image);
+		id_clear_lib_data(bmain, (ID *)brush->clone.image);
 		extern_local_brush(brush);
 	}
 
@@ -213,7 +213,7 @@
 	}
 
 	if(local && lib==0) {
-		id_clear_lib_data(&bmain->brush, (ID *)brush);
+		id_clear_lib_data(bmain, (ID *)brush);
 		extern_local_brush(brush);
 
 		/* enable fake user by default */

Modified: trunk/blender/source/blender/blenkernel/intern/curve.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/curve.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/curve.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -255,7 +255,7 @@
 	if(cu->id.lib==NULL) return;
 
 	if(cu->id.us==1) {
-		id_clear_lib_data(&bmain->curve, (ID *)cu);
+		id_clear_lib_data(bmain, (ID *)cu);
 		extern_local_curve(cu);
 		return;
 	}
@@ -268,7 +268,7 @@
 	}
 
 	if(local && lib==0) {
-		id_clear_lib_data(&bmain->curve, (ID *)cu);
+		id_clear_lib_data(bmain, (ID *)cu);
 		extern_local_curve(cu);
 	}
 	else if(local && lib) {

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/image.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -323,7 +323,8 @@
 	   match id_make_local pattern. */
 }
 
-void make_local_image(struct Image *ima) {
+void make_local_image(struct Image *ima)
+{
 	Main *bmain= G.main;
 	Tex *tex;
 	Brush *brush;
@@ -339,9 +340,9 @@
 
 	/* Can't take short cut here: must check meshes at least because of bogus
 	   texface ID refs. - z0r */
-#if(0)
+#if 0
 	if(ima->id.us==1) {
-		id_clear_lib_data(&bmain->image, (ID *)ima);
+		id_clear_lib_data(bmain, (ID *)ima);
 		extern_local_image(ima);
 		return;
 	}
@@ -380,16 +381,17 @@
 	}
 
 	if(local && lib==0) {
-		id_clear_lib_data(&bmain->image, (ID *)ima);
+		id_clear_lib_data(bmain, (ID *)ima);
 		extern_local_image(ima);
 	}
 	else if(local && lib) {
 		Image *iman= copy_image(ima);
+		char *user_data[2]= {bmain->name, iman->id.lib->filepath};
+
 		iman->id.us= 0;
 
 		/* Remap paths of new ID using old library as base. */
-		bpath_traverse_id((ID *)iman, bpath_relocate_visitor,
-		                     ((ID *)ima)->lib->filepath);
+		bpath_traverse_id(&iman->id, bpath_relocate_visitor, user_data);
 
 		tex= bmain->tex.first;
 		while(tex) {

Modified: trunk/blender/source/blender/blenkernel/intern/lattice.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/lattice.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/lattice.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -255,7 +255,7 @@
 	
 	if(lt->id.lib==NULL) return;
 	if(lt->id.us==1) {
-		id_clear_lib_data(&bmain->latt, (ID *)lt);
+		id_clear_lib_data(bmain, (ID *)lt);
 		return;
 	}
 	
@@ -267,7 +267,7 @@
 	}
 	
 	if(local && lib==0) {
-		id_clear_lib_data(&bmain->latt, (ID *)lt);
+		id_clear_lib_data(bmain, (ID *)lt);
 	}
 	else if(local && lib) {
 		Lattice *ltn= copy_lattice(lt);

Modified: trunk/blender/source/blender/blenkernel/intern/library.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/library.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/library.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -1250,12 +1250,13 @@
 
 /* Pull an ID out of a library (make it local). Only call this for IDs that
    don't have other library users. */
-void id_clear_lib_data(ListBase *lb, ID *id)
+void id_clear_lib_data(Main *bmain, ID *id)
 {
-	bpath_traverse_id(id, bpath_relocate_visitor, id->lib->filepath);
+	char *user_data[2]= {bmain->name, id->lib->filepath};
+	bpath_traverse_id(id, bpath_relocate_visitor, user_data);
 	id->lib= NULL;
 	id->flag= LIB_LOCAL;
-	new_id(lb, id, NULL);
+	new_id(which_libbase(bmain, GS(id->name)), id, NULL);
 }
 
 /* next to indirect usage in read/writefile also in editobject.c scene.c */

Modified: trunk/blender/source/blender/blenkernel/intern/material.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/material.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/material.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -297,7 +297,7 @@
 
 	/* One local user; set flag and return. */
 	if(ma->id.us==1) {
-		id_clear_lib_data(&bmain->mat, (ID *)ma);
+		id_clear_lib_data(bmain, (ID *)ma);
 		extern_local_material(ma);
 		return;
 	}
@@ -359,7 +359,7 @@
 
 	/* Only local users. */
 	if(local && lib==0) {
-		id_clear_lib_data(&bmain->mat, (ID *)ma);
+		id_clear_lib_data(bmain, (ID *)ma);
 		extern_local_material(ma);
 	}
 	/* Both user and local, so copy. */

Modified: trunk/blender/source/blender/blenkernel/intern/mball.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mball.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/mball.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -156,7 +156,7 @@
 	
 	if(mb->id.lib==NULL) return;
 	if(mb->id.us==1) {
-		id_clear_lib_data(&bmain->mball, (ID *)mb);
+		id_clear_lib_data(bmain, (ID *)mb);
 		extern_local_mball(mb);
 		
 		return;
@@ -170,7 +170,7 @@
 	}
 	
 	if(local && lib==0) {
-		id_clear_lib_data(&bmain->mball, (ID *)mb);
+		id_clear_lib_data(bmain, (ID *)mb);
 		extern_local_mball(mb);
 	}
 	else if(local && lib) {

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -280,7 +280,7 @@
 
 	if(me->id.lib==NULL) return;
 	if(me->id.us==1) {
-		id_clear_lib_data(&bmain->mesh, (ID *)me);
+		id_clear_lib_data(bmain, (ID *)me);
 		expand_local_mesh(me);
 		return;
 	}
@@ -293,7 +293,7 @@
 	}
 
 	if(local && lib==0) {
-		id_clear_lib_data(&bmain->mesh, (ID *)me);
+		id_clear_lib_data(bmain, (ID *)me);
 		expand_local_mesh(me);
 	}
 	else if(local && lib) {

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/node.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -1050,7 +1050,7 @@
 	
 	if(ntree->id.lib==NULL) return;
 	if(ntree->id.us==1) {
-		id_clear_lib_data(&bmain->nodetree, (ID *)ntree);
+		id_clear_lib_data(bmain, (ID *)ntree);
 		return;
 	}
 	
@@ -1064,7 +1064,7 @@
 	
 	/* if all users are local, we simply make tree local */
 	if(cd.local && cd.lib==0) {
-		id_clear_lib_data(&bmain->nodetree, (ID *)ntree);
+		id_clear_lib_data(bmain, (ID *)ntree);
 	}
 	else if(cd.local && cd.lib) {
 		/* this is the mixed case, we copy the tree and assign it to local users */

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2011-10-26 20:11:18 UTC (rev 41298)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2011-10-26 21:22:35 UTC (rev 41299)
@@ -756,7 +756,7 @@
 	
 	if(cam->id.lib==NULL) return;
 	if(cam->id.us==1) {
-		id_clear_lib_data(&bmain->camera, (ID *)cam);
+		id_clear_lib_data(bmain, (ID *)cam);
 		return;
 	}
 	
@@ -768,7 +768,7 @@
 	}
 	
 	if(local && lib==0) {

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list