Correct recent own fix to id_clear_lib_data_ex().
authorBastien Montagne <montagne29@wanadoo.fr>
Thu, 14 Jul 2016 16:16:05 +0000 (18:16 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Thu, 14 Jul 2016 16:33:12 +0000 (18:33 +0200)
Datablocks' nodetree are *never* in main, while shapekeys are...

source/blender/blenkernel/intern/library.c
source/blender/blenloader/intern/readfile.c

index 37f64ba148bd67adf708174690373725ec8b359a..c123b5e57fcab67d6046fbc62dc9ee0be93d538b 100644 (file)
@@ -1483,12 +1483,12 @@ void id_clear_lib_data_ex(Main *bmain, ID *id, bool id_in_mainlist)
 
        /* Internal bNodeTree blocks inside datablocks also stores id->lib, make sure this stays in sync. */
        if ((ntree = ntreeFromID(id))) {
-               id_clear_lib_data_ex(bmain, &ntree->id, id_in_mainlist);
+               id_clear_lib_data_ex(bmain, &ntree->id, false);  /* Datablocks' nodetree is never in Main. */
        }
 
        /* Same goes for shapekeys. */
        if ((key = BKE_key_from_id(id))) {
-               id_clear_lib_data_ex(bmain, &key->id, id_in_mainlist);
+               id_clear_lib_data_ex(bmain, &key->id, id_in_mainlist);  /* sigh, why are keys in Main? */
        }
 
        if (GS(id->name) == ID_OB) {
index 79cd8a7fe6e4e2d0a889977884912f2e134e96dc..a25b56b9cf13f6d77badd6f36fa1b3ad2c8bd765 100644 (file)
@@ -2713,7 +2713,7 @@ static void lib_link_node_socket(FileData *fd, ID *UNUSED(id), bNodeSocket *sock
        IDP_LibLinkProperty(sock->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
 }
 
-/* singe node tree (also used for material/scene trees), ntree is not NULL */
+/* Single node tree (also used for material/scene trees), ntree is not NULL */
 static void lib_link_ntree(FileData *fd, ID *id, bNodeTree *ntree)
 {
        bNode *node;