ResponseBody$BomAwareReader.smali
.class final Lokhttp3/ResponseBody$BomAwareReader;
.super Ljava/io/Reader;
.source "ResponseBody.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/ResponseBody;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x18
name = "BomAwareReader"
.end annotation
# instance fields
.field private final charset:Ljava/nio/charset/Charset;
.field private closed:Z
.field private delegate:Ljava/io/Reader;
.field private final source:Lokio/BufferedSource;
# direct methods
.method constructor <init>(Lokio/BufferedSource;Ljava/nio/charset/Charset;)V
.registers 3
.line 239
invoke-direct {p0}, Ljava/io/Reader;-><init>()V
.line 240
iput-object p1, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/BufferedSource;
.line 241
iput-object p2, p0, Lokhttp3/ResponseBody$BomAwareReader;->charset:Ljava/nio/charset/Charset;
return-void
.end method
# virtual methods
.method public close()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const/4 v0, 0x1
.line 256
iput-boolean v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->closed:Z
.line 257
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
if-eqz v0, :cond_b
.line 258
invoke-virtual {v0}, Ljava/io/Reader;->close()V
goto :goto_10
.line 260
:cond_b
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/BufferedSource;
invoke-interface {v0}, Lokio/BufferedSource;->close()V
:goto_10
return-void
.end method
.method public read([CII)I
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 245
iget-boolean v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->closed:Z
if-nez v0, :cond_23
.line 247
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
if-nez v0, :cond_1e
.line 249
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/BufferedSource;
iget-object v1, p0, Lokhttp3/ResponseBody$BomAwareReader;->charset:Ljava/nio/charset/Charset;
invoke-static {v0, v1}, Lokhttp3/internal/Util;->bomAwareCharset(Lokio/BufferedSource;Ljava/nio/charset/Charset;)Ljava/nio/charset/Charset;
move-result-object v0
.line 250
new-instance v1, Ljava/io/InputStreamReader;
iget-object v2, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/BufferedSource;
invoke-interface {v2}, Lokio/BufferedSource;->inputStream()Ljava/io/InputStream;
move-result-object v2
invoke-direct {v1, v2, v0}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
iput-object v1, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
move-object v0, v1
.line 252
:cond_1e
invoke-virtual {v0, p1, p2, p3}, Ljava/io/Reader;->read([CII)I
move-result p1
return p1
.line 245
:cond_23
new-instance p1, Ljava/io/IOException;
const-string p2, "Stream closed"
invoke-direct {p1, p2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p1
.end method