AtomicReferenceArrayQueue.smali
.class abstract Lrx/internal/util/atomic/AtomicReferenceArrayQueue;
.super Ljava/util/AbstractQueue;
.source "AtomicReferenceArrayQueue.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<E:",
"Ljava/lang/Object;",
">",
"Ljava/util/AbstractQueue<",
"TE;>;"
}
.end annotation
# instance fields
.field protected final buffer:Ljava/util/concurrent/atomic/AtomicReferenceArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReferenceArray<",
"TE;>;"
}
.end annotation
.end field
.field protected final mask:I
# direct methods
.method public constructor <init>(I)V
.registers 3
.line 1
invoke-direct {p0}, Ljava/util/AbstractQueue;-><init>()V
.line 2
invoke-static {p1}, Lrx/internal/util/unsafe/Pow2;->roundToPowerOfTwo(I)I
move-result p1
add-int/lit8 v0, p1, -0x1
.line 3
iput v0, p0, Lrx/internal/util/atomic/AtomicReferenceArrayQueue;->mask:I
.line 4
new-instance v0, Ljava/util/concurrent/atomic/AtomicReferenceArray;
invoke-direct {v0, p1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;-><init>(I)V
iput-object v0, p0, Lrx/internal/util/atomic/AtomicReferenceArrayQueue;->buffer:Ljava/util/concurrent/atomic/AtomicReferenceArray;
return-void
.end method
# virtual methods
.method protected final calcElementOffset(J)I
.registers 3
long-to-int p2, p1
.line 1
iget p1, p0, Lrx/internal/util/atomic/AtomicReferenceArrayQueue;->mask:I
and-int/2addr p1, p2
return p1
.end method
.method protected final calcElementOffset(JI)I
.registers 4
long-to-int p2, p1
and-int p1, p2, p3
return p1
.end method
.method public clear()V
.registers 2
.line 1
:cond_0
:goto_0
invoke-virtual {p0}, Ljava/util/AbstractQueue;->poll()Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_0
invoke-virtual {p0}, Ljava/util/AbstractQueue;->isEmpty()Z
move-result v0
if-nez v0, :cond_d
goto :goto_0
:cond_d
return-void
.end method
.method public iterator()Ljava/util/Iterator;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Iterator<",
"TE;>;"
}
.end annotation
.line 1
new-instance v0, Ljava/lang/UnsupportedOperationException;
invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw v0
.end method
.method protected final lpElement(I)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)TE;"
}
.end annotation
.line 2
iget-object v0, p0, Lrx/internal/util/atomic/AtomicReferenceArrayQueue;->buffer:Ljava/util/concurrent/atomic/AtomicReferenceArray;
invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method protected final lpElement(Ljava/util/concurrent/atomic/AtomicReferenceArray;I)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/atomic/AtomicReferenceArray<",
"TE;>;I)TE;"
}
.end annotation
.line 1
invoke-virtual {p1, p2}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method protected final lvElement(I)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)TE;"
}
.end annotation
.line 2
iget-object v0, p0, Lrx/internal/util/atomic/AtomicReferenceArrayQueue;->buffer:Ljava/util/concurrent/atomic/AtomicReferenceArray;
invoke-virtual {p0, v0, p1}, Lrx/internal/util/atomic/AtomicReferenceArrayQueue;->lvElement(Ljava/util/concurrent/atomic/AtomicReferenceArray;I)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method protected final lvElement(Ljava/util/concurrent/atomic/AtomicReferenceArray;I)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/atomic/AtomicReferenceArray<",
"TE;>;I)TE;"
}
.end annotation
.line 1
invoke-virtual {p1, p2}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method protected final soElement(ILjava/lang/Object;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(ITE;)V"
}
.end annotation
.line 2
iget-object v0, p0, Lrx/internal/util/atomic/AtomicReferenceArrayQueue;->buffer:Ljava/util/concurrent/atomic/AtomicReferenceArray;
invoke-virtual {v0, p1, p2}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
return-void
.end method
.method protected final soElement(Ljava/util/concurrent/atomic/AtomicReferenceArray;ILjava/lang/Object;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/atomic/AtomicReferenceArray<",
"TE;>;ITE;)V"
}
.end annotation
.line 1
invoke-virtual {p1, p2, p3}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
return-void
.end method
.method protected final spElement(ILjava/lang/Object;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(ITE;)V"
}
.end annotation
.line 2
iget-object v0, p0, Lrx/internal/util/atomic/AtomicReferenceArrayQueue;->buffer:Ljava/util/concurrent/atomic/AtomicReferenceArray;
invoke-virtual {v0, p1, p2}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
return-void
.end method
.method protected final spElement(Ljava/util/concurrent/atomic/AtomicReferenceArray;ILjava/lang/Object;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/atomic/AtomicReferenceArray<",
"TE;>;ITE;)V"
}
.end annotation
.line 1
invoke-virtual {p1, p2, p3}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
return-void
.end method
.method protected final svElement(Ljava/util/concurrent/atomic/AtomicReferenceArray;ILjava/lang/Object;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/atomic/AtomicReferenceArray<",
"TE;>;ITE;)V"
}
.end annotation
.line 1
invoke-virtual {p1, p2, p3}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->set(ILjava/lang/Object;)V
return-void
.end method