aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/flitem.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2005-01-11 04:58:12 +0000
committerThomas Grill <xovo@users.sourceforge.net>2005-01-11 04:58:12 +0000
commitead9ba14ab569e5644e2deeffc436c31b53ea141 (patch)
treeb2d40480181a5eefeb85335f35ab085ef5452b47 /externals/grill/flext/source/flitem.cpp
parent4651f8a117cd663ddd77355055b0580cce636da3 (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-xexternals/grill/flext/source/flitem.cpp11
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);