[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/array.cpp testsuite/acti...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/array.cpp testsuite/acti... |
Date: |
Mon, 17 Mar 2008 20:34:34 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/03/17 20:34:33
Modified files:
. : ChangeLog
server : array.cpp
testsuite/actionscript.all: array.as
Log message:
(index_requested): don't turn a negative number >= -1 to a valid index
!!
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5953&r2=1.5954
http://cvs.savannah.gnu.org/viewcvs/gnash/server/array.cpp?cvsroot=gnash&r1=1.94&r2=1.95
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/array.as?cvsroot=gnash&r1=1.44&r2=1.45
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5953
retrieving revision 1.5954
diff -u -b -r1.5953 -r1.5954
--- ChangeLog 17 Mar 2008 18:38:11 -0000 1.5953
+++ ChangeLog 17 Mar 2008 20:34:32 -0000 1.5954
@@ -1,3 +1,10 @@
+2008-03-17 Sandro Santilli <address@hidden>
+
+ * server/array.cpp (index_requested): don't turn a negative number
+ >= -1 to a valid index !!
+ * testsuite/actionscript.all/array.as: add test for negative indexed
+ members.
+
2008-03-17 Benjamin Wolsey <address@hidden>
* gui/gtk.cpp, gui/gnash.cpp: make clear that media handler
Index: server/array.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/array.cpp,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -b -r1.94 -r1.95
--- server/array.cpp 6 Mar 2008 20:29:09 -0000 1.94
+++ server/array.cpp 17 Mar 2008 20:34:33 -0000 1.95
@@ -589,14 +589,9 @@
double value = temp.to_number();
// if we were sent a string that can't convert like "asdf", it returns
as NaN. -1 means invalid index
- if (isnan(value)) return -1;
+ if (!isfinite(value)) return -1;
- // TODO / WARNING: because to_number returns a double and we're
- // converting to an int,
- // I want to make sure we're above any "grey area" when we we round down
- // by adding a little to the number before we round it.
- // We don't want to accidentally look to index-1!
- return int(value + 0.01);
+ return int(value);
}
void
@@ -958,7 +953,7 @@
if ( fn.nargs == 0 )
{
array->sort(as_value_lt(env));
- return as_value((boost::intrusive_ptr<as_object>)array);
+ return as_value(array.get());
}
else if ( fn.nargs == 1 && fn.arg(0).is_number() )
{
@@ -982,7 +977,7 @@
if ( (flags & as_array_object::fReturnIndexedArray) )
return as_value(array->sort_indexed(avc));
array->sort(avc);
- return as_value((boost::intrusive_ptr<as_object>)array);
+ return as_value(array.get());
// note: custom AS function sorting apparently ignores the
// UniqueSort flag which is why it is also ignored here
}
@@ -992,7 +987,7 @@
log_aserror(_("Sort called with invalid arguments."));
)
if ( fn.arg(0).is_undefined() ) return as_value();
- return as_value((boost::intrusive_ptr<as_object>)array);
+ return as_value(array.get());
}
bool do_unique, do_index;
flags = flag_preprocess(flags, &do_unique, &do_index);
@@ -1007,7 +1002,7 @@
}
if (do_index) return as_value(array->sort_indexed(comp));
array->sort(comp);
- return as_value((boost::intrusive_ptr<as_object>)array);
+ return as_value(array.get());
}
static as_value
@@ -1046,7 +1041,7 @@
if (do_index)
return as_value(array->sort_indexed(avc));
array->sort(avc);
- return as_value((boost::intrusive_ptr<as_object>)array);
+ return as_value(array.get());
}
// case: sortOn(["prop1", "prop2"] ...)
@@ -1138,7 +1133,7 @@
if (do_index)
return as_value(array->sort_indexed(avc));
array->sort(avc);
- return as_value((boost::intrusive_ptr<as_object>)array);
+ return as_value(array.get());
}
IF_VERBOSE_ASCODING_ERRORS(
@@ -1147,7 +1142,7 @@
if (fn.nargs == 0 )
return as_value();
- return as_value((boost::intrusive_ptr<as_object>)array);
+ return as_value(array.get());
}
// Callback to push values to the back of an array
Index: testsuite/actionscript.all/array.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/array.as,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- testsuite/actionscript.all/array.as 11 Mar 2008 19:31:48 -0000 1.44
+++ testsuite/actionscript.all/array.as 17 Mar 2008 20:34:33 -0000 1.45
@@ -19,7 +19,7 @@
// Initial test written by Mike Carlson
-rcsid="$Id: array.as,v 1.44 2008/03/11 19:31:48 strk Exp $";
+rcsid="$Id: array.as,v 1.45 2008/03/17 20:34:33 strk Exp $";
#include "check.as"
check_equals(typeof(Array), 'function');
@@ -1005,6 +1005,19 @@
check_equals(out[1], 1);
check_equals(out[0], 1);
+//-------------------------------
+// Test length property
+//-------------------------------
+
+a = new Array();
+check_equals(a.length, 0);
+a[-1] = 'minusone';
+check_equals(a.length, 0);
+check_equals(a[-1], 'minusone');
+a["Infinite"] = 'inf';
+check_equals(a.length, 0);
+check_equals(a["Infinite"], 'inf');
+
// TODO: test ASnative-returned functions:
//
@@ -1024,11 +1037,11 @@
#if OUTPUT_VERSION < 6
- check_totals(366);
+ check_totals(371);
#else
# if OUTPUT_VERSION < 7
- check_totals(394);
+ check_totals(399);
# else
- check_totals(401);
+ check_totals(406);
# endif
#endif