.class public final Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream; .super Ljava/io/FilterInputStream; .source "SourceFile" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/google/protobuf/AbstractMessageLite$Builder; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x19 name = "LimitedInputStream" .end annotation # instance fields .field private limit:I # direct methods .method public constructor (Ljava/io/InputStream;I)V .locals 0 .line 283 invoke-direct {p0, p1}, Ljava/io/FilterInputStream;->(Ljava/io/InputStream;)V iput p2, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I return-void .end method # virtual methods .method public available()I .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 289 invoke-super {p0}, Ljava/io/FilterInputStream;->available()I move-result v0 iget v1, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I move-result v0 return v0 .end method .method public read()I .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget v0, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I if-gtz v0, :cond_0 const/4 v0, -0x1 return v0 .line 297 :cond_0 invoke-super {p0}, Ljava/io/FilterInputStream;->read()I move-result v0 if-ltz v0, :cond_1 iget v1, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I add-int/lit8 v1, v1, -0x1 iput v1, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I :cond_1 return v0 .end method .method public read([BII)I .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget v0, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I if-gtz v0, :cond_0 const/4 p1, -0x1 return p1 .line 309 :cond_0 invoke-static {p3, v0}, Ljava/lang/Math;->min(II)I move-result p3 .line 310 invoke-super {p0, p1, p2, p3}, Ljava/io/FilterInputStream;->read([BII)I move-result p1 if-ltz p1, :cond_1 iget p2, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I sub-int/2addr p2, p1 iput p2, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I :cond_1 return p1 .end method .method public skip(J)J .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget v0, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I int-to-long v0, v0 .line 321 invoke-static {p1, p2, v0, v1}, Ljava/lang/Math;->min(JJ)J move-result-wide p1 invoke-super {p0, p1, p2}, Ljava/io/FilterInputStream;->skip(J)J move-result-wide p1 long-to-int p1, p1 if-ltz p1, :cond_0 iget p2, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I sub-int/2addr p2, p1 iput p2, p0, Lcom/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream;->limit:I :cond_0 int-to-long p1, p1 return-wide p1 .end method