From a55a5773570e56a1fb59887f1215f3d05a055700 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Mon, 25 Nov 2002 22:27:34 +0000 Subject: "" svn path=/trunk/; revision=243 --- externals/grill/flext/source/fllib.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'externals/grill/flext/source/fllib.cpp') 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); -- cgit v1.2.1