From b39f481316c0aa90ef07dc0307ee291bd8dfe1f2 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 4 Oct 2022 12:04:18 +0200 Subject: [PATCH] check for zero epsilon or backref pointers --- src/runtime/c/pgf/parser.cxx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/runtime/c/pgf/parser.cxx b/src/runtime/c/pgf/parser.cxx index fb7050141..8a1763874 100644 --- a/src/runtime/c/pgf/parser.cxx +++ b/src/runtime/c/pgf/parser.cxx @@ -167,6 +167,9 @@ public: static void bu_predict(ref field, State *state, Choice *choice) { + if (field->backrefs == 0) + return; + for (size_t i = 0; i < field->backrefs->len; i++) { ref backref = vector_elem(field->backrefs, i); @@ -187,6 +190,9 @@ public: static void eps_predict(ref field, State *state, ParseItemConts *conts, prob_t outside_prob) { + if (field->epsilons == 0) + return; + for (size_t i = 0; i < field->epsilons->len; i++) { ref epsilon = vector_elem(field->epsilons, i); size_t n_args = epsilon->lin->absfun->type->hypos->len;