From ead9ba14ab569e5644e2deeffc436c31b53ea141 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 11 Jan 2005 04:58:12 +0000 Subject: 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 --- externals/grill/flext/source/flitem.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'externals/grill/flext/source/flitem.cpp') 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); -- cgit v1.2.1