b.smali
.class public final Lcom/google/zxing/common/b;
.super Ljava/lang/Object;
.source "BitMatrix.java"
# interfaces
.implements Ljava/lang/Cloneable;
# instance fields
.field private final a:I
.field private final b:I
.field private final c:I
.field private final d:[I
# direct methods
.method public constructor <init>(II)V
.registers 5
.prologue
const/4 v0, 0x1
.line 48
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 49
if-lt p1, v0, :cond_8
if-ge p2, v0, :cond_10
.line 50
:cond_8
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Both dimensions must be greater than 0"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 52
:cond_10
iput p1, p0, Lcom/google/zxing/common/b;->a:I
.line 53
iput p2, p0, Lcom/google/zxing/common/b;->b:I
.line 54
add-int/lit8 v0, p1, 0x1f
div-int/lit8 v0, v0, 0x20
iput v0, p0, Lcom/google/zxing/common/b;->c:I
.line 55
iget v0, p0, Lcom/google/zxing/common/b;->c:I
mul-int/2addr v0, p2
new-array v0, v0, [I
iput-object v0, p0, Lcom/google/zxing/common/b;->d:[I
.line 56
return-void
.end method
.method private constructor <init>(III[I)V
.registers 5
.prologue
.line 58
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 59
iput p1, p0, Lcom/google/zxing/common/b;->a:I
.line 60
iput p2, p0, Lcom/google/zxing/common/b;->b:I
.line 61
iput p3, p0, Lcom/google/zxing/common/b;->c:I
.line 62
iput-object p4, p0, Lcom/google/zxing/common/b;->d:[I
.line 63
return-void
.end method
# virtual methods
.method public a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 4
.prologue
.line 417
invoke-static {}, Ljava/lang/System;->lineSeparator()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, p1, p2, v0}, Lcom/google/zxing/common/b;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 9
.prologue
const/4 v1, 0x0
.line 421
new-instance v4, Ljava/lang/StringBuilder;
iget v0, p0, Lcom/google/zxing/common/b;->b:I
iget v2, p0, Lcom/google/zxing/common/b;->a:I
add-int/lit8 v2, v2, 0x1
mul-int/2addr v0, v2
invoke-direct {v4, v0}, Ljava/lang/StringBuilder;-><init>(I)V
move v0, v1
.line 422
:goto_e
iget v2, p0, Lcom/google/zxing/common/b;->b:I
if-ge v0, v2, :cond_2c
move v2, v1
.line 423
:goto_13
iget v3, p0, Lcom/google/zxing/common/b;->a:I
if-ge v2, v3, :cond_26
.line 424
invoke-virtual {p0, v2, v0}, Lcom/google/zxing/common/b;->a(II)Z
move-result v3
if-eqz v3, :cond_24
move-object v3, p1
:goto_1e
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 423
add-int/lit8 v2, v2, 0x1
goto :goto_13
:cond_24
move-object v3, p2
.line 424
goto :goto_1e
.line 426
:cond_26
invoke-virtual {v4, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 422
add-int/lit8 v0, v0, 0x1
goto :goto_e
.line 428
:cond_2c
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public a()V
.registers 5
.prologue
const/4 v1, 0x0
.line 189
iget-object v0, p0, Lcom/google/zxing/common/b;->d:[I
array-length v2, v0
move v0, v1
.line 190
:goto_5
if-ge v0, v2, :cond_e
.line 191
iget-object v3, p0, Lcom/google/zxing/common/b;->d:[I
aput v1, v3, v0
.line 190
add-int/lit8 v0, v0, 0x1
goto :goto_5
.line 193
:cond_e
return-void
.end method
.method public a(IIII)V
.registers 14
.prologue
const/4 v8, 0x1
.line 204
if-ltz p2, :cond_5
if-gez p1, :cond_d
.line 205
:cond_5
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Left and top must be nonnegative"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 207
:cond_d
if-lt p4, v8, :cond_11
if-ge p3, v8, :cond_19
.line 208
:cond_11
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Height and width must be at least 1"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 210
:cond_19
add-int v1, p1, p3
.line 211
add-int v2, p2, p4
.line 212
iget v0, p0, Lcom/google/zxing/common/b;->b:I
if-gt v2, v0, :cond_25
iget v0, p0, Lcom/google/zxing/common/b;->a:I
if-le v1, v0, :cond_2f
.line 213
:cond_25
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "The region must fit inside the matrix"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 215
:cond_2d
add-int/lit8 p2, p2, 0x1
:cond_2f
if-ge p2, v2, :cond_49
.line 216
iget v0, p0, Lcom/google/zxing/common/b;->c:I
mul-int v3, p2, v0
move v0, p1
.line 217
:goto_36
if-ge v0, v1, :cond_2d
.line 218
iget-object v4, p0, Lcom/google/zxing/common/b;->d:[I
div-int/lit8 v5, v0, 0x20
add-int/2addr v5, v3
aget v6, v4, v5
and-int/lit8 v7, v0, 0x1f
shl-int v7, v8, v7
or-int/2addr v6, v7
aput v6, v4, v5
.line 217
add-int/lit8 v0, v0, 0x1
goto :goto_36
.line 221
:cond_49
return-void
.end method
.method public a(II)Z
.registers 5
.prologue
.line 133
iget v0, p0, Lcom/google/zxing/common/b;->c:I
mul-int/2addr v0, p2
div-int/lit8 v1, p1, 0x20
add-int/2addr v0, v1
.line 134
iget-object v1, p0, Lcom/google/zxing/common/b;->d:[I
aget v0, v1, v0
and-int/lit8 v1, p1, 0x1f
ushr-int/2addr v0, v1
and-int/lit8 v0, v0, 0x1
if-eqz v0, :cond_13
const/4 v0, 0x1
:goto_12
return v0
:cond_13
const/4 v0, 0x0
goto :goto_12
.end method
.method public b(II)V
.registers 8
.prologue
.line 144
iget v0, p0, Lcom/google/zxing/common/b;->c:I
mul-int/2addr v0, p2
div-int/lit8 v1, p1, 0x20
add-int/2addr v0, v1
.line 145
iget-object v1, p0, Lcom/google/zxing/common/b;->d:[I
aget v2, v1, v0
const/4 v3, 0x1
and-int/lit8 v4, p1, 0x1f
shl-int/2addr v3, v4
or-int/2addr v2, v3
aput v2, v1, v0
.line 146
return-void
.end method
.method public b()[I
.registers 11
.prologue
const/4 v0, -0x1
const/4 v1, 0x0
.line 276
iget v3, p0, Lcom/google/zxing/common/b;->a:I
.line 277
iget v2, p0, Lcom/google/zxing/common/b;->b:I
move v4, v2
move v5, v3
move v3, v0
move v2, v0
move v0, v1
.line 281
:goto_b
iget v6, p0, Lcom/google/zxing/common/b;->b:I
if-ge v0, v6, :cond_60
move v6, v1
.line 282
:goto_10
iget v7, p0, Lcom/google/zxing/common/b;->c:I
if-ge v6, v7, :cond_5d
.line 283
iget-object v7, p0, Lcom/google/zxing/common/b;->d:[I
iget v8, p0, Lcom/google/zxing/common/b;->c:I
mul-int/2addr v8, v0
add-int/2addr v8, v6
aget v8, v7, v8
.line 284
if-eqz v8, :cond_7d
.line 285
if-ge v0, v4, :cond_21
move v4, v0
.line 288
:cond_21
if-le v0, v2, :cond_24
move v2, v0
.line 291
:cond_24
mul-int/lit8 v7, v6, 0x20
if-ge v7, v5, :cond_7b
move v7, v1
.line 293
:goto_29
rsub-int/lit8 v9, v7, 0x1f
shl-int v9, v8, v9
if-nez v9, :cond_32
.line 294
add-int/lit8 v7, v7, 0x1
goto :goto_29
.line 296
:cond_32
mul-int/lit8 v9, v6, 0x20
add-int/2addr v9, v7
if-ge v9, v5, :cond_7b
.line 297
mul-int/lit8 v5, v6, 0x20
add-int/2addr v5, v7
move v7, v5
.line 300
:goto_3b
mul-int/lit8 v5, v6, 0x20
add-int/lit8 v5, v5, 0x1f
if-le v5, v3, :cond_77
.line 301
const/16 v5, 0x1f
.line 302
:goto_43
ushr-int v9, v8, v5
if-nez v9, :cond_4a
.line 303
add-int/lit8 v5, v5, -0x1
goto :goto_43
.line 305
:cond_4a
mul-int/lit8 v8, v6, 0x20
add-int/2addr v8, v5
if-le v8, v3, :cond_77
.line 306
mul-int/lit8 v3, v6, 0x20
add-int/2addr v3, v5
move v5, v4
move v4, v3
move v3, v2
.line 282
:goto_55
add-int/lit8 v2, v6, 0x1
move v6, v2
move v2, v3
move v3, v4
move v4, v5
move v5, v7
goto :goto_10
.line 281
:cond_5d
add-int/lit8 v0, v0, 0x1
goto :goto_b
.line 313
:cond_60
sub-int/2addr v3, v5
.line 314
sub-int/2addr v2, v4
.line 316
if-ltz v3, :cond_66
if-gez v2, :cond_68
.line 317
:cond_66
const/4 v0, 0x0
.line 320
:goto_67
return-object v0
:cond_68
const/4 v0, 0x4
new-array v0, v0, [I
aput v5, v0, v1
const/4 v1, 0x1
aput v4, v0, v1
const/4 v1, 0x2
aput v3, v0, v1
const/4 v1, 0x3
aput v2, v0, v1
goto :goto_67
:cond_77
move v5, v4
move v4, v3
move v3, v2
goto :goto_55
:cond_7b
move v7, v5
goto :goto_3b
:cond_7d
move v7, v5
move v5, v4
move v4, v3
move v3, v2
goto :goto_55
.end method
.method public c()Lcom/google/zxing/common/b;
.registers 6
.prologue
.line 433
new-instance v1, Lcom/google/zxing/common/b;
iget v2, p0, Lcom/google/zxing/common/b;->a:I
iget v3, p0, Lcom/google/zxing/common/b;->b:I
iget v4, p0, Lcom/google/zxing/common/b;->c:I
iget-object v0, p0, Lcom/google/zxing/common/b;->d:[I
invoke-virtual {v0}, [I->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [I
invoke-direct {v1, v2, v3, v4, v0}, Lcom/google/zxing/common/b;-><init>(III[I)V
return-object v1
.end method
.method public synthetic clone()Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/CloneNotSupportedException;
}
.end annotation
.prologue
.line 36
invoke-virtual {p0}, Lcom/google/zxing/common/b;->c()Lcom/google/zxing/common/b;
move-result-object v0
return-object v0
.end method
.method public equals(Ljava/lang/Object;)Z
.registers 5
.prologue
const/4 v0, 0x0
.line 393
instance-of v1, p1, Lcom/google/zxing/common/b;
if-nez v1, :cond_6
.line 398
:cond_5
:goto_5
return v0
.line 396
:cond_6
check-cast p1, Lcom/google/zxing/common/b;
.line 397
iget v1, p0, Lcom/google/zxing/common/b;->a:I
iget v2, p1, Lcom/google/zxing/common/b;->a:I
if-ne v1, v2, :cond_5
iget v1, p0, Lcom/google/zxing/common/b;->b:I
iget v2, p1, Lcom/google/zxing/common/b;->b:I
if-ne v1, v2, :cond_5
iget v1, p0, Lcom/google/zxing/common/b;->c:I
iget v2, p1, Lcom/google/zxing/common/b;->c:I
if-ne v1, v2, :cond_5
iget-object v1, p0, Lcom/google/zxing/common/b;->d:[I
iget-object v2, p1, Lcom/google/zxing/common/b;->d:[I
.line 398
invoke-static {v1, v2}, Ljava/util/Arrays;->equals([I[I)Z
move-result v1
if-eqz v1, :cond_5
const/4 v0, 0x1
goto :goto_5
.end method
.method public hashCode()I
.registers 3
.prologue
.line 403
iget v0, p0, Lcom/google/zxing/common/b;->a:I
.line 404
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Lcom/google/zxing/common/b;->a:I
add-int/2addr v0, v1
.line 405
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Lcom/google/zxing/common/b;->b:I
add-int/2addr v0, v1
.line 406
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Lcom/google/zxing/common/b;->c:I
add-int/2addr v0, v1
.line 407
mul-int/lit8 v0, v0, 0x1f
iget-object v1, p0, Lcom/google/zxing/common/b;->d:[I
invoke-static {v1}, Ljava/util/Arrays;->hashCode([I)I
move-result v1
add-int/2addr v0, v1
.line 408
return v0
.end method
.method public toString()Ljava/lang/String;
.registers 3
.prologue
.line 413
const-string v0, "X "
const-string v1, " "
invoke-virtual {p0, v0, v1}, Lcom/google/zxing/common/b;->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method