Fix minor issue with new libraries ID usercount.
authorBastien Montagne <b.mont29@gmail.com>
Fri, 14 Feb 2020 11:16:16 +0000 (12:16 +0100)
committerBastien Montagne <b.mont29@gmail.com>
Fri, 14 Feb 2020 11:18:21 +0000 (12:18 +0100)
Library data-blocks are supposed to be tagged as 'real user', i.e.
have one virtual user, since nothing else actually uses (refcounts)
them. That was done in liblink code, but not for newly added ID-LI IDs
when linking from a new libblend file e.g.

source/blender/blenloader/intern/readfile.c

index 93352a1ec90ff5b9ae433190693f0c20961d804a..48416736ce3812d375ed31e2fcdd75db3f69167d 100644 (file)
@@ -680,6 +680,9 @@ static Main *blo_find_main(FileData *fd, const char *filepath, const char *relab
   /* Important, consistency with main ID reading code from read_libblock(). */
   lib->id.us = ID_FAKE_USERS(lib);
 
+  /* Matches lib_link_library(). */
+  id_us_ensure_real(&lib->id);
+
   BLI_strncpy(lib->name, filepath, sizeof(lib->name));
   BLI_strncpy(lib->filepath, name1, sizeof(lib->filepath));