diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-06-08 15:10:43 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-06-08 15:10:43 +0300 |
commit | 303c91209311cade10edf1678900e2d1ba812ffb (patch) | |
tree | a9eb98c169c1ba941d4b3835d03ed9d4d0452ffc /source/blender/blenkernel/intern | |
parent | ec0ba4095f9e60057309e6a72e6661170a22a7ee (diff) |
Fix crash introduced by recent node tree localization
It should not add temporary datablocks to the bmain.
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 18d29af655e..c1fa6c55d59 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1109,7 +1109,7 @@ bNodeTree *ntreeAddTree(Main *bmain, const char *name, const char *idname) * copying for internal use (threads for eg), where you wont want it to modify the * scene data. */ -static bNodeTree *ntreeCopyTree_internal(bNodeTree *ntree, Main *bmain, bool do_id_user, bool do_make_extern, bool copy_previews) +static bNodeTree *ntreeCopyTree_internal(bNodeTree *ntree, Main *bmain, bool skip_database, bool do_id_user, bool do_make_extern, bool copy_previews) { bNodeTree *newtree; bNode *node /*, *nnode */ /* UNUSED */, *last; @@ -1119,7 +1119,7 @@ static bNodeTree *ntreeCopyTree_internal(bNodeTree *ntree, Main *bmain, bool do_ if (ntree == NULL) return NULL; /* is ntree part of library? */ - if (bmain && BLI_findindex(&bmain->nodetree, ntree) >= 0) { + if (bmain && !skip_database && BLI_findindex(&bmain->nodetree, ntree) >= 0) { newtree = BKE_libblock_copy(&ntree->id); } else { @@ -1211,7 +1211,7 @@ static bNodeTree *ntreeCopyTree_internal(bNodeTree *ntree, Main *bmain, bool do_ bNodeTree *ntreeCopyTree_ex(bNodeTree *ntree, Main *bmain, const bool do_id_user) { - return ntreeCopyTree_internal(ntree, bmain, do_id_user, true, true); + return ntreeCopyTree_internal(ntree, bmain, false, do_id_user, true, true); } bNodeTree *ntreeCopyTree(bNodeTree *ntree) { @@ -1980,7 +1980,7 @@ bNodeTree *ntreeLocalize(bNodeTree *ntree) /* Make full copy. * Note: previews are not copied here. */ - ltree = ntreeCopyTree_internal(ntree, G.main, false, false, false); + ltree = ntreeCopyTree_internal(ntree, G.main, true, false, false, false); ltree->flag |= NTREE_IS_LOCALIZED; for (node = ltree->nodes.first; node; node = node->next) { |