]> granicus.if.org Git - re2c/commitdiff
Fixed an old bug in function calculating regexp length.
authorUlya Trofimovich <skvadrik@gmail.com>
Wed, 17 Feb 2016 15:01:28 +0000 (15:01 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Wed, 17 Feb 2016 15:01:28 +0000 (15:01 +0000)
The bug: the function treated 'r1 | r2' as 'r1 | r2'
(used 'r1' twice instead of 'r1' and 'r2').

As the function was rarely used the bug went unnoticed for about
two decades.

re2c/src/ir/regexp/fixed_length.cc

index e0fd7e00cfd1fb0eb851dce037c6cc7bb0689d9d..264737be594ee137eafac4e2654f734850900b74 100644 (file)
@@ -17,7 +17,7 @@ uint32_t RegExp::fixedLength ()
 uint32_t AltOp::fixedLength ()
 {
        uint32_t l1 = exp1->fixedLength ();
-       uint32_t l2 = exp1->fixedLength ();
+       uint32_t l2 = exp2->fixedLength ();
 
        if (l1 != l2 || l1 == ~0u)
        {