diff options
author | John MacFarlane <jgm@berkeley.edu> | 2014-11-26 09:07:09 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2014-11-26 09:07:09 -0800 |
commit | 677a22519a212093438f4e5a08d79f9c74013488 (patch) | |
tree | 25f3fdde93802f8dceceb06b7c3efbf70757cac3 | |
parent | f7613e98edbb8987e0e0ecfb3c789c7ee8d60017 (diff) | |
parent | 30c389623cb6e4e79adcb97c7f743830fcc843c0 (diff) |
Merge pull request #220 from nwellnhof/node_insert_fix
Don't allow insert_{before|after} root node
-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; } |