gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/asobj/Number.cpp server/...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/Number.cpp server/...
Date: Sun, 05 Nov 2006 20:10:12 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/11/05 20:10:12

Modified files:
        .              : ChangeLog 
        server/asobj   : Number.cpp Number.h gstring.h string.cpp 
        server/swf     : ASHandlers.cpp 

Log message:
                * server/asobj/: Number.{h,cpp}: expose
                  Number instance constructor.
                * server/asobj/: gstring.h, string.cpp:
                  expose String instance constructor.
                * server/swf/ASHandlers.c (call_method):
                  implicitly cast STRING values to String
                  objects and NUMBER values to Number objects
                  (to be possibly moved in as_value::to_object)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1529&r2=1.1530
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Number.cpp?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Number.h?cvsroot=gnash&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/gstring.h?cvsroot=gnash&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/string.cpp?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/ASHandlers.cpp?cvsroot=gnash&r1=1.88&r2=1.89

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1529
retrieving revision 1.1530
diff -u -b -r1.1529 -r1.1530
--- ChangeLog   5 Nov 2006 19:16:52 -0000       1.1529
+++ ChangeLog   5 Nov 2006 20:10:11 -0000       1.1530
@@ -1,5 +1,16 @@
 2006-11-05 Sandro Santilli <address@hidden>
 
+       * server/asobj/: Number.{h,cpp}: expose
+         Number instance constructor.
+       * server/asobj/: gstring.h, string.cpp:
+         expose String instance constructor.
+       * server/swf/ASHandlers.c (call_method):
+         implicitly cast STRING values to String
+         objects and NUMBER values to Number objects
+         (to be possibly moved in as_value::to_object)
+
+2006-11-05 Sandro Santilli <address@hidden>
+
        * server/sprite_instance.cpp: stubbed attachMovie, added
          comment about possible improvement of sprite_duplicate_movieclip,
          added some use of the new IF_VERBOSE_ASCODING_ERRORS macro

Index: server/asobj/Number.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Number.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- server/asobj/Number.cpp     29 Oct 2006 18:34:12 -0000      1.3
+++ server/asobj/Number.cpp     5 Nov 2006 20:10:12 -0000       1.4
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: Number.cpp,v 1.3 2006/10/29 18:34:12 rsavoye Exp $ */
+/* $Id: Number.cpp,v 1.4 2006/11/05 20:10:12 strk Exp $ */
 
 // Implementation of ActionScript Number class.
 
@@ -129,4 +129,10 @@
 
 }
   
+std::auto_ptr<as_object>
+init_number_instance(double val)
+{
+       return std::auto_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.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- server/asobj/Number.h       29 Oct 2006 18:34:12 -0000      1.2
+++ server/asobj/Number.h       5 Nov 2006 20:10:12 -0000       1.3
@@ -23,6 +23,8 @@
 #ifndef GNASH_NUMBER_H
 #define GNASH_NUMBER_H
 
+#include <memory> // for auto_ptr
+
 namespace gnash {
 
 class as_object;
@@ -30,6 +32,9 @@
 /// Initialize the global Number class
 void number_class_init(as_object& global);
 
+/// Return a Number instance
+std::auto_ptr<as_object> init_number_instance(double val);
+
 }
 
 #endif // GNASH_NUMBER_H

Index: server/asobj/gstring.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/gstring.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- server/asobj/gstring.h      29 Oct 2006 18:34:12 -0000      1.2
+++ server/asobj/gstring.h      5 Nov 2006 20:10:12 -0000       1.3
@@ -23,6 +23,8 @@
 #ifndef GNASH_STRING_H
 #define GNASH_STRING_H
 
+#include <memory> // for auto_ptr
+
 namespace gnash {
 
 class as_object;
@@ -30,6 +32,9 @@
 // Initialize the global String class
 void string_class_init(as_object& global);
 
+/// Return a String instance
+std::auto_ptr<as_object> init_string_instance(const char* val);
+
 }
 
 #endif // GNASH_STRING_H

Index: server/asobj/string.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/string.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- server/asobj/string.cpp     29 Oct 2006 18:34:12 -0000      1.3
+++ server/asobj/string.cpp     5 Nov 2006 20:10:12 -0000       1.4
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: string.cpp,v 1.3 2006/10/29 18:34:12 rsavoye Exp $ */
+/* $Id: string.cpp,v 1.4 2006/11/05 20:10:12 strk Exp $ */
 
 // Implementation of ActionScript String class.
 
@@ -297,4 +297,15 @@
 
 }
   
+std::auto_ptr<as_object>
+init_string_instance(const char* val)
+{
+       tu_string_as_object* obj = new tu_string_as_object();
+       if ( val ) obj->m_string = val;
+       return std::auto_ptr<as_object>(obj);
+       //return ret;
+       //std::auto_ptr<as_object> ret(obj);
+       //return ret;
+}
+  
 } // namespace gnash

Index: server/swf/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/ASHandlers.cpp,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -b -r1.88 -r1.89
--- server/swf/ASHandlers.cpp   5 Nov 2006 12:05:07 -0000       1.88
+++ server/swf/ASHandlers.cpp   5 Nov 2006 20:10:12 -0000       1.89
@@ -16,7 +16,7 @@
 
 //
 
-/* $Id: ASHandlers.cpp,v 1.88 2006/11/05 12:05:07 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.89 2006/11/05 20:10:12 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -38,7 +38,10 @@
 #include "URL.h"
 #include "URLAccessManager.h" // for GetUrl actions
 #include "action_buffer.h"
+#include "as_object.h"
 #include "Object.h"
+#include "gstring.h" // for automatic as_value::STRING => String as object
+#include "Number.h" // for automatic as_value::NUMBER => Number as object
 
 #include <string>
 #include <map>
@@ -2521,6 +2524,31 @@
     log_action(" method nargs: %d", nargs);
        );
 
+       // for temporarly storing result of automatic
+       // String and Number conversion
+       std::auto_ptr<as_object> obj_ptr;
+
+    if (!obj)
+    {
+       // try automatic casting strings to String objects
+       // and numbers to Number objects
+       // TODO: check if moving this in as_value::to_object()
+       //       would break anything (better to use in head)
+       switch ( obj_value.get_type() )
+       {
+               case as_value::STRING:
+                       obj_ptr = init_string_instance(obj_value.to_string());
+                       obj = obj_ptr.get();
+                       break;
+               case as_value::NUMBER:
+                       obj_ptr = init_number_instance(obj_value.to_number());
+                       obj = obj_ptr.get();
+                       break;
+               default:
+                       break;
+       }
+
+    }
 
     if (!obj) {
         log_error("call_method invoked in something that "




reply via email to

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