diff --git a/src/backends/packrat.c b/src/backends/packrat.c index 289803703bf32a13c8a7922fdc919e7085b2cda2..08237d9fc84f8caf549e9efd74f9c2f069405ce4 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;