.class final Lcom/facebook/internal/FileLruCache$StreamHeader; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/facebook/internal/FileLruCache; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x19 name = "StreamHeader" .end annotation # static fields .field private static final HEADER_VERSION:I .field public static final INSTANCE:Lcom/facebook/internal/FileLruCache$StreamHeader; # direct methods .method static constructor ()V .locals 1 new-instance v0, Lcom/facebook/internal/FileLruCache$StreamHeader; invoke-direct {v0}, Lcom/facebook/internal/FileLruCache$StreamHeader;->()V sput-object v0, Lcom/facebook/internal/FileLruCache$StreamHeader;->INSTANCE:Lcom/facebook/internal/FileLruCache$StreamHeader; return-void .end method .method private constructor ()V .locals 0 .line 324 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method # virtual methods .method public final readHeader(Ljava/io/InputStream;)Lorg/json/JSONObject; .locals 7 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const-string v0, "stream" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 341 invoke-virtual {p1}, Ljava/io/InputStream;->read()I move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_0 return-object v1 :cond_0 const/4 v0, 0x0 move v2, v0 move v3, v2 :goto_0 const-string v4, "TAG" const/4 v5, 0x3 if-ge v2, v5, :cond_2 .line 347 invoke-virtual {p1}, Ljava/io/InputStream;->read()I move-result v5 const/4 v6, -0x1 if-ne v5, v6, :cond_1 .line 349 sget-object p1, Lcom/facebook/internal/Logger;->Companion:Lcom/facebook/internal/Logger$Companion; .line 350 sget-object v0, Lcom/facebook/LoggingBehavior;->CACHE:Lcom/facebook/LoggingBehavior; .line 351 sget-object v2, Lcom/facebook/internal/FileLruCache;->Companion:Lcom/facebook/internal/FileLruCache$Companion; invoke-virtual {v2}, Lcom/facebook/internal/FileLruCache$Companion;->getTAG()Ljava/lang/String; move-result-object v2 invoke-static {v2, v4}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V const-string v3, "readHeader: stream.read returned -1 while reading header size" .line 349 invoke-virtual {p1, v0, v2, v3}, Lcom/facebook/internal/Logger$Companion;->log(Lcom/facebook/LoggingBehavior;Ljava/lang/String;Ljava/lang/String;)V return-object v1 :cond_1 shl-int/lit8 v3, v3, 0x8 and-int/lit16 v4, v5, 0xff add-int/2addr v3, v4 add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 358 :cond_2 new-array v2, v3, [B :goto_1 if-ge v0, v3, :cond_4 sub-int v5, v3, v0 .line 361 invoke-virtual {p1, v2, v0, v5}, Ljava/io/InputStream;->read([BII)I move-result v5 const/4 v6, 0x1 if-ge v5, v6, :cond_3 .line 363 sget-object p1, Lcom/facebook/internal/Logger;->Companion:Lcom/facebook/internal/Logger$Companion; .line 364 sget-object v2, Lcom/facebook/LoggingBehavior;->CACHE:Lcom/facebook/LoggingBehavior; .line 365 sget-object v5, Lcom/facebook/internal/FileLruCache;->Companion:Lcom/facebook/internal/FileLruCache$Companion; invoke-virtual {v5}, Lcom/facebook/internal/FileLruCache$Companion;->getTAG()Ljava/lang/String; move-result-object v5 invoke-static {v5, v4}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V .line 366 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V const-string v6, "readHeader: stream.read stopped at " invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; .line 367 invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 .line 366 invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v0, " when expected " invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 .line 363 invoke-virtual {p1, v2, v5, v0}, Lcom/facebook/internal/Logger$Companion;->log(Lcom/facebook/LoggingBehavior;Ljava/lang/String;Ljava/lang/String;)V return-object v1 :cond_3 add-int/2addr v0, v5 goto :goto_1 .line 374 :cond_4 new-instance p1, Ljava/lang/String; sget-object v0, Lkotlin/text/Charsets;->UTF_8:Ljava/nio/charset/Charset; invoke-direct {p1, v2, v0}, Ljava/lang/String;->([BLjava/nio/charset/Charset;)V .line 376 new-instance v0, Lorg/json/JSONTokener; invoke-direct {v0, p1}, Lorg/json/JSONTokener;->(Ljava/lang/String;)V .line 379 :try_start_0 invoke-virtual {v0}, Lorg/json/JSONTokener;->nextValue()Ljava/lang/Object; move-result-object p1 .line 380 instance-of v0, p1, Lorg/json/JSONObject; if-nez v0, :cond_5 .line 381 sget-object v0, Lcom/facebook/internal/Logger;->Companion:Lcom/facebook/internal/Logger$Companion; .line 382 sget-object v2, Lcom/facebook/LoggingBehavior;->CACHE:Lcom/facebook/LoggingBehavior; .line 383 sget-object v3, Lcom/facebook/internal/FileLruCache;->Companion:Lcom/facebook/internal/FileLruCache$Companion; invoke-virtual {v3}, Lcom/facebook/internal/FileLruCache$Companion;->getTAG()Ljava/lang/String; move-result-object v3 invoke-static {v3, v4}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V const-string v4, "readHeader: expected JSONObject, got " .line 384 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object p1 invoke-virtual {p1}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String; move-result-object p1 invoke-static {v4, p1}, Lkotlin/jvm/internal/Intrinsics;->stringPlus(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String; move-result-object p1 .line 381 invoke-virtual {v0, v2, v3, p1}, Lcom/facebook/internal/Logger$Companion;->log(Lcom/facebook/LoggingBehavior;Ljava/lang/String;Ljava/lang/String;)V return-object v1 :catch_0 move-exception p1 goto :goto_2 .line 387 :cond_5 check-cast p1, Lorg/json/JSONObject; :try_end_0 .catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 .line 389 :goto_2 new-instance v0, Ljava/io/IOException; invoke-virtual {p1}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 .end method .method public final writeHeader(Ljava/io/OutputStream;Lorg/json/JSONObject;)V .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const-string v0, "stream" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "header" invoke-static {p2, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 328 invoke-virtual {p2}, Lorg/json/JSONObject;->toString()Ljava/lang/String; move-result-object p2 const-string v0, "header.toString()" invoke-static {p2, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V .line 329 sget-object v0, Lkotlin/text/Charsets;->UTF_8:Ljava/nio/charset/Charset; invoke-virtual {p2, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p2 const-string v0, "(this as java.lang.String).getBytes(charset)" invoke-static {p2, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V const/4 v0, 0x0 .line 332 invoke-virtual {p1, v0}, Ljava/io/OutputStream;->write(I)V .line 333 array-length v0, p2 shr-int/lit8 v0, v0, 0x10 and-int/lit16 v0, v0, 0xff invoke-virtual {p1, v0}, Ljava/io/OutputStream;->write(I)V .line 334 array-length v0, p2 shr-int/lit8 v0, v0, 0x8 and-int/lit16 v0, v0, 0xff invoke-virtual {p1, v0}, Ljava/io/OutputStream;->write(I)V .line 335 array-length v0, p2 and-int/lit16 v0, v0, 0xff invoke-virtual {p1, v0}, Ljava/io/OutputStream;->write(I)V .line 336 invoke-virtual {p1, p2}, Ljava/io/OutputStream;->write([B)V return-void .end method