diff options
author | Nick Wellnhofer <wellnhofer@aevum.de> | 2020-01-19 00:51:02 +0100 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2020-01-23 08:25:54 -0800 |
commit | b0a4cfa36e99c27dd2b20be8f8888fa7721bad58 (patch) | |
tree | 528ace24d0526b0dd647bcd774f348e677b78a9f /src/node.h | |
parent | 75b48c5938f5984dbcf79a579d15c9cbd6447d12 (diff) |
Use C string instead of chunk for literal text
Use zero-terminated C strings and a separate length field instead of
cmark_chunks. Literal inline text will now be copied from the parent
block's content buffer, slowing the benchmark down by 10-15%.
The node struct never references memory of other nodes now, fixing #309.
Node accessors don't have to check for delayed creation of C strings,
so parsing and iterating all literals using the public API should
actually be faster than before.
Diffstat (limited to 'src/node.h')
-rw-r--r-- | src/node.h | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -10,7 +10,11 @@ extern "C" { #include "cmark.h" #include "buffer.h" -#include "chunk.h" + +typedef struct { + unsigned char *data; + bufsize_t len; +} cmark_literal; typedef struct { cmark_list_type list_type; @@ -72,7 +76,7 @@ struct cmark_node { uint16_t flags; union { - cmark_chunk literal; + cmark_literal literal; cmark_list list; cmark_code code; cmark_heading heading; |