Uses the Logger.print function instead of Printf.eprintf
[SXSI/xpathcomp.git] / src / hcons.ml
index c0c62e7..5a7ad14 100644 (file)
@@ -47,33 +47,21 @@ struct
 
   exception Found of Uid.t
 
-  let first_free_id () =
-    let mx = Uid.to_int (uid_current()) + 1 in
-    let a = Array.create mx Uid.dummy in
-      WH.iter (fun cell -> a.(Uid.to_int cell.id) <- (Uid.of_int 0)) pool;
-      try
-       for i = 0 to mx - 1 do
-         if a.(i) == Uid.dummy then raise (Found (Uid.of_int i));
-       done;
-       uid_make()
-      with
-         Found i -> i
-
-
   let make x =
     let cell = { id = Uid.dummy; key = H.hash x; node = x } in
       try
        WH.find pool cell
       with
        | Not_found ->
-           let cell = { id = uid_make(); key = H.hash x; node = x } in
+           let cell = { cell with id = uid_make(); } in
              WH.add pool cell;cell
 
   exception Found of t
 
   let stats () =
-    Printf.eprintf "Hconsing statistics";
     let l = WH.fold (fun cell acc -> (Uid.to_int cell.id)::acc) pool [] in
     let l = List.sort compare l in
-    List.iter (fun id -> Printf.eprintf "%i\n" id) l
+    Logger.print Format.err_formatter "Hconsing statistics:@\n%a"
+    (fun ppf l ->
+      Pretty.pp_print_list ~sep:Format.pp_force_newline Format.pp_print_int ppf l) l
 end