From f39eaefb651064ea6b4b8f030ec98f98c94fe95a Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Mon, 30 May 2016 16:07:07 +0200 Subject: node: Memory diet Reduce the storage size for the `cmark_code` struct --- src/blocks.c | 2 +- src/node.h | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/blocks.c b/src/blocks.c index e4d5bf7..aae81c3 100644 --- a/src/blocks.c +++ b/src/blocks.c @@ -897,7 +897,7 @@ static void open_new_blocks(cmark_parser *parser, cmark_node **container, parser->first_nonspace + 1); (*container)->as.code.fenced = true; (*container)->as.code.fence_char = peek_at(input, parser->first_nonspace); - (*container)->as.code.fence_length = matched; + (*container)->as.code.fence_length = (matched > 255) ? 255 : matched; (*container)->as.code.fence_offset = (int8_t)(parser->first_nonspace - parser->offset); (*container)->as.code.info = cmark_chunk_literal(""); diff --git a/src/node.h b/src/node.h index 84b2560..65d857f 100644 --- a/src/node.h +++ b/src/node.h @@ -25,11 +25,10 @@ typedef struct { typedef struct { cmark_chunk info; cmark_chunk literal; - int fence_length; - /* fence_offset must be 0-3, so we can use int8_t */ - int8_t fence_offset; + uint8_t fence_length; + uint8_t fence_offset; unsigned char fence_char; - bool fenced; + int8_t fenced; } cmark_code; typedef struct { -- cgit v1.2.3