Author: olehougaard
Date: Fri Sep 26 03:25:14 2008
New Revision: 383
Modified:
branches/bleeding_edge/src/array.js
Log:
Adding comment to the fix of issue 95.
Review URL: http://codereview.chromium.org/5003
Modified: branches/bleeding_edge/src/array.js
==============================================================================
--- branches/bleeding_edge/src/array.js (original)
+++ branches/bleeding_edge/src/array.js Fri Sep 26 03:25:14 2008
@@ -672,6 +672,8 @@
if (from >= to - 1) return;
var pivot_index = $floor($random() * (to - from)) + from;
var pivot = a[pivot_index];
+ // Issue 95: Keep the pivot element out of the comparisons to avoid
+ // infinite recursion if comparefn(pivot, pivot) != 0.
a[pivot_index] = a[to - 1];
a[to - 1] = pivot;
var low_end = from; // Upper bound of the elements lower than pivot.
@@ -692,6 +694,7 @@
i++;
}
}
+ // Restore the pivot element to its rightful place.
a[to - 1] = a[high_start];
a[high_start] = pivot;
high_start++;
--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---