[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/as_object.cpp testsuite/...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/as_object.cpp testsuite/... |
Date: |
Mon, 07 Apr 2008 18:25:42 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/04/07 18:25:42
Modified files:
. : ChangeLog
server : as_object.cpp
testsuite/actionscript.all: Object.as
Log message:
* server/as_object.cpp (add_property): invoke the watch trigger
if replacing an existing property.
* testsuite/actionscript.all/Object.as: 6 more successes.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6207&r2=1.6208
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.cpp?cvsroot=gnash&r1=1.113&r2=1.114
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Object.as?cvsroot=gnash&r1=1.61&r2=1.62
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6207
retrieving revision 1.6208
diff -u -b -r1.6207 -r1.6208
--- ChangeLog 7 Apr 2008 18:24:05 -0000 1.6207
+++ ChangeLog 7 Apr 2008 18:25:41 -0000 1.6208
@@ -1,3 +1,9 @@
+2008-04-07 Sandro Santilli <address@hidden>
+
+ * server/as_object.cpp (add_property): invoke the watch trigger
+ if replacing an existing property.
+ * testsuite/actionscript.all/Object.as: 6 more successes.
+
2008-04-07 Dossy Shiobara <address@hidden>
* libbase/ClockTime.h: Win32 needs to include <sys/time.h> too.
Index: server/as_object.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_object.cpp,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -b -r1.113 -r1.114
--- server/as_object.cpp 7 Apr 2008 17:39:52 -0000 1.113
+++ server/as_object.cpp 7 Apr 2008 18:25:42 -0000 1.114
@@ -164,14 +164,20 @@
as_value cacheVal;
Property* prop = _members.getProperty(k);
- if ( prop ) cacheVal = prop->getCache();
+ if ( prop )
+ {
+ cacheVal = prop->getCache();
+ return _members.addGetterSetter(k, getter, setter, cacheVal);
+ // NOTE: watch triggers not called when adding a new
getter-setter property
+ }
+ else
+ {
bool ret = _members.addGetterSetter(k, getter, setter, cacheVal);
-
if (!ret) return false;
-#if 0
+#if 1
// check if we have a trigger, if so, invoke it
// and set val to it's return
TriggerContainer::iterator trigIter = _trigs.find(std::make_pair(k, 0));
@@ -191,11 +197,13 @@
log_debug("Property %s deleted by trigger on create
(getter-setter)", name);
return false; // or true ?
}
- prop->setValue(*this, cacheVal);
+ prop->setCache(cacheVal);
+ //prop->setValue(*this, cacheVal);
}
#endif
return ret;
+ }
}
bool
Index: testsuite/actionscript.all/Object.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Object.as,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -b -r1.61 -r1.62
--- testsuite/actionscript.all/Object.as 7 Apr 2008 18:03:46 -0000
1.61
+++ testsuite/actionscript.all/Object.as 7 Apr 2008 18:25:42 -0000
1.62
@@ -21,7 +21,7 @@
// execute it like this gnash -1 -r 0 -v out.swf
-rcsid="$Id: Object.as,v 1.61 2008/04/07 18:03:46 strk Exp $";
+rcsid="$Id: Object.as,v 1.62 2008/04/07 18:25:42 strk Exp $";
#include "check.as"
// Test things in Class Object (swf5~swf8)
@@ -715,11 +715,11 @@
_root.get_l_calls=_root.set_l_calls=0;
r = o.addProperty("l", get_l, set_l);
check(r);
-xcheck_equals(_root.info.nam, 'l'); // gnash fails calling the watch trigger
at all here
+check_equals(_root.info.nam, 'l'); // gnash fails calling the watch trigger at
all here
check_equals(typeof(_root.info.ov), 'undefined');
check_equals(typeof(_root.info.nv), 'undefined'); // underlying value of
getter-setter was undefined
-xcheck_equals(_root.info.d, 'cust2');
-xcheck_equals(_root.info.tv, o);
+check_equals(_root.info.d, 'cust2');
+check_equals(_root.info.tv, o);
check_equals(_root.get_l_calls, 0);
check_equals(_root.set_l_calls, 0);
@@ -729,7 +729,7 @@
_root.get_l_calls=_root.set_l_calls=0;
r = o.addProperty("l", get_l, set_l);
check(r);
-xcheck_equals(typeof(_root.info), 'undefined');
+check_equals(typeof(_root.info), 'undefined');
check_equals(_root.get_l_calls, 0);
check_equals(_root.set_l_calls, 0);
r = o.l;
@@ -738,21 +738,21 @@
// Getter/setter is not invoked, but watcher was used to set it's
// underlying value, check this:
v = o.l;
-xcheck_equals(v, 'return from watch');
+check_equals(v, 'return from watch');
delete _root.info;
_root.get_l_calls=_root.set_l_calls=0;
o.l = 'ciao'; // watched, and invokes setter
#if OUTPUT_VERSION < 7
- xcheck_equals(_root.info.ov, 'return from watch'); // old value
+ check_equals(_root.info.ov, 'return from watch'); // old value
xcheck_equals(_root.info.nv, 'ciao'); // we requested this
check_equals(_root.info.d, 'cust2');
check_equals(_root.info.tv, o);
check_equals(_root.get_l_calls, 0); // should get underlying value, not
invoke getter
check_equals(_root.set_l_calls, 1);
#else
- xcheck_equals(_root.info.ov, 'return from watch'); // old value
+ check_equals(_root.info.ov, 'return from watch'); // old value
check_equals(_root.info.nv, 'return from watch'); // mmm ?
check_equals(_root.info.d, 'cust2');
check_equals(_root.info.tv, o);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/as_object.cpp testsuite/...,
Sandro Santilli <=