gnash-commit
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]