[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp test...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp test... |
Date: |
Wed, 12 Sep 2007 16:47:35 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/09/12 16:47:35
Modified files:
. : ChangeLog
server : sprite_instance.cpp
testsuite/actionscript.all: TextField.as
Log message:
* server/sprite_instance.cpp (sprite_create_text_field): check
for
negative dimensions. Fixes bug #21021.
* testsuite/actionscript.all/TextField.as: Add test for negative
dimensions given to createTextField().
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4295&r2=1.4296
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.336&r2=1.337
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/TextField.as?cvsroot=gnash&r1=1.23&r2=1.24
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4295
retrieving revision 1.4296
diff -u -b -r1.4295 -r1.4296
--- ChangeLog 12 Sep 2007 16:17:04 -0000 1.4295
+++ ChangeLog 12 Sep 2007 16:47:34 -0000 1.4296
@@ -1,5 +1,12 @@
2007-09-12 Sandro Santilli <address@hidden>
+ * server/sprite_instance.cpp (sprite_create_text_field): check for
+ negative dimensions. Fixes bug #21021.
+ * testsuite/actionscript.all/TextField.as: Add test for negative
+ dimensions given to createTextField().
+
+2007-09-12 Sandro Santilli <address@hidden>
+
* server/asobj/AsBroadcaster.cpp: add support for passing arguments
for broadcasted message handlers.
* testsuite/actionscript.all/AsBroadcaster.as: add tests for arguments
Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.336
retrieving revision 1.337
diff -u -b -r1.336 -r1.337
--- server/sprite_instance.cpp 12 Sep 2007 15:21:43 -0000 1.336
+++ server/sprite_instance.cpp 12 Sep 2007 16:47:34 -0000 1.337
@@ -761,17 +761,33 @@
);
return as_value();
}
- float txt_width = fn.arg(4).to_number();
+ float txt_width = fn.arg(4).to_number(&fn.env());
+ if ( txt_width < 0 )
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_error(_("createTextField: negative width (%g)"
+ " - reverting sign"));
+ );
+ txt_width = -txt_width;
+ }
if ( ! fn.arg(5).is_number() )
{
IF_VERBOSE_ASCODING_ERRORS(
- log_error(_("Fifth argument of createTextField is not a number"
- " - returning undefined"));
+ log_error(_("Sixth argument of createTextField is not a number"
+ " - returning undefined"), txt_width);
);
return as_value();
}
- float txt_height = fn.arg(5).to_number();
+ float txt_height = fn.arg(5).to_number(&fn.env());
+ if ( txt_height < 0 )
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_error(_("createTextField: negative height (%g)"
+ " - reverting sign"), txt_height);
+ );
+ txt_height = -txt_height;
+ }
boost::intrusive_ptr<character> txt = sprite->add_textfield(txt_name,
txt_depth, txt_x, txt_y, txt_width, txt_height);
Index: testsuite/actionscript.all/TextField.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/TextField.as,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- testsuite/actionscript.all/TextField.as 5 Sep 2007 16:47:55 -0000
1.23
+++ testsuite/actionscript.all/TextField.as 12 Sep 2007 16:47:34 -0000
1.24
@@ -19,7 +19,7 @@
// compile this test case with Ming makeswf, and then
// execute it like this gnash -1 -r 0 -v out.swf
-rcsid="$Id: TextField.as,v 1.23 2007/09/05 16:47:55 meteoryte Exp $";
+rcsid="$Id: TextField.as,v 1.24 2007/09/12 16:47:34 strk Exp $";
#include "check.as"
@@ -647,4 +647,17 @@
check(origTextWidth > tf.textWidth);
#endif
+
+//------------------------------------------------------------
+// Test insane calls
+//------------------------------------------------------------
+
+ret = createTextField("tf2", 99, 5, 6, -1, -2);
+check_equals(typeof(tf2), 'object');
+check_equals(tf2._width, 1);
+check_equals(tf2._height, 2);
+check_equals(tf2._x, 5);
+check_equals(tf2._y, 6);
+
+
#endif // OUTPUT_VERSION > 5