gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/trunk r11190: Some loaded / total bytes re


From: Benjamin Wolsey
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r11190: Some loaded / total bytes related fixes.
Date: Wed, 01 Jul 2009 09:52:24 +0200
User-agent: Bazaar (1.13.1)

------------------------------------------------------------
revno: 11190
committer: Benjamin Wolsey <address@hidden>
branch nick: trunk
timestamp: Wed 2009-07-01 09:52:24 +0200
message:
  Some loaded / total bytes related fixes.
modified:
  libcore/asobj/LoadVars_as.cpp
  libcore/asobj/LoadableObject.cpp
  libcore/asobj/LoadableObject.h
  libcore/asobj/System_as.cpp
  libcore/asobj/flash/xml/XMLDocument_as.cpp
  libcore/asobj/flash/xml/XMLNode_as.cpp
  testsuite/actionscript.all/LoadVars.as
  testsuite/actionscript.all/XML.as
    ------------------------------------------------------------
    revno: 11189.1.1
    committer: Benjamin Wolsey <address@hidden>
    branch nick: temp
    timestamp: Wed 2009-07-01 07:55:15 +0200
    message:
      Cleanup LoadVars.
    modified:
      libcore/asobj/LoadVars_as.cpp
    ------------------------------------------------------------
    revno: 11189.1.2
    committer: Benjamin Wolsey <address@hidden>
    branch nick: temp
    timestamp: Wed 2009-07-01 07:59:44 +0200
    message:
      NetStream probably does support SSL.
    modified:
      libcore/asobj/System_as.cpp
    ------------------------------------------------------------
    revno: 11189.1.3
    committer: Benjamin Wolsey <address@hidden>
    branch nick: temp
    timestamp: Wed 2009-07-01 08:52:42 +0200
    message:
      Silence unused parameter warnings.
    modified:
      libcore/asobj/flash/xml/XMLDocument_as.cpp
      libcore/asobj/flash/xml/XMLNode_as.cpp
    ------------------------------------------------------------
    revno: 11189.1.4
    committer: Benjamin Wolsey <address@hidden>
    branch nick: temp
    timestamp: Wed 2009-07-01 09:10:36 +0200
    message:
      Update _bytesTotal and _bytesLoaded properties after each advance().
            
      Add _bytesTotal and _bytesLoaded members to LoadableObjects (XML, 
LoadVars)
      on call to load().
            
      Make getBytesTotal() and getBytesLoaded() return the value of the 
respective
      properties.
    modified:
      libcore/asobj/LoadableObject.cpp
      libcore/asobj/LoadableObject.h
    ------------------------------------------------------------
    revno: 11189.1.5
    committer: Benjamin Wolsey <address@hidden>
    branch nick: temp
    timestamp: Wed 2009-07-01 09:11:02 +0200
    message:
      Use the loadableobject methods for getBytesLoaded, getBytesTotal.
    modified:
      libcore/asobj/LoadVars_as.cpp
    ------------------------------------------------------------
    revno: 11189.1.6
    committer: Benjamin Wolsey <address@hidden>
    branch nick: temp
    timestamp: Wed 2009-07-01 09:11:11 +0200
    message:
      Use the loadableobject methods for getBytesLoaded, getBytesTotal.
    modified:
      libcore/asobj/flash/xml/XMLDocument_as.cpp
    ------------------------------------------------------------
    revno: 11189.1.7
    committer: Benjamin Wolsey <address@hidden>
    branch nick: temp
    timestamp: Wed 2009-07-01 09:11:33 +0200
    message:
      New tests, passes for old expected failures.
    modified:
      testsuite/actionscript.all/LoadVars.as
    ------------------------------------------------------------
    revno: 11189.1.8
    committer: Benjamin Wolsey <address@hidden>
    branch nick: temp
    timestamp: Wed 2009-07-01 09:12:16 +0200
    message:
      XML tests pass.
    modified:
      testsuite/actionscript.all/XML.as
    ------------------------------------------------------------
    revno: 11189.1.9
    committer: Benjamin Wolsey <address@hidden>
    branch nick: temp
    timestamp: Wed 2009-07-01 09:27:20 +0200
    message:
      Don't replicate interface to class. I don't know why we do this all
      over the place.
    modified:
      libcore/asobj/LoadVars_as.cpp
=== modified file 'libcore/asobj/LoadVars_as.cpp'
--- a/libcore/asobj/LoadVars_as.cpp     2009-04-20 13:59:41 +0000
+++ b/libcore/asobj/LoadVars_as.cpp     2009-07-01 07:27:20 +0000
@@ -39,8 +39,19 @@
 
 namespace gnash {
 
-static as_value loadvars_tostring(const fn_call& fn);
-static as_value loadvars_ctor(const fn_call& fn);
+namespace {
+
+    as_value loadvars_tostring(const fn_call& fn);
+    as_value loadvars_ctor(const fn_call& fn);
+       as_value loadvars_onLoad(const fn_call& fn);
+       as_value loadvars_getBytesLoaded(const fn_call& fn);
+       as_value loadvars_getBytesTotal(const fn_call& fn);
+       as_value loadvars_onData(const fn_call& fn);
+       as_value loadvars_onLoad(const fn_call& fn);
+       
+    as_object* getLoadVarsInterface();
+       void attachLoadVarsInterface(as_object& o);
+}
 
 //--------------------------------------------
 
@@ -58,10 +69,6 @@
 
        ~LoadVars_as() {};
 
-       static as_object* getLoadVarsInterface();
-
-       static void attachLoadVarsInterface(as_object& o);
-
     /// Convert the LoadVars Object to a string.
     //
     /// @param o        The ostream to write the string to.
@@ -88,16 +95,6 @@
 
 private:
 
-       static as_value onLoad_getset(const fn_call& fn);
-
-       static as_value getBytesLoaded_method(const fn_call& fn);
-
-       static as_value getBytesTotal_method(const fn_call& fn);
-
-       static as_value onData_method(const fn_call& fn);
-
-       static as_value onLoad_method(const fn_call& fn);
-
        boost::intrusive_ptr<as_function> _onLoad;
 
 };
@@ -138,8 +135,31 @@
 }
 
 
-void
-LoadVars_as::attachLoadVarsInterface(as_object& o)
+// extern (used by Global.cpp)
+void
+loadvars_class_init(as_object& global)
+{
+       // This is going to be the global LoadVars "class"/"function"
+       static boost::intrusive_ptr<builtin_function> cl;
+
+       if ( cl == NULL )
+       {
+               cl=new builtin_function(&loadvars_ctor, getLoadVarsInterface());
+       }
+
+       // Register _global.LoadVars, only visible for SWF6 up
+       int swf6flags = as_prop_flags::dontEnum | 
+                    as_prop_flags::dontDelete | 
+                    as_prop_flags::onlySWF6Up;
+
+       global.init_member("LoadVars", cl.get(), swf6flags);
+
+}
+
+namespace {
+
+void
+attachLoadVarsInterface(as_object& o)
 {
     VM& vm = o.getVM();
 
@@ -147,47 +167,30 @@
                    LoadableObject::loadableobject_addRequestHeader));
        o.init_member("decode", vm.getNative(301, 3));
        o.init_member("getBytesLoaded", new builtin_function(
-                   LoadVars_as::getBytesLoaded_method));
+                   LoadableObject::loadableobject_getBytesLoaded));
        o.init_member("getBytesTotal", new builtin_function(
-                   LoadVars_as::getBytesTotal_method));
+                LoadableObject::loadableobject_getBytesTotal));
        o.init_member("load", vm.getNative(301, 0));
        o.init_member("send", vm.getNative(301, 1));
        o.init_member("sendAndLoad", vm.getNative(301, 2));
        o.init_member("toString", new builtin_function(loadvars_tostring));
-       o.init_member("onData", new 
builtin_function(LoadVars_as::onData_method));
-       o.init_member("onLoad", new 
builtin_function(LoadVars_as::onLoad_method));
+       o.init_member("onData", new builtin_function(loadvars_onData));
+       o.init_member("onLoad", new builtin_function(loadvars_onLoad));
 }
 
 as_object*
-LoadVars_as::getLoadVarsInterface()
+getLoadVarsInterface()
 {
        static boost::intrusive_ptr<as_object> o;
-       if ( ! o )
-       {
+       if (!o) {
                o = new as_object(getObjectInterface());
                attachLoadVarsInterface(*o);
        }
        return o.get();
 }
 
-
-as_value
-LoadVars_as::getBytesLoaded_method(const fn_call& fn)
-{
-       boost::intrusive_ptr<LoadVars_as> ptr = 
ensureType<LoadVars_as>(fn.this_ptr);
-       return as_value(ptr->getBytesLoaded());
-}
-
-as_value
-LoadVars_as::getBytesTotal_method(const fn_call& fn)
-{
-       boost::intrusive_ptr<LoadVars_as> ptr =
-        ensureType<LoadVars_as>(fn.this_ptr);
-       return as_value(ptr->getBytesTotal());
-}
-
-as_value
-LoadVars_as::onData_method(const fn_call& fn)
+as_value
+loadvars_onData(const fn_call& fn)
 {
 
        as_object* thisPtr = fn.this_ptr.get();
@@ -216,14 +219,14 @@
 }
 
 as_value
-LoadVars_as::onLoad_method(const fn_call& /*fn*/)
+loadvars_onLoad(const fn_call& /*fn*/)
 {
        //GNASH_REPORT_FUNCTION;
        return as_value();
 }
 
 
-static as_value
+as_value
 loadvars_tostring(const fn_call& fn)
 {
        boost::intrusive_ptr<LoadVars_as> ptr =
@@ -255,28 +258,5 @@
        return as_value(obj.get()); // will keep alive
 }
 
-// extern (used by Global.cpp)
-void
-loadvars_class_init(as_object& global)
-{
-       // This is going to be the global LoadVars "class"/"function"
-       static boost::intrusive_ptr<builtin_function> cl;
-
-       if ( cl == NULL )
-       {
-               cl=new builtin_function(&loadvars_ctor,
-                LoadVars_as::getLoadVarsInterface());
-               // replicate all interface to class, to be able to access
-               // all methods as static functions
-               LoadVars_as::attachLoadVarsInterface(*cl);
-                    
-       }
-
-       // Register _global.LoadVars, only visible for SWF6 up
-       int swf6flags = 
as_prop_flags::dontEnum|as_prop_flags::dontDelete|as_prop_flags::onlySWF6Up;
-       global.init_member("LoadVars", cl.get(), swf6flags);
-
-}
-
-
+} // anonymous namespace
 } // end of gnash namespace

=== modified file 'libcore/asobj/LoadableObject.cpp'
--- a/libcore/asobj/LoadableObject.cpp  2009-06-03 16:05:40 +0000
+++ b/libcore/asobj/LoadableObject.cpp  2009-07-01 07:10:36 +0000
@@ -257,13 +257,23 @@
             it = _loadThreads.erase(it);
             delete lt; // supposedly joins the thread...
 
+            string_table& st = _vm.getStringTable();
+            set_member(st.find("_bytesLoaded"), _bytesLoaded);
+            set_member(st.find("_bytesTotal"), _bytesTotal);
+            
             // might push_front on the list..
             callMethod(NSV::PROP_ON_DATA, dataVal);
 
         }
         else
         {
+            _bytesTotal = lt->getBytesTotal();
             _bytesLoaded = lt->getBytesLoaded();
+            
+            string_table& st = _vm.getStringTable();
+            set_member(st.find("_bytesLoaded"), _bytesLoaded);
+            // TODO: should this really be set on each iteration?
+            set_member(st.find("_bytesTotal"), _bytesTotal);
             ++it;
         }
     }
@@ -288,6 +298,27 @@
     vm.registerNative(loadableobject_decode, 301, 3);
 }
 
+as_value
+LoadableObject::loadableobject_getBytesLoaded(const fn_call& fn)
+{
+       boost::intrusive_ptr<as_object> ptr = 
ensureType<as_object>(fn.this_ptr);
+
+    as_value bytesLoaded;
+    string_table& st = fn.getVM().getStringTable();
+    ptr->get_member(st.find("_bytesLoaded"), &bytesLoaded);
+    return bytesLoaded;
+}
+    
+as_value
+LoadableObject::loadableobject_getBytesTotal(const fn_call& fn)
+{
+       boost::intrusive_ptr<as_object> ptr = 
ensureType<as_object>(fn.this_ptr);
+
+    as_value bytesTotal;
+    string_table& st = fn.getVM().getStringTable();
+    ptr->get_member(st.find("_bytesTotal"), &bytesTotal);
+    return bytesTotal;
+}
 
 /// Can take either a two strings as arguments or an array of strings,
 /// alternately header and value.
@@ -512,7 +543,12 @@
        }
 
        obj->load(urlstr);
-       return as_value(true);
+    
+    string_table& st = obj->getVM().getStringTable();
+    obj->set_member(st.find("_bytesLoaded"), 0.0);
+    obj->set_member(st.find("_bytesTotal"), as_value());
+
+    return as_value(true);
 
 }
 

=== modified file 'libcore/asobj/LoadableObject.h'
--- a/libcore/asobj/LoadableObject.h    2009-03-16 10:40:30 +0000
+++ b/libcore/asobj/LoadableObject.h    2009-07-01 07:10:36 +0000
@@ -90,6 +90,10 @@
     /// Shared AS methods for XML and LoadVars, which can be used
     /// interchangeably with each object in ActionScript.
     static as_value loadableobject_addRequestHeader(const fn_call& fn);
+    
+    /// These functions return the value of _bytesTotal and _bytesLoaded
+    static as_value loadableobject_getBytesLoaded(const fn_call& fn);
+    static as_value loadableobject_getBytesTotal(const fn_call& fn);
 
     /// Scan the LoadThread queue (_loadThreads) to see if any of
     /// them completed. If any did, invoke the onData event

=== modified file 'libcore/asobj/System_as.cpp'
--- a/libcore/asobj/System_as.cpp       2009-04-03 09:18:40 +0000
+++ b/libcore/asobj/System_as.cpp       2009-07-01 05:59:44 +0000
@@ -125,7 +125,7 @@
 
     // FIXME: these need to be implemented properly 
     // Does the NetStream object natively support SSL?
-       const bool hasTLS = false;
+       const bool hasTLS = true;
 
     // Microphone and camera access disabled
        const bool avHardwareDisable = false;

=== modified file 'libcore/asobj/flash/xml/XMLDocument_as.cpp'
--- a/libcore/asobj/flash/xml/XMLDocument_as.cpp        2009-06-15 14:52:55 
+0000
+++ b/libcore/asobj/flash/xml/XMLDocument_as.cpp        2009-07-01 07:11:11 
+0000
@@ -55,8 +55,6 @@
     as_value xml_new(const fn_call& fn);
     as_value xml_createElement(const fn_call& fn);
     as_value xml_createTextNode(const fn_call& fn);
-    as_value xml_getBytesLoaded(const fn_call& fn);
-    as_value xml_getBytesTotal(const fn_call& fn);
     as_value xml_parseXML(const fn_call& fn);
     as_value xml_ondata(const fn_call& fn);
     as_value xml_xmlDecl(const fn_call& fn);
@@ -668,10 +666,10 @@
                 LoadableObject::loadableobject_addRequestHeader), flags);
     o.init_member("createElement", vm.getNative(253, 8), flags);
     o.init_member("createTextNode", vm.getNative(253, 9), flags);
-    o.init_member("getBytesLoaded", 
-            new builtin_function(xml_getBytesLoaded), flags);
-    o.init_member("getBytesTotal", 
-            new builtin_function(xml_getBytesTotal), flags);
+    o.init_member("getBytesLoaded", new builtin_function(
+                LoadableObject::loadableobject_getBytesLoaded), flags);
+    o.init_member("getBytesTotal", new builtin_function(
+                LoadableObject::loadableobject_getBytesTotal), flags);
     o.init_member("load", vm.getNative(301, 0), flags);
     o.init_member("parseXML", vm.getNative(253, 10), flags); 
     o.init_member("send", vm.getNative(301, 1), flags);
@@ -802,26 +800,6 @@
 
 
 as_value
-xml_getBytesLoaded(const fn_call& fn)
-{
-    boost::intrusive_ptr<XMLDocument_as> ptr = 
ensureType<XMLDocument_as>(fn.this_ptr);
-    long int ret = ptr->getBytesLoaded();
-    if ( ret < 0 ) return as_value();
-    else return as_value(ret);
-}
-
-
-as_value
-xml_getBytesTotal(const fn_call& fn)
-{
-    boost::intrusive_ptr<XMLDocument_as> ptr = 
ensureType<XMLDocument_as>(fn.this_ptr);
-    long int ret = ptr->getBytesTotal();
-    if ( ret < 0 ) return as_value();
-    else return as_value(ret);
-}
-
-
-as_value
 xml_parseXML(const fn_call& fn)
 {
 
@@ -972,7 +950,7 @@
 }
 
 as_value
-xmldocument_ctor(const fn_call& fn)
+xmldocument_ctor(const fn_call& /*fn*/)
 {
     boost::intrusive_ptr<as_object> obj = new XMLDocument_as;
 

=== modified file 'libcore/asobj/flash/xml/XMLNode_as.cpp'
--- a/libcore/asobj/flash/xml/XMLNode_as.cpp    2009-06-08 16:10:02 +0000
+++ b/libcore/asobj/flash/xml/XMLNode_as.cpp    2009-07-01 06:52:42 +0000
@@ -985,12 +985,13 @@
 }
 
 as_value
-xmlnode_ctor(const fn_call& fn)
+xmlnode_ctor(const fn_call& /*fn*/)
 {
     boost::intrusive_ptr<as_object> obj = new XMLNode_as;
 
     return as_value(obj.get()); // will keep alive
 }
+
 } // anonymous namespace 
 } // gnash namespace
 // local Variables:

=== modified file 'testsuite/actionscript.all/LoadVars.as'
--- a/testsuite/actionscript.all/LoadVars.as    2009-04-20 13:59:41 +0000
+++ b/testsuite/actionscript.all/LoadVars.as    2009-07-01 07:11:33 +0000
@@ -180,7 +180,7 @@
 // For checking that the data were loaded with XML.prototype.load.
 x.onLoad = function(success) {
     check_equals(x['var2'], 'val2');
-    check_totals(140);
+    check_totals(144);
     play();
 };
 
@@ -285,9 +285,9 @@
 
        check_equals (loadvarsObj.getBytesTotal(), 
loadvarsObj.getBytesLoaded());
        check_equals (loadvarsObj.getBytesLoaded(), 1126);
-       xcheck_equals (loadvarsObj.getBytesTotal(), loadvarsObj._bytesTotal);
+       check_equals (loadvarsObj.getBytesTotal(), loadvarsObj._bytesTotal);
        check_equals (loadvarsObj._bytesLoaded, loadvarsObj._bytesTotal);
-       xcheck_equals (loadvarsObj._bytesLoaded, 1126);
+       check_equals (loadvarsObj._bytesLoaded, 1126);
        check_equals (this, loadvarsObj);
        check_equals(arguments.length, 1);
        check_equals(typeof(success), 'boolean');
@@ -305,9 +305,9 @@
        //for (var i in _root) { note("_root["+i+"] = "+_root[i]); }
 
     loadvarsObj._bytesTotal = 3;
-       xcheck_equals (loadvarsObj.getBytesTotal(), 3);
+       check_equals (loadvarsObj.getBytesTotal(), 3);
     loadvarsObj._bytesLoaded = 5;
-       xcheck_equals (loadvarsObj.getBytesLoaded(), 5);
+       check_equals (loadvarsObj.getBytesLoaded(), 5);
 
        if ( varsloaded == 1 )
        {
@@ -361,8 +361,15 @@
 check(!loadvarsObj.hasOwnProperty('_bytesLoaded'));
 check(!loadvarsObj.hasOwnProperty('_bytesTotal'));
 check( loadvarsObj.load( MEDIA(vars.txt) ) );
-xcheck(loadvarsObj.hasOwnProperty('_bytesLoaded'));
-xcheck(loadvarsObj.hasOwnProperty('_bytesTotal'));
+
+check(loadvarsObj.hasOwnProperty('_bytesLoaded'));
+check(loadvarsObj.hasOwnProperty('_bytesTotal'));
+
+check_equals(loadvarsObj._bytesLoaded, 0);
+check_equals(loadvarsObj._bytesTotal, undefined);
+check_equals(loadvarsObj.getBytesLoaded(), 0);
+check_equals(loadvarsObj.getBytesTotal(), undefined);
+
 check_equals(typeof(this.loaded), 'undefined');
 //loadvarsObj.load( 'vars.cgi' );
 

=== modified file 'testsuite/actionscript.all/XML.as'
--- a/testsuite/actionscript.all/XML.as 2009-06-08 16:08:56 +0000
+++ b/testsuite/actionscript.all/XML.as 2009-07-01 07:12:16 +0000
@@ -899,8 +899,8 @@
 
 ret = myxml.load( MEDIA(gnash.xml) );
 
-xcheck(myxml.hasOwnProperty('_bytesLoaded'));
-xcheck(myxml.hasOwnProperty('_bytesTotal'));
+check(myxml.hasOwnProperty('_bytesLoaded'));
+check(myxml.hasOwnProperty('_bytesTotal'));
 
 check_equals(typeof(myxml.loaded), 'boolean');
 #if OUTPUT_VERSION < 7


reply via email to

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