let get_list registry unmarshaller key =
try
- List.map unmarshaller (get registry key)
+ let tmp = get registry key in
+ let rc = List.map unmarshaller tmp in
+ rc
with Key_not_found _ -> []
(* FG *)
get_typed registry (pair fst_unmarshaller snd_unmarshaller)
let set_list registry marshaller ~key ~value =
- Hashtbl.remove registry key;
- List.iter
- (fun v -> set' ~replace:false registry ~key ~value:(marshaller v))
- value
+ (* since ocaml hash table are crazy... *)
+ while Hashtbl.mem registry key do
+ Hashtbl.remove registry key
+ done;
+ List.iter (fun v -> set' registry ~key ~value:(marshaller v)) value
type xml_tree =
| Cdata of string