gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/asobj/xmlsocket.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/xmlsocket.cpp
Date: Wed, 10 Oct 2007 14:53:17 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/10/10 14:53:17

Modified files:
        .              : ChangeLog 
        server/asobj   : xmlsocket.cpp 

Log message:
                * server/asobj/xmlsocket.cpp: don't use non-configured 
as_environment
                  for user-defined event handlers invocation.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4589&r2=1.4590
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xmlsocket.cpp?cvsroot=gnash&r1=1.34&r2=1.35

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4589
retrieving revision 1.4590
diff -u -b -r1.4589 -r1.4590
--- ChangeLog   10 Oct 2007 14:07:57 -0000      1.4589
+++ ChangeLog   10 Oct 2007 14:53:16 -0000      1.4590
@@ -1,3 +1,8 @@
+2007-10-10 Sandro Santilli <address@hidden>
+
+       * server/asobj/xmlsocket.cpp: don't use non-configured as_environment
+         for user-defined event handlers invocation.
+
 2007-10-10 Benjamin Wolsey <address@hidden>
 
        * server/asobj/Key.{h,cpp}: change is_key_down() to take SWF keycode

Index: server/asobj/xmlsocket.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xmlsocket.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- server/asobj/xmlsocket.cpp  19 Sep 2007 14:20:50 -0000      1.34
+++ server/asobj/xmlsocket.cpp  10 Oct 2007 14:53:17 -0000      1.35
@@ -444,6 +444,9 @@
     
     bool success = ptr->obj.connect(host.c_str(), port);
     
+    VM& vm = VM::get();
+    string_table& st = vm.getStringTable();
+    
     // Actually, if first-stage connection was successful, we
     // should NOT invoke onConnect(true) here, but postpone
     // that event call to a second-stage connection checking,
@@ -451,14 +454,9 @@
     // confirm this is that onConnect is invoked *after* 
     // XMLSocket.connect() returned in these cases.
     //
-       boost::intrusive_ptr<as_function> handler = 
ptr->getEventHandler("onConnect");
-    if ( handler )
-    {
-        log_msg(_("XMLSocket.connect(): calling onConnect"));
-        as_environment env;
-        env.push(success);
-        val = call_method(handler.get(), &env, ptr.get(), 1, 
env.stack_size()-1); 
-    }
+    log_debug(_("XMLSocket.connect(): tring to call onConnect"));
+    as_environment& env = fn.env();
+    ptr->callMethod(st.find(PROPNAME("onConnect")), env, success);
            
     if ( success )
     {
@@ -468,7 +466,7 @@
         boost::intrusive_ptr<builtin_function> ondata_handler = new 
builtin_function(&xmlsocket_inputChecker, NULL);
         unsigned interval = 50; // just make sure it's expired at every frame 
iteration (20 FPS used here)
         timer->setInterval(*ondata_handler, interval, 
boost::dynamic_pointer_cast<as_object>(ptr));
-        VM::get().getRoot().add_interval_timer(timer, true);
+        vm.getRoot().add_interval_timer(timer, true);
 
         log_msg(_("Timer set"));
     }
@@ -550,15 +548,6 @@
     
     boost::intrusive_ptr<xmlsocket_as_object> ptr = 
ensureType<xmlsocket_as_object>(fn.this_ptr);
 
-    boost::intrusive_ptr<as_function> onXMLEvent = 
ptr->getEventHandler("onXML");
-    if ( ! onXMLEvent )
-    {
-            log_msg(_("Builtin XMLSocket.onData doing nothing as no "
-                            "onXML event is defined on XMLSocket %p"),
-                            (void*)ptr.get());
-            return as_value();
-    }
-
     if ( fn.nargs < 1 )
     {
         IF_VERBOSE_ASCODING_ERRORS(
@@ -579,9 +568,13 @@
     }
 
     boost::intrusive_ptr<as_object> xml = new XML(xmlin);
+    as_value arg(xml.get());
+
+    VM& vm = VM::get();
+    string_table& st = vm.getStringTable();
+    
+    ptr->callMethod(st.find(PROPNAME("onXML")), env, arg);
 
-    env.push(xml);
-    call_method(as_value(onXMLEvent.get()), &env, ptr.get(), 1, 
env.stack_size()-1);
     return as_value();
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]