135 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Smali
		
	
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Smali
		
	
	
	
	
	
| .class public final Lx4/b;
 | |
| .super Ljava/lang/Object;
 | |
| .source "RuntimeCompat.java"
 | |
| 
 | |
| 
 | |
| # static fields
 | |
| .field public static final a:Ljava/lang/String; = "GlideRuntimeCompat"
 | |
| 
 | |
| .field public static final b:Ljava/lang/String; = "cpu[0-9]+"
 | |
| 
 | |
| .field public static final c:Ljava/lang/String; = "/sys/devices/system/cpu/"
 | |
| 
 | |
| 
 | |
| # direct methods
 | |
| .method public constructor <init>()V
 | |
|     .locals 0
 | |
| 
 | |
|     .line 1
 | |
|     invoke-direct {p0}, Ljava/lang/Object;-><init>()V
 | |
| 
 | |
|     return-void
 | |
| .end method
 | |
| 
 | |
| .method public static a()I
 | |
|     .locals 1
 | |
| 
 | |
|     .line 1
 | |
|     invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
 | |
| 
 | |
|     move-result-object v0
 | |
| 
 | |
|     invoke-virtual {v0}, Ljava/lang/Runtime;->availableProcessors()I
 | |
| 
 | |
|     move-result v0
 | |
| 
 | |
|     return v0
 | |
| .end method
 | |
| 
 | |
| .method public static b()I
 | |
|     .locals 5
 | |
| 
 | |
|     const-string v0, "GlideRuntimeCompat"
 | |
| 
 | |
|     .line 1
 | |
|     invoke-static {}, Landroid/os/StrictMode;->allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy;
 | |
| 
 | |
|     move-result-object v1
 | |
| 
 | |
|     .line 2
 | |
|     :try_start_0
 | |
|     new-instance v2, Ljava/io/File;
 | |
| 
 | |
|     const-string v3, "/sys/devices/system/cpu/"
 | |
| 
 | |
|     invoke-direct {v2, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
 | |
| 
 | |
|     const-string v3, "cpu[0-9]+"
 | |
| 
 | |
|     .line 3
 | |
|     invoke-static {v3}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
 | |
| 
 | |
|     move-result-object v3
 | |
| 
 | |
|     .line 4
 | |
|     new-instance v4, Lx4/b$a;
 | |
| 
 | |
|     invoke-direct {v4, v3}, Lx4/b$a;-><init>(Ljava/util/regex/Pattern;)V
 | |
| 
 | |
|     .line 5
 | |
|     invoke-virtual {v2, v4}, Ljava/io/File;->listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File;
 | |
| 
 | |
|     move-result-object v0
 | |
|     :try_end_0
 | |
|     .catchall {:try_start_0 .. :try_end_0} :catchall_0
 | |
| 
 | |
|     .line 6
 | |
|     invoke-static {v1}, Landroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V
 | |
| 
 | |
|     goto :goto_0
 | |
| 
 | |
|     :catchall_0
 | |
|     move-exception v2
 | |
| 
 | |
|     const/4 v3, 0x6
 | |
| 
 | |
|     .line 7
 | |
|     :try_start_1
 | |
|     invoke-static {v0, v3}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
 | |
| 
 | |
|     move-result v3
 | |
| 
 | |
|     if-eqz v3, :cond_0
 | |
| 
 | |
|     const-string v3, "Failed to calculate accurate cpu count"
 | |
| 
 | |
|     .line 8
 | |
|     invoke-static {v0, v3, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 | |
|     :try_end_1
 | |
|     .catchall {:try_start_1 .. :try_end_1} :catchall_1
 | |
| 
 | |
|     .line 9
 | |
|     :cond_0
 | |
|     invoke-static {v1}, Landroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V
 | |
| 
 | |
|     const/4 v0, 0x0
 | |
| 
 | |
|     :goto_0
 | |
|     const/4 v1, 0x1
 | |
| 
 | |
|     if-eqz v0, :cond_1
 | |
| 
 | |
|     .line 10
 | |
|     array-length v0, v0
 | |
| 
 | |
|     goto :goto_1
 | |
| 
 | |
|     :cond_1
 | |
|     const/4 v0, 0x0
 | |
| 
 | |
|     :goto_1
 | |
|     invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
 | |
| 
 | |
|     move-result v0
 | |
| 
 | |
|     return v0
 | |
| 
 | |
|     :catchall_1
 | |
|     move-exception v0
 | |
| 
 | |
|     .line 11
 | |
|     invoke-static {v1}, Landroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V
 | |
| 
 | |
|     throw v0
 | |
| .end method
 |