]> Cypherpunks repositories - gostls13.git/commitdiff
slight simplification made possible by the code now processing match states
authorRob Pike <r@golang.org>
Fri, 20 Nov 2009 19:16:57 +0000 (11:16 -0800)
committerRob Pike <r@golang.org>
Fri, 20 Nov 2009 19:16:57 +0000 (11:16 -0800)
in order of discovery.

R=rsc
https://golang.org/cl/157112

src/pkg/regexp/regexp.go

index a58fbf44fec38db2813da2a6145cda3cb0e40b3c..0b1d97d136accf324e31fcb12bc12861165792d0 100644 (file)
@@ -764,11 +764,10 @@ func (a *matchArena) addState(s []state, inst instr, match *matchVec, pos, end i
        index := inst.index();
        l := len(s);
        begin := match.m[0];
-       // TODO: If the state were a vector and we could do insert, have inputs always
-       // go in order correctly and this "earlier" test is not necessary,
+       // States are inserted in order so it's sufficient to see if we have the same
+       // instruction; no need to see if existing match is earlier (it is).
        for i := 0; i < l; i++ {
-               if s[i].inst.index() == index &&        // same instruction
-                       s[i].match.m[0] <= begin {      // earlier match already going; lefmost wins
+               if s[i].inst.index() == index {
                        return s
                }
        }