aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/fllib.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2002-11-25 22:27:34 +0000
committerThomas Grill <xovo@users.sourceforge.net>2002-11-25 22:27:34 +0000
commita55a5773570e56a1fb59887f1215f3d05a055700 (patch)
tree507e32ac5b202cb99366bc416d74fff105aa6711 /externals/grill/flext/source/fllib.cpp
parent286c5cf7f627308f56b94289a8a05ed653923c07 (diff)
""
svn path=/trunk/; revision=243
Diffstat (limited to 'externals/grill/flext/source/fllib.cpp')
-rwxr-xr-xexternals/grill/flext/source/fllib.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/externals/grill/flext/source/fllib.cpp b/externals/grill/flext/source/fllib.cpp
index eee94ce5..3328ac9b 100755
--- a/externals/grill/flext/source/fllib.cpp
+++ b/externals/grill/flext/source/fllib.cpp
@@ -331,17 +331,22 @@ flext_hdr *flext_obj::obj_new(const t_symbol *s,int _argc_,t_atom *argv)
flext_obj::m_holdname = NULL;
flext_obj::m_holdattr = false;
- bool ok = obj->data ||
+ bool ok = obj->data &&
// check constructor exit flag
obj->data->InitOk();
- if(ok && lo->attr && argc < _argc_)
- // set cmdline attributes (this is a flext_base function!)
- ok = ((flext_base *)obj->data)->InitAttrib(_argc_-argc,argv+argc);
+ if(ok) {
+ // store creation args for attribute initialization (inside flext_base::Init())
+ flext_obj::m_holdaargc = _argc_-argc;
+ flext_obj::m_holdaargv = argv+argc;
- if(ok) // call virtual init function
+ // call virtual init function
ok = obj->data->Init();
+ flext_obj::m_holdaargc = 0;
+ flext_obj::m_holdaargv = NULL;
+ }
+
if(!ok) {
// there was some init error, free object
lo->freefun(obj);