if cur = size then cur <- 0;
data.(cur)
method add (e:'a) =
- cur <- cur + 1;
- if cur = size then cur <- 0;
- if cur = tl then tl <- tl + 1;
- if tl = size then tl <- 0;
- hd <- cur;
- data.(cur) <- e
+ if e <> data.(cur) then
+ begin
+ cur <- cur + 1;
+ if cur = size then cur <- 0;
+ if cur = tl then tl <- tl + 1;
+ if tl = size then tl <- 0;
+ hd <- cur;
+ data.(cur) <- e
+ end
method load (data', hd', tl', cur') =
assert (Array.length data = Array.length data');
hd <- hd'; tl <- tl'; cur <- cur';
let unopt = function None -> failwith "unopt: None" | Some v -> v
+let image_path n = sprintf "%s/%s" BuildTimeConf.images_dir n
+