diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2005-01-11 04:58:12 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2005-01-11 04:58:12 +0000 |
commit | ead9ba14ab569e5644e2deeffc436c31b53ea141 (patch) | |
tree | b2d40480181a5eefeb85335f35ab085ef5452b47 /externals/grill/flext/source/flitem.cpp | |
parent | 4651f8a117cd663ddd77355055b0580cce636da3 (diff) |
build system: added profiler mode, more fixes
fixed buggy unbinding of receive symbols
fixed shared library names
better templates, some minor changes
added method for clicks into object box
svn path=/trunk/; revision=2488
Diffstat (limited to 'externals/grill/flext/source/flitem.cpp')
-rwxr-xr-x | externals/grill/flext/source/flitem.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/externals/grill/flext/source/flitem.cpp b/externals/grill/flext/source/flitem.cpp index 90c357d9..0c3f0f03 100755 --- a/externals/grill/flext/source/flitem.cpp +++ b/externals/grill/flext/source/flitem.cpp @@ -60,6 +60,8 @@ void flext_base::ItemCont::Resize(int nsz) void flext_base::ItemCont::Add(Item *item,const t_symbol *tag,int inlet) { + FLEXT_ASSERT(tag); + if(!Contained(inlet)) Resize(inlet+2); ItemSet &set = GetInlet(inlet); Item *&lst = set[tag]; @@ -72,8 +74,10 @@ void flext_base::ItemCont::Add(Item *item,const t_symbol *tag,int inlet) members++; } -bool flext_base::ItemCont::Remove(Item *item,const t_symbol *tag,int inlet) +bool flext_base::ItemCont::Remove(Item *item,const t_symbol *tag,int inlet,bool free) { + FLEXT_ASSERT(tag); + if(Contained(inlet)) { ItemSet &set = GetInlet(inlet); ItemSet::iterator it = set.find(tag); @@ -83,7 +87,8 @@ bool flext_base::ItemCont::Remove(Item *item,const t_symbol *tag,int inlet) if(prv) prv->nxt = lit->nxt; else it.data() = lit->nxt; - lit->nxt = NULL; delete lit; + lit->nxt = NULL; + if(free) delete lit; return true; } } @@ -94,6 +99,8 @@ bool flext_base::ItemCont::Remove(Item *item,const t_symbol *tag,int inlet) flext_base::Item *flext_base::ItemCont::FindList(const t_symbol *tag,int inlet) { + FLEXT_ASSERT(tag); + if(Contained(inlet)) { ItemSet &ai = GetInlet(inlet); ItemSet::iterator as = ai.find(tag); |