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/... [relea


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

CVSROOT:        /sources/gnash
Module name:    gnash
Branch:         release_0_7_2
Changes by:     Sandro Santilli <strk>  06/11/05 20:09:06

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&only_with_tag=release_0_7_2&r1=1.1412.2.85&r2=1.1412.2.86
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Number.cpp?cvsroot=gnash&only_with_tag=release_0_7_2&r1=1.2.2.1&r2=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Number.h?cvsroot=gnash&only_with_tag=release_0_7_2&r1=1.1.2.1&r2=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/gstring.h?cvsroot=gnash&only_with_tag=release_0_7_2&r1=1.1.2.1&r2=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/string.cpp?cvsroot=gnash&only_with_tag=release_0_7_2&r1=1.2.2.1&r2=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/ASHandlers.cpp?cvsroot=gnash&only_with_tag=release_0_7_2&r1=1.84.2.3&r2=1.84.2.4

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1412.2.85
retrieving revision 1.1412.2.86
diff -u -b -r1.1412.2.85 -r1.1412.2.86
--- ChangeLog   5 Nov 2006 19:15:27 -0000       1.1412.2.85
+++ ChangeLog   5 Nov 2006 20:09:06 -0000       1.1412.2.86
@@ -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/swf/ASHandlers.cpp (ActionSubstring): early
          return if input string is undefined or null, base
          is out of range, size is negative or invalid (overflow

Index: server/asobj/Number.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Number.cpp,v
retrieving revision 1.2.2.1
retrieving revision 1.2.2.2
diff -u -b -r1.2.2.1 -r1.2.2.2
--- server/asobj/Number.cpp     30 Oct 2006 14:28:49 -0000      1.2.2.1
+++ server/asobj/Number.cpp     5 Nov 2006 20:09:06 -0000       1.2.2.2
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: Number.cpp,v 1.2.2.1 2006/10/30 14:28:49 rsavoye Exp $ */
+/* $Id: Number.cpp,v 1.2.2.2 2006/11/05 20:09:06 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.1.2.1
retrieving revision 1.1.2.2
diff -u -b -r1.1.2.1 -r1.1.2.2
--- server/asobj/Number.h       30 Oct 2006 14:28:49 -0000      1.1.2.1
+++ server/asobj/Number.h       5 Nov 2006 20:09:06 -0000       1.1.2.2
@@ -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.1.2.1
retrieving revision 1.1.2.2
diff -u -b -r1.1.2.1 -r1.1.2.2
--- server/asobj/gstring.h      30 Oct 2006 14:28:49 -0000      1.1.2.1
+++ server/asobj/gstring.h      5 Nov 2006 20:09:06 -0000       1.1.2.2
@@ -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.2.2.1
retrieving revision 1.2.2.2
diff -u -b -r1.2.2.1 -r1.2.2.2
--- server/asobj/string.cpp     30 Oct 2006 14:28:49 -0000      1.2.2.1
+++ server/asobj/string.cpp     5 Nov 2006 20:09:06 -0000       1.2.2.2
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: string.cpp,v 1.2.2.1 2006/10/30 14:28:49 rsavoye Exp $ */
+/* $Id: string.cpp,v 1.2.2.2 2006/11/05 20:09:06 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.84.2.3
retrieving revision 1.84.2.4
diff -u -b -r1.84.2.3 -r1.84.2.4
--- server/swf/ASHandlers.cpp   5 Nov 2006 12:03:50 -0000       1.84.2.3
+++ server/swf/ASHandlers.cpp   5 Nov 2006 20:09:06 -0000       1.84.2.4
@@ -16,7 +16,7 @@
 
 //
 
-/* $Id: ASHandlers.cpp,v 1.84.2.3 2006/11/05 12:03:50 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.84.2.4 2006/11/05 20:09:06 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>
@@ -2513,6 +2516,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]