TableOfContents$Section.smali
.class public Lcom/tencent/tinker/android/dex/TableOfContents$Section;
.super Ljava/lang/Object;
# interfaces
.implements Ljava/lang/Comparable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/tencent/tinker/android/dex/TableOfContents;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Section"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/tencent/tinker/android/dex/TableOfContents$Section$Item;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/lang/Comparable",
"<",
"Lcom/tencent/tinker/android/dex/TableOfContents$Section;",
">;"
}
.end annotation
# static fields
.field public static final UNDEF_INDEX:I = -0x1
.field public static final UNDEF_OFFSET:I = -0x1
# instance fields
.field public byteCount:I
.field public isElementFourByteAligned:Z
.field public off:I
.field public size:I
.field public final type:S
# direct methods
.method public constructor <init>(IZ)V
.registers 6
const/4 v2, 0x1
const/4 v1, 0x0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput v1, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->size:I
const/4 v0, -0x1
iput v0, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->off:I
iput v1, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->byteCount:I
int-to-short v0, p1
iput-short v0, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->type:S
iput-boolean p2, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->isElementFourByteAligned:Z
if-nez p1, :cond_1c
iput v1, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->off:I
iput v2, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->size:I
const/16 v0, 0x70
iput v0, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->byteCount:I
:cond_1b
:goto_1b
return-void
:cond_1c
const/16 v0, 0x1000
if-ne p1, v0, :cond_1b
iput v2, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->size:I
goto :goto_1b
.end method
.method private remapTypeOrderId(I)I
.registers 5
sparse-switch p1, :sswitch_data_4c
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "unknown section type: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:sswitch_1d
const/4 v0, 0x0
:goto_1e
return v0
:sswitch_1f
const/4 v0, 0x1
goto :goto_1e
:sswitch_21
const/4 v0, 0x2
goto :goto_1e
:sswitch_23
const/4 v0, 0x3
goto :goto_1e
:sswitch_25
const/4 v0, 0x4
goto :goto_1e
:sswitch_27
const/4 v0, 0x5
goto :goto_1e
:sswitch_29
const/4 v0, 0x6
goto :goto_1e
:sswitch_2b
const/4 v0, 0x7
goto :goto_1e
:sswitch_2d
const/16 v0, 0x8
goto :goto_1e
:sswitch_30
const/16 v0, 0x9
goto :goto_1e
:sswitch_33
const/16 v0, 0xa
goto :goto_1e
:sswitch_36
const/16 v0, 0xb
goto :goto_1e
:sswitch_39
const/16 v0, 0xc
goto :goto_1e
:sswitch_3c
const/16 v0, 0xd
goto :goto_1e
:sswitch_3f
const/16 v0, 0xe
goto :goto_1e
:sswitch_42
const/16 v0, 0xf
goto :goto_1e
:sswitch_45
const/16 v0, 0x10
goto :goto_1e
:sswitch_48
const/16 v0, 0x11
goto :goto_1e
nop
:sswitch_data_4c
.sparse-switch
0x0 -> :sswitch_1d
0x1 -> :sswitch_1f
0x2 -> :sswitch_21
0x3 -> :sswitch_23
0x4 -> :sswitch_25
0x5 -> :sswitch_27
0x6 -> :sswitch_29
0x1000 -> :sswitch_48
0x1001 -> :sswitch_2d
0x1002 -> :sswitch_36
0x1003 -> :sswitch_33
0x2000 -> :sswitch_42
0x2001 -> :sswitch_3f
0x2002 -> :sswitch_2b
0x2003 -> :sswitch_3c
0x2004 -> :sswitch_30
0x2005 -> :sswitch_45
0x2006 -> :sswitch_39
.end sparse-switch
.end method
# virtual methods
.method public compareTo(Lcom/tencent/tinker/android/dex/TableOfContents$Section;)I
.registers 6
const/4 v1, 0x1
const/4 v0, -0x1
iget v2, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->off:I
iget v3, p1, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->off:I
if-eq v2, v3, :cond_11
iget v2, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->off:I
iget v3, p1, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->off:I
if-ge v2, v3, :cond_f
:cond_e
:goto_e
return v0
:cond_f
move v0, v1
goto :goto_e
:cond_11
iget-short v2, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->type:S
invoke-direct {p0, v2}, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->remapTypeOrderId(I)I
move-result v2
iget-short v3, p1, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->type:S
invoke-direct {p0, v3}, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->remapTypeOrderId(I)I
move-result v3
if-eq v2, v3, :cond_23
if-lt v2, v3, :cond_e
move v0, v1
goto :goto_e
:cond_23
const/4 v0, 0x0
goto :goto_e
.end method
.method public bridge synthetic compareTo(Ljava/lang/Object;)I
.registers 3
check-cast p1, Lcom/tencent/tinker/android/dex/TableOfContents$Section;
invoke-virtual {p0, p1}, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->compareTo(Lcom/tencent/tinker/android/dex/TableOfContents$Section;)I
move-result v0
return v0
.end method
.method public exists()Z
.registers 2
iget v0, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->size:I
if-lez v0, :cond_6
const/4 v0, 0x1
:goto_5
return v0
:cond_6
const/4 v0, 0x0
goto :goto_5
.end method
.method public toString()Ljava/lang/String;
.registers 5
const-string/jumbo v0, "Section[type=%#x,off=%#x,size=%#x]"
const/4 v1, 0x3
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
iget-short v3, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->type:S
invoke-static {v3}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
move-result-object v3
aput-object v3, v1, v2
const/4 v2, 0x1
iget v3, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->off:I
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v1, v2
const/4 v2, 0x2
iget v3, p0, Lcom/tencent/tinker/android/dex/TableOfContents$Section;->size:I
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v1, v2
invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method