diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2005-05-23 16:52:46 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2005-05-23 16:52:46 +0000 |
commit | a1c2bb17663ce4dea2f5e7e3c1e1bfae35541a2c (patch) | |
tree | 9000122288ab01e7d815323c79342f668d6b2a5b /externals/grill/flext/source/flext.cpp | |
parent | a98acaeb0ce114ede2cfd31267c6dcc3fc0fbb01 (diff) |
oops, fix
Max/MSP has its own check....
changed initialization functions accordingly
better timers for Windows
fixed timer bug
changed template parameter of TableMap
compiler flag for MinGW binary compatibility (thanks to GG)
enable WIN2000/XP API features with definition in build system
fix for symbol messages into non-left inlets
restructured TableMap type (doesn't own pointers any more)
no sanity check for iterator
fixes for MSVC6
slimmed object data structures
better c++ compliance
fixed problems with symbol binding
svn path=/trunk/; revision=3074
Diffstat (limited to 'externals/grill/flext/source/flext.cpp')
-rw-r--r-- | externals/grill/flext/source/flext.cpp | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/externals/grill/flext/source/flext.cpp b/externals/grill/flext/source/flext.cpp index c88e5f00..91228a1b 100644 --- a/externals/grill/flext/source/flext.cpp +++ b/externals/grill/flext/source/flext.cpp @@ -19,14 +19,12 @@ WARRANTIES, see the file, "license.txt," in this distribution. // === flext_base ============================================ bool flext_base::compatibility = true; +bool flext_base::indsp = false; +const t_symbol *flext_base::curtag = NULL; -flext_base::FLEXT_CLASSDEF(flext_base)(): - indsp(false), - inlist(NULL),outlist(NULL), - curtag(NULL), - incnt(0),outcnt(0), - insigs(0),outsigs(0), - distmsgs(false) +flext_base::FLEXT_CLASSDEF(flext_base)() + : incnt(0),outcnt(0) + , insigs(0),outsigs(0) #if FLEXT_SYS == FLEXT_SYS_PD || FLEXT_SYS == FLEXT_SYS_MAX ,outlets(NULL),inlets(NULL) #endif @@ -36,18 +34,15 @@ flext_base::FLEXT_CLASSDEF(flext_base)(): { FLEXT_LOG1("%s - flext logging is on",thisName()); - t_classid clid = thisClassId(); - clmethhead = ClMeths(clid); bindhead = NULL; - if(procattr) { + if(HasAttributes()) { // initialize when attribute processing is enabled attrhead = new ItemCont; - clattrhead = ClAttrs(clid); attrdata = new AttrDataCont; } else { - attrhead = clattrhead = NULL; + attrhead = NULL; attrdata = NULL; } } @@ -77,10 +72,6 @@ flext_base::~FLEXT_CLASSDEF(flext_base)() if(attrhead) delete attrhead; if(attrdata) delete attrdata; - // destroy inlets and outlets and their proxy objects - if(inlist) delete inlist; - if(outlist) delete outlist; - #if FLEXT_SYS == FLEXT_SYS_PD || FLEXT_SYS == FLEXT_SYS_MAX if(outlets) delete[] outlets; @@ -126,7 +117,7 @@ bool flext_base::Init() if(ok) ok = InitInlets() && InitOutlets(); if(ok) { - if(procattr && m_holdaargc && m_holdaargv) { + if(HasAttributes() && m_holdaargc && m_holdaargv) { // initialize creation attributes ok = InitAttrib(m_holdaargc,m_holdaargv); } @@ -210,7 +201,7 @@ void flext_base::cb_assist(t_class *c,void * /*b*/,long msg,long arg,char *s) if(th->outdesc[arg]) strcpy(s,th->outdesc[arg]); } else - if(arg == th->outcnt && th->procattr) strcpy(s,"Attributes"); + if(arg == th->outcnt && th->HasAttributes()) strcpy(s,"Attributes"); break; } } |