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>2018-05-24 15:55:05 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2018-05-24 15:56:39 +0300
commitdfb959b6c36129b96abe66c39e57d90a07458716 (patch)
tree7f4fb5284707ca159ae410b84fd21e52fc3212f1
parentb4106ed17037b000d741c007ec1a8b88f6c2f5b7 (diff)
Fix missing ID pointers expansion for ID itself in readfile code.
Was breaking static override chaining (static override of a linked datablock that is already a static override in it original lib file). Dummy mistake, thanks to @dfelinto for finding the bug.
-rw-r--r--source/blender/blenloader/intern/readfile.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index f0c6d314c26..6541afb3e9e 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -9094,6 +9094,14 @@ static void expand_constraint_channels(FileData *fd, Main *mainvar, ListBase *ch
}
}
+static void expand_id(FileData *fd, Main *mainvar, ID *id)
+{
+ if (id->override_static) {
+ expand_doit(fd, mainvar, id->override_static->reference);
+ expand_doit(fd, mainvar, id->override_static->storage);
+ }
+}
+
static void expand_idprops(FileData *fd, Main *mainvar, IDProperty *prop)
{
if (!prop)
@@ -9868,6 +9876,7 @@ void BLO_expand_main(void *fdhandle, Main *mainvar)
id = lbarray[a]->first;
while (id) {
if (id->tag & LIB_TAG_NEED_EXPAND) {
+ expand_id(fd, mainvar, id);
expand_idprops(fd, mainvar, id->properties);
switch (GS(id->name)) {