2007-10-21 Mark Rowe <mrowe@apple.com>
authorbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 22 Oct 2007 05:44:14 +0000 (05:44 +0000)
committerbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 22 Oct 2007 05:44:14 +0000 (05:44 +0000)
        Reviewed by Mitz.

        Fix http://bugs.webkit.org/show_bug.cgi?id=15603
        Bug 15603: Regression(r26847): Crash when sorting an empty array from JavaScript

        * kjs/array_object.cpp:
        (KJS::freeStorage): Reinstate null-check that was removed in r26847.

2007-10-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Mitz.

        Test for http://bugs.webkit.org/show_bug.cgi?id=15603
        Bug 15603: Regression(r26847): Crash when sorting an empty array from JavaScript

        * fast/js/kde/Array-expected.txt:
        * fast/js/kde/resources/Array.js: Update to cover sorting an empty array.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@26862 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/array_object.cpp
LayoutTests/ChangeLog
LayoutTests/fast/js/kde/Array-expected.txt
LayoutTests/fast/js/kde/resources/Array.js

index 3879123..6f01425 100644 (file)
@@ -1,3 +1,13 @@
+2007-10-21  Mark Rowe  <mrowe@apple.com>
+
+        Reviewed by Mitz.
+
+        Fix http://bugs.webkit.org/show_bug.cgi?id=15603
+        Bug 15603: Regression(r26847): Crash when sorting an empty array from JavaScript
+
+        * kjs/array_object.cpp:
+        (KJS::freeStorage): Reinstate null-check that was removed in r26847.
+
 2007-10-21  Darin Adler  <darin@apple.com>
 
         - fix Windows build
index 3b0df6a..156634a 100644 (file)
@@ -75,7 +75,8 @@ static inline void reallocateStorage(JSValue**& storage, size_t newCapacity)
 
 static inline void freeStorage(JSValue** storage)
 {
-  fastFree(storage - 2);
+    if (storage)
+        fastFree(storage - 2);
 }
 
 ArrayInstance::ArrayInstance(JSObject *proto, unsigned initialLength)
index 88c9662..abc626a 100644 (file)
@@ -1,3 +1,13 @@
+2007-10-21  Mark Rowe  <mrowe@apple.com>
+
+        Reviewed by Mitz.
+
+        Test for http://bugs.webkit.org/show_bug.cgi?id=15603
+        Bug 15603: Regression(r26847): Crash when sorting an empty array from JavaScript
+
+        * fast/js/kde/Array-expected.txt:
+        * fast/js/kde/resources/Array.js: Update to cover sorting an empty array.
+
 2007-10-21  Nikolas Zimmermann  <zimmermann@kde.org>
 
         Not reviewed.
index 3559843..021a76e 100644 (file)
@@ -50,6 +50,7 @@ PASS forInSum(Array()) is ''
 PASS forInSum(Array('a')) is 'a'
 PASS forInSum(a0) is ''
 PASS forInSum(a1) is 'a'
+PASS String([].sort()) is ''
 PASS String([3,1,'2'].sort()) is '1,2,3'
 PASS String([,'x','aa'].sort()) is 'aa,x,'
 PASS var a = ['aa', 'b', 'cccc', 'ddd']; String(a.sort(comp)) is 'b,aa,ddd,cccc'
index fae7e3b..4418019 100644 (file)
@@ -90,6 +90,7 @@ shouldBe("forInSum(a0)", "''");
 var a1 = [ 'a' ];
 shouldBe("forInSum(a1)", "'a'");
 
+shouldBe("String([].sort())", "''")
 shouldBe("String([3,1,'2'].sort())", "'1,2,3'");
 shouldBe("String([,'x','aa'].sort())", "'aa,x,'"); // don't assume 'x'>undefined !
 
@@ -107,8 +108,7 @@ function comp(a, b) {
 shouldBe("var a = ['aa', 'b', 'cccc', 'ddd']; String(a.sort(comp))", "'b,aa,ddd,cccc'");
 
 // +/-Infinity as function return value
-shouldBe("[0, Infinity].sort(function(a, b) { return a - b }).toString()",
-        "'0,Infinity'");
+shouldBe("[0, Infinity].sort(function(a, b) { return a - b }).toString()", "'0,Infinity'");
 
 // Array.unshift()
 shouldBe("[].unshift('a')", "1");