From 6e63459dda7ffa257d3ccfd294a2010a950897c5 Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Wed, 9 Sep 2015 13:09:25 +0100 Subject: [PATCH] Suffixes of skeleton end nodes should be initialized by algorithm that uses them. --- re2c/src/codegen/skeleton/generate_data.cc | 4 ++++ re2c/src/codegen/skeleton/skeleton.cc | 6 +----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/re2c/src/codegen/skeleton/generate_data.cc b/re2c/src/codegen/skeleton/generate_data.cc index 538825b3..6412f43d 100644 --- a/re2c/src/codegen/skeleton/generate_data.cc +++ b/re2c/src/codegen/skeleton/generate_data.cc @@ -147,6 +147,10 @@ arccount_t Node::cover (const multipath_t & prefix, FILE * input, std::ofstream { size = cover_one (input, keys, prefix, *suffix); } + else if (end ()) + { + suffix = new path_t (rule); + } else if (loop < 2) { local_inc _ (loop); diff --git a/re2c/src/codegen/skeleton/skeleton.cc b/re2c/src/codegen/skeleton/skeleton.cc index 6e287bcc..81896453 100644 --- a/re2c/src/codegen/skeleton/skeleton.cc +++ b/re2c/src/codegen/skeleton/skeleton.cc @@ -19,11 +19,7 @@ Node::Node (const State * s, const s2n_map & s2n) } const bool is_final = !s || (s->go.nSpans == 1 && !s->go.span[0].to); - if (is_final) - { - suffix = new path_t (rule); - } - else + if (!is_final) { uint32_t lb = 0; for (uint32_t i = 0; i < s->go.nSpans; ++i) -- 2.40.0