diff options
| author | Daniel Gredler <daniel.gredler@gmail.com> | 2023-09-16 16:15:21 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-16 16:15:21 +0300 |
| commit | 2dd6cb43dda82757be64edec9dee3f007ff8bbc5 (patch) | |
| tree | d8e0209752a1affd63a3c05380f4ac64e6d4e34f /core/src/main/java/com | |
| parent | 465753afe637ee3ad3bd0710005934236e86143b (diff) | |
| download | zxing-2dd6cb43dda82757be64edec9dee3f007ff8bbc5.tar.xz | |
Avoid decoding stacked row 1 of N independently (#1693)
* Avoid decoding stacked row 1 of N independently
* Avoid decoding stacked row 1 of N independently
Diffstat (limited to 'core/src/main/java/com')
| -rw-r--r-- | core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java b/core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java index 0e06ac3a5..61cab98c0 100644 --- a/core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java +++ b/core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java @@ -167,8 +167,7 @@ public final class RSSExpandedReader extends AbstractRSSReader { } } - // TODO: verify sequence of finder patterns as in checkPairSequence() - if (checkChecksum()) { + if (checkChecksum() && isValidSequence(this.pairs, true)) { return this.pairs; } @@ -229,7 +228,7 @@ public final class RSSExpandedReader extends AbstractRSSReader { } this.pairs.addAll(row.getPairs()); - if (isValidSequence(this.pairs)) { + if (isValidSequence(this.pairs, false)) { if (checkChecksum()) { return this.pairs; } @@ -249,10 +248,11 @@ public final class RSSExpandedReader extends AbstractRSSReader { } // Whether the pairs form a valid finder pattern sequence, either complete or a prefix - private static boolean isValidSequence(List<ExpandedPair> pairs) { + private static boolean isValidSequence(List<ExpandedPair> pairs, boolean complete) { for (int[] sequence : FINDER_PATTERN_SEQUENCES) { - if (pairs.size() <= sequence.length) { + boolean sizeOk = (complete ? pairs.size() == sequence.length : pairs.size() <= sequence.length); + if (sizeOk) { boolean stop = true; for (int j = 0; j < pairs.size(); j++) { if (pairs.get(j).getFinderPattern().getValue() != sequence[j]) { |
