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 static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>(Lokio/BufferedSource;Ljava/nio/charset/Charset;)V
.registers 3
.param p1, "source" # Lokio/BufferedSource;
.param p2, "charset" # Ljava/nio/charset/Charset;
.line 246
invoke-direct {p0}, Ljava/io/Reader;-><init>()V
.line 247
iput-object p1, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/BufferedSource;
.line 248
iput-object p2, p0, Lokhttp3/ResponseBody$BomAwareReader;->charset:Ljava/nio/charset/Charset;
.line 249
return-void
.end method
# virtual methods
.method public close()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 263
const/4 v0, 0x1
iput-boolean v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->closed:Z
.line 264
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
if-eqz v0, :cond_b
.line 265
invoke-virtual {v0}, Ljava/io/Reader;->close()V
goto :goto_10
.line 267
:cond_b
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/BufferedSource;
invoke-interface {v0}, Lokio/BufferedSource;->close()V
.line 269
:goto_10
return-void
.end method
.method public read([CII)I
.registers 8
.param p1, "cbuf" # [C
.param p2, "off" # I
.param p3, "len" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 252
iget-boolean v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->closed:Z
if-nez v0, :cond_23
.line 254
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
.line 255
.local v0, "delegate":Ljava/io/Reader;
if-nez v0, :cond_1e
.line 256
iget-object v1, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/BufferedSource;
iget-object v2, p0, Lokhttp3/ResponseBody$BomAwareReader;->charset:Ljava/nio/charset/Charset;
invoke-static {v1, v2}, Lokhttp3/internal/Util;->bomAwareCharset(Lokio/BufferedSource;Ljava/nio/charset/Charset;)Ljava/nio/charset/Charset;
move-result-object v1
.line 257
.local v1, "charset":Ljava/nio/charset/Charset;
new-instance v2, Ljava/io/InputStreamReader;
iget-object v3, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/BufferedSource;
invoke-interface {v3}, Lokio/BufferedSource;->inputStream()Ljava/io/InputStream;
move-result-object v3
invoke-direct {v2, v3, v1}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
iput-object v2, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
move-object v0, v2
.line 259
.end local v1 # "charset":Ljava/nio/charset/Charset;
:cond_1e
invoke-virtual {v0, p1, p2, p3}, Ljava/io/Reader;->read([CII)I
move-result v1
return v1
.line 252
.end local v0 # "delegate":Ljava/io/Reader;
:cond_23
new-instance v0, Ljava/io/IOException;
const-string v1, "Stream closed"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.end method