summaryrefslogtreecommitdiff
path: root/src/node.c
diff options
context:
space:
mode:
authorNick Wellnhofer <wellnhofer@aevum.de>2020-01-18 22:27:13 +0100
committerJohn MacFarlane <jgm@berkeley.edu>2020-01-23 08:25:54 -0800
commit3acbdf0965859c55fa36c65a4c0e17e92012687c (patch)
tree11cb19bc51d83d159f54d5a15be0533c4dfb3d96 /src/node.c
parentdf7ef9ed7b5f418897df557c9de88eaba2174703 (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.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/node.c b/src/node.c
index 147debf..fa538bc 100644
--- a/src/node.c
+++ b/src/node.c
@@ -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;