diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-08-22 13:35:46 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-08-22 13:35:46 +0400 |
commit | 2b9fd376e1d0aa9491d8b842b7b45cc5beac5fbe (patch) | |
tree | 77aba0bee2e60d05fe87a738d1fb9124515cffd0 /source/blender/blenkernel/intern | |
parent | a4fd9f827b5792538da664d1a5eaea2db9472b90 (diff) |
all areas of blender now do node tree id user count management, except for some exceptions like making a node tree local and material clipboard.
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/lamp.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/library.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/material.c | 18 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/texture.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/world.c | 4 |
6 files changed, 21 insertions, 17 deletions
diff --git a/source/blender/blenkernel/intern/lamp.c b/source/blender/blenkernel/intern/lamp.c index 6a802236ec4..4782d09a7c8 100644 --- a/source/blender/blenkernel/intern/lamp.c +++ b/source/blender/blenkernel/intern/lamp.c @@ -120,7 +120,7 @@ Lamp *BKE_lamp_copy(Lamp *la) lan->curfalloff = curvemapping_copy(la->curfalloff); if (la->nodetree) - lan->nodetree = ntreeCopyTree_ex(la->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + lan->nodetree = ntreeCopyTree(la->nodetree); if (la->preview) lan->preview = BKE_previewimg_copy(la->preview); @@ -223,7 +223,7 @@ void BKE_lamp_free(Lamp *la) /* is no lib link block, but lamp extension */ if (la->nodetree) { - ntreeFreeTree_ex(la->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + ntreeFreeTree(la->nodetree); MEM_freeN(la->nodetree); } diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index f1d1d128c16..e073cfdf76d 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -348,7 +348,7 @@ int id_copy(ID *id, ID **newid, int test) if (!test) *newid = (ID *)BKE_action_copy((bAction *)id); return 1; case ID_NT: - if (!test) *newid = (ID *)ntreeCopyTree_ex((bNodeTree *)id, FALSE); /* TODO: do_id_user arg needs checking */ + if (!test) *newid = (ID *)ntreeCopyTree((bNodeTree *)id); return 1; case ID_BR: if (!test) *newid = (ID *)BKE_brush_copy((Brush *)id); @@ -881,7 +881,7 @@ void BKE_libblock_free(ListBase *lb, void *idv) BKE_action_free((bAction *)id); break; case ID_NT: - ntreeFreeTree_ex((bNodeTree *)id, FALSE); /* TODO: do_id_user arg needs checking */ + ntreeFreeTree((bNodeTree *)id); break; case ID_BR: BKE_brush_free((Brush *)id); diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index a1288b8af08..8a26a1b52c5 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -101,7 +101,7 @@ void BKE_material_free(Material *ma) /* is no lib link block, but material extension */ if (ma->nodetree) { - ntreeFreeTree_ex(ma->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + ntreeFreeTree(ma->nodetree); MEM_freeN(ma->nodetree); } @@ -235,7 +235,7 @@ Material *BKE_material_copy(Material *ma) if (ma->preview) man->preview = BKE_previewimg_copy(ma->preview); if (ma->nodetree) { - man->nodetree = ntreeCopyTree_ex(ma->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + man->nodetree = ntreeCopyTree(ma->nodetree); } man->gpumaterial.first = man->gpumaterial.last = NULL; @@ -1483,7 +1483,11 @@ void ramp_blend(int type, float r_col[3], const float fac, const float col[3]) } } -/* copy/paste buffer, if we had a propper py api that would be better */ +/** + * \brief copy/paste buffer, if we had a propper py api that would be better + * \note matcopybuf.nodetree does _NOT_ use ID's + * \todo matcopybuf.nodetree's node->id's are NOT validated, this will crash! + */ static Material matcopybuf; static short matcopied = 0; @@ -1511,7 +1515,7 @@ void free_matcopybuf(void) matcopybuf.ramp_spec = NULL; if (matcopybuf.nodetree) { - ntreeFreeTree_ex(matcopybuf.nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + ntreeFreeTree_ex(matcopybuf.nodetree, FALSE); MEM_freeN(matcopybuf.nodetree); matcopybuf.nodetree = NULL; } @@ -1537,7 +1541,7 @@ void copy_matcopybuf(Material *ma) matcopybuf.mtex[a] = MEM_dupallocN(mtex); } } - matcopybuf.nodetree = ntreeCopyTree_ex(ma->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + matcopybuf.nodetree = ntreeCopyTree_ex(ma->nodetree, FALSE); matcopybuf.preview = NULL; matcopybuf.gpumaterial.first = matcopybuf.gpumaterial.last = NULL; matcopied = 1; @@ -1561,7 +1565,7 @@ void paste_matcopybuf(Material *ma) } if (ma->nodetree) { - ntreeFreeTree_ex(ma->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + ntreeFreeTree(ma->nodetree); MEM_freeN(ma->nodetree); } @@ -1582,7 +1586,7 @@ void paste_matcopybuf(Material *ma) } } - ma->nodetree = ntreeCopyTree_ex(matcopybuf.nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + ma->nodetree = ntreeCopyTree_ex(matcopybuf.nodetree, FALSE); } diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index b67288f63fd..37562686a99 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1188,7 +1188,7 @@ void ntreeMakeLocal(bNodeTree *ntree) } else if (cd.local && cd.lib) { /* this is the mixed case, we copy the tree and assign it to local users */ - bNodeTree *newtree = ntreeCopyTree_ex(ntree, FALSE); /* TODO: do_id_user arg needs checking */ + bNodeTree *newtree = ntreeCopyTree(ntree); newtree->id.us = 0; @@ -1299,7 +1299,7 @@ void ntreeLocalMerge(bNodeTree *localtree, bNodeTree *ntree) if (ntreetype->local_merge) ntreetype->local_merge(localtree, ntree); - ntreeFreeTree_ex(localtree, FALSE); /* TODO: do_id_user arg needs checking */ + ntreeFreeTree_ex(localtree, FALSE); MEM_freeN(localtree); } diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 66b096b14f1..2f54fe6cebd 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -430,7 +430,7 @@ void BKE_texture_free(Tex *tex) tex->id.icon_id = 0; if (tex->nodetree) { - ntreeFreeTree_ex(tex->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + ntreeFreeTree(tex->nodetree); MEM_freeN(tex->nodetree); } } @@ -697,7 +697,7 @@ Tex *BKE_texture_copy(Tex *tex) if (tex->nodetree->execdata) { ntreeTexEndExecTree(tex->nodetree->execdata, 1); } - texn->nodetree = ntreeCopyTree_ex(tex->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + texn->nodetree = ntreeCopyTree(tex->nodetree); } return texn; diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index 418d7da6b85..dd71e43182e 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -67,7 +67,7 @@ void BKE_world_free(World *wrld) /* is no lib link block, but world extension */ if (wrld->nodetree) { - ntreeFreeTree_ex(wrld->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + ntreeFreeTree(wrld->nodetree); MEM_freeN(wrld->nodetree); } @@ -129,7 +129,7 @@ World *BKE_world_copy(World *wrld) } if (wrld->nodetree) { - wrldn->nodetree = ntreeCopyTree_ex(wrld->nodetree, FALSE); /* TODO: do_id_user arg needs checking */ + wrldn->nodetree = ntreeCopyTree(wrld->nodetree); } if (wrld->preview) |