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 = ""
then (ignore (Log.warn "Binding to empty name forbidden" []); return false)
else
(filter.binding <- Some node;
directory := NameSet.add filter !directory;
node.names <- StringSet.add filter.label node.names;
ignore (Log.info "Node bound" [Sexp.Str filter.label; Sexp.Str node.class_name]);
return true)
match filter.binding with
| None ->
filter.binding <- Some node;
directory := NameSet.add filter !directory;
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 *)
let make_named class_name node_name handler =