aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/flattr.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2005-04-18 15:07:41 +0000
committerThomas Grill <xovo@users.sourceforge.net>2005-04-18 15:07:41 +0000
commitd6d1febfad6698f55f077b7dd94330a46da83886 (patch)
treefc947ad11e4cd38cfd7d316b942600eb51b8b878 /externals/grill/flext/source/flattr.cpp
parent9727e8625658520e5fdbfb0b9e9903ad540da648 (diff)
changed template parameter of TableMap
fixed problems with symbol binding restructured TableMap type (doesn't own pointers any more) svn path=/trunk/; revision=2779
Diffstat (limited to 'externals/grill/flext/source/flattr.cpp')
-rw-r--r--externals/grill/flext/source/flattr.cpp12
1 files changed, 11 insertions, 1 deletions
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<const t_symbol *,AttrData *,8>::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);