[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/trunk r11190: Some loaded / total bytes related fixes.,
Benjamin Wolsey <=