[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/asobj/Global.cpp
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/asobj/Global.cpp |
Date: |
Wed, 04 Oct 2006 15:04:01 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 06/10/04 15:04:01
Modified files:
. : ChangeLog
server/asobj : Global.cpp
Log message:
* server/asobj/Global.cpp (as_global_object_ctor): fix
copy constructor of the Object class.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1031&r2=1.1032
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Global.cpp?cvsroot=gnash&r1=1.11&r2=1.12
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1031
retrieving revision 1.1032
diff -u -b -r1.1031 -r1.1032
--- ChangeLog 4 Oct 2006 14:58:09 -0000 1.1031
+++ ChangeLog 4 Oct 2006 15:04:00 -0000 1.1032
@@ -1,5 +1,7 @@
2006-10-04 Sandro Santilli <address@hidden>
+ * server/asobj/Global.cpp (as_global_object_ctor): fix
+ copy constructor of the Object class.
* testsuite/actionscript.all/Object.as: added copy-reference
tests.
* server/as_object.cpp (set_member_default): minor cleanups.
Index: server/asobj/Global.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Global.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/asobj/Global.cpp 4 Oct 2006 09:42:19 -0000 1.11
+++ server/asobj/Global.cpp 4 Oct 2006 15:04:00 -0000 1.12
@@ -18,7 +18,7 @@
// Implementation of the Global ActionScript Object
-/* $Id: Global.cpp,v 1.11 2006/10/04 09:42:19 strk Exp $ */
+/* $Id: Global.cpp,v 1.12 2006/10/04 15:04:00 strk Exp $ */
#include "as_object.h"
#include "array.h"
@@ -106,17 +106,22 @@
as_global_object_ctor(const fn_call& fn)
// Constructor for ActionScript class Object.
{
- as_object *new_obj;
+ if ( fn.nargs == 1 ) // copy constructor
+ {
+ // just copy the reference
+ //
+ // WARNING: it is likely that fn.result and fn.arg(0)
+ // are the same location... so we might skip
+ // the set_as_object() call as a whole.
+ fn.result->set_as_object(fn.arg(0).to_object());
+ return;
+ }
+ as_object* new_obj;
if ( fn.nargs == 0 )
{
new_obj = new as_object();
}
- else if ( fn.nargs == 1 ) // copy constructor
- {
- as_object *src_obj = fn.arg(0).to_object();
- new_obj = new as_object(src_obj);
- }
else
{
dbglogfile << "Too many args to Object constructor" << endl;