StandardGifDecoder.smali
.class public Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;
.super Ljava/lang/Object;
.source "StandardGifDecoder.java"
# interfaces
.implements Lcom/bumptech/glide/gifdecoder/GifDecoder;
# static fields
.field private static final BYTES_PER_INTEGER:I = 0x4
.field private static final COLOR_TRANSPARENT_BLACK:I = 0x0
.field private static final INITIAL_FRAME_POINTER:I = -0x1
.field private static final MASK_INT_LOWEST_BYTE:I = 0xff
.field private static final MAX_STACK_SIZE:I = 0x1000
.field private static final NULL_CODE:I = -0x1
.field private static final TAG:Ljava/lang/String;
.field private static final WORK_BUFFER_SIZE:I = 0x4000
# instance fields
.field private act:[I
.field private bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
.field private block:[B
.field private downsampledHeight:I
.field private downsampledWidth:I
.field private framePointer:I
.field private header:Lcom/bumptech/glide/gifdecoder/GifHeader;
.field private isFirstFrameTransparent:Z
.field private mainPixels:[B
.field private mainScratch:[I
.field private parser:Lcom/bumptech/glide/gifdecoder/GifHeaderParser;
.field private final pct:[I
.field private pixelStack:[B
.field private prefix:[S
.field private previousImage:Landroid/graphics/Bitmap;
.field private rawData:Ljava/nio/ByteBuffer;
.field private sampleSize:I
.field private savePrevious:Z
.field private status:I
.field private suffix:[B
.field private workBuffer:[B
.field private workBufferPosition:I
.field private workBufferSize:I
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 61
const-class v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
return-void
.end method
.method public constructor <init>(Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;)V
.registers 3
.line 138
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x100
new-array v0, v0, [I
.line 85
iput-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pct:[I
const/4 v0, 0x0
.line 100
iput v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferSize:I
.line 101
iput v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
.line 139
iput-object p1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
.line 140
new-instance p1, Lcom/bumptech/glide/gifdecoder/GifHeader;
invoke-direct {p1}, Lcom/bumptech/glide/gifdecoder/GifHeader;-><init>()V
iput-object p1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
return-void
.end method
.method public constructor <init>(Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;Lcom/bumptech/glide/gifdecoder/GifHeader;Ljava/nio/ByteBuffer;)V
.registers 5
const/4 v0, 0x1
.line 127
invoke-direct {p0, p1, p2, p3, v0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;-><init>(Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;Lcom/bumptech/glide/gifdecoder/GifHeader;Ljava/nio/ByteBuffer;I)V
return-void
.end method
.method public constructor <init>(Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;Lcom/bumptech/glide/gifdecoder/GifHeader;Ljava/nio/ByteBuffer;I)V
.registers 5
.line 133
invoke-direct {p0, p1}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;-><init>(Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;)V
.line 134
invoke-virtual {p0, p2, p3, p4}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->setData(Lcom/bumptech/glide/gifdecoder/GifHeader;Ljava/nio/ByteBuffer;I)V
return-void
.end method
.method private averageColorsNear(III)I
.registers 13
const/4 v0, 0x0
move v1, p1
const/4 v2, 0x0
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x0
.line 549
:goto_7
iget v7, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
add-int/2addr v7, p1
if-ge v1, v7, :cond_34
iget-object v7, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
array-length v8, v7
if-ge v1, v8, :cond_34
if-ge v1, p2, :cond_34
.line 550
aget-byte v7, v7, v1
and-int/lit16 v7, v7, 0xff
.line 551
iget-object v8, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->act:[I
aget v7, v8, v7
if-eqz v7, :cond_31
shr-int/lit8 v8, v7, 0x18
and-int/lit16 v8, v8, 0xff
add-int/2addr v2, v8
shr-int/lit8 v8, v7, 0x10
and-int/lit16 v8, v8, 0xff
add-int/2addr v3, v8
shr-int/lit8 v8, v7, 0x8
and-int/lit16 v8, v8, 0xff
add-int/2addr v4, v8
and-int/lit16 v7, v7, 0xff
add-int/2addr v5, v7
add-int/lit8 v6, v6, 0x1
:cond_31
add-int/lit8 v1, v1, 0x1
goto :goto_7
:cond_34
add-int/2addr p1, p3
move p3, p1
.line 563
:goto_36
iget v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
add-int/2addr v1, p1
if-ge p3, v1, :cond_63
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
array-length v7, v1
if-ge p3, v7, :cond_63
if-ge p3, p2, :cond_63
.line 564
aget-byte v1, v1, p3
and-int/lit16 v1, v1, 0xff
.line 565
iget-object v7, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->act:[I
aget v1, v7, v1
if-eqz v1, :cond_60
shr-int/lit8 v7, v1, 0x18
and-int/lit16 v7, v7, 0xff
add-int/2addr v2, v7
shr-int/lit8 v7, v1, 0x10
and-int/lit16 v7, v7, 0xff
add-int/2addr v3, v7
shr-int/lit8 v7, v1, 0x8
and-int/lit16 v7, v7, 0xff
add-int/2addr v4, v7
and-int/lit16 v1, v1, 0xff
add-int/2addr v5, v1
add-int/lit8 v6, v6, 0x1
:cond_60
add-int/lit8 p3, p3, 0x1
goto :goto_36
:cond_63
if-nez v6, :cond_66
return v0
.line 577
:cond_66
div-int/2addr v2, v6
shl-int/lit8 p1, v2, 0x18
div-int/2addr v3, v6
shl-int/lit8 p2, v3, 0x10
or-int/2addr p1, p2
div-int/2addr v4, v6
shl-int/lit8 p2, v4, 0x8
or-int/2addr p1, p2
div-int/2addr v5, v6
or-int/2addr p1, v5
return p1
.end method
.method private decodeBitmapData(Lcom/bumptech/glide/gifdecoder/GifFrame;)V
.registers 28
move-object/from16 v0, p0
move-object/from16 v1, p1
const/4 v2, 0x0
.line 588
iput v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferSize:I
.line 589
iput v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
if-eqz v1, :cond_12
.line 592
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->rawData:Ljava/nio/ByteBuffer;
iget v4, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->bufferFrameStart:I
invoke-virtual {v3, v4}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
:cond_12
if-nez v1, :cond_1f
.line 595
iget-object v1, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v1, v1, Lcom/bumptech/glide/gifdecoder/GifHeader;->width:I
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v3, v3, Lcom/bumptech/glide/gifdecoder/GifHeader;->height:I
mul-int v1, v1, v3
goto :goto_25
:cond_1f
iget v3, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->iw:I
iget v1, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->ih:I
mul-int v1, v1, v3
.line 599
:goto_25
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
if-eqz v3, :cond_2c
array-length v3, v3
if-ge v3, v1, :cond_34
.line 601
:cond_2c
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
invoke-interface {v3, v1}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->obtainByteArray(I)[B
move-result-object v3
iput-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
.line 603
:cond_34
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->prefix:[S
const/16 v4, 0x1000
if-nez v3, :cond_3e
new-array v3, v4, [S
.line 604
iput-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->prefix:[S
.line 606
:cond_3e
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->suffix:[B
if-nez v3, :cond_46
new-array v3, v4, [B
.line 607
iput-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->suffix:[B
.line 609
:cond_46
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pixelStack:[B
if-nez v3, :cond_50
const/16 v3, 0x1001
new-array v3, v3, [B
.line 610
iput-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pixelStack:[B
.line 614
:cond_50
invoke-direct/range {p0 .. p0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->readByte()I
move-result v3
const/4 v5, 0x1
shl-int v6, v5, v3
add-int/lit8 v7, v6, 0x1
add-int/lit8 v8, v6, 0x2
add-int/2addr v3, v5
shl-int v9, v5, v3
sub-int/2addr v9, v5
const/4 v10, 0x0
:goto_60
if-ge v10, v6, :cond_6e
.line 623
iget-object v11, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->prefix:[S
aput-short v2, v11, v10
.line 624
iget-object v11, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->suffix:[B
int-to-byte v12, v10
aput-byte v12, v11, v10
add-int/lit8 v10, v10, 0x1
goto :goto_60
:cond_6e
const/4 v10, -0x1
move/from16 v19, v3
move/from16 v17, v8
move/from16 v18, v9
const/4 v11, 0x0
const/4 v12, 0x0
const/4 v13, 0x0
const/4 v14, 0x0
const/4 v15, 0x0
const/16 v16, 0x0
const/16 v20, -0x1
const/16 v21, 0x0
const/16 v22, 0x0
:goto_82
if-ge v11, v1, :cond_16c
const/4 v2, 0x3
if-nez v12, :cond_92
.line 633
invoke-direct/range {p0 .. p0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->readBlock()I
move-result v12
if-gtz v12, :cond_91
.line 635
iput v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
goto/16 :goto_16c
:cond_91
const/4 v13, 0x0
.line 641
:cond_92
iget-object v4, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->block:[B
aget-byte v4, v4, v13
and-int/lit16 v4, v4, 0xff
shl-int/2addr v4, v14
add-int/2addr v15, v4
add-int/lit8 v14, v14, 0x8
add-int/2addr v13, v5
add-int/2addr v12, v10
move/from16 v4, v17
move/from16 v5, v19
move/from16 v10, v20
move/from16 v23, v21
:goto_a6
if-lt v14, v5, :cond_15b
and-int v2, v15, v18
shr-int/2addr v15, v5
sub-int/2addr v14, v5
if-ne v2, v6, :cond_b5
move v5, v3
move v4, v8
move/from16 v18, v9
const/4 v2, 0x3
const/4 v10, -0x1
goto :goto_a6
:cond_b5
if-le v2, v4, :cond_bd
move/from16 v21, v3
const/4 v3, 0x3
.line 663
iput v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
goto :goto_c2
:cond_bd
move/from16 v21, v3
const/4 v3, 0x3
if-ne v2, v7, :cond_ce
:goto_c2
move/from16 v17, v4
move/from16 v19, v5
move/from16 v20, v10
move/from16 v3, v21
move/from16 v21, v23
goto/16 :goto_165
:cond_ce
const/4 v3, -0x1
if-ne v10, v3, :cond_e4
.line 672
iget-object v10, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pixelStack:[B
add-int/lit8 v19, v22, 0x1
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->suffix:[B
aget-byte v3, v3, v2
aput-byte v3, v10, v22
move v10, v2
move/from16 v23, v10
move/from16 v22, v19
move/from16 v3, v21
:goto_e2
const/4 v2, 0x3
goto :goto_a6
:cond_e4
if-lt v2, v4, :cond_f5
.line 679
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pixelStack:[B
add-int/lit8 v19, v22, 0x1
move/from16 v24, v2
move/from16 v2, v23
int-to-byte v2, v2
aput-byte v2, v3, v22
move v2, v10
move/from16 v22, v19
goto :goto_f7
:cond_f5
move/from16 v24, v2
:goto_f7
if-lt v2, v6, :cond_10e
.line 683
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pixelStack:[B
add-int/lit8 v19, v22, 0x1
move/from16 v23, v6
iget-object v6, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->suffix:[B
aget-byte v6, v6, v2
aput-byte v6, v3, v22
.line 684
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->prefix:[S
aget-short v2, v3, v2
move/from16 v22, v19
move/from16 v6, v23
goto :goto_f7
:cond_10e
move/from16 v23, v6
.line 686
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->suffix:[B
aget-byte v2, v3, v2
and-int/lit16 v2, v2, 0xff
.line 687
iget-object v6, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pixelStack:[B
add-int/lit8 v19, v22, 0x1
move/from16 v25, v7
int-to-byte v7, v2
aput-byte v7, v6, v22
const/16 v6, 0x1000
if-ge v4, v6, :cond_139
.line 691
iget-object v6, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->prefix:[S
int-to-short v10, v10
aput-short v10, v6, v4
.line 692
aput-byte v7, v3, v4
add-int/lit8 v4, v4, 0x1
and-int v3, v4, v18
if-nez v3, :cond_139
const/16 v3, 0x1000
if-ge v4, v3, :cond_13b
add-int/lit8 v5, v5, 0x1
add-int v18, v18, v4
goto :goto_13b
:cond_139
const/16 v3, 0x1000
:cond_13b
:goto_13b
move/from16 v22, v19
:goto_13d
if-lez v22, :cond_150
.line 703
iget-object v6, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
add-int/lit8 v7, v16, 0x1
iget-object v10, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pixelStack:[B
add-int/lit8 v22, v22, -0x1
aget-byte v10, v10, v22
aput-byte v10, v6, v16
add-int/lit8 v11, v11, 0x1
move/from16 v16, v7
goto :goto_13d
:cond_150
move/from16 v3, v21
move/from16 v6, v23
move/from16 v10, v24
move/from16 v7, v25
move/from16 v23, v2
goto :goto_e2
:cond_15b
move/from16 v2, v23
move/from16 v21, v2
move/from16 v17, v4
move/from16 v19, v5
move/from16 v20, v10
:goto_165
const/4 v2, 0x0
const/16 v4, 0x1000
const/4 v5, 0x1
const/4 v10, -0x1
goto/16 :goto_82
:cond_16c
:goto_16c
move/from16 v2, v16
:goto_16e
if-ge v2, v1, :cond_178
.line 711
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
const/4 v4, 0x0
aput-byte v4, v3, v2
add-int/lit8 v2, v2, 0x1
goto :goto_16e
:cond_178
return-void
.end method
.method private getHeaderParser()Lcom/bumptech/glide/gifdecoder/GifHeaderParser;
.registers 2
.line 381
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->parser:Lcom/bumptech/glide/gifdecoder/GifHeaderParser;
if-nez v0, :cond_b
.line 382
new-instance v0, Lcom/bumptech/glide/gifdecoder/GifHeaderParser;
invoke-direct {v0}, Lcom/bumptech/glide/gifdecoder/GifHeaderParser;-><init>()V
iput-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->parser:Lcom/bumptech/glide/gifdecoder/GifHeaderParser;
.line 384
:cond_b
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->parser:Lcom/bumptech/glide/gifdecoder/GifHeaderParser;
return-object v0
.end method
.method private getNextBitmap()Landroid/graphics/Bitmap;
.registers 5
.line 780
iget-boolean v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->isFirstFrameTransparent:Z
if-eqz v0, :cond_7
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
goto :goto_9
:cond_7
sget-object v0, Landroid/graphics/Bitmap$Config;->RGB_565:Landroid/graphics/Bitmap$Config;
.line 782
:goto_9
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
iget v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledWidth:I
iget v3, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledHeight:I
invoke-interface {v1, v2, v3, v0}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->obtain(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
const/4 v1, 0x1
.line 783
invoke-virtual {v0, v1}, Landroid/graphics/Bitmap;->setHasAlpha(Z)V
return-object v0
.end method
.method private readBlock()I
.registers 8
.line 749
invoke-direct {p0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->readByte()I
move-result v0
if-lez v0, :cond_61
const/4 v1, 0x1
.line 752
:try_start_7
iget-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->block:[B
if-nez v2, :cond_15
.line 753
iget-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
const/16 v3, 0xff
invoke-interface {v2, v3}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->obtainByteArray(I)[B
move-result-object v2
iput-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->block:[B
.line 755
:cond_15
iget v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferSize:I
iget v3, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
sub-int/2addr v2, v3
const/4 v3, 0x0
if-lt v2, v0, :cond_2c
.line 758
iget-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBuffer:[B
iget v4, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
iget-object v5, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->block:[B
invoke-static {v2, v4, v5, v3, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 759
iget v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
add-int/2addr v2, v0
iput v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
goto :goto_61
.line 760
:cond_2c
iget-object v4, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->rawData:Ljava/nio/ByteBuffer;
invoke-virtual {v4}, Ljava/nio/ByteBuffer;->remaining()I
move-result v4
add-int/2addr v4, v2
if-lt v4, v0, :cond_54
.line 762
iget-object v4, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBuffer:[B
iget v5, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
iget-object v6, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->block:[B
invoke-static {v4, v5, v6, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 763
iget v4, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferSize:I
iput v4, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
.line 764
invoke-direct {p0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->readChunkIfNeeded()V
sub-int v4, v0, v2
.line 766
iget-object v5, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBuffer:[B
iget-object v6, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->block:[B
invoke-static {v5, v3, v6, v2, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 767
iget v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
add-int/2addr v2, v4
iput v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
goto :goto_61
.line 769
:cond_54
iput v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
:try_end_56
.catch Ljava/lang/Exception; {:try_start_7 .. :try_end_56} :catch_57
goto :goto_61
:catch_57
move-exception v2
.line 772
sget-object v3, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
const-string v4, "Error Reading Block"
invoke-static {v3, v4, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 773
iput v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
:cond_61
:goto_61
return v0
.end method
.method private readByte()I
.registers 4
.line 735
:try_start_0
invoke-direct {p0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->readChunkIfNeeded()V
.line 736
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBuffer:[B
iget v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
add-int/lit8 v2, v1, 0x1
iput v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
aget-byte v0, v0, v1
:try_end_d
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_d} :catch_10
and-int/lit16 v0, v0, 0xff
return v0
:catch_10
const/4 v0, 0x1
.line 738
iput v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
const/4 v0, 0x0
return v0
.end method
.method private readChunkIfNeeded()V
.registers 5
.line 719
iget v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferSize:I
iget v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
if-le v0, v1, :cond_7
return-void
.line 722
:cond_7
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBuffer:[B
const/16 v1, 0x4000
if-nez v0, :cond_15
.line 723
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
invoke-interface {v0, v1}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->obtainByteArray(I)[B
move-result-object v0
iput-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBuffer:[B
:cond_15
const/4 v0, 0x0
.line 725
iput v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferPosition:I
.line 726
iget-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->rawData:Ljava/nio/ByteBuffer;
invoke-virtual {v2}, Ljava/nio/ByteBuffer;->remaining()I
move-result v2
invoke-static {v2, v1}, Ljava/lang/Math;->min(II)I
move-result v1
iput v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBufferSize:I
.line 727
iget-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->rawData:Ljava/nio/ByteBuffer;
iget-object v3, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBuffer:[B
invoke-virtual {v2, v3, v0, v1}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
return-void
.end method
.method private setPixels(Lcom/bumptech/glide/gifdecoder/GifFrame;Lcom/bumptech/glide/gifdecoder/GifFrame;)Landroid/graphics/Bitmap;
.registers 20
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v2, p2
.line 404
iget-object v10, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainScratch:[I
const/4 v11, 0x0
if-nez v2, :cond_e
.line 408
invoke-static {v10, v11}, Ljava/util/Arrays;->fill([II)V
:cond_e
const/4 v12, 0x3
const/4 v13, 0x2
const/4 v14, 0x1
if-eqz v2, :cond_77
.line 412
iget v3, v2, Lcom/bumptech/glide/gifdecoder/GifFrame;->dispose:I
if-lez v3, :cond_77
.line 415
iget v3, v2, Lcom/bumptech/glide/gifdecoder/GifFrame;->dispose:I
if-ne v3, v13, :cond_63
.line 418
iget-boolean v3, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->transparency:Z
if-nez v3, :cond_30
.line 419
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v3, v3, Lcom/bumptech/glide/gifdecoder/GifHeader;->bgColor:I
.line 420
iget-object v4, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->lct:[I
if-eqz v4, :cond_37
iget-object v4, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v4, v4, Lcom/bumptech/glide/gifdecoder/GifHeader;->bgIndex:I
iget v5, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->transIndex:I
if-ne v4, v5, :cond_37
goto :goto_36
.line 423
:cond_30
iget v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
if-nez v3, :cond_36
.line 427
iput-boolean v14, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->isFirstFrameTransparent:Z
:cond_36
:goto_36
const/4 v3, 0x0
.line 430
:cond_37
iget v4, v2, Lcom/bumptech/glide/gifdecoder/GifFrame;->ih:I
iget v5, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
div-int/2addr v4, v5
.line 431
iget v5, v2, Lcom/bumptech/glide/gifdecoder/GifFrame;->iy:I
iget v6, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
div-int/2addr v5, v6
.line 432
iget v6, v2, Lcom/bumptech/glide/gifdecoder/GifFrame;->iw:I
iget v7, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
div-int/2addr v6, v7
.line 433
iget v2, v2, Lcom/bumptech/glide/gifdecoder/GifFrame;->ix:I
iget v7, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
div-int/2addr v2, v7
.line 434
iget v7, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledWidth:I
mul-int v5, v5, v7
add-int/2addr v5, v2
mul-int v4, v4, v7
add-int/2addr v4, v5
:goto_53
if-ge v5, v4, :cond_77
add-int v2, v5, v6
move v7, v5
:goto_58
if-ge v7, v2, :cond_5f
.line 439
aput v3, v10, v7
add-int/lit8 v7, v7, 0x1
goto :goto_58
.line 436
:cond_5f
iget v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledWidth:I
add-int/2addr v5, v2
goto :goto_53
.line 442
:cond_63
iget v2, v2, Lcom/bumptech/glide/gifdecoder/GifFrame;->dispose:I
if-ne v2, v12, :cond_77
iget-object v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->previousImage:Landroid/graphics/Bitmap;
if-eqz v2, :cond_77
const/4 v4, 0x0
.line 444
iget v8, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledWidth:I
const/4 v6, 0x0
const/4 v7, 0x0
iget v9, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledHeight:I
move-object v3, v10
move v5, v8
invoke-virtual/range {v2 .. v9}, Landroid/graphics/Bitmap;->getPixels([IIIIIII)V
.line 450
:cond_77
invoke-direct/range {p0 .. p1}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->decodeBitmapData(Lcom/bumptech/glide/gifdecoder/GifFrame;)V
.line 452
iget v2, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->ih:I
iget v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
div-int/2addr v2, v3
.line 453
iget v3, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->iy:I
iget v4, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
div-int/2addr v3, v4
.line 454
iget v4, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->iw:I
iget v5, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
div-int/2addr v4, v5
.line 455
iget v5, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->ix:I
iget v6, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
div-int/2addr v5, v6
const/16 v6, 0x8
.line 460
iget v7, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
if-nez v7, :cond_96
const/4 v7, 0x1
goto :goto_97
:cond_96
const/4 v7, 0x0
:goto_97
const/4 v8, 0x0
const/4 v9, 0x1
:goto_99
if-ge v11, v2, :cond_11f
.line 463
iget-boolean v15, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->interlace:Z
if-eqz v15, :cond_b5
const/4 v15, 0x4
if-lt v8, v2, :cond_b2
add-int/lit8 v9, v9, 0x1
if-eq v9, v13, :cond_b1
if-eq v9, v12, :cond_ae
if-eq v9, v15, :cond_ab
goto :goto_b2
:cond_ab
const/4 v6, 0x2
const/4 v8, 0x1
goto :goto_b2
:cond_ae
const/4 v6, 0x4
const/4 v8, 0x2
goto :goto_b2
:cond_b1
const/4 v8, 0x4
:cond_b2
:goto_b2
add-int v15, v8, v6
goto :goto_b7
:cond_b5
move v15, v8
move v8, v11
:goto_b7
add-int/2addr v8, v3
.line 486
iget v12, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledHeight:I
if-ge v8, v12, :cond_10f
.line 487
iget v12, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledWidth:I
mul-int v8, v8, v12
add-int v16, v8, v5
add-int v13, v16, v4
add-int v14, v8, v12
if-ge v14, v13, :cond_ca
add-int v13, v8, v12
.line 497
:cond_ca
iget v8, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
mul-int v8, v8, v11
iget v12, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->iw:I
mul-int v8, v8, v12
sub-int v12, v13, v16
.line 498
iget v14, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
mul-int v12, v12, v14
add-int/2addr v12, v8
move/from16 v14, v16
:goto_db
if-ge v14, v13, :cond_10f
move/from16 p2, v2
.line 502
iget v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
move/from16 v16, v3
const/4 v3, 0x1
if-ne v2, v3, :cond_f1
.line 503
iget-object v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
aget-byte v2, v2, v8
and-int/lit16 v2, v2, 0xff
.line 504
iget-object v3, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->act:[I
aget v2, v3, v2
goto :goto_f7
.line 508
:cond_f1
iget v2, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->iw:I
invoke-direct {v0, v8, v12, v2}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->averageColorsNear(III)I
move-result v2
:goto_f7
if-eqz v2, :cond_fc
.line 511
aput v2, v10, v14
goto :goto_105
.line 512
:cond_fc
iget-boolean v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->isFirstFrameTransparent:Z
if-nez v2, :cond_105
if-eqz v7, :cond_105
const/4 v2, 0x1
.line 513
iput-boolean v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->isFirstFrameTransparent:Z
.line 515
:cond_105
:goto_105
iget v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
add-int/2addr v8, v2
add-int/lit8 v14, v14, 0x1
move/from16 v2, p2
move/from16 v3, v16
goto :goto_db
:cond_10f
move/from16 p2, v2
move/from16 v16, v3
add-int/lit8 v11, v11, 0x1
move/from16 v2, p2
move v8, v15
move/from16 v3, v16
const/4 v12, 0x3
const/4 v13, 0x2
const/4 v14, 0x1
goto/16 :goto_99
.line 522
:cond_11f
iget-boolean v2, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->savePrevious:Z
if-eqz v2, :cond_144
iget v2, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->dispose:I
if-eqz v2, :cond_12c
iget v1, v1, Lcom/bumptech/glide/gifdecoder/GifFrame;->dispose:I
const/4 v2, 0x1
if-ne v1, v2, :cond_144
.line 524
:cond_12c
iget-object v1, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->previousImage:Landroid/graphics/Bitmap;
if-nez v1, :cond_136
.line 525
invoke-direct/range {p0 .. p0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->getNextBitmap()Landroid/graphics/Bitmap;
move-result-object v1
iput-object v1, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->previousImage:Landroid/graphics/Bitmap;
.line 527
:cond_136
iget-object v1, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->previousImage:Landroid/graphics/Bitmap;
const/4 v3, 0x0
iget v7, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledWidth:I
const/4 v5, 0x0
const/4 v6, 0x0
iget v8, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledHeight:I
move-object v2, v10
move v4, v7
invoke-virtual/range {v1 .. v8}, Landroid/graphics/Bitmap;->setPixels([IIIIIII)V
.line 532
:cond_144
invoke-direct/range {p0 .. p0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->getNextBitmap()Landroid/graphics/Bitmap;
move-result-object v9
const/4 v3, 0x0
.line 533
iget v7, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledWidth:I
const/4 v5, 0x0
const/4 v6, 0x0
iget v8, v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledHeight:I
move-object v1, v9
move-object v2, v10
move v4, v7
invoke-virtual/range {v1 .. v8}, Landroid/graphics/Bitmap;->setPixels([IIIIIII)V
return-object v9
.end method
# virtual methods
.method public advance()V
.registers 3
.line 165
iget v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
add-int/lit8 v0, v0, 0x1
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v1, v1, Lcom/bumptech/glide/gifdecoder/GifHeader;->frameCount:I
rem-int/2addr v0, v1
iput v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
return-void
.end method
.method public clear()V
.registers 4
const/4 v0, 0x0
.line 315
iput-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
.line 316
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
if-eqz v1, :cond_c
.line 317
iget-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
invoke-interface {v2, v1}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->release([B)V
.line 319
:cond_c
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainScratch:[I
if-eqz v1, :cond_15
.line 320
iget-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
invoke-interface {v2, v1}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->release([I)V
.line 322
:cond_15
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->previousImage:Landroid/graphics/Bitmap;
if-eqz v1, :cond_1e
.line 323
iget-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
invoke-interface {v2, v1}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->release(Landroid/graphics/Bitmap;)V
.line 325
:cond_1e
iput-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->previousImage:Landroid/graphics/Bitmap;
.line 326
iput-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->rawData:Ljava/nio/ByteBuffer;
const/4 v0, 0x0
.line 327
iput-boolean v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->isFirstFrameTransparent:Z
.line 328
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->block:[B
if-eqz v0, :cond_2e
.line 329
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
invoke-interface {v1, v0}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->release([B)V
.line 331
:cond_2e
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->workBuffer:[B
if-eqz v0, :cond_37
.line 332
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
invoke-interface {v1, v0}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->release([B)V
:cond_37
return-void
.end method
.method public getByteSize()I
.registers 3
.line 227
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->rawData:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->limit()I
move-result v0
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
array-length v1, v1
add-int/2addr v0, v1
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainScratch:[I
array-length v1, v1
mul-int/lit8 v1, v1, 0x4
add-int/2addr v0, v1
return v0
.end method
.method public getCurrentFrameIndex()I
.registers 2
.line 193
iget v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
return v0
.end method
.method public getData()Ljava/nio/ByteBuffer;
.registers 2
.line 155
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->rawData:Ljava/nio/ByteBuffer;
return-object v0
.end method
.method public getDelay(I)I
.registers 3
if-ltz p1, :cond_15
.line 171
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->frameCount:I
if-ge p1, v0, :cond_15
.line 172
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget-object v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->frames:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/bumptech/glide/gifdecoder/GifFrame;
iget p1, p1, Lcom/bumptech/glide/gifdecoder/GifFrame;->delay:I
goto :goto_16
:cond_15
const/4 p1, -0x1
:goto_16
return p1
.end method
.method public getFrameCount()I
.registers 2
.line 188
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->frameCount:I
return v0
.end method
.method public getHeight()I
.registers 2
.line 150
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->height:I
return v0
.end method
.method public getLoopCount()I
.registers 3
.line 203
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->loopCount:I
const/4 v1, -0x1
if-ne v0, v1, :cond_9
const/4 v0, 0x1
return v0
.line 206
:cond_9
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->loopCount:I
return v0
.end method
.method public getNetscapeLoopCount()I
.registers 2
.line 211
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->loopCount:I
return v0
.end method
.method public getNextDelay()I
.registers 2
.line 179
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->frameCount:I
if-lez v0, :cond_10
iget v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
if-gez v0, :cond_b
goto :goto_10
.line 183
:cond_b
invoke-virtual {p0, v0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->getDelay(I)I
move-result v0
return v0
:cond_10
:goto_10
const/4 v0, 0x0
return v0
.end method
.method public declared-synchronized getNextFrame()Landroid/graphics/Bitmap;
.registers 8
monitor-enter p0
.line 232
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->frameCount:I
const/4 v1, 0x3
const/4 v2, 0x1
if-lez v0, :cond_d
iget v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
if-gez v0, :cond_3b
.line 233
:cond_d
sget-object v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_39
.line 234
sget-object v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Unable to decode frame, frameCount="
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v4, v4, Lcom/bumptech/glide/gifdecoder/GifHeader;->frameCount:I
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v4, ", framePointer="
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v4, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v0, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 239
:cond_39
iput v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
.line 241
:cond_3b
iget v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
const/4 v3, 0x0
if-eq v0, v2, :cond_b5
iget v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
const/4 v4, 0x2
if-ne v0, v4, :cond_46
goto :goto_b5
:cond_46
const/4 v0, 0x0
.line 247
iput v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
.line 249
iget-object v4, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget-object v4, v4, Lcom/bumptech/glide/gifdecoder/GifHeader;->frames:Ljava/util/List;
iget v5, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
invoke-interface {v4, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/bumptech/glide/gifdecoder/GifFrame;
.line 251
iget v5, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
sub-int/2addr v5, v2
if-ltz v5, :cond_65
.line 253
iget-object v6, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget-object v6, v6, Lcom/bumptech/glide/gifdecoder/GifHeader;->frames:Ljava/util/List;
invoke-interface {v6, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lcom/bumptech/glide/gifdecoder/GifFrame;
goto :goto_66
:cond_65
move-object v5, v3
.line 257
:goto_66
iget-object v6, v4, Lcom/bumptech/glide/gifdecoder/GifFrame;->lct:[I
if-eqz v6, :cond_6d
iget-object v6, v4, Lcom/bumptech/glide/gifdecoder/GifFrame;->lct:[I
goto :goto_71
:cond_6d
iget-object v6, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget-object v6, v6, Lcom/bumptech/glide/gifdecoder/GifHeader;->gct:[I
:goto_71
iput-object v6, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->act:[I
if-nez v6, :cond_99
.line 259
sget-object v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_95
.line 260
sget-object v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "No valid color table found for frame #"
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v4, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 263
:cond_95
iput v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
:try_end_97
.catchall {:try_start_1 .. :try_end_97} :catchall_d7
.line 264
monitor-exit p0
return-object v3
.line 268
:cond_99
:try_start_99
iget-boolean v1, v4, Lcom/bumptech/glide/gifdecoder/GifFrame;->transparency:Z
if-eqz v1, :cond_af
.line 270
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->act:[I
iget-object v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pct:[I
iget-object v3, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->act:[I
array-length v3, v3
invoke-static {v1, v0, v2, v0, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 272
iget-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->pct:[I
iput-object v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->act:[I
.line 274
iget v2, v4, Lcom/bumptech/glide/gifdecoder/GifFrame;->transIndex:I
aput v0, v1, v2
.line 278
:cond_af
invoke-direct {p0, v4, v5}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->setPixels(Lcom/bumptech/glide/gifdecoder/GifFrame;Lcom/bumptech/glide/gifdecoder/GifFrame;)Landroid/graphics/Bitmap;
move-result-object v0
:try_end_b3
.catchall {:try_start_99 .. :try_end_b3} :catchall_d7
monitor-exit p0
return-object v0
.line 242
:cond_b5
:goto_b5
:try_start_b5
sget-object v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_d5
.line 243
sget-object v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Unable to decode frame, status="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:try_end_d5
.catchall {:try_start_b5 .. :try_end_d5} :catchall_d7
.line 245
:cond_d5
monitor-exit p0
return-object v3
:catchall_d7
move-exception v0
monitor-exit p0
throw v0
.end method
.method public getStatus()I
.registers 2
.line 160
iget v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
return v0
.end method
.method public getTotalIterationCount()I
.registers 4
.line 216
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->loopCount:I
const/4 v1, 0x1
const/4 v2, -0x1
if-ne v0, v2, :cond_9
return v1
.line 219
:cond_9
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->loopCount:I
if-nez v0, :cond_11
const/4 v0, 0x0
return v0
.line 222
:cond_11
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->loopCount:I
add-int/2addr v0, v1
return v0
.end method
.method public getWidth()I
.registers 2
.line 145
iget-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifHeader;->width:I
return v0
.end method
.method public read(Ljava/io/InputStream;I)I
.registers 8
if-eqz p1, :cond_32
const/16 v0, 0x4000
if-lez p2, :cond_9
add-int/lit16 p2, p2, 0x1000
goto :goto_b
:cond_9
const/16 p2, 0x4000
.line 286
:goto_b
:try_start_b
new-instance v1, Ljava/io/ByteArrayOutputStream;
invoke-direct {v1, p2}, Ljava/io/ByteArrayOutputStream;-><init>(I)V
new-array p2, v0, [B
:goto_12
const/4 v2, 0x0
.line 289
invoke-virtual {p1, p2, v2, v0}, Ljava/io/InputStream;->read([BII)I
move-result v3
const/4 v4, -0x1
if-eq v3, v4, :cond_1e
.line 290
invoke-virtual {v1, p2, v2, v3}, Ljava/io/ByteArrayOutputStream;->write([BII)V
goto :goto_12
.line 292
:cond_1e
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->flush()V
.line 294
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p2
invoke-virtual {p0, p2}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->read([B)I
:try_end_28
.catch Ljava/io/IOException; {:try_start_b .. :try_end_28} :catch_29
goto :goto_35
:catch_29
move-exception p2
.line 296
sget-object v0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
const-string v1, "Error reading data from stream"
invoke-static {v0, v1, p2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_35
:cond_32
const/4 p2, 0x2
.line 299
iput p2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
:goto_35
if-eqz p1, :cond_43
.line 304
:try_start_37
invoke-virtual {p1}, Ljava/io/InputStream;->close()V
:try_end_3a
.catch Ljava/io/IOException; {:try_start_37 .. :try_end_3a} :catch_3b
goto :goto_43
:catch_3b
move-exception p1
.line 307
sget-object p2, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->TAG:Ljava/lang/String;
const-string v0, "Error closing stream"
invoke-static {p2, v0, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 310
:cond_43
:goto_43
iget p1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
return p1
.end method
.method public declared-synchronized read([B)I
.registers 3
monitor-enter p0
.line 390
:try_start_1
invoke-direct {p0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->getHeaderParser()Lcom/bumptech/glide/gifdecoder/GifHeaderParser;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/bumptech/glide/gifdecoder/GifHeaderParser;->setData([B)Lcom/bumptech/glide/gifdecoder/GifHeaderParser;
move-result-object v0
invoke-virtual {v0}, Lcom/bumptech/glide/gifdecoder/GifHeaderParser;->parseHeader()Lcom/bumptech/glide/gifdecoder/GifHeader;
move-result-object v0
iput-object v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
if-eqz p1, :cond_14
.line 392
invoke-virtual {p0, v0, p1}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->setData(Lcom/bumptech/glide/gifdecoder/GifHeader;[B)V
.line 395
:cond_14
iget p1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
:try_end_16
.catchall {:try_start_1 .. :try_end_16} :catchall_18
monitor-exit p0
return p1
:catchall_18
move-exception p1
monitor-exit p0
throw p1
.end method
.method public resetFrameIndex()V
.registers 2
const/4 v0, -0x1
.line 198
iput v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
return-void
.end method
.method public declared-synchronized setData(Lcom/bumptech/glide/gifdecoder/GifHeader;Ljava/nio/ByteBuffer;)V
.registers 4
monitor-enter p0
const/4 v0, 0x1
.line 343
:try_start_2
invoke-virtual {p0, p1, p2, v0}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->setData(Lcom/bumptech/glide/gifdecoder/GifHeader;Ljava/nio/ByteBuffer;I)V
:try_end_5
.catchall {:try_start_2 .. :try_end_5} :catchall_7
.line 344
monitor-exit p0
return-void
:catchall_7
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setData(Lcom/bumptech/glide/gifdecoder/GifHeader;Ljava/nio/ByteBuffer;I)V
.registers 6
monitor-enter p0
if-lez p3, :cond_69
.line 352
:try_start_3
invoke-static {p3}, Ljava/lang/Integer;->highestOneBit(I)I
move-result p3
const/4 v0, 0x0
.line 353
iput v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->status:I
.line 354
iput-object p1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->header:Lcom/bumptech/glide/gifdecoder/GifHeader;
.line 355
iput-boolean v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->isFirstFrameTransparent:Z
const/4 v1, -0x1
.line 356
iput v1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->framePointer:I
.line 358
invoke-virtual {p2}, Ljava/nio/ByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer;
move-result-object p2
iput-object p2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->rawData:Ljava/nio/ByteBuffer;
.line 359
invoke-virtual {p2, v0}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 360
iget-object p2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->rawData:Ljava/nio/ByteBuffer;
sget-object v1, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invoke-virtual {p2, v1}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
.line 363
iput-boolean v0, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->savePrevious:Z
.line 364
iget-object p2, p1, Lcom/bumptech/glide/gifdecoder/GifHeader;->frames:Ljava/util/List;
invoke-interface {p2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p2
:cond_29
invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_3d
invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/bumptech/glide/gifdecoder/GifFrame;
.line 365
iget v0, v0, Lcom/bumptech/glide/gifdecoder/GifFrame;->dispose:I
const/4 v1, 0x3
if-ne v0, v1, :cond_29
const/4 p2, 0x1
.line 366
iput-boolean p2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->savePrevious:Z
.line 371
:cond_3d
iput p3, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->sampleSize:I
.line 372
iget p2, p1, Lcom/bumptech/glide/gifdecoder/GifHeader;->width:I
div-int/2addr p2, p3
iput p2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledWidth:I
.line 373
iget p2, p1, Lcom/bumptech/glide/gifdecoder/GifHeader;->height:I
div-int/2addr p2, p3
iput p2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledHeight:I
.line 376
iget-object p2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
iget p3, p1, Lcom/bumptech/glide/gifdecoder/GifHeader;->width:I
iget p1, p1, Lcom/bumptech/glide/gifdecoder/GifHeader;->height:I
mul-int p3, p3, p1
invoke-interface {p2, p3}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->obtainByteArray(I)[B
move-result-object p1
iput-object p1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainPixels:[B
.line 377
iget-object p1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->bitmapProvider:Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;
iget p2, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledWidth:I
iget p3, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->downsampledHeight:I
mul-int p2, p2, p3
invoke-interface {p1, p2}, Lcom/bumptech/glide/gifdecoder/GifDecoder$BitmapProvider;->obtainIntArray(I)[I
move-result-object p1
iput-object p1, p0, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->mainScratch:[I
:try_end_65
.catchall {:try_start_3 .. :try_end_65} :catchall_67
.line 378
monitor-exit p0
return-void
:catchall_67
move-exception p1
goto :goto_80
.line 349
:cond_69
:try_start_69
new-instance p1, Ljava/lang/IllegalArgumentException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "Sample size must be >=0, not: "
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p2}, 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
:try_end_80
.catchall {:try_start_69 .. :try_end_80} :catchall_67
:goto_80
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setData(Lcom/bumptech/glide/gifdecoder/GifHeader;[B)V
.registers 3
monitor-enter p0
.line 338
:try_start_1
invoke-static {p2}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;
move-result-object p2
invoke-virtual {p0, p1, p2}, Lcom/bumptech/glide/gifdecoder/StandardGifDecoder;->setData(Lcom/bumptech/glide/gifdecoder/GifHeader;Ljava/nio/ByteBuffer;)V
:try_end_8
.catchall {:try_start_1 .. :try_end_8} :catchall_a
.line 339
monitor-exit p0
return-void
:catchall_a
move-exception p1
monitor-exit p0
throw p1
.end method