This commit is contained in:
2022-06-10 21:38:30 +09:00
commit 27f5152838
51323 changed files with 12934539 additions and 0 deletions
@@ -0,0 +1,530 @@
.class public final Lcom/google/zxing/pdf417/PDF417Reader;
.super Ljava/lang/Object;
.source "PDF417Reader.java"
# interfaces
.implements Lcom/google/zxing/Reader;
# static fields
.field private static final NO_POINTS:[Lcom/google/zxing/ResultPoint;
# instance fields
.field private final decoder:Lcom/google/zxing/pdf417/decoder/Decoder;
# direct methods
.method public static constructor <clinit>()V
.locals 1
const/4 v0, 0x0
new-array v0, v0, [Lcom/google/zxing/ResultPoint;
.line 1
sput-object v0, Lcom/google/zxing/pdf417/PDF417Reader;->NO_POINTS:[Lcom/google/zxing/ResultPoint;
return-void
.end method
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Lcom/google/zxing/pdf417/decoder/Decoder;
invoke-direct {v0}, Lcom/google/zxing/pdf417/decoder/Decoder;-><init>()V
iput-object v0, p0, Lcom/google/zxing/pdf417/PDF417Reader;->decoder:Lcom/google/zxing/pdf417/decoder/Decoder;
return-void
.end method
.method private static extractPureBits(Lcom/google/zxing/common/BitMatrix;)Lcom/google/zxing/common/BitMatrix;
.locals 11
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/NotFoundException;
}
.end annotation
.line 1
invoke-virtual {p0}, Lcom/google/zxing/common/BitMatrix;->getTopLeftOnBit()[I
move-result-object v0
.line 2
invoke-virtual {p0}, Lcom/google/zxing/common/BitMatrix;->getBottomRightOnBit()[I
move-result-object v1
if-eqz v0, :cond_4
if-eqz v1, :cond_4
.line 3
invoke-static {v0, p0}, Lcom/google/zxing/pdf417/PDF417Reader;->moduleSize([ILcom/google/zxing/common/BitMatrix;)I
move-result v2
const/4 v3, 0x1
.line 4
aget v4, v0, v3
.line 5
aget v1, v1, v3
const/4 v5, 0x0
.line 6
aget v6, v0, v5
invoke-static {v6, v4, p0}, Lcom/google/zxing/pdf417/PDF417Reader;->findPatternStart(IILcom/google/zxing/common/BitMatrix;)I
move-result v6
.line 7
aget v0, v0, v5
invoke-static {v0, v4, p0}, Lcom/google/zxing/pdf417/PDF417Reader;->findPatternEnd(IILcom/google/zxing/common/BitMatrix;)I
move-result v0
sub-int/2addr v0, v6
add-int/2addr v0, v3
.line 8
div-int/2addr v0, v2
sub-int/2addr v1, v4
add-int/2addr v1, v3
.line 9
div-int/2addr v1, v2
if-lez v0, :cond_3
if-lez v1, :cond_3
shr-int/lit8 v3, v2, 0x1
add-int/2addr v4, v3
add-int/2addr v6, v3
.line 10
new-instance v3, Lcom/google/zxing/common/BitMatrix;
invoke-direct {v3, v0, v1}, Lcom/google/zxing/common/BitMatrix;-><init>(II)V
move v7, v5
:goto_0
if-lt v7, v1, :cond_0
return-object v3
:cond_0
mul-int v8, v7, v2
add-int/2addr v8, v4
move v9, v5
:goto_1
if-lt v9, v0, :cond_1
add-int/lit8 v7, v7, 0x1
goto :goto_0
:cond_1
mul-int v10, v9, v2
add-int/2addr v10, v6
.line 11
invoke-virtual {p0, v10, v8}, Lcom/google/zxing/common/BitMatrix;->get(II)Z
move-result v10
if-eqz v10, :cond_2
.line 12
invoke-virtual {v3, v9, v7}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_2
add-int/lit8 v9, v9, 0x1
goto :goto_1
.line 13
:cond_3
invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;
move-result-object p0
throw p0
.line 14
:cond_4
invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;
move-result-object p0
throw p0
.end method
.method private static findPatternEnd(IILcom/google/zxing/common/BitMatrix;)I
.locals 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/NotFoundException;
}
.end annotation
.line 1
invoke-virtual {p2}, Lcom/google/zxing/common/BitMatrix;->getWidth()I
move-result v0
const/4 v1, 0x1
sub-int/2addr v0, v1
:goto_0
if-le v0, p0, :cond_1
.line 2
invoke-virtual {p2, v0, p1}, Lcom/google/zxing/common/BitMatrix;->get(II)Z
move-result v2
if-eqz v2, :cond_0
goto :goto_1
:cond_0
add-int/lit8 v0, v0, -0x1
goto :goto_0
:cond_1
:goto_1
const/4 v2, 0x0
:goto_2
if-le v0, p0, :cond_4
const/16 v3, 0x9
if-lt v2, v3, :cond_2
goto :goto_3
:cond_2
add-int/lit8 v0, v0, -0x1
.line 3
invoke-virtual {p2, v0, p1}, Lcom/google/zxing/common/BitMatrix;->get(II)Z
move-result v3
if-eq v1, v3, :cond_3
add-int/lit8 v2, v2, 0x1
:cond_3
move v1, v3
goto :goto_2
:cond_4
:goto_3
if-eq v0, p0, :cond_5
return v0
.line 4
:cond_5
invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;
move-result-object p0
throw p0
.end method
.method private static findPatternStart(IILcom/google/zxing/common/BitMatrix;)I
.locals 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/NotFoundException;
}
.end annotation
.line 1
invoke-virtual {p2}, Lcom/google/zxing/common/BitMatrix;->getWidth()I
move-result v0
const/4 v1, 0x1
const/4 v2, 0x0
move v3, v1
:goto_0
add-int/lit8 v4, v0, -0x1
if-ge p0, v4, :cond_2
const/16 v5, 0x8
if-lt v2, v5, :cond_0
goto :goto_1
:cond_0
add-int/lit8 p0, p0, 0x1
.line 2
invoke-virtual {p2, p0, p1}, Lcom/google/zxing/common/BitMatrix;->get(II)Z
move-result v4
if-eq v3, v4, :cond_1
add-int/lit8 v2, v2, 0x1
:cond_1
move v3, v4
goto :goto_0
:cond_2
:goto_1
if-eq p0, v4, :cond_3
return p0
.line 3
:cond_3
invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;
move-result-object p0
throw p0
.end method
.method private static moduleSize([ILcom/google/zxing/common/BitMatrix;)I
.locals 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/NotFoundException;
}
.end annotation
const/4 v0, 0x0
.line 1
aget v1, p0, v0
const/4 v2, 0x1
.line 2
aget v2, p0, v2
.line 3
invoke-virtual {p1}, Lcom/google/zxing/common/BitMatrix;->getWidth()I
move-result v3
:goto_0
if-ge v1, v3, :cond_1
.line 4
invoke-virtual {p1, v1, v2}, Lcom/google/zxing/common/BitMatrix;->get(II)Z
move-result v4
if-nez v4, :cond_0
goto :goto_1
:cond_0
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_1
:goto_1
if-eq v1, v3, :cond_3
.line 5
aget p0, p0, v0
sub-int/2addr v1, p0
ushr-int/lit8 p0, v1, 0x3
if-eqz p0, :cond_2
return p0
.line 6
:cond_2
invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;
move-result-object p0
throw p0
.line 7
:cond_3
invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;
move-result-object p0
throw p0
.end method
# virtual methods
.method public decode(Lcom/google/zxing/BinaryBitmap;)Lcom/google/zxing/Result;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/NotFoundException;,
Lcom/google/zxing/FormatException;,
Lcom/google/zxing/ChecksumException;
}
.end annotation
const/4 v0, 0x0
.line 1
invoke-virtual {p0, p1, v0}, Lcom/google/zxing/pdf417/PDF417Reader;->decode(Lcom/google/zxing/BinaryBitmap;Ljava/util/Map;)Lcom/google/zxing/Result;
move-result-object p1
return-object p1
.end method
.method public decode(Lcom/google/zxing/BinaryBitmap;Ljava/util/Map;)Lcom/google/zxing/Result;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/zxing/BinaryBitmap;",
"Ljava/util/Map<",
"Lcom/google/zxing/DecodeHintType;",
"*>;)",
"Lcom/google/zxing/Result;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/NotFoundException;,
Lcom/google/zxing/FormatException;,
Lcom/google/zxing/ChecksumException;
}
.end annotation
if-eqz p2, :cond_0
.line 2
sget-object v0, Lcom/google/zxing/DecodeHintType;->PURE_BARCODE:Lcom/google/zxing/DecodeHintType;
invoke-interface {p2, v0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_0
.line 3
invoke-virtual {p1}, Lcom/google/zxing/BinaryBitmap;->getBlackMatrix()Lcom/google/zxing/common/BitMatrix;
move-result-object p1
invoke-static {p1}, Lcom/google/zxing/pdf417/PDF417Reader;->extractPureBits(Lcom/google/zxing/common/BitMatrix;)Lcom/google/zxing/common/BitMatrix;
move-result-object p1
.line 4
iget-object p2, p0, Lcom/google/zxing/pdf417/PDF417Reader;->decoder:Lcom/google/zxing/pdf417/decoder/Decoder;
invoke-virtual {p2, p1}, Lcom/google/zxing/pdf417/decoder/Decoder;->decode(Lcom/google/zxing/common/BitMatrix;)Lcom/google/zxing/common/DecoderResult;
move-result-object p1
.line 5
sget-object p2, Lcom/google/zxing/pdf417/PDF417Reader;->NO_POINTS:[Lcom/google/zxing/ResultPoint;
goto :goto_0
.line 6
:cond_0
new-instance p2, Lcom/google/zxing/pdf417/detector/Detector;
invoke-direct {p2, p1}, Lcom/google/zxing/pdf417/detector/Detector;-><init>(Lcom/google/zxing/BinaryBitmap;)V
invoke-virtual {p2}, Lcom/google/zxing/pdf417/detector/Detector;->detect()Lcom/google/zxing/common/DetectorResult;
move-result-object p1
.line 7
iget-object p2, p0, Lcom/google/zxing/pdf417/PDF417Reader;->decoder:Lcom/google/zxing/pdf417/decoder/Decoder;
invoke-virtual {p1}, Lcom/google/zxing/common/DetectorResult;->getBits()Lcom/google/zxing/common/BitMatrix;
move-result-object v0
invoke-virtual {p2, v0}, Lcom/google/zxing/pdf417/decoder/Decoder;->decode(Lcom/google/zxing/common/BitMatrix;)Lcom/google/zxing/common/DecoderResult;
move-result-object p2
.line 8
invoke-virtual {p1}, Lcom/google/zxing/common/DetectorResult;->getPoints()[Lcom/google/zxing/ResultPoint;
move-result-object p1
move-object v3, p2
move-object p2, p1
move-object p1, v3
.line 9
:goto_0
new-instance v0, Lcom/google/zxing/Result;
invoke-virtual {p1}, Lcom/google/zxing/common/DecoderResult;->getText()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1}, Lcom/google/zxing/common/DecoderResult;->getRawBytes()[B
move-result-object p1
.line 10
sget-object v2, Lcom/google/zxing/BarcodeFormat;->PDF_417:Lcom/google/zxing/BarcodeFormat;
.line 11
invoke-direct {v0, v1, p1, p2, v2}, Lcom/google/zxing/Result;-><init>(Ljava/lang/String;[B[Lcom/google/zxing/ResultPoint;Lcom/google/zxing/BarcodeFormat;)V
return-object v0
.end method
.method public reset()V
.locals 0
return-void
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,172 @@
.class final enum Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.super Ljava/lang/Enum;
.source "DecodedBitStreamParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4019
name = "Mode"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;",
">;"
}
.end annotation
# static fields
.field public static final enum ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.field public static final enum ALPHA_SHIFT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.field private static final synthetic ENUM$VALUES:[Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.field public static final enum LOWER:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.field public static final enum MIXED:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.field public static final enum PUNCT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.field public static final enum PUNCT_SHIFT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
# direct methods
.method public static constructor <clinit>()V
.locals 13
.line 1
new-instance v0, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
const-string v1, "ALPHA"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;-><init>(Ljava/lang/String;I)V
sput-object v0, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.line 2
new-instance v1, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
const-string v3, "LOWER"
const/4 v4, 0x1
invoke-direct {v1, v3, v4}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;-><init>(Ljava/lang/String;I)V
sput-object v1, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->LOWER:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.line 3
new-instance v3, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
const-string v5, "MIXED"
const/4 v6, 0x2
invoke-direct {v3, v5, v6}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;-><init>(Ljava/lang/String;I)V
sput-object v3, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->MIXED:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.line 4
new-instance v5, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
const-string v7, "PUNCT"
const/4 v8, 0x3
invoke-direct {v5, v7, v8}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;-><init>(Ljava/lang/String;I)V
sput-object v5, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.line 5
new-instance v7, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
const-string v9, "ALPHA_SHIFT"
const/4 v10, 0x4
invoke-direct {v7, v9, v10}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;-><init>(Ljava/lang/String;I)V
sput-object v7, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA_SHIFT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.line 6
new-instance v9, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
const-string v11, "PUNCT_SHIFT"
const/4 v12, 0x5
invoke-direct {v9, v11, v12}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;-><init>(Ljava/lang/String;I)V
sput-object v9, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT_SHIFT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
const/4 v11, 0x6
new-array v11, v11, [Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
aput-object v0, v11, v2
aput-object v1, v11, v4
aput-object v3, v11, v6
aput-object v5, v11, v8
aput-object v7, v11, v10
aput-object v9, v11, v12
.line 7
sput-object v11, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ENUM$VALUES:[Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
return-void
.end method
.method private constructor <init>(Ljava/lang/String;I)V
.locals 0
.line 1
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.locals 1
.line 1
const-class v0, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
return-object p0
.end method
.method public static values()[Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
.locals 4
.line 1
sget-object v0, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ENUM$VALUES:[Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
array-length v1, v0
new-array v2, v1, [Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;
const/4 v3, 0x0
invoke-static {v0, v3, v2, v3, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
return-object v2
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,262 @@
.class public final Lcom/google/zxing/pdf417/decoder/Decoder;
.super Ljava/lang/Object;
.source "Decoder.java"
# static fields
.field private static final MAX_EC_CODEWORDS:I = 0x200
.field private static final MAX_ERRORS:I = 0x3
# instance fields
.field private final errorCorrection:Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;
invoke-direct {v0}, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;-><init>()V
iput-object v0, p0, Lcom/google/zxing/pdf417/decoder/Decoder;->errorCorrection:Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;
return-void
.end method
.method private correctErrors([I[II)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/ChecksumException;
}
.end annotation
.line 1
array-length v0, p2
div-int/lit8 v1, p3, 0x2
add-int/lit8 v1, v1, 0x3
if-gt v0, v1, :cond_0
if-ltz p3, :cond_0
const/16 v0, 0x200
if-gt p3, v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/Decoder;->errorCorrection:Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;
invoke-virtual {v0, p1, p3, p2}, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->decode([II[I)V
return-void
.line 3
:cond_0
invoke-static {}, Lcom/google/zxing/ChecksumException;->getChecksumInstance()Lcom/google/zxing/ChecksumException;
move-result-object p1
throw p1
.end method
.method private static verifyCodewordCount([II)V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;
}
.end annotation
.line 1
array-length v0, p0
const/4 v1, 0x4
if-lt v0, v1, :cond_3
const/4 v0, 0x0
.line 2
aget v1, p0, v0
.line 3
array-length v2, p0
if-gt v1, v2, :cond_2
if-nez v1, :cond_1
.line 4
array-length v1, p0
if-ge p1, v1, :cond_0
.line 5
array-length v1, p0
sub-int/2addr v1, p1
aput v1, p0, v0
goto :goto_0
.line 6
:cond_0
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
:cond_1
:goto_0
return-void
.line 7
:cond_2
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.line 8
:cond_3
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.end method
# virtual methods
.method public decode(Lcom/google/zxing/common/BitMatrix;)Lcom/google/zxing/common/DecoderResult;
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;,
Lcom/google/zxing/ChecksumException;
}
.end annotation
.line 6
new-instance v0, Lcom/google/zxing/pdf417/decoder/BitMatrixParser;
invoke-direct {v0, p1}, Lcom/google/zxing/pdf417/decoder/BitMatrixParser;-><init>(Lcom/google/zxing/common/BitMatrix;)V
.line 7
invoke-virtual {v0}, Lcom/google/zxing/pdf417/decoder/BitMatrixParser;->readCodewords()[I
move-result-object p1
.line 8
array-length v1, p1
if-eqz v1, :cond_0
.line 9
invoke-virtual {v0}, Lcom/google/zxing/pdf417/decoder/BitMatrixParser;->getECLevel()I
move-result v1
const/4 v2, 0x1
add-int/2addr v1, v2
shl-int v1, v2, v1
.line 10
invoke-virtual {v0}, Lcom/google/zxing/pdf417/decoder/BitMatrixParser;->getErasures()[I
move-result-object v0
.line 11
invoke-direct {p0, p1, v0, v1}, Lcom/google/zxing/pdf417/decoder/Decoder;->correctErrors([I[II)V
.line 12
invoke-static {p1, v1}, Lcom/google/zxing/pdf417/decoder/Decoder;->verifyCodewordCount([II)V
.line 13
invoke-static {p1}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->decode([I)Lcom/google/zxing/common/DecoderResult;
move-result-object p1
return-object p1
.line 14
:cond_0
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p1
throw p1
.end method
.method public decode([[Z)Lcom/google/zxing/common/DecoderResult;
.locals 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;,
Lcom/google/zxing/ChecksumException;
}
.end annotation
.line 1
array-length v0, p1
.line 2
new-instance v1, Lcom/google/zxing/common/BitMatrix;
invoke-direct {v1, v0}, Lcom/google/zxing/common/BitMatrix;-><init>(I)V
const/4 v2, 0x0
move v3, v2
:goto_0
if-lt v3, v0, :cond_0
.line 3
invoke-virtual {p0, v1}, Lcom/google/zxing/pdf417/decoder/Decoder;->decode(Lcom/google/zxing/common/BitMatrix;)Lcom/google/zxing/common/DecoderResult;
move-result-object p1
return-object p1
:cond_0
move v4, v2
:goto_1
if-lt v4, v0, :cond_1
add-int/lit8 v3, v3, 0x1
goto :goto_0
.line 4
:cond_1
aget-object v5, p1, v4
aget-boolean v5, v5, v3
if-eqz v5, :cond_2
.line 5
invoke-virtual {v1, v4, v3}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_2
add-int/lit8 v4, v4, 0x1
goto :goto_1
.end method
@@ -0,0 +1,650 @@
.class public final Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;
.super Ljava/lang/Object;
.source "ErrorCorrection.java"
# instance fields
.field private final field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
sget-object v0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->PDF417_GF:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
iput-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
return-void
.end method
.method private findErrorLocations(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)[I
.locals 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/ChecksumException;
}
.end annotation
.line 1
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v0
.line 2
new-array v1, v0, [I
const/4 v2, 0x1
const/4 v3, 0x0
.line 3
:goto_0
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v4}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getSize()I
move-result v4
if-ge v2, v4, :cond_2
if-lt v3, v0, :cond_0
goto :goto_1
.line 4
:cond_0
invoke-virtual {p1, v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->evaluateAt(I)I
move-result v4
if-nez v4, :cond_1
.line 5
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v4, v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->inverse(I)I
move-result v4
aput v4, v1, v3
add-int/lit8 v3, v3, 0x1
:cond_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_2
:goto_1
if-ne v3, v0, :cond_3
return-object v1
.line 6
:cond_3
invoke-static {}, Lcom/google/zxing/ChecksumException;->getChecksumInstance()Lcom/google/zxing/ChecksumException;
move-result-object p1
throw p1
.end method
.method private findErrorMagnitudes(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;[I)[I
.locals 7
.line 1
invoke-virtual {p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v0
.line 2
new-array v1, v0, [I
const/4 v2, 0x1
:goto_0
if-le v2, v0, :cond_1
.line 3
new-instance v3, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
iget-object p2, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-direct {v3, p2, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
.line 4
array-length v4, p3
.line 5
new-array v5, v4, [I
const/4 v6, 0x0
move p2, v6
:goto_1
if-lt p2, v4, :cond_0
return-object v5
.line 6
:cond_0
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
aget v1, p3, p2
invoke-virtual {v0, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->inverse(I)I
move-result v0
.line 7
iget-object v1, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {p1, v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->evaluateAt(I)I
move-result v2
invoke-virtual {v1, v6, v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->subtract(II)I
move-result v1
.line 8
iget-object v2, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v3, v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->evaluateAt(I)I
move-result v0
invoke-virtual {v2, v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->inverse(I)I
move-result v0
.line 9
iget-object v2, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v2, v1, v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->multiply(II)I
move-result v0
aput v0, v5, p2
add-int/lit8 p2, p2, 0x1
goto :goto_1
:cond_1
sub-int v3, v0, v2
.line 10
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {p2, v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getCoefficient(I)I
move-result v5
invoke-virtual {v4, v2, v5}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->multiply(II)I
move-result v4
.line 11
aput v4, v1, v3
add-int/lit8 v2, v2, 0x1
goto :goto_0
.end method
.method private runEuclideanAlgorithm(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;I)[Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/ChecksumException;
}
.end annotation
.line 1
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v0
invoke-virtual {p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v1
if-ge v0, v1, :cond_0
move-object v7, p2
move-object p2, p1
move-object p1, v7
.line 2
:cond_0
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getZero()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v0
.line 3
iget-object v1, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getOne()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v1
move-object v7, p2
move-object p2, p1
move-object p1, v7
.line 4
:goto_0
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v2
const/4 v3, 0x2
div-int/lit8 v4, p3, 0x2
if-ge v2, v4, :cond_2
const/4 p2, 0x0
.line 5
invoke-virtual {v1, p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getCoefficient(I)I
move-result p3
if-eqz p3, :cond_1
.line 6
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v0, p3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->inverse(I)I
move-result p3
.line 7
invoke-virtual {v1, p3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->multiply(I)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v0
.line 8
invoke-virtual {p1, p3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->multiply(I)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object p1
new-array p3, v3, [Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
aput-object v0, p3, p2
const/4 p2, 0x1
aput-object p1, p3, p2
return-object p3
.line 9
:cond_1
invoke-static {}, Lcom/google/zxing/ChecksumException;->getChecksumInstance()Lcom/google/zxing/ChecksumException;
move-result-object p1
throw p1
.line 10
:cond_2
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->isZero()Z
move-result v2
if-nez v2, :cond_5
.line 11
iget-object v2, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getZero()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v2
.line 12
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v3
invoke-virtual {p1, v3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getCoefficient(I)I
move-result v3
.line 13
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v4, v3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->inverse(I)I
move-result v3
.line 14
:goto_1
invoke-virtual {p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v4
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v5
if-lt v4, v5, :cond_4
invoke-virtual {p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->isZero()Z
move-result v4
if-eqz v4, :cond_3
goto :goto_2
.line 15
:cond_3
invoke-virtual {p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v4
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v5
sub-int/2addr v4, v5
.line 16
iget-object v5, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v6
invoke-virtual {p2, v6}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getCoefficient(I)I
move-result v6
invoke-virtual {v5, v6, v3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->multiply(II)I
move-result v5
.line 17
iget-object v6, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v6, v4, v5}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->buildMonomial(II)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v6
invoke-virtual {v2, v6}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->add(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v2
.line 18
invoke-virtual {p1, v4, v5}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->multiplyByMonomial(II)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v4
invoke-virtual {p2, v4}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->subtract(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object p2
goto :goto_1
.line 19
:cond_4
:goto_2
invoke-virtual {v2, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->multiply(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v2
invoke-virtual {v2, v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->subtract(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v0
invoke-virtual {v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->negative()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v0
move-object v7, p2
move-object p2, p1
move-object p1, v7
move-object v8, v1
move-object v1, v0
move-object v0, v8
goto/16 :goto_0
.line 20
:cond_5
invoke-static {}, Lcom/google/zxing/ChecksumException;->getChecksumInstance()Lcom/google/zxing/ChecksumException;
move-result-object p1
throw p1
.end method
# virtual methods
.method public decode([II[I)V
.locals 10
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/ChecksumException;
}
.end annotation
.line 1
new-instance v0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
iget-object v1, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-direct {v0, v1, p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
.line 2
new-array v1, p2, [I
const/4 v2, 0x0
move v3, p2
move v4, v2
:goto_0
const/4 v5, 0x1
if-gtz v3, :cond_4
if-eqz v4, :cond_3
.line 3
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getOne()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v0
.line 4
array-length v3, p3
move v4, v2
:goto_1
if-lt v4, v3, :cond_2
.line 5
new-instance p3, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-direct {p3, v0, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
.line 6
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v0, p2, v5}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->buildMonomial(II)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v0
invoke-direct {p0, v0, p3, p2}, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->runEuclideanAlgorithm(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;I)[Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object p2
.line 7
aget-object p3, p2, v2
.line 8
aget-object p2, p2, v5
.line 9
invoke-direct {p0, p3}, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->findErrorLocations(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)[I
move-result-object v0
.line 10
invoke-direct {p0, p2, p3, v0}, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->findErrorMagnitudes(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;[I)[I
move-result-object p2
.line 11
:goto_2
array-length p3, v0
if-lt v2, p3, :cond_0
goto :goto_3
.line 12
:cond_0
array-length p3, p1
sub-int/2addr p3, v5
iget-object v1, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
aget v3, v0, v2
invoke-virtual {v1, v3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->log(I)I
move-result v1
sub-int/2addr p3, v1
if-ltz p3, :cond_1
.line 13
iget-object v1, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
aget v3, p1, p3
aget v4, p2, v2
invoke-virtual {v1, v3, v4}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->subtract(II)I
move-result v1
aput v1, p1, p3
add-int/lit8 v2, v2, 0x1
goto :goto_2
.line 14
:cond_1
invoke-static {}, Lcom/google/zxing/ChecksumException;->getChecksumInstance()Lcom/google/zxing/ChecksumException;
move-result-object p1
throw p1
.line 15
:cond_2
aget v6, p3, v4
.line 16
iget-object v7, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
array-length v8, p1
sub-int/2addr v8, v5
sub-int/2addr v8, v6
invoke-virtual {v7, v8}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->exp(I)I
move-result v6
.line 17
new-instance v7, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
iget-object v8, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
const/4 v9, 0x2
new-array v9, v9, [I
invoke-virtual {v8, v2, v6}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->subtract(II)I
move-result v6
aput v6, v9, v2
aput v5, v9, v5
invoke-direct {v7, v8, v9}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
.line 18
invoke-virtual {v0, v7}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->multiply(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v0
add-int/lit8 v4, v4, 0x1
goto :goto_1
:cond_3
:goto_3
return-void
.line 19
:cond_4
iget-object v6, p0, Lcom/google/zxing/pdf417/decoder/ec/ErrorCorrection;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v6, v3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->exp(I)I
move-result v6
invoke-virtual {v0, v6}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->evaluateAt(I)I
move-result v6
sub-int v7, p2, v3
.line 20
aput v6, v1, v7
if-eqz v6, :cond_5
move v4, v5
:cond_5
add-int/lit8 v3, v3, -0x1
goto/16 :goto_0
.end method
@@ -0,0 +1,324 @@
.class public final Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
.super Ljava/lang/Object;
.source "ModulusGF.java"
# static fields
.field public static final PDF417_GF:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
# instance fields
.field private final expTable:[I
.field private final logTable:[I
.field private final modulus:I
.field private final one:Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.field private final zero:Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
# direct methods
.method public static constructor <clinit>()V
.locals 3
.line 1
new-instance v0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
const/16 v1, 0x3a1
const/4 v2, 0x3
invoke-direct {v0, v1, v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;-><init>(II)V
sput-object v0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->PDF417_GF:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
return-void
.end method
.method public constructor <init>(II)V
.locals 5
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->modulus:I
.line 3
new-array v0, p1, [I
iput-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->expTable:[I
.line 4
new-array v0, p1, [I
iput-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->logTable:[I
const/4 v0, 0x0
const/4 v1, 0x1
move v2, v0
move v3, v1
:goto_0
if-lt v2, p1, :cond_1
move p2, v0
:goto_1
add-int/lit8 v2, p1, -0x1
if-lt p2, v2, :cond_0
.line 5
new-instance p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
new-array p2, v1, [I
invoke-direct {p1, p0, p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
iput-object p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->zero:Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.line 6
new-instance p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
new-array p2, v1, [I
aput v1, p2, v0
invoke-direct {p1, p0, p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
iput-object p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->one:Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
return-void
.line 7
:cond_0
iget-object v2, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->logTable:[I
iget-object v3, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->expTable:[I
aget v3, v3, p2
aput p2, v2, v3
add-int/lit8 p2, p2, 0x1
goto :goto_1
.line 8
:cond_1
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->expTable:[I
aput v3, v4, v2
mul-int/2addr v3, p2
.line 9
rem-int/2addr v3, p1
add-int/lit8 v2, v2, 0x1
goto :goto_0
.end method
# virtual methods
.method public add(II)I
.locals 0
add-int/2addr p1, p2
.line 1
iget p2, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->modulus:I
rem-int/2addr p1, p2
return p1
.end method
.method public buildMonomial(II)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 1
if-ltz p1, :cond_1
if-nez p2, :cond_0
.line 1
iget-object p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->zero:Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
return-object p1
:cond_0
add-int/lit8 p1, p1, 0x1
.line 2
new-array p1, p1, [I
const/4 v0, 0x0
.line 3
aput p2, p1, v0
.line 4
new-instance p2, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
invoke-direct {p2, p0, p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
return-object p2
.line 5
:cond_1
new-instance p1, Ljava/lang/IllegalArgumentException;
invoke-direct {p1}, Ljava/lang/IllegalArgumentException;-><init>()V
throw p1
.end method
.method public exp(I)I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->expTable:[I
aget p1, v0, p1
return p1
.end method
.method public getOne()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->one:Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
return-object v0
.end method
.method public getSize()I
.locals 1
.line 1
iget v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->modulus:I
return v0
.end method
.method public getZero()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->zero:Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
return-object v0
.end method
.method public inverse(I)I
.locals 3
if-eqz p1, :cond_0
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->expTable:[I
iget v1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->modulus:I
iget-object v2, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->logTable:[I
aget p1, v2, p1
sub-int/2addr v1, p1
add-int/lit8 v1, v1, -0x1
aget p1, v0, v1
return p1
.line 2
:cond_0
new-instance p1, Ljava/lang/ArithmeticException;
invoke-direct {p1}, Ljava/lang/ArithmeticException;-><init>()V
throw p1
.end method
.method public log(I)I
.locals 1
if-eqz p1, :cond_0
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->logTable:[I
aget p1, v0, p1
return p1
.line 2
:cond_0
new-instance p1, Ljava/lang/IllegalArgumentException;
invoke-direct {p1}, Ljava/lang/IllegalArgumentException;-><init>()V
throw p1
.end method
.method public multiply(II)I
.locals 2
if-eqz p1, :cond_1
if-nez p2, :cond_0
goto :goto_0
.line 1
:cond_0
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->expTable:[I
iget-object v1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->logTable:[I
aget p1, v1, p1
aget p2, v1, p2
add-int/2addr p1, p2
iget p2, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->modulus:I
add-int/lit8 p2, p2, -0x1
rem-int/2addr p1, p2
aget p1, v0, p1
return p1
:cond_1
:goto_0
const/4 p1, 0x0
return p1
.end method
.method public subtract(II)I
.locals 1
.line 1
iget v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->modulus:I
add-int/2addr p1, v0
sub-int/2addr p1, p2
rem-int/2addr p1, v0
return p1
.end method
@@ -0,0 +1,964 @@
.class final Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.super Ljava/lang/Object;
.source "ModulusPoly.java"
# instance fields
.field private final coefficients:[I
.field private final field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
# direct methods
.method public constructor <init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
.locals 4
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
array-length v0, p2
if-eqz v0, :cond_4
.line 3
iput-object p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
.line 4
array-length v0, p2
const/4 v1, 0x1
if-le v0, v1, :cond_3
const/4 v2, 0x0
.line 5
aget v3, p2, v2
if-nez v3, :cond_3
:goto_0
if-ge v1, v0, :cond_1
.line 6
aget v3, p2, v1
if-eqz v3, :cond_0
goto :goto_1
:cond_0
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_1
:goto_1
if-ne v1, v0, :cond_2
.line 7
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getZero()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object p1
iget-object p1, p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
iput-object p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
goto :goto_2
:cond_2
sub-int/2addr v0, v1
.line 8
new-array p1, v0, [I
iput-object p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
.line 9
array-length v0, p1
.line 10
invoke-static {p2, v1, p1, v2, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
goto :goto_2
.line 11
:cond_3
iput-object p2, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
:goto_2
return-void
.line 12
:cond_4
new-instance p1, Ljava/lang/IllegalArgumentException;
invoke-direct {p1}, Ljava/lang/IllegalArgumentException;-><init>()V
throw p1
.end method
# virtual methods
.method public add(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 8
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
iget-object v1, p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_4
.line 2
invoke-virtual {p0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->isZero()Z
move-result v0
if-eqz v0, :cond_0
return-object p1
.line 3
:cond_0
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->isZero()Z
move-result v0
if-eqz v0, :cond_1
return-object p0
.line 4
:cond_1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
.line 5
iget-object p1, p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
.line 6
array-length v1, v0
array-length v2, p1
if-le v1, v2, :cond_2
goto :goto_0
:cond_2
move-object v7, v0
move-object v0, p1
move-object p1, v7
.line 7
:goto_0
array-length v1, v0
new-array v1, v1, [I
.line 8
array-length v2, v0
array-length v3, p1
sub-int/2addr v2, v3
const/4 v3, 0x0
.line 9
invoke-static {v0, v3, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move v3, v2
.line 10
:goto_1
array-length v4, v0
if-lt v3, v4, :cond_3
.line 11
new-instance p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-direct {p1, v0, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
return-object p1
.line 12
:cond_3
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
sub-int v5, v3, v2
aget v5, p1, v5
aget v6, v0, v3
invoke-virtual {v4, v5, v6}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->add(II)I
move-result v4
aput v4, v1, v3
add-int/lit8 v3, v3, 0x1
goto :goto_1
.line 13
:cond_4
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "ModulusPolys do not have same ModulusGF field"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public divide(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)[Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 7
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
iget-object v1, p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_3
.line 2
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->isZero()Z
move-result v0
if-nez v0, :cond_2
.line 3
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getZero()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v0
.line 4
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v1
invoke-virtual {p1, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getCoefficient(I)I
move-result v1
.line 5
iget-object v2, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v2, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->inverse(I)I
move-result v1
move-object v2, p0
.line 6
:goto_0
invoke-virtual {v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v3
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v4
if-lt v3, v4, :cond_1
invoke-virtual {v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->isZero()Z
move-result v3
if-eqz v3, :cond_0
goto :goto_1
.line 7
:cond_0
invoke-virtual {v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v3
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v4
sub-int/2addr v3, v4
.line 8
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v5
invoke-virtual {v2, v5}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getCoefficient(I)I
move-result v5
invoke-virtual {v4, v5, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->multiply(II)I
move-result v4
.line 9
invoke-virtual {p1, v3, v4}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->multiplyByMonomial(II)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v5
.line 10
iget-object v6, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v6, v3, v4}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->buildMonomial(II)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v3
.line 11
invoke-virtual {v0, v3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->add(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v0
.line 12
invoke-virtual {v2, v5}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->subtract(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object v2
goto :goto_0
:cond_1
:goto_1
const/4 p1, 0x2
new-array p1, p1, [Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
const/4 v1, 0x0
aput-object v0, p1, v1
const/4 v0, 0x1
aput-object v2, p1, v0
return-object p1
.line 13
:cond_2
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "Divide by 0"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 14
:cond_3
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "ModulusPolys do not have same ModulusGF field"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public evaluateAt(I)I
.locals 5
const/4 v0, 0x0
if-nez p1, :cond_0
.line 1
invoke-virtual {p0, v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getCoefficient(I)I
move-result p1
return p1
.line 2
:cond_0
iget-object v1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
array-length v2, v1
const/4 v3, 0x1
if-ne p1, v3, :cond_2
.line 3
array-length v4, v1
move p1, v0
:goto_0
if-lt v0, v4, :cond_1
return p1
:cond_1
aget v2, v1, v0
.line 4
iget-object v3, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v3, p1, v2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->add(II)I
move-result p1
add-int/lit8 v0, v0, 0x1
goto :goto_0
.line 5
:cond_2
aget v0, v1, v0
:goto_1
if-lt v3, v2, :cond_3
return v0
.line 6
:cond_3
iget-object v1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v1, p1, v0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->multiply(II)I
move-result v0
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
aget v4, v4, v3
invoke-virtual {v1, v0, v4}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->add(II)I
move-result v0
add-int/lit8 v3, v3, 0x1
goto :goto_1
.end method
.method public getCoefficient(I)I
.locals 2
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
array-length v1, v0
add-int/lit8 v1, v1, -0x1
sub-int/2addr v1, p1
aget p1, v0, v1
return p1
.end method
.method public getCoefficients()[I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
return-object v0
.end method
.method public getDegree()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
array-length v0, v0
add-int/lit8 v0, v0, -0x1
return v0
.end method
.method public isZero()Z
.locals 2
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
const/4 v1, 0x0
aget v0, v0, v1
if-nez v0, :cond_0
const/4 v0, 0x1
return v0
:cond_0
return v1
.end method
.method public multiply(I)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 5
if-nez p1, :cond_0
.line 13
iget-object p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getZero()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object p1
return-object p1
:cond_0
const/4 v0, 0x1
if-ne p1, v0, :cond_1
return-object p0
.line 14
:cond_1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
array-length v0, v0
.line 15
new-array v1, v0, [I
const/4 v2, 0x0
:goto_0
if-lt v2, v0, :cond_2
.line 16
new-instance p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-direct {p1, v0, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
return-object p1
.line 17
:cond_2
iget-object v3, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
aget v4, v4, v2
invoke-virtual {v3, v4, p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->multiply(II)I
move-result v3
aput v3, v1, v2
add-int/lit8 v2, v2, 0x1
goto :goto_0
.end method
.method public multiply(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 12
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
iget-object v1, p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_4
.line 2
invoke-virtual {p0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->isZero()Z
move-result v0
if-nez v0, :cond_3
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->isZero()Z
move-result v0
if-eqz v0, :cond_0
goto :goto_2
.line 3
:cond_0
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
.line 4
array-length v1, v0
.line 5
iget-object p1, p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
.line 6
array-length v2, p1
add-int v3, v1, v2
add-int/lit8 v3, v3, -0x1
.line 7
new-array v3, v3, [I
const/4 v4, 0x0
move v5, v4
:goto_0
if-lt v5, v1, :cond_1
.line 8
new-instance p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-direct {p1, v0, v3}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
return-object p1
.line 9
:cond_1
aget v6, v0, v5
move v7, v4
:goto_1
if-lt v7, v2, :cond_2
add-int/lit8 v5, v5, 0x1
goto :goto_0
:cond_2
add-int v8, v5, v7
.line 10
iget-object v9, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
aget v10, v3, v8
aget v11, p1, v7
invoke-virtual {v9, v6, v11}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->multiply(II)I
move-result v11
invoke-virtual {v9, v10, v11}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->add(II)I
move-result v9
aput v9, v3, v8
add-int/lit8 v7, v7, 0x1
goto :goto_1
.line 11
:cond_3
:goto_2
iget-object p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getZero()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object p1
return-object p1
.line 12
:cond_4
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "ModulusPolys do not have same ModulusGF field"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public multiplyByMonomial(II)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 4
if-ltz p1, :cond_2
if-nez p2, :cond_0
.line 1
iget-object p1, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->getZero()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object p1
return-object p1
.line 2
:cond_0
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
array-length v0, v0
add-int/2addr p1, v0
.line 3
new-array p1, p1, [I
const/4 v1, 0x0
:goto_0
if-lt v1, v0, :cond_1
.line 4
new-instance p2, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-direct {p2, v0, p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
return-object p2
.line 5
:cond_1
iget-object v2, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
iget-object v3, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
aget v3, v3, v1
invoke-virtual {v2, v3, p2}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->multiply(II)I
move-result v2
aput v2, p1, v1
add-int/lit8 v1, v1, 0x1
goto :goto_0
.line 6
:cond_2
new-instance p1, Ljava/lang/IllegalArgumentException;
invoke-direct {p1}, Ljava/lang/IllegalArgumentException;-><init>()V
throw p1
.end method
.method public negative()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 6
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
array-length v0, v0
.line 2
new-array v1, v0, [I
const/4 v2, 0x0
move v3, v2
:goto_0
if-lt v3, v0, :cond_0
.line 3
new-instance v0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
iget-object v2, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-direct {v0, v2, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;-><init>(Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;[I)V
return-object v0
.line 4
:cond_0
iget-object v4, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
iget-object v5, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->coefficients:[I
aget v5, v5, v3
invoke-virtual {v4, v2, v5}, Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;->subtract(II)I
move-result v4
aput v4, v1, v3
add-int/lit8 v3, v3, 0x1
goto :goto_0
.end method
.method public subtract(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
iget-object v1, p1, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->field:Lcom/google/zxing/pdf417/decoder/ec/ModulusGF;
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1
.line 2
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->isZero()Z
move-result v0
if-eqz v0, :cond_0
return-object p0
.line 3
:cond_0
invoke-virtual {p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->negative()Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->add(Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;)Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;
move-result-object p1
return-object p1
.line 4
:cond_1
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "ModulusPolys do not have same ModulusGF field"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public toString()Ljava/lang/String;
.locals 4
.line 1
new-instance v0, Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v1
mul-int/lit8 v1, v1, 0x8
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(I)V
.line 2
invoke-virtual {p0}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getDegree()I
move-result v1
:goto_0
if-gez v1, :cond_0
.line 3
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.line 4
:cond_0
invoke-virtual {p0, v1}, Lcom/google/zxing/pdf417/decoder/ec/ModulusPoly;->getCoefficient(I)I
move-result v2
if-eqz v2, :cond_6
if-gez v2, :cond_1
const-string v3, " - "
.line 5
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
neg-int v2, v2
goto :goto_1
.line 6
:cond_1
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result v3
if-lez v3, :cond_2
const-string v3, " + "
.line 7
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_2
:goto_1
const/4 v3, 0x1
if-eqz v1, :cond_3
if-eq v2, v3, :cond_4
.line 8
:cond_3
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
:cond_4
if-eqz v1, :cond_6
if-ne v1, v3, :cond_5
const/16 v2, 0x78
.line 9
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_2
:cond_5
const-string v2, "x^"
.line 10
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 11
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
:cond_6
:goto_2
add-int/lit8 v1, v1, -0x1
goto :goto_0
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,213 @@
.class final Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;
.super Ljava/lang/Object;
.source "BarcodeMatrix.java"
# instance fields
.field private currentRow:I
.field private final height:I
.field private final matrix:[Lcom/google/zxing/pdf417/encoder/BarcodeRow;
.field private final width:I
# direct methods
.method public constructor <init>(II)V
.locals 6
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
add-int/lit8 p1, p1, 0x2
.line 2
new-array v0, p1, [Lcom/google/zxing/pdf417/encoder/BarcodeRow;
iput-object v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->matrix:[Lcom/google/zxing/pdf417/encoder/BarcodeRow;
.line 3
array-length v0, v0
const/4 v1, 0x0
move v2, v1
:goto_0
if-lt v2, v0, :cond_0
mul-int/lit8 p2, p2, 0x11
.line 4
iput p2, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->width:I
.line 5
iput p1, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->height:I
.line 6
iput v1, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->currentRow:I
return-void
.line 7
:cond_0
iget-object v3, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->matrix:[Lcom/google/zxing/pdf417/encoder/BarcodeRow;
new-instance v4, Lcom/google/zxing/pdf417/encoder/BarcodeRow;
add-int/lit8 v5, p2, 0x4
mul-int/lit8 v5, v5, 0x11
add-int/lit8 v5, v5, 0x1
invoke-direct {v4, v5}, Lcom/google/zxing/pdf417/encoder/BarcodeRow;-><init>(I)V
aput-object v4, v3, v2
add-int/lit8 v2, v2, 0x1
goto :goto_0
.end method
# virtual methods
.method public getCurrentRow()Lcom/google/zxing/pdf417/encoder/BarcodeRow;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->matrix:[Lcom/google/zxing/pdf417/encoder/BarcodeRow;
iget v1, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->currentRow:I
aget-object v0, v0, v1
return-object v0
.end method
.method public getMatrix()[[B
.locals 1
const/4 v0, 0x1
.line 1
invoke-virtual {p0, v0, v0}, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->getScaledMatrix(II)[[B
move-result-object v0
return-object v0
.end method
.method public getScaledMatrix(I)[[B
.locals 0
.line 1
invoke-virtual {p0, p1, p1}, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->getScaledMatrix(II)[[B
move-result-object p1
return-object p1
.end method
.method public getScaledMatrix(II)[[B
.locals 7
.line 2
iget v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->height:I
mul-int/2addr v0, p2
iget v1, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->width:I
mul-int/2addr v1, p1
const/4 v2, 0x2
new-array v2, v2, [I
const/4 v3, 0x1
aput v1, v2, v3
const/4 v1, 0x0
aput v0, v2, v1
const-class v0, B
invoke-static {v0, v2}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[B
.line 3
iget v2, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->height:I
mul-int/2addr v2, p2
:goto_0
if-lt v1, v2, :cond_0
return-object v0
:cond_0
sub-int v4, v2, v1
sub-int/2addr v4, v3
.line 4
iget-object v5, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->matrix:[Lcom/google/zxing/pdf417/encoder/BarcodeRow;
div-int v6, v1, p2
aget-object v5, v5, v6
invoke-virtual {v5, p1}, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->getScaledRow(I)[B
move-result-object v5
aput-object v5, v0, v4
add-int/lit8 v1, v1, 0x1
goto :goto_0
.end method
.method public set(IIB)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->matrix:[Lcom/google/zxing/pdf417/encoder/BarcodeRow;
aget-object p2, v0, p2
invoke-virtual {p2, p1, p3}, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->set(IB)V
return-void
.end method
.method public setMatrix(IIZ)V
.locals 0
int-to-byte p3, p3
.line 1
invoke-virtual {p0, p1, p2, p3}, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->set(IIB)V
return-void
.end method
.method public startRow()V
.locals 1
.line 1
iget v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->currentRow:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->currentRow:I
return-void
.end method
@@ -0,0 +1,124 @@
.class final Lcom/google/zxing/pdf417/encoder/BarcodeRow;
.super Ljava/lang/Object;
.source "BarcodeRow.java"
# instance fields
.field private currentLocation:I
.field private final row:[B
# direct methods
.method public constructor <init>(I)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-array p1, p1, [B
iput-object p1, p0, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->row:[B
const/4 p1, 0x0
.line 3
iput p1, p0, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->currentLocation:I
return-void
.end method
# virtual methods
.method public addBar(ZI)V
.locals 3
const/4 v0, 0x0
:goto_0
if-lt v0, p2, :cond_0
return-void
.line 1
:cond_0
iget v1, p0, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->currentLocation:I
add-int/lit8 v2, v1, 0x1
iput v2, p0, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->currentLocation:I
invoke-virtual {p0, v1, p1}, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->set(IZ)V
add-int/lit8 v0, v0, 0x1
goto :goto_0
.end method
.method public getRow()[B
.locals 1
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->row:[B
return-object v0
.end method
.method public getScaledRow(I)[B
.locals 5
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->row:[B
array-length v0, v0
mul-int/2addr v0, p1
new-array v1, v0, [B
const/4 v2, 0x0
:goto_0
if-lt v2, v0, :cond_0
return-object v1
.line 2
:cond_0
iget-object v3, p0, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->row:[B
div-int v4, v2, p1
aget-byte v3, v3, v4
aput-byte v3, v1, v2
add-int/lit8 v2, v2, 0x1
goto :goto_0
.end method
.method public set(IB)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->row:[B
aput-byte p2, v0, p1
return-void
.end method
.method public set(IZ)V
.locals 1
.line 2
iget-object v0, p0, Lcom/google/zxing/pdf417/encoder/BarcodeRow;->row:[B
int-to-byte p2, p2
aput-byte p2, v0, p1
return-void
.end method
@@ -0,0 +1,133 @@
.class public final enum Lcom/google/zxing/pdf417/encoder/Compaction;
.super Ljava/lang/Enum;
.source "Compaction.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lcom/google/zxing/pdf417/encoder/Compaction;",
">;"
}
.end annotation
# static fields
.field public static final enum AUTO:Lcom/google/zxing/pdf417/encoder/Compaction;
.field public static final enum BYTE:Lcom/google/zxing/pdf417/encoder/Compaction;
.field private static final synthetic ENUM$VALUES:[Lcom/google/zxing/pdf417/encoder/Compaction;
.field public static final enum NUMERIC:Lcom/google/zxing/pdf417/encoder/Compaction;
.field public static final enum TEXT:Lcom/google/zxing/pdf417/encoder/Compaction;
# direct methods
.method public static constructor <clinit>()V
.locals 9
.line 1
new-instance v0, Lcom/google/zxing/pdf417/encoder/Compaction;
const-string v1, "AUTO"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lcom/google/zxing/pdf417/encoder/Compaction;-><init>(Ljava/lang/String;I)V
sput-object v0, Lcom/google/zxing/pdf417/encoder/Compaction;->AUTO:Lcom/google/zxing/pdf417/encoder/Compaction;
.line 2
new-instance v1, Lcom/google/zxing/pdf417/encoder/Compaction;
const-string v3, "TEXT"
const/4 v4, 0x1
invoke-direct {v1, v3, v4}, Lcom/google/zxing/pdf417/encoder/Compaction;-><init>(Ljava/lang/String;I)V
sput-object v1, Lcom/google/zxing/pdf417/encoder/Compaction;->TEXT:Lcom/google/zxing/pdf417/encoder/Compaction;
.line 3
new-instance v3, Lcom/google/zxing/pdf417/encoder/Compaction;
const-string v5, "BYTE"
const/4 v6, 0x2
invoke-direct {v3, v5, v6}, Lcom/google/zxing/pdf417/encoder/Compaction;-><init>(Ljava/lang/String;I)V
sput-object v3, Lcom/google/zxing/pdf417/encoder/Compaction;->BYTE:Lcom/google/zxing/pdf417/encoder/Compaction;
.line 4
new-instance v5, Lcom/google/zxing/pdf417/encoder/Compaction;
const-string v7, "NUMERIC"
const/4 v8, 0x3
invoke-direct {v5, v7, v8}, Lcom/google/zxing/pdf417/encoder/Compaction;-><init>(Ljava/lang/String;I)V
sput-object v5, Lcom/google/zxing/pdf417/encoder/Compaction;->NUMERIC:Lcom/google/zxing/pdf417/encoder/Compaction;
const/4 v7, 0x4
new-array v7, v7, [Lcom/google/zxing/pdf417/encoder/Compaction;
aput-object v0, v7, v2
aput-object v1, v7, v4
aput-object v3, v7, v6
aput-object v5, v7, v8
.line 5
sput-object v7, Lcom/google/zxing/pdf417/encoder/Compaction;->ENUM$VALUES:[Lcom/google/zxing/pdf417/encoder/Compaction;
return-void
.end method
.method private constructor <init>(Ljava/lang/String;I)V
.locals 0
.line 1
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Lcom/google/zxing/pdf417/encoder/Compaction;
.locals 1
.line 1
const-class v0, Lcom/google/zxing/pdf417/encoder/Compaction;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lcom/google/zxing/pdf417/encoder/Compaction;
return-object p0
.end method
.method public static values()[Lcom/google/zxing/pdf417/encoder/Compaction;
.locals 4
.line 1
sget-object v0, Lcom/google/zxing/pdf417/encoder/Compaction;->ENUM$VALUES:[Lcom/google/zxing/pdf417/encoder/Compaction;
array-length v1, v0
new-array v2, v1, [Lcom/google/zxing/pdf417/encoder/Compaction;
const/4 v3, 0x0
invoke-static {v0, v3, v2, v3, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
return-object v2
.end method
@@ -0,0 +1,74 @@
.class public final Lcom/google/zxing/pdf417/encoder/Dimensions;
.super Ljava/lang/Object;
.source "Dimensions.java"
# instance fields
.field private final maxCols:I
.field private final maxRows:I
.field private final minCols:I
.field private final minRows:I
# direct methods
.method public constructor <init>(IIII)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/zxing/pdf417/encoder/Dimensions;->minCols:I
.line 3
iput p2, p0, Lcom/google/zxing/pdf417/encoder/Dimensions;->maxCols:I
.line 4
iput p3, p0, Lcom/google/zxing/pdf417/encoder/Dimensions;->minRows:I
.line 5
iput p4, p0, Lcom/google/zxing/pdf417/encoder/Dimensions;->maxRows:I
return-void
.end method
# virtual methods
.method public getMaxCols()I
.locals 1
.line 1
iget v0, p0, Lcom/google/zxing/pdf417/encoder/Dimensions;->maxCols:I
return v0
.end method
.method public getMaxRows()I
.locals 1
.line 1
iget v0, p0, Lcom/google/zxing/pdf417/encoder/Dimensions;->maxRows:I
return v0
.end method
.method public getMinCols()I
.locals 1
.line 1
iget v0, p0, Lcom/google/zxing/pdf417/encoder/Dimensions;->minCols:I
return v0
.end method
.method public getMinRows()I
.locals 1
.line 1
iget v0, p0, Lcom/google/zxing/pdf417/encoder/Dimensions;->minRows:I
return v0
.end method
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,546 @@
.class public final Lcom/google/zxing/pdf417/encoder/PDF417Writer;
.super Ljava/lang/Object;
.source "PDF417Writer.java"
# interfaces
.implements Lcom/google/zxing/Writer;
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static bitMatrixFromEncoder(Lcom/google/zxing/pdf417/encoder/PDF417;Ljava/lang/String;II)Lcom/google/zxing/common/BitMatrix;
.locals 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/WriterException;
}
.end annotation
const/4 v0, 0x2
.line 1
invoke-virtual {p0, p1, v0}, Lcom/google/zxing/pdf417/encoder/PDF417;->generateBarcodeLogic(Ljava/lang/String;I)V
.line 2
invoke-virtual {p0}, Lcom/google/zxing/pdf417/encoder/PDF417;->getBarcodeMatrix()Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;
move-result-object p1
const/16 v1, 0x8
invoke-virtual {p1, v0, v1}, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->getScaledMatrix(II)[[B
move-result-object p1
const/4 v1, 0x1
const/4 v2, 0x0
if-le p3, p2, :cond_0
move v3, v1
goto :goto_0
:cond_0
move v3, v2
.line 3
:goto_0
aget-object v4, p1, v2
array-length v4, v4
array-length v5, p1
if-ge v4, v5, :cond_1
move v4, v1
goto :goto_1
:cond_1
move v4, v2
:goto_1
xor-int/2addr v3, v4
if-eqz v3, :cond_2
.line 4
invoke-static {p1}, Lcom/google/zxing/pdf417/encoder/PDF417Writer;->rotateArray([[B)[[B
move-result-object p1
move v3, v1
goto :goto_2
:cond_2
move v3, v2
.line 5
:goto_2
aget-object v2, p1, v2
array-length v2, v2
div-int/2addr p2, v2
.line 6
array-length v2, p1
div-int/2addr p3, v2
if-ge p2, p3, :cond_3
goto :goto_3
:cond_3
move p2, p3
:goto_3
if-le p2, v1, :cond_5
.line 7
invoke-virtual {p0}, Lcom/google/zxing/pdf417/encoder/PDF417;->getBarcodeMatrix()Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;
move-result-object p0
mul-int/lit8 p1, p2, 0x2
mul-int/lit8 p2, p2, 0x4
mul-int/2addr p2, v0
invoke-virtual {p0, p1, p2}, Lcom/google/zxing/pdf417/encoder/BarcodeMatrix;->getScaledMatrix(II)[[B
move-result-object p0
if-eqz v3, :cond_4
.line 8
invoke-static {p0}, Lcom/google/zxing/pdf417/encoder/PDF417Writer;->rotateArray([[B)[[B
move-result-object p0
.line 9
:cond_4
invoke-static {p0}, Lcom/google/zxing/pdf417/encoder/PDF417Writer;->bitMatrixFrombitArray([[B)Lcom/google/zxing/common/BitMatrix;
move-result-object p0
return-object p0
.line 10
:cond_5
invoke-static {p1}, Lcom/google/zxing/pdf417/encoder/PDF417Writer;->bitMatrixFrombitArray([[B)Lcom/google/zxing/common/BitMatrix;
move-result-object p0
return-object p0
.end method
.method private static bitMatrixFrombitArray([[B)Lcom/google/zxing/common/BitMatrix;
.locals 7
.line 1
new-instance v0, Lcom/google/zxing/common/BitMatrix;
const/4 v1, 0x0
aget-object v2, p0, v1
array-length v2, v2
add-int/lit8 v2, v2, 0x3c
array-length v3, p0
add-int/lit8 v3, v3, 0x3c
invoke-direct {v0, v2, v3}, Lcom/google/zxing/common/BitMatrix;-><init>(II)V
.line 2
invoke-virtual {v0}, Lcom/google/zxing/common/BitMatrix;->clear()V
.line 3
invoke-virtual {v0}, Lcom/google/zxing/common/BitMatrix;->getHeight()I
move-result v2
add-int/lit8 v2, v2, -0x1e
move v3, v1
:goto_0
array-length v4, p0
if-lt v3, v4, :cond_0
return-object v0
:cond_0
move v4, v1
.line 4
:goto_1
aget-object v5, p0, v1
array-length v5, v5
if-lt v4, v5, :cond_1
add-int/lit8 v3, v3, 0x1
add-int/lit8 v2, v2, -0x1
goto :goto_0
.line 5
:cond_1
aget-object v5, p0, v3
aget-byte v5, v5, v4
const/4 v6, 0x1
if-ne v5, v6, :cond_2
add-int/lit8 v5, v4, 0x1e
.line 6
invoke-virtual {v0, v5, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_2
add-int/lit8 v4, v4, 0x1
goto :goto_1
.end method
.method private static rotateArray([[B)[[B
.locals 8
const/4 v0, 0x0
.line 1
aget-object v1, p0, v0
array-length v1, v1
array-length v2, p0
const/4 v3, 0x2
new-array v3, v3, [I
const/4 v4, 0x1
aput v2, v3, v4
aput v1, v3, v0
const-class v1, B
invoke-static {v1, v3}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v1
check-cast v1, [[B
move v2, v0
.line 2
:goto_0
array-length v3, p0
if-lt v2, v3, :cond_0
return-object v1
.line 3
:cond_0
array-length v3, p0
sub-int/2addr v3, v2
sub-int/2addr v3, v4
move v5, v0
.line 4
:goto_1
aget-object v6, p0, v0
array-length v6, v6
if-lt v5, v6, :cond_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 5
:cond_1
aget-object v6, v1, v5
aget-object v7, p0, v2
aget-byte v7, v7, v5
aput-byte v7, v6, v3
add-int/lit8 v5, v5, 0x1
goto :goto_1
.end method
# virtual methods
.method public encode(Ljava/lang/String;Lcom/google/zxing/BarcodeFormat;II)Lcom/google/zxing/common/BitMatrix;
.locals 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/WriterException;
}
.end annotation
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move-object v2, p2
move v3, p3
move v4, p4
.line 16
invoke-virtual/range {v0 .. v5}, Lcom/google/zxing/pdf417/encoder/PDF417Writer;->encode(Ljava/lang/String;Lcom/google/zxing/BarcodeFormat;IILjava/util/Map;)Lcom/google/zxing/common/BitMatrix;
move-result-object p1
return-object p1
.end method
.method public encode(Ljava/lang/String;Lcom/google/zxing/BarcodeFormat;IILjava/util/Map;)Lcom/google/zxing/common/BitMatrix;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lcom/google/zxing/BarcodeFormat;",
"II",
"Ljava/util/Map<",
"Lcom/google/zxing/EncodeHintType;",
"*>;)",
"Lcom/google/zxing/common/BitMatrix;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/WriterException;
}
.end annotation
.line 1
sget-object v0, Lcom/google/zxing/BarcodeFormat;->PDF_417:Lcom/google/zxing/BarcodeFormat;
if-ne p2, v0, :cond_3
.line 2
new-instance p2, Lcom/google/zxing/pdf417/encoder/PDF417;
invoke-direct {p2}, Lcom/google/zxing/pdf417/encoder/PDF417;-><init>()V
if-eqz p5, :cond_2
.line 3
sget-object v0, Lcom/google/zxing/EncodeHintType;->PDF417_COMPACT:Lcom/google/zxing/EncodeHintType;
invoke-interface {p5, v0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_0
.line 4
invoke-interface {p5, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Boolean;
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
invoke-virtual {p2, v0}, Lcom/google/zxing/pdf417/encoder/PDF417;->setCompact(Z)V
.line 5
:cond_0
sget-object v0, Lcom/google/zxing/EncodeHintType;->PDF417_COMPACTION:Lcom/google/zxing/EncodeHintType;
invoke-interface {p5, v0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_1
.line 6
invoke-interface {p5, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/zxing/pdf417/encoder/Compaction;
invoke-virtual {p2, v0}, Lcom/google/zxing/pdf417/encoder/PDF417;->setCompaction(Lcom/google/zxing/pdf417/encoder/Compaction;)V
.line 7
:cond_1
sget-object v0, Lcom/google/zxing/EncodeHintType;->PDF417_DIMENSIONS:Lcom/google/zxing/EncodeHintType;
invoke-interface {p5, v0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_2
.line 8
invoke-interface {p5, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p5
check-cast p5, Lcom/google/zxing/pdf417/encoder/Dimensions;
.line 9
invoke-virtual {p5}, Lcom/google/zxing/pdf417/encoder/Dimensions;->getMaxCols()I
move-result v0
.line 10
invoke-virtual {p5}, Lcom/google/zxing/pdf417/encoder/Dimensions;->getMinCols()I
move-result v1
.line 11
invoke-virtual {p5}, Lcom/google/zxing/pdf417/encoder/Dimensions;->getMaxRows()I
move-result v2
.line 12
invoke-virtual {p5}, Lcom/google/zxing/pdf417/encoder/Dimensions;->getMinRows()I
move-result p5
.line 13
invoke-virtual {p2, v0, v1, v2, p5}, Lcom/google/zxing/pdf417/encoder/PDF417;->setDimensions(IIII)V
.line 14
:cond_2
invoke-static {p2, p1, p3, p4}, Lcom/google/zxing/pdf417/encoder/PDF417Writer;->bitMatrixFromEncoder(Lcom/google/zxing/pdf417/encoder/PDF417;Ljava/lang/String;II)Lcom/google/zxing/common/BitMatrix;
move-result-object p1
return-object p1
.line 15
:cond_3
new-instance p1, Ljava/lang/IllegalArgumentException;
new-instance p3, Ljava/lang/StringBuilder;
const-string p4, "Can only encode PDF_417, but got "
invoke-direct {p3, p4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public encode(Ljava/lang/String;Lcom/google/zxing/BarcodeFormat;ZIIIIIILcom/google/zxing/pdf417/encoder/Compaction;)Lcom/google/zxing/common/BitMatrix;
.locals 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/WriterException;
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 17
new-instance v5, Ljava/util/EnumMap;
const-class v0, Lcom/google/zxing/EncodeHintType;
invoke-direct {v5, v0}, Ljava/util/EnumMap;-><init>(Ljava/lang/Class;)V
.line 18
sget-object v0, Lcom/google/zxing/EncodeHintType;->PDF417_COMPACT:Lcom/google/zxing/EncodeHintType;
invoke-static {p3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v1
invoke-virtual {v5, v0, v1}, Ljava/util/EnumMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 19
sget-object v0, Lcom/google/zxing/EncodeHintType;->PDF417_COMPACTION:Lcom/google/zxing/EncodeHintType;
move-object/from16 v1, p10
invoke-virtual {v5, v0, v1}, Ljava/util/EnumMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 20
sget-object v0, Lcom/google/zxing/EncodeHintType;->PDF417_DIMENSIONS:Lcom/google/zxing/EncodeHintType;
new-instance v1, Lcom/google/zxing/pdf417/encoder/Dimensions;
move v2, p6
move v3, p7
move v4, p8
move/from16 v6, p9
invoke-direct {v1, p6, p7, p8, v6}, Lcom/google/zxing/pdf417/encoder/Dimensions;-><init>(IIII)V
invoke-virtual {v5, v0, v1}, Ljava/util/EnumMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-object v0, p0
move-object v1, p1
move-object v2, p2
move v3, p4
move v4, p5
.line 21
invoke-virtual/range {v0 .. v5}, Lcom/google/zxing/pdf417/encoder/PDF417Writer;->encode(Ljava/lang/String;Lcom/google/zxing/BarcodeFormat;IILjava/util/Map;)Lcom/google/zxing/common/BitMatrix;
move-result-object v0
return-object v0
.end method