diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2017-10-19 13:31:58 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2017-10-19 13:33:14 +0300 |
commit | 529d365b4d2a91923b365f409389c1f4c89b0a1f (patch) | |
tree | 6767055139c8fc21ca5dc1935c02fa36a81e798e | |
parent | 910dd7fb1b836792306d659305e27a9e06e238dd (diff) |
Add note about handling of root nodetree in ID copydata.
OUr beloved root nodetrees... Had to check again the code to undersand
why we copy them with bmain even though they are not in bmain, so this
is worth a comment. ;)
-rw-r--r-- | source/blender/blenkernel/intern/lamp.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/linestyle.c | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/material.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/texture.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/world.c | 2 |
6 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/lamp.c b/source/blender/blenkernel/intern/lamp.c index e8ef346927e..fe481905fb2 100644 --- a/source/blender/blenkernel/intern/lamp.c +++ b/source/blender/blenkernel/intern/lamp.c @@ -136,6 +136,8 @@ void BKE_lamp_copy_data(Main *bmain, Lamp *la_dst, const Lamp *la_src, const int la_dst->curfalloff = curvemapping_copy(la_src->curfalloff); if (la_src->nodetree) { + /* Note: nodetree is *not* in bmain, however this specific case is handled at lower level + * (see BKE_libblock_copy_ex()). */ BKE_id_copy_ex(bmain, (ID *)la_src->nodetree, (ID **)&la_dst->nodetree, flag, false); } diff --git a/source/blender/blenkernel/intern/linestyle.c b/source/blender/blenkernel/intern/linestyle.c index 1b1a12e702a..f07cb97d476 100644 --- a/source/blender/blenkernel/intern/linestyle.c +++ b/source/blender/blenkernel/intern/linestyle.c @@ -175,7 +175,10 @@ void BKE_linestyle_copy_data( *linestyle_dst->mtex[a] = *linestyle_src->mtex[a]; } } + if (linestyle_src->nodetree) { + /* Note: nodetree is *not* in bmain, however this specific case is handled at lower level + * (see BKE_libblock_copy_ex()). */ BKE_id_copy_ex(bmain, (ID *)linestyle_src->nodetree, (ID **)&linestyle_dst->nodetree, flag, false); } diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index f5be72c6b4d..9fae5a3c3f2 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -244,6 +244,8 @@ void BKE_material_copy_data(Main *bmain, Material *ma_dst, const Material *ma_sr } if (ma_src->nodetree) { + /* Note: nodetree is *not* in bmain, however this specific case is handled at lower level + * (see BKE_libblock_copy_ex()). */ BKE_id_copy_ex(bmain, (ID *)ma_src->nodetree, (ID **)&ma_dst->nodetree, flag, false); } diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 4526477cad9..9ce578a9105 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -180,6 +180,8 @@ void BKE_scene_copy_data(Main *bmain, Scene *sce_dst, const Scene *sce_src, cons BKE_keyingsets_copy(&(sce_dst->keyingsets), &(sce_src->keyingsets)); if (sce_src->nodetree) { + /* Note: nodetree is *not* in bmain, however this specific case is handled at lower level + * (see BKE_libblock_copy_ex()). */ BKE_id_copy_ex(bmain, (ID *)sce_src->nodetree, (ID **)&sce_dst->nodetree, flag, false); BKE_libblock_relink_ex(bmain, sce_dst->nodetree, (void *)(&sce_src->id), &sce_dst->id, false); } diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 8f0334a4752..50bb3a5f10d 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -883,6 +883,8 @@ void BKE_texture_copy_data(Main *bmain, Tex *tex_dst, const Tex *tex_src, const if (tex_src->nodetree->execdata) { ntreeTexEndExecTree(tex_src->nodetree->execdata); } + /* Note: nodetree is *not* in bmain, however this specific case is handled at lower level + * (see BKE_libblock_copy_ex()). */ BKE_id_copy_ex(bmain, (ID *)tex_src->nodetree, (ID **)&tex_dst->nodetree, flag, false); } diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index e79b06a44fe..acab94be9c5 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -136,6 +136,8 @@ void BKE_world_copy_data(Main *bmain, World *wrld_dst, const World *wrld_src, co } if (wrld_src->nodetree) { + /* Note: nodetree is *not* in bmain, however this specific case is handled at lower level + * (see BKE_libblock_copy_ex()). */ BKE_id_copy_ex(bmain, (ID *)wrld_src->nodetree, (ID **)&wrld_dst->nodetree, flag, false); } |