gnash-commit
[Top][All Lists]
Advanced

[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); 




reply via email to

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