Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2016-07-17 12:37:56 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2016-07-24 16:58:16 +0300
commit70e3f86809c71c55eeb31ca7e1d8ce6c9ccd1b88 (patch)
tree728025b09caff7c299c15c6b1ec871efeb39ea2b
parentd8da816a7ce9d6ec89ad6733089d2727dbf3a74a (diff)
Some more small fixes regarding ID/library asset handling.
-rw-r--r--source/blender/blenkernel/intern/library.c6
-rw-r--r--source/blender/blenkernel/intern/library_asset.c11
2 files changed, 14 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 81d93f94c70..44c34c781ea 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -132,6 +132,10 @@
* also note that the id _must_ have a library - campbell */
void BKE_id_lib_local_paths(Main *bmain, Library *lib, ID *id)
{
+ if (lib->flag & LIBRARY_FLAG_VIRTUAL) {
+ return;
+ }
+
const char *bpath_user_data[2] = {bmain->name, lib->filepath};
BKE_bpath_traverse_id(bmain, id,
@@ -142,7 +146,7 @@ void BKE_id_lib_local_paths(Main *bmain, Library *lib, ID *id)
void id_lib_extern(ID *id)
{
- if (id && ID_IS_LINKED_DATABLOCK(id)) {
+ if (id && ID_IS_LINKED(id)) {
BLI_assert(BKE_idcode_is_linkable(GS(id->name)));
if (id->tag & LIB_TAG_INDIRECT) {
id->tag -= LIB_TAG_INDIRECT;
diff --git a/source/blender/blenkernel/intern/library_asset.c b/source/blender/blenkernel/intern/library_asset.c
index a1c31ba9097..9ee6a2e426e 100644
--- a/source/blender/blenkernel/intern/library_asset.c
+++ b/source/blender/blenkernel/intern/library_asset.c
@@ -143,11 +143,18 @@ void BKE_libraries_asset_subdata_remove(Main *bmain, const void *idv)
return;
}
- ListBase *lb = which_libbase(bmain, ID_LI);
+ ListBase *lb = &bmain->library;
for (Library *lib = lb->first; lib; lib = lib->id.next) {
if (lib->asset_repository) {
for (AssetRef *aref = lib->asset_repository->assets.first; aref; aref = aref->next) {
- BLI_freelinkN(&aref->id_list, BLI_findptr(&aref->id_list, idv, offsetof(LinkData, data)));
+ LinkData *subdata = aref->id_list.first;
+ /* Skip first one, it's main asset, not subdata! */
+ for (subdata = subdata->next; subdata; subdata = subdata->next) {
+ if (subdata->data == idv) {
+ BLI_freelinkN(&aref->id_list, subdata);
+ break;
+ }
+ }
}
}
}