summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2014-08-31 14:44:51 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2014-08-31 14:44:51 +0000
commit132c529b7551926320a48d58664afab7270a20d1 (patch)
treec2c59243f86ddcaa83f607de30091c105bffe258
parenta18bc7950b385ba1668d5efe7b277591b8638802 (diff)
downloadocaml-132c529b7551926320a48d58664afab7270a20d1.tar.gz
Reflecting commit 15169 on version/4.02:
PR#6529: fix quadratic-time algorithm in Consistbl.extract. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15170 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--Changes4
-rw-r--r--utils/consistbl.ml5
2 files changed, 4 insertions, 5 deletions
diff --git a/Changes b/Changes
index c37c8b03c1..3b002c9a21 100644
--- a/Changes
+++ b/Changes
@@ -8,7 +8,9 @@ Compilers:
Runtime system:
- PR#6517: use ISO C99 types {,u}int{32,64}_t in preference to our homegrown
types {,u}int{32,64}.
-
+ (Xavier Leroy)
+- PR#6529: fix quadratic-time algorithm in Consistbl.extract.
+ (Xavier Leroy)
Ocaml 4.02.0:
-------------
diff --git a/utils/consistbl.ml b/utils/consistbl.ml
index 6adaf41122..37f6a2b1e6 100644
--- a/utils/consistbl.ml
+++ b/utils/consistbl.ml
@@ -41,12 +41,9 @@ let set tbl name crc source = Hashtbl.add tbl name (crc, source)
let source tbl name = snd (Hashtbl.find tbl name)
let extract l tbl =
+ let l = List.sort_uniq String.compare l in
List.fold_left
(fun assc name ->
- try
- ignore (List.assoc name assc);
- assc
- with Not_found ->
try
let (crc, _) = Hashtbl.find tbl name in
(name, Some crc) :: assc