gnash-commit
[Top][All Lists]
Advanced

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

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


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/NetConnection.cpp ...
Date: Tue, 30 Jan 2007 10:52:16 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/01/30 10:52:16

Modified files:
        .              : ChangeLog 
        server/asobj   : NetConnection.cpp NetStream.cpp 

Log message:
                * server/asobj/: NetConnection.cpp, NetStream.cpp:
                  Cleanups and robustness improvements.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2194&r2=1.2195
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetConnection.cpp?cvsroot=gnash&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStream.cpp?cvsroot=gnash&r1=1.23&r2=1.24

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2194
retrieving revision 1.2195
diff -u -b -r1.2194 -r1.2195
--- ChangeLog   30 Jan 2007 10:25:21 -0000      1.2194
+++ ChangeLog   30 Jan 2007 10:52:15 -0000      1.2195
@@ -1,5 +1,7 @@
 2007-01-30 Sandro Santilli <address@hidden>
 
+       * server/asobj/: NetConnection.cpp, NetStream.cpp:
+         Cleanups and robustness improvements.
        * server/parser/movie_def_impl.cpp (read_all_swf):
          Don't discard anything past the last SHOWFRAME,
          as Ming seems to still put EXPORTASSETS after it

Index: server/asobj/NetConnection.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetConnection.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- server/asobj/NetConnection.cpp      27 Jan 2007 16:55:05 -0000      1.18
+++ server/asobj/NetConnection.cpp      30 Jan 2007 10:52:15 -0000      1.19
@@ -14,7 +14,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: NetConnection.cpp,v 1.18 2007/01/27 16:55:05 tgc Exp $ */
+/* $Id: NetConnection.cpp,v 1.19 2007/01/30 10:52:15 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -157,7 +157,18 @@
        }
 
 }
-NetConnection::NetConnection() {
+NetConnection::NetConnection()
+       :
+       _cache(NULL),
+       _cachefd(0),
+       _url(),
+       _handle(NULL),
+       _mhandle(NULL),
+       _running(false),
+       localFile(true),
+       netStreamObj(NULL),
+       totalSize(0)
+{
 }
 
 NetConnection::~NetConnection() {
@@ -353,6 +364,19 @@
 {
 }
 
+// Wrapper around dynamic_cast to implement user warning.
+// To be used by builtin properties and methods.
+static netconnection_as_object*
+ensure_netconnection(as_object* obj)
+{
+       netconnection_as_object* ret = 
dynamic_cast<netconnection_as_object*>(obj);
+       if ( ! ret )
+       {
+               throw ActionException("builtin method or gettersetter for 
NetConnection objects called against non-NetConnection instance");
+       }
+       return ret;
+}
+
 
 /// \brief callback to instantiate a new NetConnection object.
 /// \param fn the parameters from the Flash movie
@@ -374,11 +398,10 @@
        GNASH_REPORT_FUNCTION;
 
        string filespec;
-       netconnection_as_object *ptr = (netconnection_as_object*)fn.this_ptr;
+       netconnection_as_object *ptr = ensure_netconnection(fn.this_ptr); 
     
-       assert(ptr);
-       if (fn.nargs != 0) {
-               
ptr->obj.addToURL(fn.env->bottom(fn.first_arg_bottom_index).to_string());
+       if (fn.nargs > 0) {
+               ptr->obj.addToURL(fn.arg(0).to_string());
        }    
 }
 

Index: server/asobj/NetStream.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStream.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- server/asobj/NetStream.cpp  23 Jan 2007 16:41:27 -0000      1.23
+++ server/asobj/NetStream.cpp  30 Jan 2007 10:52:15 -0000      1.24
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: NetStream.cpp,v 1.23 2007/01/23 16:41:27 tgc Exp $ */
+/* $Id: NetStream.cpp,v 1.24 2007/01/30 10:52:15 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -28,6 +28,7 @@
 #include "NetStream.h"
 #include "fn_call.h"
 #include "builtin_function.h"
+#include "GnashException.h"
 
 #include "movie_root.h"
 
@@ -66,7 +67,7 @@
                else
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                               log_warning("First argument "
+                               log_aserror("First argument "
                                        "to NetConnection constructor "
                                        "doesn't cast to an Object (%s)",
                                        fn.arg(0).to_string());
@@ -77,18 +78,29 @@
 
 }
 
+// Wrapper around dynamic_cast to implement user warning.
+// To be used by builtin properties and methods.
+static netstream_as_object*
+ensure_netstream(as_object* obj)
+{
+       netstream_as_object* ret = dynamic_cast<netstream_as_object*>(obj);
+       if ( ! ret )
+       {
+               throw ActionException("builtin method or gettersetter for 
NetStream objects called against non-NetStream instance");
+       }
+       return ret;
+}
+
 
 static void netstream_close(const fn_call& fn)
 {
-       assert(dynamic_cast<netstream_as_object*>(fn.this_ptr));
-       netstream_as_object* ns = 
static_cast<netstream_as_object*>(fn.this_ptr);
+       netstream_as_object* ns = ensure_netstream(fn.this_ptr);
        ns->obj.close();
 }
 
 static void netstream_pause(const fn_call& fn)
 {
-       assert(dynamic_cast<netstream_as_object*>(fn.this_ptr));
-       netstream_as_object* ns = 
static_cast<netstream_as_object*>(fn.this_ptr);
+       netstream_as_object* ns = ensure_netstream(fn.this_ptr);
        
        // mode: -1 ==> toogle, 0==> pause, 1==> play
        int mode = -1;
@@ -101,12 +113,13 @@
 
 static void netstream_play(const fn_call& fn)
 {
-       assert(dynamic_cast<netstream_as_object*>(fn.this_ptr));
-       netstream_as_object* ns = 
static_cast<netstream_as_object*>(fn.this_ptr);
+       netstream_as_object* ns = ensure_netstream(fn.this_ptr);
 
        if (fn.nargs < 1)
        {
-               log_error("NetStream play needs args\n");
+               IF_VERBOSE_ASCODING_ERRORS(
+               log_aserror("NetStream play needs args");
+               );
                return;
        }
 
@@ -117,8 +130,7 @@
 }
 
 static void netstream_seek(const fn_call& fn) {
-       assert(dynamic_cast<netstream_as_object*>(fn.this_ptr));
-       netstream_as_object* ns = 
static_cast<netstream_as_object*>(fn.this_ptr);
+       netstream_as_object* ns = ensure_netstream(fn.this_ptr);
 
        double time = 0;
        if (fn.nargs > 0)
@@ -128,7 +140,9 @@
        ns->obj.seek(time);
 
 }
-static void netstream_setbuffertime(const fn_call& /*fn*/) {
+static void netstream_setbuffertime(const fn_call& fn) {
+       netstream_as_object* ns = ensure_netstream(fn.this_ptr);
+       UNUSED(ns);
     log_msg("%s:unimplemented \n", __FUNCTION__);
 }
 
@@ -137,12 +151,11 @@
 netstream_time(const fn_call& fn)
 {
 
-       assert(dynamic_cast<netstream_as_object*>(fn.this_ptr));
-       netstream_as_object* ns = 
static_cast<netstream_as_object*>(fn.this_ptr);
+       netstream_as_object* ns = ensure_netstream(fn.this_ptr);
 
        if ( fn.nargs == 0 )
        {
-               fn.result->set_double((double)ns->obj.time());
+               fn.result->set_double(ns->obj.time());
        }
        else
        {




reply via email to

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