diff --git a/src/main/java/ru/serega6531/packmate/service/PatternMatcher.java b/src/main/java/ru/serega6531/packmate/service/PatternMatcher.java index f629188..a5ed96b 100644 --- a/src/main/java/ru/serega6531/packmate/service/PatternMatcher.java +++ b/src/main/java/ru/serega6531/packmate/service/PatternMatcher.java @@ -68,6 +68,7 @@ public class PatternMatcher { int end = searcher.search(reader) - 1; if (end < 0) { + searcher.reset(); return; } @@ -90,6 +91,7 @@ public class PatternMatcher { int end = searcher.search(is) - 1; if (end < 0) { + searcher.reset(); return; } diff --git a/src/main/java/ru/serega6531/packmate/utils/KMPByteSearcher.java b/src/main/java/ru/serega6531/packmate/utils/KMPByteSearcher.java index 361d5f3..4274125 100644 --- a/src/main/java/ru/serega6531/packmate/utils/KMPByteSearcher.java +++ b/src/main/java/ru/serega6531/packmate/utils/KMPByteSearcher.java @@ -59,4 +59,8 @@ public class KMPByteSearcher { } } + public void reset() { + this.lastEnd = 0; + } + } diff --git a/src/main/java/ru/serega6531/packmate/utils/KMPStringSearcher.java b/src/main/java/ru/serega6531/packmate/utils/KMPStringSearcher.java index c0d01d0..7ce3f7a 100644 --- a/src/main/java/ru/serega6531/packmate/utils/KMPStringSearcher.java +++ b/src/main/java/ru/serega6531/packmate/utils/KMPStringSearcher.java @@ -59,4 +59,8 @@ public class KMPStringSearcher { } } + public void reset() { + this.lastEnd = 0; + } + }