Skip to content

Commit 4695863

Browse files
committed
TRegex: fix in-buffer copy in CounterTrackerList#removeMaxValue
1 parent 2af3567 commit 4695863

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

regex/src/com.oracle.truffle.regex.test/src/com/oracle/truffle/regex/tregex/test/OracleDBTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,6 +1665,7 @@ public void generatedTests() {
16651665
"axaxeageagageaxeaxeaxageaxagageaxeaxagageagaxaxeagaxeaxagagaxeagageaxeaxeagageaxeaxagaxaxaxageageagageagaxaxaxageaxageaxeageaxaxaxaxaxagaxagageaxeageageageaxeaxeaxageaxaxeaxeagaxagageaxeageaxeaxaxeaxageaxaxeagaxageageaz",
16661666
0, false);
16671667
test("(a{1100,1100})\\1", "i", "a".repeat(2400), 0, true, 0, 2200, 0, 1100);
1668+
test("[a]\\S{213,213}bcdz", "", "a".repeat(215) + ("bcxd" + "a".repeat(213)).repeat(3), 0, false);
16681669

16691670
/* GENERATED CODE END - KEEP THIS MARKER FOR AUTOMATIC UPDATES */
16701671
}

regex/src/com.oracle.truffle.regex/src/com/oracle/truffle/regex/tregex/nodes/dfa/CounterTrackerList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ private void incAll(int sId, long[] fixedData, int[][] intArrays) {
297297
*/
298298
private void removeMaxValue(int sId, long[] fixedData, int[] buffer, int start, int size) {
299299
if (start >= MAX_UNUSED_BUFFER_SPACE) {
300-
System.arraycopy(buffer, start, buffer, 0, size - 1);
300+
System.arraycopy(buffer, start + 1, buffer, 0, size - 1);
301301
setStart(sId, fixedData, 0);
302302
} else {
303303
setStart(sId, fixedData, start + 1);

0 commit comments

Comments
 (0)