[Top][All Lists]
[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');