diff options
author | John MacFarlane <jgm@berkeley.edu> | 2016-06-23 13:28:41 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2016-06-23 13:29:06 -0700 |
commit | 41b8c5b3a4c46d3c2beb1dae6e170c295c19b198 (patch) | |
tree | 928c6267fd9795c3f5ed998b18b2a50c674c6bd0 | |
parent | 2365a559d0bc9e6a212e1a1a3ab919b12e3c5e90 (diff) |
Removed check for same mem allocator in S_can_contain.
This is too strict, as it prevents the use of dynamically
loaded extensions: see
https://github.com/jgm/cmark/pull/123#discussion_r67231518.
Documented in man page and public header that one should use the same
memory allocator for every node in a tree.
-rw-r--r-- | src/cmark.h | 3 | ||||
-rw-r--r-- | src/node.c | 3 |
2 files changed, 2 insertions, 4 deletions
diff --git a/src/cmark.h b/src/cmark.h index 45d7bc3..3543c82 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -112,7 +112,8 @@ typedef struct cmark_mem { CMARK_EXPORT cmark_node *cmark_node_new(cmark_node_type type); /** Same as `cmark_node_new`, but explicitly listing the memory - * allocator used to allocate the node + * allocator used to allocate the node. Note: be sure to use the same + * allocator for every node in a tree, or bad things can happen. */ CMARK_EXPORT cmark_node *cmark_node_new_with_mem(cmark_node_type type, cmark_mem *mem); @@ -30,9 +30,6 @@ static bool S_can_contain(cmark_node *node, cmark_node *child) { if (node == NULL || child == NULL) { return false; } - if (NODE_MEM(node) != NODE_MEM(child)) { - return 0; - } // Verify that child is not an ancestor of node or equal to node. cur = node; |