[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/timers.cpp testsuite/mis...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/timers.cpp testsuite/mis... |
Date: |
Wed, 07 May 2008 13:32:00 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/05/07 13:32:00
Modified files:
. : ChangeLog
server : timers.cpp
testsuite/misc-ming.all: intervalTest.as
Log message:
* server/timers.cpp (execute): compute super.
* testsuite/misc-ming.all/intervalTest.as: successes.
NOTE: we really need a central place for methods calling, or we'll keep
breaking layering. A virtual as_object::callMethod(..) should do.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6541&r2=1.6542
http://cvs.savannah.gnu.org/viewcvs/gnash/server/timers.cpp?cvsroot=gnash&r1=1.48&r2=1.49
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-ming.all/intervalTest.as?cvsroot=gnash&r1=1.8&r2=1.9
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6541
retrieving revision 1.6542
diff -u -b -r1.6541 -r1.6542
--- ChangeLog 7 May 2008 13:06:20 -0000 1.6541
+++ ChangeLog 7 May 2008 13:31:59 -0000 1.6542
@@ -1,5 +1,10 @@
2008-05-07 Sandro Santilli <address@hidden>
+ * server/timers.cpp (execute): compute super.
+ * testsuite/misc-ming.all/intervalTest.as: successes.
+
+2008-05-07 Sandro Santilli <address@hidden>
+
* testsuite/misc-ming.all/: intervalTest.as, intervalTestRunner.cpp:
Add test for 'super' in setInterval-set method call (comment #3
in bug #23130).
Index: server/timers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/timers.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- server/timers.cpp 5 Mar 2008 03:56:00 -0000 1.48
+++ server/timers.cpp 7 May 2008 13:32:00 -0000 1.49
@@ -128,18 +128,31 @@
as_value timer_method;
+ as_object* super = NULL;
+
if ( _function.get() )
{
timer_method.set_as_function(_function.get());
}
else
{
- as_value tmp;
- if (!_object->get_member(VM::get().getStringTable().find(_methodName),
&tmp) )
+ VM& vm = VM::get();
+ string_table::key k = vm.getStringTable().find(_methodName);
+ as_object* owner = NULL;
+ Property* p = _object->findProperty(k, 0, &owner);
+ if ( ! p )
{
- //log_debug("Can't find interval method %s on object %p (%s)",
_methodName.c_str(), (void*)_object.get(), _object->get_text_value().c_str());
+ //log_debug("member %s of object %p (interval method) can't be
found",
+ // _methodName, (void*)_object.get());
return;
}
+ if ( _object->isSuper() )
+ {
+ log_unimpl("Getting super from a super in inteval timers");
+ }
+ super = owner->get_super();
+
+ as_value tmp = p->getValue(*_object); // TODO: check visibility flags ?
as_function* f = tmp.to_as_function();
if ( ! f )
{
@@ -163,7 +176,7 @@
size_t firstArgBottomIndex = env.stack_size()-1;
as_value val = call_method(timer_method, &env, _object.get(),
- _args.size(), firstArgBottomIndex);
+ _args.size(), firstArgBottomIndex, super);
}
Index: testsuite/misc-ming.all/intervalTest.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/misc-ming.all/intervalTest.as,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- testsuite/misc-ming.all/intervalTest.as 7 May 2008 13:06:21 -0000
1.8
+++ testsuite/misc-ming.all/intervalTest.as 7 May 2008 13:32:00 -0000
1.9
@@ -40,8 +40,8 @@
A.prototype.test = function() { return 'Atest'; };
B = function() {}; B.prototype = new A;
B.prototype.test = function() {
- xcheck_equals(super.test(), 'Atest');
- xcheck_equals(super.name, 'A');
+ check_equals(super.test(), 'Atest');
+ check_equals(super.name, 'A');
totals(18, __FILE__ + ":" + __LINE__ );
test_completed = 1;
clearInterval(method_interval);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/timers.cpp testsuite/mis...,
Sandro Santilli <=