LifetimeAssert.smali
.class public Laegon/chrome/base/LifetimeAssert;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Laegon/chrome/base/LifetimeAssert$WrappedReference;,
Laegon/chrome/base/LifetimeAssert$CreationException;,
Laegon/chrome/base/LifetimeAssert$LifetimeAssertException;,
Laegon/chrome/base/LifetimeAssert$TestHook;
}
.end annotation
# static fields
.field static sTestHook:Laegon/chrome/base/LifetimeAssert$TestHook;
# instance fields
.field final mWrapper:Laegon/chrome/base/LifetimeAssert$WrappedReference;
.annotation build Landroid/support/annotation/VisibleForTesting;
.end annotation
.end field
# direct methods
.method private constructor <init>(Laegon/chrome/base/LifetimeAssert$WrappedReference;)V
.registers 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Laegon/chrome/base/LifetimeAssert;->mWrapper:Laegon/chrome/base/LifetimeAssert$WrappedReference;
return-void
.end method
.method public static assertAllInstancesDestroyedForTesting()V
.registers 6
sget-boolean v0, Laegon/chrome/base/BuildConfig;->DCHECK_IS_ON:Z
if-nez v0, :cond_5
:goto_4
return-void
:cond_5
# getter for: Laegon/chrome/base/LifetimeAssert$WrappedReference;->sActiveWrappers:Ljava/util/Set;
invoke-static {}, Laegon/chrome/base/LifetimeAssert$WrappedReference;->access$100()Ljava/util/Set;
move-result-object v1
monitor-enter v1
:try_start_a
# getter for: Laegon/chrome/base/LifetimeAssert$WrappedReference;->sActiveWrappers:Ljava/util/Set;
invoke-static {}, Laegon/chrome/base/LifetimeAssert$WrappedReference;->access$100()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v2
:cond_12
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_3f
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/LifetimeAssert$WrappedReference;
iget-boolean v3, v0, Laegon/chrome/base/LifetimeAssert$WrappedReference;->mSafeToGc:Z
if-nez v3, :cond_12
const-string v2, "Object of type %s was not destroyed after test completed. Refer to \"Caused by\" for where object was created."
const/4 v3, 0x1
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
iget-object v5, v0, Laegon/chrome/base/LifetimeAssert$WrappedReference;->mTargetClass:Ljava/lang/Class;
invoke-virtual {v5}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v5
aput-object v5, v3, v4
invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
new-instance v3, Laegon/chrome/base/LifetimeAssert$LifetimeAssertException;
iget-object v0, v0, Laegon/chrome/base/LifetimeAssert$WrappedReference;->mCreationException:Laegon/chrome/base/LifetimeAssert$CreationException;
invoke-direct {v3, v2, v0}, Laegon/chrome/base/LifetimeAssert$LifetimeAssertException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v3
:catchall_3c
move-exception v0
monitor-exit v1
:try_end_3e
.catchall {:try_start_a .. :try_end_3e} :catchall_3c
throw v0
:cond_3f
:try_start_3f
monitor-exit v1
:try_end_40
.catchall {:try_start_3f .. :try_end_40} :catchall_3c
goto :goto_4
.end method
.method public static create(Ljava/lang/Object;)Laegon/chrome/base/LifetimeAssert;
.registers 5
sget-boolean v0, Laegon/chrome/base/BuildConfig;->DCHECK_IS_ON:Z
if-nez v0, :cond_6
const/4 v0, 0x0
:goto_5
return-object v0
:cond_6
new-instance v0, Laegon/chrome/base/LifetimeAssert;
new-instance v1, Laegon/chrome/base/LifetimeAssert$WrappedReference;
new-instance v2, Laegon/chrome/base/LifetimeAssert$CreationException;
invoke-direct {v2}, Laegon/chrome/base/LifetimeAssert$CreationException;-><init>()V
const/4 v3, 0x0
invoke-direct {v1, p0, v2, v3}, Laegon/chrome/base/LifetimeAssert$WrappedReference;-><init>(Ljava/lang/Object;Laegon/chrome/base/LifetimeAssert$CreationException;Z)V
invoke-direct {v0, v1}, Laegon/chrome/base/LifetimeAssert;-><init>(Laegon/chrome/base/LifetimeAssert$WrappedReference;)V
goto :goto_5
.end method
.method public static create(Ljava/lang/Object;Z)Laegon/chrome/base/LifetimeAssert;
.registers 5
sget-boolean v0, Laegon/chrome/base/BuildConfig;->DCHECK_IS_ON:Z
if-nez v0, :cond_6
const/4 v0, 0x0
:goto_5
return-object v0
:cond_6
new-instance v0, Laegon/chrome/base/LifetimeAssert;
new-instance v1, Laegon/chrome/base/LifetimeAssert$WrappedReference;
new-instance v2, Laegon/chrome/base/LifetimeAssert$CreationException;
invoke-direct {v2}, Laegon/chrome/base/LifetimeAssert$CreationException;-><init>()V
invoke-direct {v1, p0, v2, p1}, Laegon/chrome/base/LifetimeAssert$WrappedReference;-><init>(Ljava/lang/Object;Laegon/chrome/base/LifetimeAssert$CreationException;Z)V
invoke-direct {v0, v1}, Laegon/chrome/base/LifetimeAssert;-><init>(Laegon/chrome/base/LifetimeAssert$WrappedReference;)V
goto :goto_5
.end method
.method public static setSafeToGc(Laegon/chrome/base/LifetimeAssert;Z)V
.registers 3
sget-boolean v0, Laegon/chrome/base/BuildConfig;->DCHECK_IS_ON:Z
if-eqz v0, :cond_8
iget-object v0, p0, Laegon/chrome/base/LifetimeAssert;->mWrapper:Laegon/chrome/base/LifetimeAssert$WrappedReference;
iput-boolean p1, v0, Laegon/chrome/base/LifetimeAssert$WrappedReference;->mSafeToGc:Z
:cond_8
return-void
.end method