gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/character.cpp server/cha...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/character.cpp server/cha...
Date: Wed, 19 Sep 2007 10:17:04 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/09/19 10:17:04

Modified files:
        .              : ChangeLog 
        server         : character.cpp character.h 
                         edit_text_character.cpp sprite_instance.cpp 
        testsuite/actionscript.all: TextField.as 
        testsuite/misc-swfc.all: edittext_test1.sc 

Log message:
                * server/character.{cpp,h}: provide a generic
                  _name getter-setter.
                * server/sprite_instance.cpp: use character's version
                  for _name and _target getter/setter.
                * server/edit_text_character.cpp: use character's
                  _name and _target getter/setter.
                * testsuite/actionscript.all/TextField.as: successes
                  on _name and _target accesses, minor failures.
                * testsuite/misc-swfc.all/edittext_test1.sc: successes
                  on _name and _target access.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4349&r2=1.4350
http://cvs.savannah.gnu.org/viewcvs/gnash/server/character.cpp?cvsroot=gnash&r1=1.54&r2=1.55
http://cvs.savannah.gnu.org/viewcvs/gnash/server/character.h?cvsroot=gnash&r1=1.94&r2=1.95
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.cpp?cvsroot=gnash&r1=1.114&r2=1.115
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.345&r2=1.346
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/TextField.as?cvsroot=gnash&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-swfc.all/edittext_test1.sc?cvsroot=gnash&r1=1.1&r2=1.2

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4349
retrieving revision 1.4350
diff -u -b -r1.4349 -r1.4350
--- ChangeLog   19 Sep 2007 09:28:00 -0000      1.4349
+++ ChangeLog   19 Sep 2007 10:17:02 -0000      1.4350
@@ -1,5 +1,18 @@
 2007-09-19 Sandro Santilli <address@hidden>
 
+       * server/character.{cpp,h}: provide a generic
+         _name getter-setter.
+       * server/sprite_instance.cpp: use character's version
+         for _name and _target getter/setter.
+       * server/edit_text_character.cpp: use character's
+         _name and _target getter/setter.
+       * testsuite/actionscript.all/TextField.as: successes
+         on _name and _target accesses, minor failures.
+       * testsuite/misc-swfc.all/edittext_test1.sc: successes
+         on _name and _target access.
+
+2007-09-19 Sandro Santilli <address@hidden>
+
        * testsuite/actionscript.all/TextField.as: add tests
          for effects of changing _name.
 

Index: server/character.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/character.cpp,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- server/character.cpp        16 Sep 2007 16:48:13 -0000      1.54
+++ server/character.cpp        19 Sep 2007 10:17:03 -0000      1.55
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 // 
 
-/* $Id: character.cpp,v 1.54 2007/09/16 16:48:13 cmusick Exp $ */
+/* $Id: character.cpp,v 1.55 2007/09/19 10:17:03 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -604,6 +604,32 @@
        return as_value(ptr->getTargetPath());
 }
 
+as_value
+character::name_getset(const fn_call& fn)
+{
+       boost::intrusive_ptr<character> ptr = 
ensureType<character>(fn.this_ptr);
+
+       if ( fn.nargs == 0 ) // getter
+       {
+               VM& vm = VM::get(); // TODO: fetch VM from ptr 
+               const std::string& name = ptr->get_name();
+               if ( vm.getSWFVersion() < 6 && name.empty() )
+               {
+                       return as_value();
+               } 
+               else
+               {
+                       return as_value(name.c_str());
+               }
+       }
+       else // setter
+       {
+               ptr->set_name(fn.arg(0).to_string(&fn.env()).c_str());
+       }
+
+       return as_value();
+}
+
 void
 character::set_event_handlers(const Events& copyfrom)
 {

Index: server/character.h
===================================================================
RCS file: /sources/gnash/gnash/server/character.h,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -b -r1.94 -r1.95
--- server/character.h  4 Sep 2007 21:50:21 -0000       1.94
+++ server/character.h  19 Sep 2007 10:17:03 -0000      1.95
@@ -19,7 +19,7 @@
 //
 //
 
-/* $Id: character.h,v 1.94 2007/09/04 21:50:21 strk Exp $ */
+/* $Id: character.h,v 1.95 2007/09/19 10:17:03 strk Exp $ */
 
 #ifndef GNASH_CHARACTER_H
 #define GNASH_CHARACTER_H
@@ -328,6 +328,9 @@
        /// Getter-setter for _target 
        static as_value target_getset(const fn_call& fn);
 
+       /// Getter-setter for _name
+       static as_value name_getset(const fn_call& fn);
+
        /// @} Common ActionScript getter-setters for characters
 
 public:

Index: server/edit_text_character.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.cpp,v
retrieving revision 1.114
retrieving revision 1.115
diff -u -b -r1.114 -r1.115
--- server/edit_text_character.cpp      17 Sep 2007 14:39:35 -0000      1.114
+++ server/edit_text_character.cpp      19 Sep 2007 10:17:03 -0000      1.115
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: edit_text_character.cpp,v 1.114 2007/09/17 14:39:35 strk Exp $ */
+/* $Id: edit_text_character.cpp,v 1.115 2007/09/19 10:17:03 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -337,6 +337,15 @@
        getset = new builtin_function(textfield_html_getset);
        o.init_property("html", *getset, *getset);
 
+       // Target seems to not be a normal property
+       getset = new builtin_function(&character::target_getset, NULL);
+       o.init_property("_target", *getset, *getset);
+
+       // _name should be a property of the instance, not the prototype
+       getset = new builtin_function(&character::name_getset, NULL);
+       o.init_property("_name", *getset, *getset);
+
+
        if ( target_version  < 7 ) return;
 
        // SWF7 or higher

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.345
retrieving revision 1.346
diff -u -b -r1.345 -r1.346
--- server/sprite_instance.cpp  18 Sep 2007 14:57:23 -0000      1.345
+++ server/sprite_instance.cpp  19 Sep 2007 10:17:03 -0000      1.346
@@ -1300,43 +1300,6 @@
 }
 
 static as_value
-sprite_target_get(const fn_call& fn)
-{
-       boost::intrusive_ptr<sprite_instance> ptr = 
ensureType<sprite_instance>(fn.this_ptr);
-
-       return as_value(ptr->getTargetPath().c_str());
-}
-
-static as_value
-sprite_name_getset(const fn_call& fn)
-{
-       boost::intrusive_ptr<sprite_instance> ptr = 
ensureType<sprite_instance>(fn.this_ptr);
-
-       if ( fn.nargs == 0 ) // getter
-       {
-               VM& vm = VM::get();
-               const std::string& name = ptr->get_name();
-               if ( vm.getSWFVersion() < 6 && name.empty() )
-               {
-                       return as_value();
-               } 
-               else
-               {
-                       return as_value(name.c_str());
-               }
-       }
-       else // setter
-       {
-               ptr->set_name(fn.arg(0).to_string(&fn.env()).c_str());
-               //IF_VERBOSE_ASCODING_ERRORS(
-               //log_aserror(_("Attempt to set read-only property '_name'"));
-               //);
-       }
-
-       return as_value();
-}
-
-static as_value
 sprite_droptarget_getset(const fn_call& fn)
 {
        boost::intrusive_ptr<sprite_instance> ptr = 
ensureType<sprite_instance>(fn.this_ptr);
@@ -1552,10 +1515,10 @@
        gettersetter = new builtin_function(&sprite_framesloaded_get, NULL);
        o.init_property("_framesloaded", *gettersetter, *gettersetter);
 
-       gettersetter = new builtin_function(&sprite_target_get, NULL);
+       gettersetter = new builtin_function(&character::target_getset, NULL);
        o.init_property("_target", *gettersetter, *gettersetter);
 
-       gettersetter = new builtin_function(&sprite_name_getset, NULL);
+       gettersetter = new builtin_function(&character::name_getset, NULL);
        o.init_property("_name", *gettersetter, *gettersetter);
 
        gettersetter = new builtin_function(&sprite_droptarget_getset, NULL);

Index: testsuite/actionscript.all/TextField.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/TextField.as,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- testsuite/actionscript.all/TextField.as     19 Sep 2007 09:28:01 -0000      
1.25
+++ testsuite/actionscript.all/TextField.as     19 Sep 2007 10:17:03 -0000      
1.26
@@ -19,7 +19,7 @@
 // compile this test case with Ming makeswf, and then
 // execute it like this gnash -1 -r 0 -v out.swf
 
-rcsid="$Id: TextField.as,v 1.25 2007/09/19 09:28:01 strk Exp $";
+rcsid="$Id: TextField.as,v 1.26 2007/09/19 10:17:03 strk Exp $";
 
 #include "check.as"
 
@@ -347,16 +347,16 @@
 
 // Check TextField._name
 
-xcheck_equals(typeof(tf._name), 'string');
+check_equals(typeof(tf._name), 'string');
 check(!tf.hasOwnProperty('_name'));
-check(!tf.__proto__.hasOwnProperty('_name'));
-xcheck_equals(tf._name, 'tf');
+xcheck(!tf.__proto__.hasOwnProperty('_name'));
+check_equals(tf._name, 'tf');
 tfref = tf;
 tf._name = 'changed';
-xcheck_equals(typeof(tf), 'undefined');
+check_equals(typeof(tf), 'undefined');
 check_equals(typeof(tfref), 'object');
 check_equals(tfref._name, 'changed');
-xcheck_equals(tfref._target, '/changed');
+check_equals(tfref._target, '/changed');
 tfref._name = 'tf';
 check_equals(typeof(tf), 'object');
 check_equals(typeof(tfref), 'object');
@@ -461,13 +461,13 @@
 
 // Check TextField._target
 
-xcheck_equals(typeof(tf._target), 'string');
+check_equals(typeof(tf._target), 'string');
 check( ! tf.hasOwnProperty('_target') ); 
-check( ! tf.__proto__.hasOwnProperty('_target') ); 
-xcheck_equals(tf._target, '/tf');
+xcheck( ! tf.__proto__.hasOwnProperty('_target') ); 
+check_equals(tf._target, '/tf');
 // TODO: check the effect of changing _name on the _target value
 tf._target = "fake_target"; // read-only
-xcheck_equals(tf._target, '/tf');
+check_equals(tf._target, '/tf');
 
 // Check TextField.text
 

Index: testsuite/misc-swfc.all/edittext_test1.sc
===================================================================
RCS file: /sources/gnash/gnash/testsuite/misc-swfc.all/edittext_test1.sc,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- testsuite/misc-swfc.all/edittext_test1.sc   19 Sep 2007 08:02:15 -0000      
1.1
+++ testsuite/misc-swfc.all/edittext_test1.sc   19 Sep 2007 10:17:03 -0000      
1.2
@@ -39,8 +39,8 @@
   .action:
     // check the initial values
     check_equals(typeof(edtext1), 'object');
-    xcheck_equals(edtext1._name, 'edtext1');
-    xcheck_equals(edtext1._target, '/edtext1');
+    check_equals(edtext1._name, 'edtext1');
+    check_equals(edtext1._target, '/edtext1');
     check_equals(edtext1.text, 'Hello');
     check_equals(edtext1.variable, 'textVar1');
     check_equals(_root.textVar1, 'Hello');




reply via email to

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