gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/as_value.cpp server/asob...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/as_value.cpp server/asob...
Date: Tue, 20 Mar 2007 15:26:05 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/03/20 15:26:05

Modified files:
        .              : ChangeLog 
        server         : as_value.cpp 
        server/asobj   : Boolean.cpp Boolean.h Number.cpp Number.h 
                         gstring.h string.cpp 
        testsuite/actionscript.all: Function.as 

Log message:
                * server/as_value.cpp, server/asobj/Boolean.cpp,
                  server/asobj/Boolean.h, server/asobj/Number.cpp,
                  server/asobj/Number.h, server/asobj/gstring.h,
                  server/asobj/string.cpp: Implement init_boolean_instance
                  and change init_{number,string}_instance to return
                  by intrusive_ptr (rather then auto_ptr).
                  Do automatic boolean to Boolean conversion in 
as_value::to_object.
                * testsuite/actionscript.all/Function.as:
                  Couple of more successes.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2643&r2=1.2644
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_value.cpp?cvsroot=gnash&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Boolean.cpp?cvsroot=gnash&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Boolean.h?cvsroot=gnash&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Number.cpp?cvsroot=gnash&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Number.h?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/gstring.h?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/string.cpp?cvsroot=gnash&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Function.as?cvsroot=gnash&r1=1.31&r2=1.32

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2643
retrieving revision 1.2644
diff -u -b -r1.2643 -r1.2644
--- ChangeLog   20 Mar 2007 15:01:19 -0000      1.2643
+++ ChangeLog   20 Mar 2007 15:26:04 -0000      1.2644
@@ -1,5 +1,17 @@
 2007-03-20 Sandro Santilli <address@hidden>
 
+       * server/as_value.cpp, server/asobj/Boolean.cpp,
+         server/asobj/Boolean.h, server/asobj/Number.cpp,
+         server/asobj/Number.h, server/asobj/gstring.h,
+         server/asobj/string.cpp: Implement init_boolean_instance
+         and change init_{number,string}_instance to return
+         by intrusive_ptr (rather then auto_ptr).
+         Do automatic boolean to Boolean conversion in as_value::to_object.
+       * testsuite/actionscript.all/Function.as:
+         Couple of more successes.
+
+2007-03-20 Sandro Santilli <address@hidden>
+
        * server/array.cpp, server/as_environment.cpp,
        server/as_function.cpp, server/as_object.cpp,
        server/as_object.h, server/as_value.cpp, server/as_value.h,

Index: server/as_value.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_value.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- server/as_value.cpp 20 Mar 2007 15:01:20 -0000      1.30
+++ server/as_value.cpp 20 Mar 2007 15:26:04 -0000      1.31
@@ -29,6 +29,7 @@
 #include "movie_root.h" // for MOVIECLIP values
 #include "gstring.h" // for automatic as_value::STRING => String as object
 #include "Number.h" // for automatic as_value::NUMBER => Number as object
+#include "Boolean.h" // for automatic as_value::BOOLEAN => Boolean as object
 #include "action.h" // for call_method0
 
 #include <cmath>       // for NAN
@@ -481,17 +482,13 @@
                        return ptr(to_sprite());
 
                case STRING:
-                       // FIXME: update when init_whatever_instance will
-                       //        return an intrusive_ptr directly
-                       return 
ptr(init_string_instance(m_string_value.c_str()).release());
+                       return init_string_instance(m_string_value.c_str());
 
                case NUMBER:
-                       // FIXME: update when init_whatever_instance will
-                       //        return an intrusive_ptr directly
-                       return 
ptr(init_number_instance(m_number_value).release());
+                       return init_number_instance(m_number_value);
 
                case BOOLEAN:
-                       log_error("FIXME: boolean to Boolean conversion 
unimplemented yet");
+                       return init_boolean_instance(m_boolean_value);
 
                default:
                        return NULL;

Index: server/asobj/Boolean.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Boolean.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- server/asobj/Boolean.cpp    20 Mar 2007 15:01:20 -0000      1.10
+++ server/asobj/Boolean.cpp    20 Mar 2007 15:26:04 -0000      1.11
@@ -136,6 +136,13 @@
 
 }
 
+boost::intrusive_ptr<as_object>
+init_boolean_instance(bool val)
+{
+       // TODO: properly initialize the __constructor__ and constructor members
+       //       (should as_object ctor do this?)
+       return boost::intrusive_ptr<as_object>(new boolean_as_object(val));
+}
 
 } // end of gnash namespace
 

Index: server/asobj/Boolean.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Boolean.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- server/asobj/Boolean.h      20 Nov 2006 11:40:47 -0000      1.5
+++ server/asobj/Boolean.h      20 Mar 2007 15:26:04 -0000      1.6
@@ -1,5 +1,5 @@
 // 
-//   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@
 #include "config.h"
 #endif
 
+#include "smart_ptr.h"
+
 #include <memory> // for auto_ptr
 
 namespace gnash {
@@ -33,7 +35,7 @@
 void boolean_class_init(as_object& global);
 
 /// Return a Boolean instance (in case the core lib needs it)
-//std::auto_ptr<as_object> init_boolean_instance();
+boost::intrusive_ptr<as_object> init_boolean_instance(bool val);
   
 } // end of gnash namespace
 

Index: server/asobj/Number.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Number.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- server/asobj/Number.cpp     19 Mar 2007 17:11:14 -0000      1.24
+++ server/asobj/Number.cpp     20 Mar 2007 15:26:04 -0000      1.25
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: Number.cpp,v 1.24 2007/03/19 17:11:14 bjacques Exp $ */
+/* $Id: Number.cpp,v 1.25 2007/03/20 15:26:04 strk Exp $ */
 
 // Implementation of ActionScript Number class.
 
@@ -294,10 +294,12 @@
 
 }
 
-auto_ptr<as_object>
+boost::intrusive_ptr<as_object>
 init_number_instance(double val)
 {
-       return auto_ptr<as_object>(new number_as_object(val));
+       // TODO: properly initialize the __constructor__ and constructor members
+       //       (should as_object ctor do this?)
+       return boost::intrusive_ptr<as_object>(new number_as_object(val));
 }
   
 } // namespace gnash

Index: server/asobj/Number.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Number.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- server/asobj/Number.h       5 Nov 2006 20:10:12 -0000       1.3
+++ server/asobj/Number.h       20 Mar 2007 15:26:04 -0000      1.4
@@ -1,5 +1,5 @@
 // 
-//   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -23,6 +23,12 @@
 #ifndef GNASH_NUMBER_H
 #define GNASH_NUMBER_H
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "smart_ptr.h"
+
 #include <memory> // for auto_ptr
 
 namespace gnash {
@@ -33,7 +39,7 @@
 void number_class_init(as_object& global);
 
 /// Return a Number instance
-std::auto_ptr<as_object> init_number_instance(double val);
+boost::intrusive_ptr<as_object> init_number_instance(double val);
 
 }
 

Index: server/asobj/gstring.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/gstring.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- server/asobj/gstring.h      5 Nov 2006 20:10:12 -0000       1.3
+++ server/asobj/gstring.h      20 Mar 2007 15:26:05 -0000      1.4
@@ -1,5 +1,5 @@
 // 
-//   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -23,6 +23,12 @@
 #ifndef GNASH_STRING_H
 #define GNASH_STRING_H
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "smart_ptr.h"
+
 #include <memory> // for auto_ptr
 
 namespace gnash {
@@ -33,7 +39,7 @@
 void string_class_init(as_object& global);
 
 /// Return a String instance
-std::auto_ptr<as_object> init_string_instance(const char* val);
+boost::intrusive_ptr<as_object> init_string_instance(const char* val);
 
 }
 

Index: server/asobj/string.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/string.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- server/asobj/string.cpp     20 Mar 2007 15:01:20 -0000      1.21
+++ server/asobj/string.cpp     20 Mar 2007 15:26:05 -0000      1.22
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: string.cpp,v 1.21 2007/03/20 15:01:20 strk Exp $ */
+/* $Id: string.cpp,v 1.22 2007/03/20 15:26:05 strk Exp $ */
 
 // Implementation of ActionScript String class.
 
@@ -513,12 +513,15 @@
 
 }
 
-std::auto_ptr<as_object>
+boost::intrusive_ptr<as_object>
 init_string_instance(const char* val)
 {
-       tu_string_as_object* obj = new tu_string_as_object();
+       // TODO: properly initialize the __constructor__ and constructor members
+       //       (should as_object ctor do this?)
+
+       boost::intrusive_ptr<tu_string_as_object> obj = new 
tu_string_as_object();
        if ( val ) obj->m_string = val;
-       return std::auto_ptr<as_object>(obj);
+       return boost::dynamic_pointer_cast<as_object>(obj);
 }
   
 } // namespace gnash

Index: testsuite/actionscript.all/Function.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Function.as,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- testsuite/actionscript.all/Function.as      20 Mar 2007 09:19:33 -0000      
1.31
+++ testsuite/actionscript.all/Function.as      20 Mar 2007 15:26:05 -0000      
1.32
@@ -20,7 +20,7 @@
 // compile this test case with Ming makeswf, and then
 // execute it like this gnash -1 -r 0 -v out.swf
 
-rcsid="$Id: Function.as,v 1.31 2007/03/20 09:19:33 strk Exp $";
+rcsid="$Id: Function.as,v 1.32 2007/03/20 15:26:05 strk Exp $";
 
 #include "check.as"
 
@@ -482,7 +482,7 @@
 #endif
 
 a = true; // boolean primitive to Boolean object
-xcheck_equals(typeof(a.constructor), 'function');
+check_equals(typeof(a.constructor), 'function');
 #if OUTPUT_VERSION > 5
 xcheck_equals(typeof(a.__constructor__), 'function');
 #if OUTPUT_VERSION == 6
@@ -491,7 +491,7 @@
 check(!a.hasOwnProperty('constructor'));
 #endif
 xcheck(a.hasOwnProperty('__constructor__'));
-xcheck_equals(a.constructor, Boolean);
+check_equals(a.constructor, Boolean);
 xcheck_equals(a.__constructor__, Boolean);
 check(! a instanceof String);
 check(a.constructor != Object);




reply via email to

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