From 0d63bbf233b735ac89eefa0e62412c52b5b58c98 Mon Sep 17 00:00:00 2001 From: serega6531 Date: Wed, 13 Jan 2021 00:05:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B1=D0=B0=D0=B3=20=D1=81=20=D0=BA=D1=8D=D1=88?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BF=D0=B0=D1=82=D1=82=D0=B5=D1=80=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/ru/serega6531/packmate/service/PatternMatcher.java | 2 ++ .../java/ru/serega6531/packmate/utils/KMPByteSearcher.java | 4 ++++ .../java/ru/serega6531/packmate/utils/KMPStringSearcher.java | 4 ++++ 3 files changed, 10 insertions(+) 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; + } + }