From d6d1febfad6698f55f077b7dd94330a46da83886 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Mon, 18 Apr 2005 15:07:41 +0000 Subject: changed template parameter of TableMap fixed problems with symbol binding restructured TableMap type (doesn't own pointers any more) svn path=/trunk/; revision=2779 --- externals/grill/flext/source/flattr.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'externals/grill/flext/source/flattr.cpp') diff --git a/externals/grill/flext/source/flattr.cpp b/externals/grill/flext/source/flattr.cpp index 79a63ab3..1ae55ec4 100644 --- a/externals/grill/flext/source/flattr.cpp +++ b/externals/grill/flext/source/flattr.cpp @@ -43,6 +43,13 @@ flext_base::AttrDataCont::~AttrDataCont() } */ +flext_base::AttrDataCont::~AttrDataCont() { clear(); } + +void flext_base::AttrDataCont::clear() +{ + for(iterator it(*this); it; ++it) delete it.data(); + TablePtrMap::clear(); +} //! Add get and set attributes void flext_base::AddAttrib(ItemCont *aa,ItemCont *ma,const t_symbol *asym,metharg tp,methfun gfun,methfun sfun) @@ -167,7 +174,10 @@ bool flext_base::InitAttrib(int argc,const t_atom *argv) SetAttrib(tag,attr,a.GetInitValue()); */ AttrData *a = attrdata->find(tag); - if(!a) attrdata->insert(tag,a = new AttrData); + if(!a) { + AttrData *old = attrdata->insert(tag,a = new AttrData); + FLEXT_ASSERT(!old); + } a->SetInit(true); a->SetInitValue(nxt-cur-1,argv+cur+1); -- cgit v1.2.1