.class Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2; .super Ljava/io/InputStream; .source "BaseEncoding.java" # annotations .annotation system Ldalvik/annotation/EnclosingMethod; value = Lcom/google/common/io/BaseEncoding$StandardBaseEncoding;->decodingStream(Ljava/io/Reader;)Ljava/io/InputStream; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x0 name = null .end annotation # instance fields .field bitBuffer:I .field bitBufferLength:I .field hitPadding:Z .field readChars:I .field final synthetic this$0:Lcom/google/common/io/BaseEncoding$StandardBaseEncoding; .field final synthetic val$reader:Ljava/io/Reader; # direct methods .method constructor (Lcom/google/common/io/BaseEncoding$StandardBaseEncoding;Ljava/io/Reader;)V .locals 0 iput-object p1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->this$0:Lcom/google/common/io/BaseEncoding$StandardBaseEncoding; iput-object p2, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->val$reader:Ljava/io/Reader; .line 733 invoke-direct {p0}, Ljava/io/InputStream;->()V const/4 p1, 0x0 iput p1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->bitBuffer:I iput p1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->bitBufferLength:I iput p1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->readChars:I iput-boolean p1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->hitPadding:Z return-void .end method # virtual methods .method public close()V .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget-object p0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->val$reader:Ljava/io/Reader; .line 796 invoke-virtual {p0}, Ljava/io/Reader;->close()V return-void .end method .method public read()I .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation :cond_0 :goto_0 iget-object v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->val$reader:Ljava/io/Reader; .line 742 invoke-virtual {v0}, Ljava/io/Reader;->read()I move-result v0 const/4 v1, -0x1 if-ne v0, v1, :cond_3 iget-boolean v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->hitPadding:Z if-nez v0, :cond_2 iget-object v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->this$0:Lcom/google/common/io/BaseEncoding$StandardBaseEncoding; .line 744 iget-object v0, v0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding;->alphabet:Lcom/google/common/io/BaseEncoding$Alphabet; iget v2, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->readChars:I invoke-virtual {v0, v2}, Lcom/google/common/io/BaseEncoding$Alphabet;->isValidPaddingStartPosition(I)Z move-result v0 if-eqz v0, :cond_1 goto :goto_1 .line 745 :cond_1 new-instance v0, Lcom/google/common/io/BaseEncoding$DecodingException; iget p0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->readChars:I new-instance v1, Ljava/lang/StringBuilder; const/16 v2, 0x20 invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(I)V const-string v2, "Invalid input length " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0}, Lcom/google/common/io/BaseEncoding$DecodingException;->(Ljava/lang/String;)V throw v0 :cond_2 :goto_1 return v1 :cond_3 iget v1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->readChars:I const/4 v2, 0x1 add-int/2addr v1, v2 iput v1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->readChars:I int-to-char v0, v0 iget-object v1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->this$0:Lcom/google/common/io/BaseEncoding$StandardBaseEncoding; .line 751 iget-object v1, v1, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding;->paddingChar:Ljava/lang/Character; if-eqz v1, :cond_6 iget-object v1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->this$0:Lcom/google/common/io/BaseEncoding$StandardBaseEncoding; iget-object v1, v1, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding;->paddingChar:Ljava/lang/Character; invoke-virtual {v1}, Ljava/lang/Character;->charValue()C move-result v1 if-ne v1, v0, :cond_6 iget-boolean v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->hitPadding:Z if-nez v0, :cond_5 iget v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->readChars:I if-eq v0, v2, :cond_4 iget-object v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->this$0:Lcom/google/common/io/BaseEncoding$StandardBaseEncoding; .line 752 iget-object v0, v0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding;->alphabet:Lcom/google/common/io/BaseEncoding$Alphabet; iget v1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->readChars:I sub-int/2addr v1, v2 .line 753 invoke-virtual {v0, v1}, Lcom/google/common/io/BaseEncoding$Alphabet;->isValidPaddingStartPosition(I)Z move-result v0 if-eqz v0, :cond_4 goto :goto_2 .line 754 :cond_4 new-instance v0, Lcom/google/common/io/BaseEncoding$DecodingException; iget p0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->readChars:I new-instance v1, Ljava/lang/StringBuilder; const/16 v2, 0x29 invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(I)V const-string v2, "Padding cannot start at index " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0}, Lcom/google/common/io/BaseEncoding$DecodingException;->(Ljava/lang/String;)V throw v0 :cond_5 :goto_2 iput-boolean v2, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->hitPadding:Z goto/16 :goto_0 :cond_6 iget-boolean v1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->hitPadding:Z if-nez v1, :cond_7 iget v1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->bitBuffer:I iget-object v2, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->this$0:Lcom/google/common/io/BaseEncoding$StandardBaseEncoding; .line 761 iget-object v2, v2, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding;->alphabet:Lcom/google/common/io/BaseEncoding$Alphabet; iget v2, v2, Lcom/google/common/io/BaseEncoding$Alphabet;->bitsPerChar:I shl-int/2addr v1, v2 iput v1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->bitBuffer:I iget-object v2, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->this$0:Lcom/google/common/io/BaseEncoding$StandardBaseEncoding; .line 762 iget-object v2, v2, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding;->alphabet:Lcom/google/common/io/BaseEncoding$Alphabet; invoke-virtual {v2, v0}, Lcom/google/common/io/BaseEncoding$Alphabet;->decode(C)I move-result v0 or-int/2addr v0, v1 iput v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->bitBuffer:I iget v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->bitBufferLength:I iget-object v1, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->this$0:Lcom/google/common/io/BaseEncoding$StandardBaseEncoding; .line 763 iget-object v1, v1, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding;->alphabet:Lcom/google/common/io/BaseEncoding$Alphabet; iget v1, v1, Lcom/google/common/io/BaseEncoding$Alphabet;->bitsPerChar:I add-int/2addr v0, v1 iput v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->bitBufferLength:I const/16 v1, 0x8 if-lt v0, v1, :cond_0 sub-int/2addr v0, v1 iput v0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->bitBufferLength:I iget p0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->bitBuffer:I shr-int/2addr p0, v0 and-int/lit16 p0, p0, 0xff return p0 .line 758 :cond_7 new-instance v1, Lcom/google/common/io/BaseEncoding$DecodingException; iget p0, p0, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->readChars:I new-instance v2, Ljava/lang/StringBuilder; const/16 v3, 0x3d invoke-direct {v2, v3}, Ljava/lang/StringBuilder;->(I)V const-string v3, "Expected padding character but found \'" invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v0 const-string v2, "\' at index " invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v1, p0}, Lcom/google/common/io/BaseEncoding$DecodingException;->(Ljava/lang/String;)V throw v1 .end method .method public read([BII)I .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation add-int/2addr p3, p2 .line 780 array-length v0, p1 invoke-static {p2, p3, v0}, Lcom/google/common/base/Preconditions;->checkPositionIndexes(III)V move v0, p2 :goto_0 if-ge v0, p3, :cond_2 .line 784 invoke-virtual {p0}, Lcom/google/common/io/BaseEncoding$StandardBaseEncoding$2;->read()I move-result v1 const/4 v2, -0x1 if-ne v1, v2, :cond_1 sub-int/2addr v0, p2 if-nez v0, :cond_0 goto :goto_1 :cond_0 move v2, v0 :goto_1 return v2 :cond_1 int-to-byte v1, v1 .line 789 aput-byte v1, p1, v0 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_2 sub-int/2addr v0, p2 return v0 .end method