.class final Lcom/google/common/cache/Striped64$Cell; .super Ljava/lang/Object; .source "Striped64.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/google/common/cache/Striped64; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x18 name = "Cell" .end annotation # static fields .field private static final UNSAFE:Lsun/misc/Unsafe; .field private static final valueOffset:J # instance fields .field volatile p0:J .field volatile p1:J .field volatile p2:J .field volatile p3:J .field volatile p4:J .field volatile p5:J .field volatile p6:J .field volatile q0:J .field volatile q1:J .field volatile q2:J .field volatile q3:J .field volatile q4:J .field volatile q5:J .field volatile q6:J .field volatile value:J # direct methods .method static constructor ()V .locals 3 .prologue .line 108 :try_start_0 invoke-static {}, Lcom/google/common/cache/Striped64;->access$000()Lsun/misc/Unsafe; move-result-object v0 sput-object v0, Lcom/google/common/cache/Striped64$Cell;->UNSAFE:Lsun/misc/Unsafe; .line 109 const-class v0, Lcom/google/common/cache/Striped64$Cell; .line 110 sget-object v1, Lcom/google/common/cache/Striped64$Cell;->UNSAFE:Lsun/misc/Unsafe; const-string v2, "value" invoke-virtual {v0, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field; move-result-object v0 invoke-virtual {v1, v0}, Lsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J move-result-wide v0 sput-wide v0, Lcom/google/common/cache/Striped64$Cell;->valueOffset:J :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 .line 115 return-void .line 112 :catch_0 move-exception v0 .line 113 new-instance v1, Ljava/lang/Error; invoke-direct {v1, v0}, Ljava/lang/Error;->(Ljava/lang/Throwable;)V throw v1 .end method .method constructor (J)V .locals 1 .prologue .line 97 invoke-direct {p0}, Ljava/lang/Object;->()V iput-wide p1, p0, Lcom/google/common/cache/Striped64$Cell;->value:J return-void .end method # virtual methods .method final cas(JJ)Z .locals 9 .prologue .line 100 sget-object v0, Lcom/google/common/cache/Striped64$Cell;->UNSAFE:Lsun/misc/Unsafe; sget-wide v2, Lcom/google/common/cache/Striped64$Cell;->valueOffset:J move-object v1, p0 move-wide v4, p1 move-wide v6, p3 invoke-virtual/range {v0 .. v7}, Lsun/misc/Unsafe;->compareAndSwapLong(Ljava/lang/Object;JJJ)Z move-result v0 return v0 .end method