[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/asobj/Boolean.cpp
From: |
Bastiaan Jacques |
Subject: |
[Gnash-commit] gnash ChangeLog server/asobj/Boolean.cpp |
Date: |
Mon, 12 Mar 2007 11:42:57 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Bastiaan Jacques <bjacques> 07/03/12 11:42:57
Modified files:
. : ChangeLog
server/asobj : Boolean.cpp
Log message:
Add ensureBoolean to guard casts.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2609&r2=1.2610
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Boolean.cpp?cvsroot=gnash&r1=1.6&r2=1.7
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2609
retrieving revision 1.2610
diff -u -b -r1.2609 -r1.2610
--- ChangeLog 12 Mar 2007 10:57:17 -0000 1.2609
+++ ChangeLog 12 Mar 2007 11:42:56 -0000 1.2610
@@ -1,3 +1,8 @@
+2007-03-12 Bastiaan Jacques <address@hidden>
+
+ * server/asobj/Boolean.cpp: Add ensureBoolean() to guard
+ casts.
+
2007-03-12 Sandro Santilli <address@hidden>
* testsuite/actionscript.all/Global.as: argh, it
Index: server/asobj/Boolean.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Boolean.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/asobj/Boolean.cpp 4 Mar 2007 01:39:01 -0000 1.6
+++ server/asobj/Boolean.cpp 12 Mar 2007 11:42:56 -0000 1.7
@@ -26,6 +26,7 @@
#include "fn_call.h"
#include "smart_ptr.h" // for boost intrusive_ptr
#include "builtin_function.h" // need builtin_function
+#include "GnashException.h"
namespace gnash {
@@ -79,20 +80,34 @@
};
+static boolean_as_object *
+ensureBoolean(as_object* obj)
+{
+ boolean_as_object* ret = dynamic_cast<boolean_as_object*>(obj);
+ if ( ! ret )
+ {
+ throw ActionException("builtin method or gettersetter for " \
+ " Boolean objects called against " \
+ " non-Boolean instance");
+ }
+ return ret;
+}
+
void boolean_tostring(const fn_call& fn) {
static char* strtrue = "true";
static char* strfalse = "false";
- boolean_as_object* boolobj = (boolean_as_object*) (as_object*)
fn.this_ptr;
+ boolean_as_object* boolobj = ensureBoolean(fn.this_ptr);
if (boolobj->val)
fn.result->set_string(strtrue);
else
fn.result->set_string(strfalse);
}
+
void boolean_valueof(const fn_call& fn) {
- boolean_as_object* boolobj = (boolean_as_object*) (as_object*) fn.this_ptr;
+ boolean_as_object* boolobj = ensureBoolean(fn.this_ptr);
fn.result->set_bool(boolobj->val);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/asobj/Boolean.cpp,
Bastiaan Jacques <=