diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2004-12-31 04:58:29 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2004-12-31 04:58:29 +0000 |
commit | 7873938d18daf4a94ca77eeb970457f89e679374 (patch) | |
tree | 8de0488af4f068ad7aa37f1ffc08482e04efb258 /externals/grill/flext/source/fllib.cpp | |
parent | 889c04fdf4fa9239c7442ed3b381ad5d004782f1 (diff) |
fix for showing attributes on select (and recreate the object on edit)
reconsidered flext::buffer:Update
build system for flext-based externals
added object construction and destruction flags
svn path=/trunk/; revision=2438
Diffstat (limited to 'externals/grill/flext/source/fllib.cpp')
-rwxr-xr-x | externals/grill/flext/source/fllib.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/externals/grill/flext/source/fllib.cpp b/externals/grill/flext/source/fllib.cpp index 509ba2c2..2132ddf2 100755 --- a/externals/grill/flext/source/fllib.cpp +++ b/externals/grill/flext/source/fllib.cpp @@ -413,6 +413,7 @@ flext_hdr *flext_obj::obj_new(const t_symbol *s,int _argc_,t_atom *argv) flext_obj::m_holder = obj; flext_obj::m_holdname = s; flext_obj::m_holdattr = lo->attr; + flext_obj::initing = true; // get actual flext object (newfun calls "new flext_obj()") if(lo->argc >= 0) @@ -446,6 +447,8 @@ flext_hdr *flext_obj::obj_new(const t_symbol *s,int _argc_,t_atom *argv) // here, inlets, outlets, methods and attributes can be set up ok = obj->data->Init(); + flext_obj::initing = false; + // call another virtual init function if(ok) ok = obj->data->Finalize(); @@ -467,6 +470,8 @@ flext_hdr *flext_obj::obj_new(const t_symbol *s,int _argc_,t_atom *argv) ok = false; } + flext_obj::initing = false; + if(!ok) { // there was some init error, free object lo->freefun(obj); @@ -500,6 +505,8 @@ void flext_obj::obj_free(flext_hdr *h) if(lcl) { try { + flext_obj::exiting = true; + // call virtual exit function hdr->data->Exit(); @@ -515,7 +522,9 @@ void flext_obj::obj_free(flext_hdr *h) catch(...) { error("%s - Unknown exception while destroying object",GetString(name)); } - } + + flext_obj::exiting = false; + } #ifdef FLEXT_DEBUG else #if FLEXT_SYS == FLEXT_SYS_MAX |