summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2000-03-16 16:43:43 +0000
committerDamien Doligez <damien.doligez-inria.fr>2000-03-16 16:43:43 +0000
commitd512c37344eae237390c858e8ccff8c80bca5007 (patch)
tree55864dc72ec721ae5996627ad030a273feabb6f6
parent078a40e1d60fdf59b01491e92331d045679c02d6 (diff)
fix Array.sort (PR#33)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2965 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--stdlib/sort.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/stdlib/sort.ml b/stdlib/sort.ml
index 84ea324cb..acde35527 100644
--- a/stdlib/sort.ml
+++ b/stdlib/sort.ml
@@ -63,6 +63,9 @@ let array cmp arr =
end;
let pivot = unsafe_get arr mid in
let i = ref (lo + 1) and j = ref (hi - 1) in
+ if not (cmp pivot (unsafe_get arr hi))
+ || not (cmp (unsafe_get arr lo) pivot)
+ then raise (Invalid_argument "Sort.array");
while !i < !j do
while not (cmp pivot (unsafe_get arr !i)) do incr i done;
while not (cmp (unsafe_get arr !j) pivot) do decr j done;