From cd228df581ba22e65f69eb57859519420d8af606 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Fri, 7 Feb 2020 20:17:59 -0500 Subject: [PATCH] Address PR feedback --- .../System/Text/RegularExpressions/RegexCompiler.cs | 3 +++ .../System/Text/RegularExpressions/RegexInterpreter.cs | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexCompiler.cs b/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexCompiler.cs index c84814602393ee..9455081385dc00 100644 --- a/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexCompiler.cs +++ b/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexCompiler.cs @@ -4430,6 +4430,7 @@ private void GenerateOneCode() // runtextpos += len; // i = 0; + // goto loopEnd; Ldloc(_runtextposLocal!); Ldloc(lenLocal); Add(); @@ -4441,6 +4442,7 @@ private void GenerateOneCode() // charFound: // runtextpos += i; // i = len - i; + // goto loopEnd; MarkLabel(charFound); Ldloc(_runtextposLocal!); Ldloc(iLocal); @@ -4519,6 +4521,7 @@ private void GenerateOneCode() Stloc(_runtextposLocal!); } + // loopEnd: MarkLabel(loopEnd); if (Code() != RegexCode.Oneloopatomic && Code() != RegexCode.Notoneloopatomic && Code() != RegexCode.Setloopatomic) { diff --git a/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexInterpreter.cs b/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexInterpreter.cs index 8dfd822a47f22a..3354d497069192 100644 --- a/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexInterpreter.cs +++ b/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexInterpreter.cs @@ -53,9 +53,9 @@ private void Goto(int newpos) private void Trackto(int newpos) => runtrackpos = runtrack!.Length - newpos; - /// Push onto the backtracking stack. private int Trackpos() => runtrack!.Length - runtrackpos; + /// Push onto the backtracking stack. private void TrackPush() => runtrack![--runtrackpos] = _codepos; private void TrackPush(int i1) @@ -161,10 +161,10 @@ private void SetOperator(int op) /// Pop framesize items from the backtracking stack. private void TrackPop(int framesize) => runtrackpos += framesize; - /// - /// Technically we are actually peeking at items already popped. So if you want to - /// get and pop the top item from the stack, you do `TrackPop(); TrackPeek();`. - /// + /// Peek at the item popped from the stack. + /// + /// If you want to get and pop the top item from the stack, you do `TrackPop(); TrackPeek();`. + /// private int TrackPeek() => runtrack![runtrackpos - 1]; /// Get the ith element down on the backtracking stack.