CVSROOT: /sources/gnash Module name: gnash Changes by: Chad Musick <cmusick> 07/11/20 12:04:56
Modified files: . : ChangeLog server : array.cpp array.h server/asobj : AsBroadcaster.cpp Color.cpp Global.cpp LoadVars.cpp MovieClipLoader.cpp Object.cpp Sound.cpp string.cpp xml.cpp xml.h xmlsocket.cpp Log message: Reduce dependence on as_environment member of fn_call. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4899&r2=1.4900 http://cvs.savannah.gnu.org/viewcvs/gnash/server/array.cpp?cvsroot=gnash&r1=1.83&r2=1.84 http://cvs.savannah.gnu.org/viewcvs/gnash/server/array.h?cvsroot=gnash&r1=1.38&r2=1.39 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/AsBroadcaster.cpp?cvsroot=gnash&r1=1.10&r2=1.11 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Color.cpp?cvsroot=gnash&r1=1.18&r2=1.19 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Global.cpp?cvsroot=gnash&r1=1.76&r2=1.77 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/LoadVars.cpp?cvsroot=gnash&r1=1.32&r2=1.33 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/MovieClipLoader.cpp?cvsroot=gnash&r1=1.36&r2=1.37 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Object.cpp?cvsroot=gnash&r1=1.36&r2=1.37 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Sound.cpp?cvsroot=gnash&r1=1.21&r2=1.22 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/string.cpp?cvsroot=gnash&r1=1.42&r2=1.43 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xml.cpp?cvsroot=gnash&r1=1.54&r2=1.55 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xml.h?cvsroot=gnash&r1=1.21&r2=1.22 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xmlsocket.cpp?cvsroot=gnash&r1=1.38&r2=1.39 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4899 retrieving revision 1.4900 diff -u -b -r1.4899 -r1.4900 --- ChangeLog 20 Nov 2007 10:31:39 -0000 1.4899 +++ ChangeLog 20 Nov 2007 12:04:54 -0000 1.4900 @@ -1,5 +1,12 @@ 2007-11-20 Chad Musick <[EMAIL PROTECTED]> + * server/array.cpp.h: Remove as_environment parameter from removeLast + * server/asobj/AsBroadcaster.cpp Color.cpp Global.cpp LoadVars.cpp + MovieClipLoader.cpp Object.cpp Sound.cpp string.cpp xml.h,.cpp + xmlsocket.cpp: Reduce dependence on as_environment. + +2007-11-20 Chad Musick <[EMAIL PROTECTED]> + * server/as_object.h,.cpp: Remove as_environment parameter from callMethod methods. * server/edit_text_character.cpp: Fix call to callMethod Index: server/array.cpp =================================================================== RCS file: /sources/gnash/gnash/server/array.cpp,v retrieving revision 1.83 retrieving revision 1.84 diff -u -b -r1.83 -r1.84 --- server/array.cpp 20 Nov 2007 00:44:03 -0000 1.83 +++ server/array.cpp 20 Nov 2007 12:04:55 -0000 1.84 @@ -780,7 +780,7 @@ } bool -as_array_object::removeFirst(const as_value& v, as_environment&) +as_array_object::removeFirst(const as_value& v) { for (iterator it = elements.begin(); it != elements.end(); ++it) { Index: server/array.h =================================================================== RCS file: /sources/gnash/gnash/server/array.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -b -r1.38 -r1.39 --- server/array.h 16 Nov 2007 19:43:43 -0000 1.38 +++ server/array.h 20 Nov 2007 12:04:55 -0000 1.39 @@ -188,7 +188,7 @@ /// @param env /// The environment to use when comparing (needed by as_value::equals) /// - bool removeFirst(const as_value& v, as_environment& env); + bool removeFirst(const as_value& v); /// \brief /// Substitute 'len' elements from 'start' with elements from Index: server/asobj/AsBroadcaster.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/AsBroadcaster.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -b -r1.10 -r1.11 --- server/asobj/AsBroadcaster.cpp 20 Nov 2007 10:31:39 -0000 1.10 +++ server/asobj/AsBroadcaster.cpp 20 Nov 2007 12:04:55 -0000 1.11 @@ -303,7 +303,7 @@ // Remove the first listener matching the new value // See http://www.senocular.com/flash/tutorials/listenersasbroadcaster/?page=2 // TODO: make this call as a normal (don't want to rely on _listeners type at all) - bool removed = listeners->removeFirst(listenerToRemove, fn.env()); + bool removed = listeners->removeFirst(listenerToRemove); return as_value(removed); } Index: server/asobj/Color.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/Color.cpp,v retrieving revision 1.18 retrieving revision 1.19 diff -u -b -r1.18 -r1.19 --- server/asobj/Color.cpp 20 Nov 2007 00:44:04 -0000 1.18 +++ server/asobj/Color.cpp 20 Nov 2007 12:04:55 -0000 1.19 @@ -259,7 +259,7 @@ } static inline void -parseColorTransProp (as_object& obj, as_environment& env, string_table::key key, float *target, bool scale) +parseColorTransProp (as_object& obj, string_table::key key, float *target, bool scale) { as_value tmp; double d; @@ -304,21 +304,20 @@ } string_table& st = obj->getVM().getStringTable(); - as_environment& env = fn.env(); cxform newTrans = obj->getTransform(); // multipliers - parseColorTransProp(*trans, env, st.find("ra"), &newTrans.m_[0][0], true); - parseColorTransProp(*trans, env, st.find("ga"), &newTrans.m_[1][0], true); - parseColorTransProp(*trans, env, st.find("ba"), &newTrans.m_[2][0], true); - parseColorTransProp(*trans, env, st.find("aa"), &newTrans.m_[3][0], true); + parseColorTransProp(*trans, st.find("ra"), &newTrans.m_[0][0], true); + parseColorTransProp(*trans, st.find("ga"), &newTrans.m_[1][0], true); + parseColorTransProp(*trans, st.find("ba"), &newTrans.m_[2][0], true); + parseColorTransProp(*trans, st.find("aa"), &newTrans.m_[3][0], true); // offsets - parseColorTransProp(*trans, env, st.find("rb"), &newTrans.m_[0][1], false); - parseColorTransProp(*trans, env, st.find("gb"), &newTrans.m_[1][1], false); - parseColorTransProp(*trans, env, st.find("bb"), &newTrans.m_[2][1], false); - parseColorTransProp(*trans, env, st.find("ab"), &newTrans.m_[3][1], false); + parseColorTransProp(*trans, st.find("rb"), &newTrans.m_[0][1], false); + parseColorTransProp(*trans, st.find("gb"), &newTrans.m_[1][1], false); + parseColorTransProp(*trans, st.find("bb"), &newTrans.m_[2][1], false); + parseColorTransProp(*trans, st.find("ab"), &newTrans.m_[3][1], false); obj->setTransform(newTrans); @@ -355,8 +354,7 @@ if ( ! sp ) { // must be a target.. - as_environment& env = fn.env(); - character* ch = env.find_target(fn.arg(0).to_string()); + character* ch = fn.env().find_target(fn.arg(0).to_string()); if ( ch ) sp = ch->to_movie(); } Index: server/asobj/Global.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/Global.cpp,v retrieving revision 1.76 retrieving revision 1.77 diff -u -b -r1.76 -r1.77 --- server/asobj/Global.cpp 20 Nov 2007 00:44:04 -0000 1.76 +++ server/asobj/Global.cpp 20 Nov 2007 12:04:55 -0000 1.77 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: Global.cpp,v 1.76 2007/11/20 00:44:04 cmusick Exp $ */ +/* $Id: Global.cpp,v 1.77 2007/11/20 12:04:55 cmusick Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -304,9 +304,7 @@ static as_value as_global_assetpropflags(const fn_call& fn) { - as_environment* env = &fn.env(); - int version = env->get_version(); - + int version = VM::get().getSWFVersion(); //log_msg(_("ASSetPropFlags called with %d args"), fn.nargs); Index: server/asobj/LoadVars.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/LoadVars.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -u -b -r1.32 -r1.33 --- server/asobj/LoadVars.cpp 30 Oct 2007 18:55:43 -0000 1.32 +++ server/asobj/LoadVars.cpp 20 Nov 2007 12:04:55 -0000 1.33 @@ -65,7 +65,7 @@ /// @param env /// Environment to use for event handlers calls /// - LoadVars(as_environment* env); + LoadVars(); ~LoadVars(); @@ -138,7 +138,7 @@ if ( _onData ) _onData->setReachable(); - if ( _env ) _env->markReachableResources(); + _env.markReachableResources(); // Invoke generic as_object marker markAsObjectReachable(); @@ -227,7 +227,7 @@ boost::intrusive_ptr<as_function> _onData; - as_environment* _env; + as_environment _env; size_t _bytesTotal; @@ -259,10 +259,10 @@ unsigned int _loaded; }; -LoadVars::LoadVars(as_environment* env) +LoadVars::LoadVars() : as_object(getLoadVarsInterface()), - _env(env), + _env(), _bytesTotal(0), _bytesLoaded(0), _loadRequests(), @@ -352,7 +352,7 @@ //log_msg("Calling _onData func"); // This would be the function calls "context" // will likely be the same to all events - fn_call fn(this, _env, 0, 0); + fn_call fn(this, &_env, 0, 0); return _onData->call(fn); } @@ -366,7 +366,7 @@ //log_msg("Calling _onLoad func"); // This would be the function calls "context" // will likely be the same to all events - fn_call fn(this, _env, 0, 0); + fn_call fn(this, &_env, 0, 0); return _onLoad->call(fn); } @@ -656,7 +656,7 @@ static as_value loadvars_ctor(const fn_call& fn) { - boost::intrusive_ptr<as_object> obj = new LoadVars(&fn.env()); + boost::intrusive_ptr<as_object> obj = new LoadVars(); return as_value(obj.get()); // will keep alive } Index: server/asobj/MovieClipLoader.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/MovieClipLoader.cpp,v retrieving revision 1.36 retrieving revision 1.37 diff -u -b -r1.36 -r1.37 --- server/asobj/MovieClipLoader.cpp 20 Nov 2007 10:31:39 -0000 1.36 +++ server/asobj/MovieClipLoader.cpp 20 Nov 2007 12:04:55 -0000 1.37 @@ -116,7 +116,7 @@ struct mcl *getProgress(as_object *ao); /// MovieClip - bool loadClip(const std::string& url, sprite_instance& target, as_environment& env); + bool loadClip(const std::string& url, sprite_instance& target); void unloadClip(void *); @@ -193,7 +193,7 @@ bool -MovieClipLoader::loadClip(const std::string& url_str, sprite_instance& target, as_environment& env) +MovieClipLoader::loadClip(const std::string& url_str, sprite_instance& target) { // Prepare function call for events... //env.push(as_value(&target)); @@ -208,6 +208,7 @@ // Call the callback since we've started loading the file // TODO: probably we should move this below, after // the loading thread actually started + as_environment env; dispatchEvent("onLoadStart", env, as_value(&target)); bool ret = target.loadMovie(url); @@ -270,8 +271,6 @@ { as_value val, method; - as_environment& env = fn.env(); - //log_msg(_("%s: nargs = %d"), __FUNCTION__, fn.nargs); boost::intrusive_ptr<MovieClipLoader> ptr = ensureType<MovieClipLoader>(fn.this_ptr); @@ -309,7 +308,7 @@ str_url.c_str(), (void*)sprite); #endif - bool ret = ptr->loadClip(str_url, *sprite, fn.env()); + bool ret = ptr->loadClip(str_url, *sprite); return as_value(ret); Index: server/asobj/Object.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/Object.cpp,v retrieving revision 1.36 retrieving revision 1.37 diff -u -b -r1.36 -r1.37 --- server/asobj/Object.cpp 20 Nov 2007 00:44:04 -0000 1.36 +++ server/asobj/Object.cpp 20 Nov 2007 12:04:55 -0000 1.37 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: Object.cpp,v 1.36 2007/11/20 00:44:04 cmusick Exp $ */ +/* $Id: Object.cpp,v 1.37 2007/11/20 12:04:55 cmusick Exp $ */ #include "tu_config.h" #include "Object.h" @@ -296,7 +296,7 @@ // TODO: check to *which* definition should we ask the export // this code uses the *relative* root of current environment's target - movie_definition* def = fn.env().get_target()->get_root_movie()->get_movie_definition(); + movie_definition* def = VM::get().getRoot().get_movie_definition(); boost::intrusive_ptr<resource> exp_res = def->get_exported_resource(symbolid.c_str()); if ( ! exp_res ) { Index: server/asobj/Sound.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/Sound.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -u -b -r1.21 -r1.22 --- server/asobj/Sound.cpp 20 Nov 2007 00:44:04 -0000 1.21 +++ server/asobj/Sound.cpp 20 Nov 2007 12:04:55 -0000 1.22 @@ -30,6 +30,7 @@ #include "GnashException.h" #include "builtin_function.h" #include "Object.h" // for getObjectInterface +#include "VM.h" #ifdef SOUND_GST #include "SoundGst.h" @@ -289,7 +290,7 @@ const std::string& name = fn.arg(0).to_string(); // check the import. - movie_definition* def = fn.env().get_target()->get_root_movie()->get_movie_definition(); + movie_definition* def = VM::get().getRoot().get_movie_definition(); assert(def); boost::intrusive_ptr<resource> res = def->get_exported_resource(name); if (res == NULL) @@ -343,7 +344,7 @@ } // check the import. - movie_definition* def = fn.env().get_target()->get_root_movie()->get_movie_definition(); + movie_definition* def = VM::get().getRoot().get_movie_definition(); assert(def); boost::intrusive_ptr<resource> res = def->get_exported_resource(name); if (res == NULL) Index: server/asobj/string.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/string.cpp,v retrieving revision 1.42 retrieving revision 1.43 diff -u -b -r1.42 -r1.43 --- server/asobj/string.cpp 20 Nov 2007 00:44:04 -0000 1.42 +++ server/asobj/string.cpp 20 Nov 2007 12:04:55 -0000 1.43 @@ -16,7 +16,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -/* $Id: string.cpp,v 1.42 2007/11/20 00:44:04 cmusick Exp $ */ +/* $Id: string.cpp,v 1.43 2007/11/20 12:04:55 cmusick Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -228,7 +228,7 @@ boost::intrusive_ptr<as_array_object> array(new as_array_object()); - int SWFVersion = fn.env().get_version(); + int SWFVersion = VM::get().getSWFVersion(); if (fn.nargs == 0) { @@ -342,8 +342,6 @@ ENSURE_FN_ARGS(1, 2, str); - as_environment& env = fn.env(); - int start = valid_index(str, fn.arg(0).to_int()); int num = str.size(); Index: server/asobj/xml.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/xml.cpp,v retrieving revision 1.54 retrieving revision 1.55 diff -u -b -r1.54 -r1.55 --- server/asobj/xml.cpp 20 Nov 2007 10:31:39 -0000 1.54 +++ server/asobj/xml.cpp 20 Nov 2007 12:04:56 -0000 1.55 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: xml.cpp,v 1.54 2007/11/20 10:31:39 cmusick Exp $ */ +/* $Id: xml.cpp,v 1.55 2007/11/20 12:04:56 cmusick Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -402,7 +402,7 @@ } void -XML::queueLoad(std::auto_ptr<tu_file> str, as_environment& env) +XML::queueLoad(std::auto_ptr<tu_file> str) { GNASH_REPORT_FUNCTION; @@ -439,7 +439,7 @@ // This reads in an XML file from disk and parses into into a memory resident // tree which can be walked through later. bool -XML::load(const URL& url, as_environment& env) +XML::load(const URL& url) { GNASH_REPORT_FUNCTION; @@ -455,7 +455,7 @@ } log_msg(_("Loading XML file from url: '%s'"), url.str().c_str()); - queueLoad(str, env); + queueLoad(str); return true; } @@ -539,7 +539,7 @@ // Set the argument to the function event handler based on whether the load // was successful or failed. - ret = xml_obj->load(url, fn.env()); + ret = xml_obj->load(url); rv = ret; if (ret == false) { @@ -599,7 +599,7 @@ { if ( fn.arg(0).is_object() ) { - boost::intrusive_ptr<as_object> obj = fn.env().top(0).to_object(); + boost::intrusive_ptr<as_object> obj = fn.arg(0).to_object(); xml_obj = boost::dynamic_pointer_cast<XML>(obj); if ( xml_obj ) { @@ -782,7 +782,6 @@ string_table& st = vm.getStringTable(); string_table::key onLoadKey = st.find(PROPNAME("onLoad")); string_table::key loadedKey = st.find("loaded"); - as_environment& env = fn.env(); as_object* thisPtr = fn.this_ptr.get(); assert(thisPtr); Index: server/asobj/xml.h =================================================================== RCS file: /sources/gnash/gnash/server/asobj/xml.h,v retrieving revision 1.21 retrieving revision 1.22 diff -u -b -r1.21 -r1.22 --- server/asobj/xml.h 20 Oct 2007 10:47:14 -0000 1.21 +++ server/asobj/xml.h 20 Nov 2007 12:04:56 -0000 1.22 @@ -129,7 +129,7 @@ // The environment to use for calling event hadlers // TODO: what about 'this' pointer? // - bool load(const URL& url, as_environment& env); + bool load(const URL& url); // An event handler that returns a bool onLoad(); @@ -227,7 +227,7 @@ void initParser(); /// Queue a load request from the given stream - void queueLoad(std::auto_ptr<tu_file> str, as_environment& env); + void queueLoad(std::auto_ptr<tu_file> str); //static void _xmlErrorHandler(void *ctx, const char* fmt, ...); }; Index: server/asobj/xmlsocket.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/xmlsocket.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -u -b -r1.38 -r1.39 --- server/asobj/xmlsocket.cpp 20 Nov 2007 10:31:40 -0000 1.38 +++ server/asobj/xmlsocket.cpp 20 Nov 2007 12:04:56 -0000 1.39 @@ -106,7 +106,7 @@ /// The method will take care of polling from the /// socket and invoking any onData handler. /// - void checkForIncomingData(as_environment& env); + void checkForIncomingData(); XMLSocket obj; @@ -455,7 +455,6 @@ // XMLSocket.connect() returned in these cases. // log_debug(_("XMLSocket.connect(): tring to call onConnect")); - as_environment& env = fn.env(); ptr->callMethod(st.find(PROPNAME("onConnect")), success); if ( success ) @@ -533,7 +532,7 @@ return as_value(); } - ptr->checkForIncomingData(fn.env()); + ptr->checkForIncomingData(); return as_value(); } @@ -556,7 +555,6 @@ return as_value(); } - as_environment& env = fn.env(); const std::string& xmlin = fn.arg(0).to_string(); if ( xmlin.empty() ) @@ -641,7 +639,7 @@ } void -xmlsocket_as_object::checkForIncomingData(as_environment& env) +xmlsocket_as_object::checkForIncomingData() { assert(obj.connected()); @@ -676,8 +674,11 @@ #ifndef USE_DMALLOC //dump_memory_stats(__FUNCTION__, __LINE__, "start"); #endif + as_environment env; env.push(datain); - call_method(as_value(onDataHandler.get()), &env, this, 1, env.stack_size()-1); + fn_call call(this, &env, 1, env.stack_size() - 1); + onDataHandler->call(call); +// call_method(as_value(onDataHandler.get()), &env, this, 1, env.stack_size()-1); #ifndef USE_DMALLOC //dump_memory_stats(__FUNCTION__, __LINE__, "end"); _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit