diff options
-rw-r--r-- | src/vytree.ml | 6 | ||||
-rw-r--r-- | test/vyconf_tree_test.ml | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/vytree.ml b/src/vytree.ml index 89743fb..ed1a23e 100644 --- a/src/vytree.ml +++ b/src/vytree.ml @@ -87,8 +87,10 @@ let delete node path = do_with_child delete_immediate node path let update node path data = - let update_data data' node' dummy = - {node' with data=data'} + let update_data data' node' name = + let child = find_or_fail node' name in + let child = { child with data=data' } in + replace node' child in do_with_child (update_data data) node path let rec get node path = diff --git a/test/vyconf_tree_test.ml b/test/vyconf_tree_test.ml index eca40ce..3d8c52a 100644 --- a/test/vyconf_tree_test.ml +++ b/test/vyconf_tree_test.ml @@ -94,7 +94,7 @@ let test_get_child_nonexistent test_ctxt = let test_update test_ctxt = let node = make "root" 0 in let node = insert 0 node ["foo"] 1 in - assert_equal (data_of_node (update node ["foo"] 9)) 9 + assert_equal (data_of_node (get (update node ["foo"] 9) ["foo"])) 9 let suite = "VyConf tree tests" >::: [ |