From 99ca500d2b59dc286b405b6a278ca244a4c17fdb Mon Sep 17 00:00:00 2001 From: "Meredith L. Patterson" <mlp@thesmartpolitenerd.com> Date: Sun, 4 Oct 2015 15:32:32 +0200 Subject: [PATCH] Don't try to recall() primitive results --- src/backends/packrat.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backends/packrat.c b/src/backends/packrat.c index b7719737..abb198b0 100644 --- a/src/backends/packrat.c +++ b/src/backends/packrat.c @@ -181,7 +181,10 @@ HParseResult* lr_answer(HParserCacheKey *k, HParseState *state, HLeftRec *growab HParseResult* h_do_parse(const HParser* parser, HParseState *state) { HParserCacheKey *key = a_new(HParserCacheKey, 1); key->input_pos = state->input_stream; key->parser = parser; - HParserCacheValue *m = recall(key, state); + HParserCacheValue *m = NULL; + if (parser->vtable->higher) { + m = recall(key, state); + } // check to see if there is already a result for this object... if (!m) { // It doesn't exist, so create a dummy result to cache -- GitLab