X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Fcache.ml;h=abe113ae8ce22f3f1a6c362189fb8837bee562e7;hb=7e27afe6fa006ad355237ccc0695c6493ea57929;hp=68cae6760c9cf2cf6f6f2371004130a8043640f8;hpb=7c4c61cec6fe1ae3a1b83a59b17ce90adcfe9b0b;p=SXSI%2Fxpathcomp.git diff --git a/src/cache.ml b/src/cache.ml index 68cae67..abe113a 100644 --- a/src/cache.ml +++ b/src/cache.ml @@ -1,4 +1,3 @@ - let realloc l old_size new_size dummy = let l' = Array.create new_size dummy in for i = 0 to (min old_size new_size) - 1 do @@ -81,7 +80,7 @@ module Lvl2 = struct type 'a t = 'a Lvl1.t Lvl1.t let create n a = - let dummy1 = Lvl1.create 0 a in + let dummy1 = Lvl1.create 512 a in { Lvl1.line = Array.create n dummy1; Lvl1.offset = ~-1; Lvl1.dummy = dummy1; @@ -130,9 +129,9 @@ struct let add a i j k v = let line = Lvl1.find a i in if line == a.Lvl1.dummy then - let nline = { line with Lvl1.offset = ~-1 } in - Lvl2.add nline j k v; - Lvl1.add a i nline + let nline = Lvl1.create 0 line.Lvl1.dummy in + Lvl1.add a i nline; + Lvl2.add nline j k v else Lvl2.add line j k v