@@ -4002,10 +4002,10 @@ let merge t1 t2 =
4002
4002
bal t1 x d (remove_min_binding t2)
4003
4003
4004
4004
4005
- let rec iter f = function
4005
+ let rec iter x f = match x with
4006
4006
Empty -> ()
4007
4007
| Node(l, v, d, r, _) ->
4008
- iter f l ; f v d; iter f r
4008
+ iter l f ; f v d; iter r f
4009
4009
4010
4010
let rec map f = function
4011
4011
Empty ->
@@ -4173,7 +4173,7 @@ module type S =
4173
4173
4174
4174
val equal: ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
4175
4175
4176
- val iter: (key -> 'a -> unit) -> 'a t -> unit
4176
+ val iter: 'a t -> (key -> 'a -> unit) -> unit
4177
4177
(** [iter f m] applies [f] to all bindings in map [m].
4178
4178
The bindings are passed to [f] in increasing order. *)
4179
4179
@@ -7285,12 +7285,12 @@ let encode_single (x : Bsb_db.t) (buf : Buffer.t) (buf2 : Buffer.t) =
7285
7285
let len = String_map.cardinal x in
7286
7286
nl buf ;
7287
7287
Buffer.add_string buf (string_of_int len);
7288
- String_map.iter (fun name module_info ->
7288
+ String_map.iter x (fun name module_info ->
7289
7289
nl buf;
7290
7290
Buffer.add_string buf name;
7291
7291
nl buf2;
7292
7292
encode_module_info module_info buf2
7293
- ) x
7293
+ )
7294
7294
7295
7295
let encode (x : Bsb_db.ts) (oc : out_channel)=
7296
7296
output_char oc '\n';
@@ -7415,6 +7415,33 @@ let printer_string = fun x -> x
7415
7415
let (=~) = OUnit.assert_equal ~printer:printer_string
7416
7416
7417
7417
7418
+ let parse_data_one =
7419
+ (Bsb_db_io.decode {|4.0.19
7420
+ 2
7421
+ 1
7422
+ Demo
7423
+ src/demo,01
7424
+ 1
7425
+ Test
7426
+ examples/test,01
7427
+ |} (ref 7))
7428
+
7429
+ let parse_data_two =
7430
+ Bsb_db_io.decode {|4.0.19
7431
+ 3
7432
+ 2
7433
+ Fib
7434
+ Demo
7435
+ src/hi/fib,01
7436
+ src/demo,01
7437
+ 0
7438
+ 0|} (ref 7)
7439
+ let data_one : Bsb_db_io.group array =
7440
+ [| {modules = [|"Demo"|]; meta_info_offset = 16}; {modules = [|"Test"|]; meta_info_offset = 35}|]
7441
+
7442
+ let data_two : Bsb_db_io.group array =
7443
+ [| {modules = [|"Fib"; "Demo"|]; meta_info_offset = 20 }; {modules = [||]; meta_info_offset = 48}; {modules = [||]; meta_info_offset = -1} |]
7444
+
7418
7445
7419
7446
let scope_test s (a,b,c)=
7420
7447
match Bsb_pkg_types.extract_pkg_name_and_file s with
@@ -7469,32 +7496,11 @@ let suites =
7469
7496
s_test1 "xx/yy/zz" "xx/yy/zz"
7470
7497
end;
7471
7498
__LOC__ >:: begin fun _ ->
7472
- let u = (Bsb_db_io.decode {|4.0.19
7473
- 2
7474
- 1
7475
- Demo
7476
- 0
7477
- src/demo,0,0
7478
- 1
7479
- Test
7480
- 0
7481
- examples/test,0,0
7482
- |} (ref 7)) in
7483
- OUnit.assert_equal u [| {modules = [|"Demo"|]; meta_info_offset = 16}; {modules = [|"Test"|]; meta_info_offset = 38}|]
7499
+ OUnit.assert_equal parse_data_one data_one
7484
7500
end ;
7485
7501
__LOC__ >:: begin fun _ ->
7486
- let v = Bsb_db_io.decode {|4.0.19
7487
- 3
7488
- 2
7489
- Fib
7490
- Demo
7491
- 0
7492
- src/hi/fib,0,0
7493
- 0
7494
- src/demo,0,0
7495
- 0
7496
- 0|} (ref 7) in
7497
- OUnit.assert_equal v [| {modules = [|"Fib"; "Demo"|]; meta_info_offset = 20 }; {modules = [||]; meta_info_offset = 54}; {modules = [||]; meta_info_offset = -1} |]
7502
+
7503
+ OUnit.assert_equal parse_data_two data_two
7498
7504
end
7499
7505
]
7500
7506
@@ -13982,7 +13988,7 @@ let suites =
13982
13988
Array.fold_left (fun acc key -> Int_map.adjust acc key (fun v -> match v with None -> 1 | Some v -> succ v) ) v a
13983
13989
end
13984
13990
in
13985
- Int_map.iter (fun _ v -> v =~ 2 ) u ;
13991
+ Int_map.iter u (fun _ v -> v =~ 2 ) ;
13986
13992
Int_map.cardinal u =~ count
13987
13993
end
13988
13994
]
0 commit comments