gnash-commit
[Top][All Lists]
Advanced

[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;




reply via email to

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