]> granicus.if.org Git - re2c/commitdiff
Suffixes of skeleton end nodes should be initialized by algorithm that uses them.
authorUlya Trofimovich <skvadrik@gmail.com>
Wed, 9 Sep 2015 12:09:25 +0000 (13:09 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Wed, 9 Sep 2015 12:09:25 +0000 (13:09 +0100)
re2c/src/codegen/skeleton/generate_data.cc
re2c/src/codegen/skeleton/skeleton.cc

index 538825b3de30f7476210f09b4845c3fcbd7e6fa5..6412f43d9c8a40c7bf1c792d20536d03696f6e1b 100644 (file)
@@ -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);
index 6e287bccaf783dad1414f03cdd0e4f40063b4b6e..818964538baf5f48cf5af9744762bf19d1d10b00 100644 (file)
@@ -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)