diff options
author | Nick Wellnhofer <wellnhofer@aevum.de> | 2020-01-18 22:27:13 +0100 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2020-01-23 08:25:54 -0800 |
commit | 3acbdf0965859c55fa36c65a4c0e17e92012687c (patch) | |
tree | 11cb19bc51d83d159f54d5a15be0533c4dfb3d96 /src/node.c | |
parent | df7ef9ed7b5f418897df557c9de88eaba2174703 (diff) |
Use C string instead of chunk for code info and literal
Use zero-terminated C strings instead of cmark_chunks without storing
the length. The length of code literals will be readded in a later
commit. strlen overhead for code info should be negligible.
Reduces size of struct cmark_node by 8 bytes.
Diffstat (limited to 'src/node.c')
-rw-r--r-- | src/node.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -109,8 +109,8 @@ static void S_free_nodes(cmark_node *e) { cmark_strbuf_free(&e->content); switch (e->type) { case CMARK_NODE_CODE_BLOCK: - cmark_chunk_free(NODE_MEM(e), &e->as.code.info); - cmark_chunk_free(NODE_MEM(e), &e->as.code.literal); + NODE_MEM(e)->free(e->as.code.info); + NODE_MEM(e)->free(e->as.code.literal); break; case CMARK_NODE_TEXT: case CMARK_NODE_HTML_INLINE: @@ -298,7 +298,7 @@ const char *cmark_node_get_literal(cmark_node *node) { return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.literal); case CMARK_NODE_CODE_BLOCK: - return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.code.literal); + return (char *)node->as.code.literal; default: break; @@ -321,7 +321,7 @@ int cmark_node_set_literal(cmark_node *node, const char *content) { return 1; case CMARK_NODE_CODE_BLOCK: - cmark_chunk_set_cstr(NODE_MEM(node), &node->as.code.literal, content); + cmark_set_cstr(NODE_MEM(node), &node->as.code.literal, content); return 1; default: @@ -478,7 +478,7 @@ const char *cmark_node_get_fence_info(cmark_node *node) { } if (node->type == CMARK_NODE_CODE_BLOCK) { - return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.code.info); + return node->as.code.info ? (char *)node->as.code.info : ""; } else { return NULL; } @@ -490,7 +490,7 @@ int cmark_node_set_fence_info(cmark_node *node, const char *info) { } if (node->type == CMARK_NODE_CODE_BLOCK) { - cmark_chunk_set_cstr(NODE_MEM(node), &node->as.code.info, info); + cmark_set_cstr(NODE_MEM(node), &node->as.code.info, info); return 1; } else { return 0; |