diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2006-10-31 00:30:57 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2006-10-31 00:30:57 +0000 |
commit | c9f63273e395c7c8f5a2c112bddea09735b6518e (patch) | |
tree | 0bee4fe4ea3509fb834f61981afb37edbec20ed2 /externals/grill/flext/source/flproxy.cpp | |
parent | a0dd272b71c0212515cb4a834a109264448c02ae (diff) |
PD: possibility to create DSP objects without main DSP inlet (use FLEXT_DSP0_NEW or similar)
fixed buggy memory deallocation for AtomListStatic
svn path=/trunk/; revision=6196
Diffstat (limited to 'externals/grill/flext/source/flproxy.cpp')
-rwxr-xr-x | externals/grill/flext/source/flproxy.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/externals/grill/flext/source/flproxy.cpp b/externals/grill/flext/source/flproxy.cpp index 08bf1352..6126d4b7 100755 --- a/externals/grill/flext/source/flproxy.cpp +++ b/externals/grill/flext/source/flproxy.cpp @@ -79,6 +79,26 @@ void flext_base::cb_pointer(flext_hdr *c,const t_gpointer *p) void flext_base::cb_anything(flext_hdr *c,const t_symbol *s,int argc,t_atom *argv) { + if(UNLIKELY(!s)) { + // apparently, this happens only in one case... object is a DSP object, but has no main DSP inlet... + + // interpret tag from args + if(!argc) + s = sym_bang; + else if(argc == 1) { + if(IsFloat(*argv)) + s = sym_float; + else if(IsSymbol(*argv)) + s = sym_symbol; + else if(IsPointer(*argv)) + s = sym_pointer; + else + FLEXT_ASSERT(false); + } + else + s = sym_list; + } + thisObject(c)->CbMethodHandler(0,s,argc,argv); } |