[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp |
Date: |
Mon, 06 Nov 2006 19:23:31 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 06/11/06 19:23:31
Modified files:
. : ChangeLog
server : sprite_instance.cpp
Log message:
* server/sprite_instance.cpp (sprite_create_text_field):
don't abort on "invalid?" calls. Warn if requested.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1540&r2=1.1541
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.74&r2=1.75
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1540
retrieving revision 1.1541
diff -u -b -r1.1540 -r1.1541
--- ChangeLog 6 Nov 2006 16:42:00 -0000 1.1540
+++ ChangeLog 6 Nov 2006 19:23:31 -0000 1.1541
@@ -1,5 +1,7 @@
2006-11-06 Sandro Santilli <address@hidden>
+ * server/sprite_instance.cpp (sprite_create_text_field):
+ don't abort on "invalid?" calls. Warn if requested.
* testsuite/actionscript.all/Function.as: fixed test for
SWF >= version 7.
* server/as_function.cpp (function_apply): don't abort
Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -b -r1.74 -r1.75
--- server/sprite_instance.cpp 5 Nov 2006 15:12:57 -0000 1.74
+++ server/sprite_instance.cpp 6 Nov 2006 19:23:31 -0000 1.75
@@ -546,24 +546,83 @@
sprite_instance* sprite = dynamic_cast<sprite_instance*>(target);
assert(sprite);
- assert(fn.nargs==6); // name, depth, x, y, width, height
+ if (fn.nargs != 6) // name, depth, x, y, width, height
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_msg("createTextField called with %d args, "
+ "expected 6 - returning undefined", fn.nargs);
+ );
+ fn.result->set_undefined();
+ return;
+ }
- assert(fn.arg(0).get_type()==as_value::STRING);
+ if ( fn.arg(0).get_type() != as_value::STRING )
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_msg("First argument of createTextField is not a string"
+ " - returning undefined");
+ );
+ fn.result->set_undefined();
+ return;
+ }
//std::string txt_name = fn.arg(0).to_string();
- assert(fn.arg(1).get_type()==as_value::NUMBER);
+ if ( fn.arg(1).get_type() != as_value::NUMBER)
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_msg("Second argument of createTextField is not a number"
+ " - returning undefined");
+ );
+ fn.result->set_undefined();
+ return;
+ }
+
//double txt_depth = fn.arg(1).to_number();
- assert(fn.arg(2).get_type()==as_value::NUMBER);
+ if ( fn.arg(2).get_type() != as_value::NUMBER)
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_msg("Third argument of createTextField is not a number"
+ " - returning undefined");
+ );
+ fn.result->set_undefined();
+ return;
+ }
+
//double txt_x = fn.arg(2).to_number();
- assert(fn.arg(3).get_type()==as_value::NUMBER);
+ if ( fn.arg(3).get_type() != as_value::NUMBER)
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_msg("Fourth argument of createTextField is not a number"
+ " - returning undefined");
+ );
+ fn.result->set_undefined();
+ return;
+ }
+
//double txt_y = fn.arg(3).to_number();
- assert(fn.arg(4).get_type()==as_value::NUMBER);
+ if ( fn.arg(4).get_type() != as_value::NUMBER )
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_msg("Fifth argument of createTextField is not a number"
+ " - returning undefined");
+ );
+ fn.result->set_undefined();
+ return;
+ }
//double txt_width = fn.arg(4).to_number();
- assert(fn.arg(5).get_type()==as_value::NUMBER);
+ if (fn.arg(5).get_type() != as_value::NUMBER)
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_msg("Fifth argument of createTextField is not a number"
+ " - returning undefined");
+ );
+ fn.result->set_undefined();
+ return;
+ }
//double txt_height = fn.arg(5).to_number();
@@ -575,7 +634,7 @@
// Get target's movie definition
movie_definition *mds = sprite->get_movie_definition();
- log_msg("Target's movie definition at %p\n", (void*)mds);
+ //log_msg("Target's movie definition at %p\n", (void*)mds);
// Do I need the smart_ptr here ?
smart_ptr<text_character_def> txt = new text_character_def(mds);