DiscardableReferencePool.smali
.class public Laegon/chrome/base/DiscardableReferencePool;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;
}
.end annotation
# static fields
.field static final synthetic $assertionsDisabled:Z
# instance fields
.field private final mPool:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set",
"<",
"Laegon/chrome/base/DiscardableReferencePool$DiscardableReference",
"<*>;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
const-class v0, Laegon/chrome/base/DiscardableReferencePool;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_c
const/4 v0, 0x1
:goto_9
sput-boolean v0, Laegon/chrome/base/DiscardableReferencePool;->$assertionsDisabled:Z
return-void
:cond_c
const/4 v0, 0x0
goto :goto_9
.end method
.method public constructor <init>()V
.registers 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/util/WeakHashMap;
invoke-direct {v0}, Ljava/util/WeakHashMap;-><init>()V
invoke-static {v0}, Ljava/util/Collections;->newSetFromMap(Ljava/util/Map;)Ljava/util/Set;
move-result-object v0
iput-object v0, p0, Laegon/chrome/base/DiscardableReferencePool;->mPool:Ljava/util/Set;
return-void
.end method
# virtual methods
.method public drain()V
.registers 3
iget-object v0, p0, Laegon/chrome/base/DiscardableReferencePool;->mPool:Ljava/util/Set;
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_6
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_16
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;
# invokes: Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;->discard()V
invoke-static {v0}, Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;->access$100(Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;)V
goto :goto_6
:cond_16
iget-object v0, p0, Laegon/chrome/base/DiscardableReferencePool;->mPool:Ljava/util/Set;
invoke-interface {v0}, Ljava/util/Set;->clear()V
return-void
.end method
.method public put(Ljava/lang/Object;)Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(TT;)",
"Laegon/chrome/base/DiscardableReferencePool$DiscardableReference",
"<TT;>;"
}
.end annotation
sget-boolean v0, Laegon/chrome/base/DiscardableReferencePool;->$assertionsDisabled:Z
if-nez v0, :cond_c
if-nez p1, :cond_c
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_c
new-instance v0, Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;
const/4 v1, 0x0
invoke-direct {v0, p1, v1}, Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;-><init>(Ljava/lang/Object;Laegon/chrome/base/DiscardableReferencePool$1;)V
iget-object v1, p0, Laegon/chrome/base/DiscardableReferencePool;->mPool:Ljava/util/Set;
invoke-interface {v1, v0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
return-object v0
.end method
.method public remove(Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Laegon/chrome/base/DiscardableReferencePool$DiscardableReference",
"<*>;)V"
}
.end annotation
sget-boolean v0, Laegon/chrome/base/DiscardableReferencePool;->$assertionsDisabled:Z
if-nez v0, :cond_c
if-nez p1, :cond_c
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_c
iget-object v0, p0, Laegon/chrome/base/DiscardableReferencePool;->mPool:Ljava/util/Set;
invoke-interface {v0, p1}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_15
:goto_14
return-void
:cond_15
sget-boolean v0, Laegon/chrome/base/DiscardableReferencePool;->$assertionsDisabled:Z
if-nez v0, :cond_25
invoke-virtual {p1}, Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;->get()Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_25
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_25
# invokes: Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;->discard()V
invoke-static {p1}, Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;->access$100(Laegon/chrome/base/DiscardableReferencePool$DiscardableReference;)V
iget-object v0, p0, Laegon/chrome/base/DiscardableReferencePool;->mPool:Ljava/util/Set;
invoke-interface {v0, p1}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
goto :goto_14
.end method