[Top][All Lists]
[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 "
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/asobj/Number.cpp server/... [release_0_7_2],
Sandro Santilli <=