gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp testsu...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp testsu...
Date: Sat, 29 Mar 2008 23:41:05 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/03/29 23:41:05

Modified files:
        .              : ChangeLog 
        server/vm      : ASHandlers.cpp 
        testsuite/actionscript.all: String.as 

Log message:
        don't choke on empty strings. Fixes last crash in swfdec testsuite.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6087&r2=1.6088
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.222&r2=1.223
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/String.as?cvsroot=gnash&r1=1.48&r2=1.49

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6087
retrieving revision 1.6088
diff -u -b -r1.6087 -r1.6088
--- ChangeLog   29 Mar 2008 22:50:53 -0000      1.6087
+++ ChangeLog   29 Mar 2008 23:41:04 -0000      1.6088
@@ -1,5 +1,12 @@
 2008-03-29 Sandro Santilli <address@hidden>
 
+       * server/vm/ASHandlers.cpp (ActionSubString): don't choke on empty
+         strings. Fixes last crash in swfdec testsuite.
+       * testsuite/actionscript.all/String.as: test ACTION_SUBSTRING with
+         empty input.
+
+2008-03-29 Sandro Santilli <address@hidden>
+
        * server/video_stream_instance.{cpp,h}: don't attach character
          properties if it's not a character (a user-created Video instance).
          Fixes more crashes in swfdec testsuite.

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.222
retrieving revision 1.223
diff -u -b -r1.222 -r1.223
--- server/vm/ASHandlers.cpp    28 Mar 2008 13:52:30 -0000      1.222
+++ server/vm/ASHandlers.cpp    29 Mar 2008 23:41:05 -0000      1.223
@@ -885,8 +885,10 @@
     // input checks
     if ( strval.is_undefined() || strval.is_null() )
     {
-       log_error(_("Undefined or null string passed to ActionSubString, "
+       IF_VERBOSE_ASCODING_ERRORS(
+       log_aserror(_("Undefined or null string passed to ActionSubString, "
                "returning undefined"));
+        );
        env.drop(2);
        env.top(0).set_undefined();
            return;
@@ -910,6 +912,14 @@
            size = wstr.length();
     }
 
+    if ( size == 0 || wstr.empty() )
+    {
+        env.drop(2);
+        env.top(0).set_string("");
+        return;
+    }
+
+
     // TODO: if 'start' or 'size' do not evaluate to numbers return
     //       the empty string (how do we check if they evaluate ??)
 
@@ -935,13 +945,6 @@
            return;
     }
 
-    if (size == 0)
-    {
-        env.drop(2);
-        env.top(0).set_string("");
-        return;
-    }
-
     // Adjust the start for our own use.
     --start;
 
@@ -954,7 +957,6 @@
            size = wstr.length() - start;
     }
 
-
     assert(start >= 0);
     assert(static_cast<unsigned int>(start) < wstr.length() );
     assert(size >= 0);

Index: testsuite/actionscript.all/String.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/String.as,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- testsuite/actionscript.all/String.as        17 Mar 2008 08:06:47 -0000      
1.48
+++ testsuite/actionscript.all/String.as        29 Mar 2008 23:41:05 -0000      
1.49
@@ -17,7 +17,7 @@
 // Original author: Mike Carlson - June 19th, 2006
 
 
-rcsid="$Id: String.as,v 1.48 2008/03/17 08:06:47 bwy Exp $";
+rcsid="$Id: String.as,v 1.49 2008/03/29 23:41:05 strk Exp $";
 #include "check.as"
 
 check_equals(typeof(String), 'function');
@@ -493,6 +493,16 @@
 };
 check_equals( b, "f");
 
+asm {
+       push "b"
+       push ""
+       push "0" 
+       push "1" 
+       substring
+       setvariable
+};
+check_equals( b, "");
+
 teststr = "Heöllo";
 count1 = 0;
 count2 = 0;
@@ -746,7 +756,7 @@
 check_equals(r, "s:");
 
 #if OUTPUT_VERSION < 6
- check_totals(203);
+ check_totals(204);
 #else
- check_totals(233);
+ check_totals(234);
 #endif




reply via email to

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