gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/array.cpp server/array.h...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/array.cpp server/array.h...
Date: Wed, 28 Feb 2007 07:41:28 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/02/28 07:41:27

Modified files:
        .              : ChangeLog 
        server         : array.cpp array.h 
        testsuite/actionscript.all: array.as 

Log message:
                * server/array.{cpp,h}: allow resize trough
                  setting the 'length' property.
                * testsuite/actionscript.all/array.as: test
                  that arrays 'length' is settable.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2487&r2=1.2488
http://cvs.savannah.gnu.org/viewcvs/gnash/server/array.cpp?cvsroot=gnash&r1=1.48&r2=1.49
http://cvs.savannah.gnu.org/viewcvs/gnash/server/array.h?cvsroot=gnash&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/array.as?cvsroot=gnash&r1=1.11&r2=1.12

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2487
retrieving revision 1.2488
diff -u -b -r1.2487 -r1.2488
--- ChangeLog   28 Feb 2007 04:27:59 -0000      1.2487
+++ ChangeLog   28 Feb 2007 07:41:27 -0000      1.2488
@@ -1,3 +1,10 @@
+2007-02-28 Sandro Santilli <address@hidden>
+
+       * server/array.{cpp,h}: allow resize trough
+         setting the 'length' property.
+       * testsuite/actionscript.all/array.as: test
+         that arrays 'length' is settable.
+
 2007-02-28 Markus Gothe <address@hidden>
 
        * server/asobj/Date.cpp: #define NAN (0.0/0.0) as this is not comp.

Index: server/array.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/array.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- server/array.cpp    18 Jan 2007 22:53:21 -0000      1.48
+++ server/array.cpp    28 Feb 2007 07:41:27 -0000      1.49
@@ -332,6 +332,12 @@
        return get_member_default(name, val);
 }
 
+void
+as_array_object::resize(unsigned int newsize)
+{
+       elements.resize(newsize);
+}
+
 /* virtual public, overriding as_object::set_member */
 void
 as_array_object::set_member(const std::string& name,
@@ -339,7 +345,8 @@
 {
        if ( name == "length" ) 
        {
-               log_warning("Attempt to assign to Array.length - ignored");
+               //log_warning("Attempt to assign to Array.length - ignored");
+               resize(unsigned(val.to_number()));
                return;
        }
 

Index: server/array.h
===================================================================
RCS file: /sources/gnash/gnash/server/array.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- server/array.h      18 Jan 2007 22:53:21 -0000      1.19
+++ server/array.h      28 Feb 2007 07:41:27 -0000      1.20
@@ -85,7 +85,7 @@
 
        unsigned int size() const;
 
-       //void resize(unsigned int);
+       void resize(unsigned int);
 
        void concat(const as_array_object& other);
 

Index: testsuite/actionscript.all/array.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/array.as,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- testsuite/actionscript.all/array.as 21 Nov 2006 10:53:08 -0000      1.11
+++ testsuite/actionscript.all/array.as 28 Feb 2007 07:41:27 -0000      1.12
@@ -5,7 +5,7 @@
 // Updated with sort functions, and to use check() macro
 // by Mike Carlson Feb. 14th, 2006
 
-rcsid="$Id: array.as,v 1.11 2006/11/21 10:53:08 strk Exp $";
+rcsid="$Id: array.as,v 1.12 2007/02/28 07:41:27 strk Exp $";
 
 #include "check.as"
 
@@ -143,7 +143,20 @@
 check_equals ( c[999] , undefined );
 check_equals ( c.length, 1001 );
 
+// Test that the 'length' property is overridable
+c[8] = 'eight';
+check_equals(c[8], 'eight');
+c.length = 2;
+check_equals(c.length, 2);
+check_equals(c[8], undefined);
+
 // $Log: array.as,v $
+// Revision 1.12  2007/02/28 07:41:27  strk
+//         * server/array.{cpp,h}: allow resize trough
+//           setting the 'length' property.
+//         * testsuite/actionscript.all/array.as: test
+//           that arrays 'length' is settable.
+//
 // Revision 1.11  2006/11/21 10:53:08  strk
 //         * server/array.h: documented ::slice function
 //         * server/array.cpp: more fixes.




reply via email to

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