diff options
author | John MacFarlane <jgm@berkeley.edu> | 2014-11-05 09:53:35 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2014-11-05 09:53:35 -0800 |
commit | 715d1a5921a4e3e10220d466c4ee2c1261d28c1e (patch) | |
tree | 25cdfae7c4d3139a448f259b0ba3e52d27f2e1c6 /src | |
parent | 90c48e849440e50b3fef21f0cd6c38b998490073 (diff) |
Removed stack limits in inline parsing.
This brings back segfaults, but we're now aiming for a better solution,
revising the renderer so it doesn't use recursion, and using a stack
approach for nested brackets. Removing these limits will allow us to
know when we've got it right.
See #166, #187.
Diffstat (limited to 'src')
-rw-r--r-- | src/cmark.h | 1 | ||||
-rw-r--r-- | src/inlines.c | 5 |
2 files changed, 2 insertions, 4 deletions
diff --git a/src/cmark.h b/src/cmark.h index e34df72..ff2f9a2 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -9,7 +9,6 @@ #define VERSION "0.1" #define CODE_INDENT 4 -#define STACK_LIMIT 1000 struct node_inl { enum { diff --git a/src/inlines.c b/src/inlines.c index 1ab1b29..a43012f 100644 --- a/src/inlines.c +++ b/src/inlines.c @@ -416,7 +416,7 @@ static node_inl* handle_strong_emph(subject* subj, unsigned char c, node_inl **l cannotClose: inl_text = make_str(chunk_dup(&subj->input, subj->pos - numdelims, numdelims)); - if (can_open && subj->emphasis_nestlevel < STACK_LIMIT) + if (can_open) { istack = (inline_stack*)malloc(sizeof(inline_stack)); if (istack == NULL) { @@ -617,8 +617,7 @@ static int link_label(subject* subj, chunk *raw_label) advance(subj); // advance past [ unsigned char c; - while ((c = peek_char(subj)) && - (c != ']' || (nestlevel > 0 && nestlevel < STACK_LIMIT))) { + while ((c = peek_char(subj)) && (c != ']' || nestlevel > 0)) { switch (c) { case '`': tmp = handle_backticks(subj); |