[Bf-blender-cvs] [e6a84d5] missing-libs: Merge branch 'lib-link-rework-temp' into missing-libs

Bastien Montagne noreply at git.blender.org
Mon Sep 21 17:53:43 CEST 2015


Commit: e6a84d5a481c260706d310ddebf32b37b93754b0
Author: Bastien Montagne
Date:   Mon Sep 21 17:50:27 2015 +0200
Branches: missing-libs
https://developer.blender.org/rBe6a84d5a481c260706d310ddebf32b37b93754b0

Merge branch 'lib-link-rework-temp' into missing-libs

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



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

diff --cc source/blender/blenloader/intern/readfile.c
index 2438524,4cb4fc0..d621e0c
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -9670,29 -9666,26 +9666,31 @@@ static ID *link_named_part_ex
  	return id;
  }
  
- ID *BLO_library_append_named_part(Main *mainl, BlendHandle **bh, const char *idname, const int idcode)
+ ID *BLO_library_link_named_part(Main *mainl, BlendHandle **bh, const char *idname, const int idcode)
  {
  	FileData *fd = (FileData*)(*bh);
- 	return append_named_part(mainl, fd, idname, idcode);
+ 	return link_named_part(mainl, fd, idname, idcode);
  }
  
- ID *BLO_library_append_named_part_ex(const bContext *C, Main *mainl, BlendHandle **bh, const char *idname, const int idcode, const short flag)
+ ID *BLO_library_link_named_part_ex(
+         Main *mainl, BlendHandle **bh, const char *idname, const int idcode, const short flag,
+         Scene *scene, View3D *v3d)
  {
  	FileData *fd = (FileData*)(*bh);
- 	return append_named_part_ex(C, mainl, fd, idname, idcode, flag);
+ 	return link_named_part_ex(mainl, fd, idname, idcode, flag, scene, v3d);
  }
  
- static void append_id_part(ReportList *reports, FileData *fd, Main *mainvar, ID *id, ID **r_id)
 -static void link_id_part(FileData *fd, Main *mainvar, ID *id, ID **r_id)
++static void link_id_part(ReportList *reports, FileData *fd, Main *mainvar, ID *id, ID **r_id)
  {
 -	BHead *bhead = find_bhead_from_idname(fd, id->name);
 +	BHead *bhead = NULL;
 +
 +	if (fd) {
 +		bhead = find_bhead_from_idname(fd, id->name);
 +	}
 +
 +	id->flag &= ~LIB_READ;
  
  	if (bhead) {
 -		id->flag &= ~LIB_READ;
  		id->flag |= LIB_NEED_EXPAND;
  		// printf("read lib block %s\n", id->name);
  		read_libblock(fd, mainvar, bhead, id->flag, r_id);
@@@ -9972,29 -9924,37 +9957,29 @@@ static void read_libraries(FileData *ba
  				}
  				if (fd) {
  					do_it = true;
 -					a = set_listbasepointers(mainptr, lbarray);
 -					while (a--) {
 -						ID *id = lbarray[a]->first;
 -						
 -						while (id) {
 -							ID *idn = id->next;
 -							if (id->flag & LIB_READ) {
 -								ID *realid = NULL;
 -								BLI_remlink(lbarray[a], id);
 -								
 -								link_id_part(fd, mainptr, id, &realid);
 -								if (!realid) {
 -									blo_reportf_wrap(
 -									        fd->reports, RPT_WARNING,
 -									        TIP_("LIB ERROR: %s: '%s' missing from '%s', parent '%s'"),
 -									        BKE_idcode_to_name(GS(id->name)),
 -									        id->name + 2,
 -									        mainptr->curlib->filepath,
 -									        library_parent_filepath(mainptr->curlib));
 -								}
 -								
 -								change_idid_adr(mainlist, basefd, id, realid);
 -								
 -								MEM_freeN(id);
 -							}
 -							id = idn;
 +				}
 +				a = set_listbasepointers(mainptr, lbarray);
 +				while (a--) {
 +					ID *id = lbarray[a]->first;
 +
 +					while (id) {
 +						ID *idn = id->next;
 +						if (id->flag & LIB_READ) {
 +							ID *realid = NULL;
 +							BLI_remlink(lbarray[a], id);
 +
- 							append_id_part(basefd->reports, fd, mainptr, id, &realid);
++							link_id_part(basefd->reports, fd, mainptr, id, &realid);
 +
 +							BLI_assert(realid != NULL);
 +
 +							change_idid_adr(mainlist, basefd, id, realid);
 +
 +							MEM_freeN(id);
  						}
 +						id = idn;
  					}
 -					
 -					BLO_expand_main(fd, mainptr);
  				}
 +				BLO_expand_main(fd, mainptr);
  			}
  			
  			mainptr = mainptr->next;




More information about the Bf-blender-cvs mailing list