- Commit
- b56b8cbe99222ce5e1ab0d144a95cb697b93761d
- Parent
- ca1e1cde8693b16907efe19b2b9ea9d61dbf3129
- Author
- John MacFarlane <jgm@berkeley.edu>
- Date
Made block-freeing slightly more efficient by using last_child.
My personal build of CMark ✏️
Made block-freeing slightly more efficient by using last_child.
1 file changed, 2 insertions, 8 deletions
Status | File Name | N° Changes | Insertions | Deletions |
Modified | src/blocks.c | 10 | 2 | 8 |
diff --git a/src/blocks.c b/src/blocks.c @@ -257,7 +257,6 @@ static node_block* add_child(node_block* parent, void cmark_free_nodes(node_block *e) { node_block * next; - node_block * tmp; while (e != NULL) { free_inlines(e->inline_content); strbuf_free(&e->string_content); @@ -266,14 +265,9 @@ void cmark_free_nodes(node_block *e) } else if (e->tag == BLOCK_DOCUMENT) { reference_map_free(e->as.document.refmap); } - tmp = e->children; - if (tmp) { - // Find last child - while (tmp->next) { - tmp = tmp->next; - } + if (e->last_child) { // Splice children into list - tmp->next = e->next; + e->last_child->next = e->next; e->next = e->children; } next = e->next;