[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ./ChangeLog server/array.cpp
From: |
Michael Carlson |
Subject: |
[Gnash-commit] gnash ./ChangeLog server/array.cpp |
Date: |
Tue, 24 Jan 2006 06:37:29 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Branch:
Changes by: Michael Carlson <address@hidden> 06/01/24 06:37:29
Modified files:
. : ChangeLog
server : array.cpp
Log message:
Implement array::reverse, and also fix array::push() and
array::unshift() to return the new array length, as they should
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/ChangeLog.diff?tr1=1.39&tr2=1.40&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/array.cpp.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: gnash/ChangeLog
diff -u gnash/ChangeLog:1.39 gnash/ChangeLog:1.40
--- gnash/ChangeLog:1.39 Tue Jan 24 06:03:59 2006
+++ gnash/ChangeLog Tue Jan 24 06:37:29 2006
@@ -1,7 +1,8 @@
2006-01-23 Michael Carlson <address@hidden>
* server/array.h: as_array_object now uses deque instead of vector
- * server/array.cpp: Implement array::unshift, shift
+ * server/array.cpp: Implement array::unshift, shift, reverse -
+ also make push return the new array length as it should
2006-01-23 Rob Savoye <address@hidden>
Index: gnash/server/array.cpp
diff -u gnash/server/array.cpp:1.3 gnash/server/array.cpp:1.4
--- gnash/server/array.cpp:1.3 Tue Jan 24 06:03:59 2006
+++ gnash/server/array.cpp Tue Jan 24 06:37:29 2006
@@ -114,7 +114,7 @@
for (int i=0;i<fn.nargs;i++)
array->elements.push_back(fn.arg(i));
- fn.result->set_undefined();
+ fn.result->set_int(array->size());
}
// Callback to push values to the front of an array
@@ -126,7 +126,7 @@
for (int i=fn.nargs-1;i>=0;i--)
array->elements.push_front(fn.arg(i));
- fn.result->set_undefined();
+ fn.result->set_int(array->size());
}
// Callback to pop a value from the back of an array
@@ -167,6 +167,29 @@
IF_VERBOSE_ACTION(log_msg("calling array shift, result:%s, new
array size:%d\n",fn.result->to_string(),array->elements.size()));
}
+ // Callback to reverse the position of the elements in an array
+ void array_reverse(const fn_call& fn)
+ {
+ as_array_object* array = (as_array_object*) (as_object*)
fn.this_ptr;
+
+ int i,j;
+ as_value temp;
+
+ // Reverse the deque elements
+ for (i=0,j=array->elements.size()-1;i<j;i++,j--)
+ {
+ temp = array->elements[i];
+ array->elements[i] = array->elements[j];
+ array->elements[j] = temp;
+ }
+
+ IF_VERBOSE_ACTION(log_msg("calling array reverse on array with
size:%d\n",array->elements.size()));
+
+ // result is undefined
+ fn.result->set_undefined();
+ }
+
+
// Unimplemented callback to convert array to a string
void array_to_string(const fn_call& fn)
{
@@ -187,7 +210,7 @@
array->set_member("splice", &array_not_impl);
array->set_member("sort", &array_not_impl);
array->set_member("sortOn", &array_not_impl);
- array->set_member("reverse", &array_not_impl);
+ array->set_member("reverse", &array_reverse);
array->set_member("toString", &array_to_string);
}
- [Gnash-commit] gnash ./ChangeLog server/array.cpp,
Michael Carlson <=