diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2005-07-19 13:17:50 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2005-07-19 13:17:50 +0000 |
commit | ad51a5256a81891061f4c1cc729c718029beb128 (patch) | |
tree | cc7472041e4f67c1d8f31b0d4c4981d27fbe5039 /externals/grill/flext/source/flmsg.cpp | |
parent | 35a59e7dbce7f5cd6fb8c26e40fc66dfd8384cce (diff) |
upped version number
optimizations for message handling and memory footprint
made flext::Forward threadsafe
digest one-element list messages as single atoms
simplified message analysis
svn path=/trunk/; revision=3359
Diffstat (limited to 'externals/grill/flext/source/flmsg.cpp')
-rwxr-xr-x | externals/grill/flext/source/flmsg.cpp | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/externals/grill/flext/source/flmsg.cpp b/externals/grill/flext/source/flmsg.cpp index d8a893b1..1ab4b4a7 100755 --- a/externals/grill/flext/source/flmsg.cpp +++ b/externals/grill/flext/source/flmsg.cpp @@ -103,22 +103,6 @@ bool flext_base::TryMethTag(Item *lst,const t_symbol *tag,int argc,const t_atom return false; } -/* -bool flext_base::TryMethSym(Item *lst,const t_symbol *s) -{ - for(; lst; lst = lst->nxt) { - MethItem *m = (MethItem *)lst; - - if(!m->IsAttr()) { -// FLEXT_LOG3("found symbol method for %s: inlet=%i, symbol=%s",GetString(m->tag),m->inlet,GetString(s)); - - t_any sym; sym.st = const_cast<t_symbol *>(s); - if(((methfun_1)m->fun)(this,sym)) return true; - } - } - return false; -} -*/ bool flext_base::TryMethAny(Item *lst,const t_symbol *s,int argc,const t_atom *argv) { @@ -143,11 +127,11 @@ bool flext_base::FindMeth(int inlet,const t_symbol *s,int argc,const t_atom *arg ItemCont *clmethhead = ClMeths(thisClassId()); // search for exactly matching tag - if((lst = methhead.FindList(s,inlet)) != NULL && TryMethTag(lst,s,argc,argv)) return true; + if(methhead && (lst = methhead->FindList(s,inlet)) != NULL && TryMethTag(lst,s,argc,argv)) return true; if((lst = clmethhead->FindList(s,inlet)) != NULL && TryMethTag(lst,s,argc,argv)) return true; // if nothing found try any inlet - if((lst = methhead.FindList(s,-1)) != NULL && TryMethTag(lst,s,argc,argv)) return true; + if(methhead && (lst = methhead->FindList(s,-1)) != NULL && TryMethTag(lst,s,argc,argv)) return true; if((lst = clmethhead->FindList(s,-1)) != NULL && TryMethTag(lst,s,argc,argv)) return true; return false; @@ -158,11 +142,11 @@ bool flext_base::FindMethAny(int inlet,const t_symbol *s,int argc,const t_atom * Item *lst; ItemCont *clmethhead = ClMeths(thisClassId()); - if((lst = methhead.FindList(sym_anything,inlet)) != NULL && TryMethAny(lst,s,argc,argv)) return true; + if(methhead && (lst = methhead->FindList(sym_anything,inlet)) != NULL && TryMethAny(lst,s,argc,argv)) return true; if((lst = clmethhead->FindList(sym_anything,inlet)) != NULL && TryMethAny(lst,s,argc,argv)) return true; // if nothing found try any inlet - if((lst = methhead.FindList(sym_anything,-1)) != NULL && TryMethAny(lst,s,argc,argv)) return true; + if(methhead && (lst = methhead->FindList(sym_anything,-1)) != NULL && TryMethAny(lst,s,argc,argv)) return true; if((lst = clmethhead->FindList(sym_anything,-1)) != NULL && TryMethAny(lst,s,argc,argv)) return true; return false; @@ -285,13 +269,12 @@ end: bool flext_base::m_method_(int inlet,const t_symbol *s,int argc,const t_atom *argv) { -//#ifdef FLEXT_DEBUG post("%s: message unhandled - inlet:%i args:%i symbol:%s",thisName(),inlet,argc,s?GetString(s):""); -//#endif return false; } bool flext_base::CbMethodResort(int inlet,const t_symbol *s,int argc,const t_atom *argv) { + // call deprecated version return m_method_(inlet,s,argc,argv); } |