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>2015-09-21 16:01:55 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-09-23 17:02:24 +0300
commitd16ee90b9c92712c8c455c2293a15470fe2fe7d2 (patch)
tree240fb0b401910705a9a6b82435ed7c626b1e7ede
parentc0384c46459e89efe1c220e9a535527291d7f940 (diff)
Fix (unreported) Append/link code: All library datablocks could end with same name.
This was broken since ages I think, did not really hurt since we usually never use libs' names to access them. Rather bad behavior however, breaking a ground rule of our ID system! And no real reason to add new libraries to new (split) Main at all, libraries are never considered linked datablocks, which means they should always be in 'main' Main->library list. Not a regression, but should be included in 2.76 imho.
-rw-r--r--source/blender/blenloader/intern/readfile.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 55cadaef459..aeb3168c1bc 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -618,7 +618,9 @@ static Main *blo_find_main(FileData *fd, const char *filepath, const char *relab
m = BKE_main_new();
BLI_addtail(mainlist, m);
- lib = BKE_libblock_alloc(m, ID_LI, "lib");
+ /* Add library datablock itself to 'main' Main, since libraries are **never** linked data.
+ * Fixes bug where you could end with all ID_LI datablocks having the same name... */
+ lib = BKE_libblock_alloc(mainlist->first, ID_LI, "Lib");
BLI_strncpy(lib->name, filepath, sizeof(lib->name));
BLI_strncpy(lib->filepath, name1, sizeof(lib->filepath));