Detect collisions like we used to before the node-name refactoring

This commit is contained in:
Tony Garnock-Jones 2012-05-09 21:51:47 -04:00
parent 015f6e04e5
commit f857f88b7b
1 changed files with 9 additions and 5 deletions

14
node.ml
View File

@ -73,11 +73,15 @@ let bind (filter, node) =
if filter.label = "" if filter.label = ""
then (ignore (Log.warn "Binding to empty name forbidden" []); return false) then (ignore (Log.warn "Binding to empty name forbidden" []); return false)
else else
(filter.binding <- Some node; match filter.binding with
directory := NameSet.add filter !directory; | None ->
node.names <- StringSet.add filter.label node.names; filter.binding <- Some node;
ignore (Log.info "Node bound" [Sexp.Str filter.label; Sexp.Str node.class_name]); directory := NameSet.add filter !directory;
return true) node.names <- StringSet.add filter.label node.names;
ignore (Log.info "Node bound" [Sexp.Str filter.label; Sexp.Str node.class_name]);
return true
| Some _ ->
return false
(* For use in factory constructor functions, hence the odd return type and values *) (* For use in factory constructor functions, hence the odd return type and values *)
let make_named class_name node_name handler = let make_named class_name node_name handler =