.class public Lcom/badlogic/gdx/utils/SharedLibraryLoader; .super Ljava/lang/Object; .source "SharedLibraryLoader.java" # static fields .field public static a:Z .field public static b:Z .field public static c:Z .field public static d:Z .field public static e:Z .field public static f:Z .field public static g:Z .field public static h:Ljava/lang/String; .field private static final i:Ljava/util/HashSet; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashSet<", "Ljava/lang/String;", ">;" } .end annotation .end field # instance fields .field private j:Ljava/lang/String; # direct methods .method static constructor ()V .locals 5 const-string v0, "os.name" .line 43 invoke-static {v0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "Windows" invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->a:Z const-string v0, "os.name" .line 44 invoke-static {v0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "Linux" invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->b:Z const-string v0, "os.name" .line 45 invoke-static {v0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "Mac" invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->c:Z const/4 v0, 0x0 .line 46 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->d:Z .line 47 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->e:Z const-string v1, "os.arch" .line 48 invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 const-string v2, "arm" invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v1 sput-boolean v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->f:Z const-string v1, "os.arch" .line 49 invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 const-string v2, "amd64" invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 const/4 v2, 0x1 if-nez v1, :cond_1 const-string v1, "os.arch" .line 50 invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 const-string v3, "x86_64" invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_0 goto :goto_0 :cond_0 const/4 v1, 0x0 goto :goto_1 :cond_1 :goto_0 const/4 v1, 0x1 :goto_1 sput-boolean v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->g:Z const-string v1, "sun.arch.abi" .line 53 invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 if-eqz v1, :cond_2 const-string v1, "sun.arch.abi" invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 goto :goto_2 :cond_2 const-string v1, "" :goto_2 sput-object v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->h:Ljava/lang/String; const-string v1, "iOS" const-string v3, "moe.platform.name" .line 56 invoke-static {v3}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 const-string v3, "java.runtime.name" .line 57 invoke-static {v3}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 if-eqz v3, :cond_3 const-string v4, "Android Runtime" .line 58 invoke-virtual {v3, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v3 if-eqz v3, :cond_3 .line 59 sput-boolean v2, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->e:Z .line 60 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->a:Z .line 61 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->b:Z .line 62 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->c:Z .line 63 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->g:Z :cond_3 if-nez v1, :cond_4 .line 65 sget-boolean v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->e:Z if-nez v1, :cond_5 sget-boolean v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->a:Z if-nez v1, :cond_5 sget-boolean v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->b:Z if-nez v1, :cond_5 sget-boolean v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->c:Z if-nez v1, :cond_5 .line 66 :cond_4 sput-boolean v2, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->d:Z .line 67 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->e:Z .line 68 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->a:Z .line 69 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->b:Z .line 70 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->c:Z .line 71 sput-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->g:Z .line 75 :cond_5 new-instance v0, Ljava/util/HashSet; invoke-direct {v0}, Ljava/util/HashSet;->()V sput-object v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->i:Ljava/util/HashSet; return-void .end method .method public constructor ()V .locals 0 .line 79 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method private a(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 263 invoke-virtual {p3}, Ljava/io/File;->exists()Z move-result v0 if-eqz v0, :cond_0 .line 265 :try_start_0 new-instance v0, Ljava/io/FileInputStream; invoke-direct {v0, p3}, Ljava/io/FileInputStream;->(Ljava/io/File;)V invoke-virtual {p0, v0}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->a(Ljava/io/InputStream;)Ljava/lang/String; move-result-object v0 :try_end_0 .catch Ljava/io/FileNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 :cond_0 const/4 v0, 0x0 :goto_0 if-eqz v0, :cond_1 .line 271 invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p2 if-nez p2, :cond_2 .line 273 :cond_1 :try_start_1 invoke-direct {p0, p1}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->e(Ljava/lang/String;)Ljava/io/InputStream; move-result-object p2 .line 274 invoke-virtual {p3}, Ljava/io/File;->getParentFile()Ljava/io/File; move-result-object v0 invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z .line 275 new-instance v0, Ljava/io/FileOutputStream; invoke-direct {v0, p3}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V const/16 v1, 0x1000 .line 276 new-array v1, v1, [B .line 278 :goto_1 invoke-virtual {p2, v1}, Ljava/io/InputStream;->read([B)I move-result v2 const/4 v3, -0x1 if-ne v2, v3, :cond_3 .line 282 invoke-virtual {p2}, Ljava/io/InputStream;->close()V .line 283 invoke-virtual {v0}, Ljava/io/FileOutputStream;->close()V :cond_2 return-object p3 :cond_3 const/4 v3, 0x0 .line 280 invoke-virtual {v0, v1, v3, v2}, Ljava/io/FileOutputStream;->write([BII)V :try_end_1 .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1 goto :goto_1 :catch_1 move-exception p2 .line 285 new-instance v0, Lcom/badlogic/gdx/utils/GdxRuntimeException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "Error extracting file: " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string p1, "\nTo: " invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; move-result-object p1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1, p2}, Lcom/badlogic/gdx/utils/GdxRuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 .end method .method private b(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/lang/Throwable; .locals 0 .line 334 :try_start_0 invoke-direct {p0, p1, p2, p3}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->a(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; move-result-object p1 invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Ljava/lang/System;->load(Ljava/lang/String;)V :try_end_0 .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0 const/4 p1, 0x0 return-object p1 :catch_0 move-exception p1 return-object p1 .end method .method public static declared-synchronized c(Ljava/lang/String;)V .locals 2 const-class v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader; monitor-enter v0 .line 343 :try_start_0 sget-object v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->i:Ljava/util/HashSet; invoke-virtual {v1, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 344 monitor-exit v0 return-void :catchall_0 move-exception p0 .line 342 monitor-exit v0 throw p0 .end method .method public static declared-synchronized d(Ljava/lang/String;)Z .locals 2 const-class v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader; monitor-enter v0 .line 347 :try_start_0 sget-object v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->i:Ljava/util/HashSet; invoke-virtual {v1, p0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z move-result p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 monitor-exit v0 return p0 :catchall_0 move-exception p0 monitor-exit v0 throw p0 .end method .method private e(Ljava/lang/String;)Ljava/io/InputStream; .locals 4 .line 141 iget-object v0, p0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->j:Ljava/lang/String; if-nez v0, :cond_1 .line 142 const-class v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "/" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/Class;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream; move-result-object v0 if-eqz v0, :cond_0 return-object v0 .line 143 :cond_0 new-instance v0, Lcom/badlogic/gdx/utils/GdxRuntimeException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "Unable to read file for extraction: " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Lcom/badlogic/gdx/utils/GdxRuntimeException;->(Ljava/lang/String;)V throw v0 .line 149 :cond_1 :try_start_0 new-instance v0, Ljava/util/zip/ZipFile; iget-object v1, p0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->j:Ljava/lang/String; invoke-direct {v0, v1}, Ljava/util/zip/ZipFile;->(Ljava/lang/String;)V .line 150 invoke-virtual {v0, p1}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry; move-result-object v1 if-eqz v1, :cond_2 .line 152 invoke-virtual {v0, v1}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream; move-result-object v0 return-object v0 .line 151 :cond_2 new-instance v0, Lcom/badlogic/gdx/utils/GdxRuntimeException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "Couldn\'t find \'" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, "\' in JAR: " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v2, p0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->j:Ljava/lang/String; invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Lcom/badlogic/gdx/utils/GdxRuntimeException;->(Ljava/lang/String;)V throw v0 :try_end_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 :catch_0 move-exception v0 .line 154 new-instance v1, Lcom/badlogic/gdx/utils/GdxRuntimeException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "Error reading \'" invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string p1, "\' in JAR: " invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object p1, p0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->j:Ljava/lang/String; invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v1, p1, v0}, Lcom/badlogic/gdx/utils/GdxRuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v1 .end method .method private f(Ljava/lang/String;)V .locals 6 .line 296 invoke-direct {p0, p1}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->e(Ljava/lang/String;)Ljava/io/InputStream; move-result-object v0 invoke-virtual {p0, v0}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->a(Ljava/io/InputStream;)Ljava/lang/String; move-result-object v0 .line 298 new-instance v1, Ljava/io/File; invoke-direct {v1, p1}, Ljava/io/File;->(Ljava/lang/String;)V invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String; move-result-object v1 .line 301 new-instance v2, Ljava/io/File; new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const-string v4, "java.io.tmpdir" invoke-static {v4}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v4, "/libgdx" invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v4, "user.name" invoke-static {v4}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v4, "/" invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-direct {v2, v3, v1}, Ljava/io/File;->(Ljava/lang/String;Ljava/lang/String;)V .line 303 invoke-direct {p0, p1, v0, v2}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->b(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/lang/Throwable; move-result-object v2 if-nez v2, :cond_0 return-void :cond_0 const/4 v3, 0x0 .line 308 :try_start_0 invoke-static {v0, v3}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File; move-result-object v3 .line 309 invoke-virtual {v3}, Ljava/io/File;->delete()Z move-result v4 if-eqz v4, :cond_1 invoke-direct {p0, p1, v0, v3}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->b(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/lang/Throwable; move-result-object v3 :try_end_0 .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0 if-nez v3, :cond_1 return-void .line 314 :catch_0 :cond_1 new-instance v3, Ljava/io/File; new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V const-string v5, "user.home" invoke-static {v5}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v5 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v5, "/.libgdx/" invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-direct {v3, v4, v1}, Ljava/io/File;->(Ljava/lang/String;Ljava/lang/String;)V .line 315 invoke-direct {p0, p1, v0, v3}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->b(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/lang/Throwable; move-result-object v3 if-nez v3, :cond_2 return-void .line 318 :cond_2 new-instance v3, Ljava/io/File; new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V const-string v5, ".temp/" invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-direct {v3, v4, v1}, Ljava/io/File;->(Ljava/lang/String;Ljava/lang/String;)V .line 319 invoke-direct {p0, p1, v0, v3}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->b(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/lang/Throwable; move-result-object v0 if-nez v0, :cond_3 return-void .line 322 :cond_3 new-instance v0, Ljava/io/File; const-string v1, "java.library.path" invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1, p1}, Ljava/io/File;->(Ljava/lang/String;Ljava/lang/String;)V .line 323 invoke-virtual {v0}, Ljava/io/File;->exists()Z move-result p1 if-eqz p1, :cond_4 .line 324 invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Ljava/lang/System;->load(Ljava/lang/String;)V return-void .line 328 :cond_4 new-instance p1, Lcom/badlogic/gdx/utils/GdxRuntimeException; invoke-direct {p1, v2}, Lcom/badlogic/gdx/utils/GdxRuntimeException;->(Ljava/lang/Throwable;)V throw p1 .end method # virtual methods .method public a(Ljava/io/InputStream;)Ljava/lang/String; .locals 4 if-eqz p1, :cond_1 .line 91 new-instance v0, Ljava/util/zip/CRC32; invoke-direct {v0}, Ljava/util/zip/CRC32;->()V const/16 v1, 0x1000 .line 92 new-array v1, v1, [B .line 95 :goto_0 :try_start_0 invoke-virtual {p1, v1}, Ljava/io/InputStream;->read([B)I move-result v2 const/4 v3, -0x1 if-ne v2, v3, :cond_0 goto :goto_1 :cond_0 const/4 v3, 0x0 .line 97 invoke-virtual {v0, v1, v3, v2}, Ljava/util/zip/CRC32;->update([BII)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 .line 100 :catch_0 invoke-static {p1}, Lcom/badlogic/gdx/utils/StreamUtils;->a(Ljava/io/Closeable;)V .line 102 :goto_1 invoke-virtual {v0}, Ljava/util/zip/CRC32;->getValue()J move-result-wide v0 const/16 p1, 0x10 invoke-static {v0, v1, p1}, Ljava/lang/Long;->toString(JI)Ljava/lang/String; move-result-object p1 return-object p1 .line 90 :cond_1 new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "input cannot be null." invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method public a(Ljava/lang/String;)Ljava/lang/String; .locals 2 .line 107 sget-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->a:Z if-eqz v0, :cond_1 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-boolean p1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->g:Z if-eqz p1, :cond_0 const-string p1, "64.dll" goto :goto_0 :cond_0 const-string p1, ".dll" :goto_0 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 return-object p1 .line 108 :cond_1 sget-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->b:Z if-eqz v0, :cond_4 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "lib" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-boolean p1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->f:Z if-eqz p1, :cond_2 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1}, Ljava/lang/StringBuilder;->()V const-string v1, "arm" invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->h:Ljava/lang/String; invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 goto :goto_1 :cond_2 const-string p1, "" :goto_1 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-boolean p1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->g:Z if-eqz p1, :cond_3 const-string p1, "64.so" goto :goto_2 :cond_3 const-string p1, ".so" :goto_2 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 return-object p1 .line 109 :cond_4 sget-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->c:Z if-eqz v0, :cond_6 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "lib" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-boolean p1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->g:Z if-eqz p1, :cond_5 const-string p1, "64.dylib" goto :goto_3 :cond_5 const-string p1, ".dylib" :goto_3 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 return-object p1 :cond_6 return-object p1 .end method .method public b(Ljava/lang/String;)V .locals 5 .line 117 sget-boolean v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->d:Z if-eqz v0, :cond_0 return-void .line 119 :cond_0 const-class v0, Lcom/badlogic/gdx/utils/SharedLibraryLoader; monitor-enter v0 .line 120 :try_start_0 invoke-static {p1}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->d(Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_1 monitor-exit v0 return-void .line 121 :cond_1 invoke-virtual {p0, p1}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->a(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 123 :try_start_1 sget-boolean v2, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->e:Z if-eqz v2, :cond_3 .line 124 invoke-static {}, Lcom/moji/MJLoader;->a()Lcom/moji/MJLibraryLoader; move-result-object v2 if-eqz v2, :cond_2 .line 126 invoke-interface {v2, p1}, Lcom/moji/MJLibraryLoader;->a(Ljava/lang/String;)V goto :goto_0 .line 128 :cond_2 invoke-static {v1}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V goto :goto_0 .line 131 :cond_3 invoke-direct {p0, v1}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->f(Ljava/lang/String;)V .line 132 :goto_0 invoke-static {p1}, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->c(Ljava/lang/String;)V :try_end_1 .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 .line 137 :try_start_2 monitor-exit v0 return-void :catch_0 move-exception p1 .line 134 new-instance v2, Lcom/badlogic/gdx/utils/GdxRuntimeException; new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const-string v4, "Couldn\'t load shared library \'" invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v1, "\' for target: " invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v1, "os.name" .line 135 invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-boolean v1, Lcom/badlogic/gdx/utils/SharedLibraryLoader;->g:Z if-eqz v1, :cond_4 const-string v1, ", 64-bit" goto :goto_1 :cond_4 const-string v1, ", 32-bit" :goto_1 invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v2, v1, p1}, Lcom/badlogic/gdx/utils/GdxRuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v2 :catchall_0 move-exception p1 .line 137 monitor-exit v0 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 throw p1 .end method