[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