diff options
author | Nick Wellnhofer <wellnhofer@aevum.de> | 2014-11-26 16:25:07 +0100 |
---|---|---|
committer | Nick Wellnhofer <wellnhofer@aevum.de> | 2014-11-26 16:25:07 +0100 |
commit | 30c389623cb6e4e79adcb97c7f743830fcc843c0 (patch) | |
tree | 25f3fdde93802f8dceceb06b7c3efbf70757cac3 | |
parent | f7613e98edbb8987e0e0ecfb3c789c7ee8d60017 (diff) |
Don't allow insert_{before|after} root node
This can be changed if support for node lists is added to the public API.
-rw-r--r-- | api_test/main.c | 4 | ||||
-rw-r--r-- | src/node.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/api_test/main.c b/api_test/main.c index 8e6acea..709b8d3 100644 --- a/api_test/main.c +++ b/api_test/main.c @@ -298,6 +298,10 @@ create_tree(test_batch_runner *runner) cmark_node *doc = cmark_node_new(CMARK_NODE_DOCUMENT); cmark_node *p = cmark_node_new(CMARK_NODE_PARAGRAPH); + OK(runner, !cmark_node_insert_before(doc, p), + "insert before root fails"); + OK(runner, !cmark_node_insert_after(doc, p), + "insert after root fails"); OK(runner, cmark_node_append_child(doc, p), "append1"); INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append1 consistent"); OK(runner, cmark_node_parent(p) == doc, "node_parent"); @@ -436,7 +436,7 @@ cmark_node_unlink(cmark_node *node) { int cmark_node_insert_before(cmark_node *node, cmark_node *sibling) { - if (!S_can_contain(node->parent, sibling)) { + if (!node->parent || !S_can_contain(node->parent, sibling)) { return 0; } @@ -467,7 +467,7 @@ cmark_node_insert_before(cmark_node *node, cmark_node *sibling) int cmark_node_insert_after(cmark_node *node, cmark_node *sibling) { - if (!S_can_contain(node->parent, sibling)) { + if (!node->parent || !S_can_contain(node->parent, sibling)) { return 0; } |