diff --git a/src/backends/packrat.c b/src/backends/packrat.c index ab0f8748d963b141375f54525b7217e978f43ff4..381771b0ba0ac84b1e1cc480b42e5ae6a16ad502 100644 --- a/src/backends/packrat.c +++ b/src/backends/packrat.c @@ -240,8 +240,10 @@ HParseResult* h_do_parse(const HParser* parser, HParseState *state) { * so we check to see if we have one */ if (!base || NULL == base->head) { - h_hashtable_put_precomp(state->cache, key, - cached_result(state, tmp_res), keyhash); + if (parser->vtable->higher) { + h_hashtable_put_precomp(state->cache, key, + cached_result(state, tmp_res), keyhash); + } return tmp_res; } else { base->seed = tmp_res;