.class Lcom/google/common/collect/MapMakerInternalMap; .super Ljava/util/AbstractMap; .source "MapMakerInternalMap.java" # interfaces .implements Ljava/io/Serializable; .implements Ljava/util/concurrent/ConcurrentMap; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/google/common/collect/MapMakerInternalMap$SerializationProxy;, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;, Lcom/google/common/collect/MapMakerInternalMap$EntrySet;, Lcom/google/common/collect/MapMakerInternalMap$Values;, Lcom/google/common/collect/MapMakerInternalMap$KeySet;, Lcom/google/common/collect/MapMakerInternalMap$EntryIterator;, Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;, Lcom/google/common/collect/MapMakerInternalMap$ValueIterator;, Lcom/google/common/collect/MapMakerInternalMap$KeyIterator;, Lcom/google/common/collect/MapMakerInternalMap$HashIterator;, Lcom/google/common/collect/MapMakerInternalMap$CleanupMapTask;, Lcom/google/common/collect/MapMakerInternalMap$ExpirationQueue;, Lcom/google/common/collect/MapMakerInternalMap$EvictionQueue;, Lcom/google/common/collect/MapMakerInternalMap$Segment;, Lcom/google/common/collect/MapMakerInternalMap$StrongValueReference;, Lcom/google/common/collect/MapMakerInternalMap$SoftValueReference;, Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference;, Lcom/google/common/collect/MapMakerInternalMap$WeakExpirableEvictableEntry;, Lcom/google/common/collect/MapMakerInternalMap$WeakEvictableEntry;, Lcom/google/common/collect/MapMakerInternalMap$WeakExpirableEntry;, Lcom/google/common/collect/MapMakerInternalMap$WeakEntry;, Lcom/google/common/collect/MapMakerInternalMap$SoftExpirableEvictableEntry;, Lcom/google/common/collect/MapMakerInternalMap$SoftEvictableEntry;, Lcom/google/common/collect/MapMakerInternalMap$SoftExpirableEntry;, Lcom/google/common/collect/MapMakerInternalMap$SoftEntry;, Lcom/google/common/collect/MapMakerInternalMap$StrongExpirableEvictableEntry;, Lcom/google/common/collect/MapMakerInternalMap$StrongEvictableEntry;, Lcom/google/common/collect/MapMakerInternalMap$StrongExpirableEntry;, Lcom/google/common/collect/MapMakerInternalMap$StrongEntry;, Lcom/google/common/collect/MapMakerInternalMap$AbstractReferenceEntry;, Lcom/google/common/collect/MapMakerInternalMap$NullEntry;, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;, Lcom/google/common/collect/MapMakerInternalMap$ValueReference;, Lcom/google/common/collect/MapMakerInternalMap$EntryFactory;, Lcom/google/common/collect/MapMakerInternalMap$Strength; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Ljava/util/AbstractMap", ";", "Ljava/io/Serializable;", "Ljava/util/concurrent/ConcurrentMap", ";" } .end annotation # static fields .field static final CLEANUP_EXECUTOR_DELAY_SECS:J = 0x3cL .field static final CONTAINS_VALUE_RETRIES:I = 0x3 .field static final DISCARDING_QUEUE:Ljava/util/Queue; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Queue", "<+", "Ljava/lang/Object;", ">;" } .end annotation .end field .field static final DRAIN_MAX:I = 0x10 .field static final DRAIN_THRESHOLD:I = 0x3f .field static final MAXIMUM_CAPACITY:I = 0x40000000 .field static final MAX_SEGMENTS:I = 0x10000 .field static final UNSET:Lcom/google/common/collect/MapMakerInternalMap$ValueReference; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/collect/MapMakerInternalMap$ValueReference", "<", "Ljava/lang/Object;", "Ljava/lang/Object;", ">;" } .end annotation .end field .field private static final logger:Ljava/util/logging/Logger; .field private static final serialVersionUID:J = 0x5L # instance fields .field final concurrencyLevel:I .field final transient entryFactory:Lcom/google/common/collect/MapMakerInternalMap$EntryFactory; .field transient entrySet:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Set", "<", "Ljava/util/Map$Entry", ";>;" } .end annotation .end field .field final expireAfterAccessNanos:J .field final expireAfterWriteNanos:J .field final keyEquivalence:Lcom/google/common/base/Equivalence; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/base/Equivalence", "<", "Ljava/lang/Object;", ">;" } .end annotation .end field .field transient keySet:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Set", ";" } .end annotation .end field .field final keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; .field final maximumSize:I .field final removalListener:Lcom/google/common/collect/MapMaker$RemovalListener; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/collect/MapMaker$RemovalListener", ";" } .end annotation .end field .field final removalNotificationQueue:Ljava/util/Queue; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Queue", "<", "Lcom/google/common/collect/MapMaker$RemovalNotification", ";>;" } .end annotation .end field .field final transient segmentMask:I .field final transient segmentShift:I .field final transient segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; .annotation system Ldalvik/annotation/Signature; value = { "[", "Lcom/google/common/collect/MapMakerInternalMap$Segment", ";" } .end annotation .end field .field final ticker:Lcom/google/common/base/Ticker; .field final valueEquivalence:Lcom/google/common/base/Equivalence; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/base/Equivalence", "<", "Ljava/lang/Object;", ">;" } .end annotation .end field .field final valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; .field transient values:Ljava/util/Collection; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Collection", ";" } .end annotation .end field # direct methods .method static constructor ()V .locals 1 .prologue .line 135 const-class v0, Lcom/google/common/collect/MapMakerInternalMap; invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v0 invoke-static {v0}, Ljava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger; move-result-object v0 sput-object v0, Lcom/google/common/collect/MapMakerInternalMap;->logger:Ljava/util/logging/Logger; .line 578 new-instance v0, Lcom/google/common/collect/MapMakerInternalMap$1; invoke-direct {v0}, Lcom/google/common/collect/MapMakerInternalMap$1;->()V sput-object v0, Lcom/google/common/collect/MapMakerInternalMap;->UNSET:Lcom/google/common/collect/MapMakerInternalMap$ValueReference; .line 868 new-instance v0, Lcom/google/common/collect/MapMakerInternalMap$2; invoke-direct {v0}, Lcom/google/common/collect/MapMakerInternalMap$2;->()V sput-object v0, Lcom/google/common/collect/MapMakerInternalMap;->DISCARDING_QUEUE:Ljava/util/Queue; return-void .end method .method constructor (Lcom/google/common/collect/MapMaker;)V .locals 7 .prologue const/4 v2, 0x1 const/4 v4, 0x0 .line 195 invoke-direct {p0}, Ljava/util/AbstractMap;->()V .line 196 invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->getConcurrencyLevel()I move-result v0 const/high16 v1, 0x10000 invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I move-result v0 iput v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->concurrencyLevel:I .line 198 invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->getKeyStrength()Lcom/google/common/collect/MapMakerInternalMap$Strength; move-result-object v0 iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; .line 199 invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->getValueStrength()Lcom/google/common/collect/MapMakerInternalMap$Strength; move-result-object v0 iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; .line 201 invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->getKeyEquivalence()Lcom/google/common/base/Equivalence; move-result-object v0 iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyEquivalence:Lcom/google/common/base/Equivalence; .line 202 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; invoke-virtual {v0}, Lcom/google/common/collect/MapMakerInternalMap$Strength;->defaultEquivalence()Lcom/google/common/base/Equivalence; move-result-object v0 iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueEquivalence:Lcom/google/common/base/Equivalence; .line 204 iget v0, p1, Lcom/google/common/collect/MapMaker;->maximumSize:I iput v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I .line 205 invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->getExpireAfterAccessNanos()J move-result-wide v0 iput-wide v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterAccessNanos:J .line 206 invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->getExpireAfterWriteNanos()J move-result-wide v0 iput-wide v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterWriteNanos:J .line 208 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->expires()Z move-result v1 invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->evictsBySize()Z move-result v3 invoke-static {v0, v1, v3}, Lcom/google/common/collect/MapMakerInternalMap$EntryFactory;->getFactory(Lcom/google/common/collect/MapMakerInternalMap$Strength;ZZ)Lcom/google/common/collect/MapMakerInternalMap$EntryFactory; move-result-object v0 iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->entryFactory:Lcom/google/common/collect/MapMakerInternalMap$EntryFactory; .line 209 invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->getTicker()Lcom/google/common/base/Ticker; move-result-object v0 iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->ticker:Lcom/google/common/base/Ticker; .line 211 invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->getRemovalListener()Lcom/google/common/collect/MapMaker$RemovalListener; move-result-object v0 iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalListener:Lcom/google/common/collect/MapMaker$RemovalListener; .line 212 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalListener:Lcom/google/common/collect/MapMaker$RemovalListener; sget-object v1, Lcom/google/common/collect/GenericMapMaker$NullListener;->INSTANCE:Lcom/google/common/collect/GenericMapMaker$NullListener; if-ne v0, v1, :cond_2 invoke-static {}, Lcom/google/common/collect/MapMakerInternalMap;->discardingQueue()Ljava/util/Queue; move-result-object v0 :goto_0 iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalNotificationQueue:Ljava/util/Queue; .line 216 invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->getInitialCapacity()I move-result v0 const/high16 v1, 0x40000000 # 2.0f invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I move-result v0 .line 217 invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->evictsBySize()Z move-result v1 if-eqz v1, :cond_0 .line 218 iget v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I move-result v0 :cond_0 move v1, v2 move v3, v4 .line 227 :goto_1 iget v5, p0, Lcom/google/common/collect/MapMakerInternalMap;->concurrencyLevel:I if-ge v1, v5, :cond_3 invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->evictsBySize()Z move-result v5 if-eqz v5, :cond_1 mul-int/lit8 v5, v1, 0x2 iget v6, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I if-gt v5, v6, :cond_3 .line 228 :cond_1 add-int/lit8 v3, v3, 0x1 .line 229 shl-int/lit8 v1, v1, 0x1 goto :goto_1 .line 212 :cond_2 new-instance v0, Ljava/util/concurrent/ConcurrentLinkedQueue; invoke-direct {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;->()V goto :goto_0 .line 231 :cond_3 rsub-int/lit8 v3, v3, 0x20 iput v3, p0, Lcom/google/common/collect/MapMakerInternalMap;->segmentShift:I .line 232 add-int/lit8 v3, v1, -0x1 iput v3, p0, Lcom/google/common/collect/MapMakerInternalMap;->segmentMask:I .line 234 invoke-virtual {p0, v1}, Lcom/google/common/collect/MapMakerInternalMap;->newSegmentArray(I)[Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v3 iput-object v3, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; .line 236 div-int v3, v0, v1 .line 237 mul-int v5, v3, v1 if-ge v5, v0, :cond_8 .line 238 add-int/lit8 v0, v3, 0x1 .line 242 :goto_2 if-ge v2, v0, :cond_4 .line 243 shl-int/lit8 v2, v2, 0x1 goto :goto_2 .line 246 :cond_4 invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->evictsBySize()Z move-result v0 if-eqz v0, :cond_6 .line 248 iget v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I div-int/2addr v0, v1 add-int/lit8 v0, v0, 0x1 .line 249 iget v3, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I rem-int v1, v3, v1 .line 250 :goto_3 iget-object v3, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; array-length v3, v3 if-ge v4, v3, :cond_7 .line 251 if-ne v4, v1, :cond_5 .line 252 add-int/lit8 v0, v0, -0x1 .line 254 :cond_5 iget-object v3, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; invoke-virtual {p0, v2, v0}, Lcom/google/common/collect/MapMakerInternalMap;->createSegment(II)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v5 aput-object v5, v3, v4 .line 250 add-int/lit8 v4, v4, 0x1 goto :goto_3 .line 258 :cond_6 :goto_4 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; array-length v0, v0 if-ge v4, v0, :cond_7 .line 259 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; const/4 v1, -0x1 invoke-virtual {p0, v2, v1}, Lcom/google/common/collect/MapMakerInternalMap;->createSegment(II)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 aput-object v1, v0, v4 .line 258 add-int/lit8 v4, v4, 0x1 goto :goto_4 .line 263 :cond_7 return-void :cond_8 move v0, v3 goto :goto_2 .end method .method static connectEvictables(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)V" } .end annotation .annotation build Ljavax/annotation/concurrent/GuardedBy; value = "Segment.this" .end annotation .prologue .line 1961 invoke-interface {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->setNextEvictable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .line 1962 invoke-interface {p1, p0}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->setPreviousEvictable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .line 1963 return-void .end method .method static connectExpirables(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)V" } .end annotation .annotation build Ljavax/annotation/concurrent/GuardedBy; value = "Segment.this" .end annotation .prologue .line 1929 invoke-interface {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->setNextExpirable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .line 1930 invoke-interface {p1, p0}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->setPreviousExpirable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .line 1931 return-void .end method .method static discardingQueue()Ljava/util/Queue; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/Queue", ";" } .end annotation .prologue .line 900 sget-object v0, Lcom/google/common/collect/MapMakerInternalMap;->DISCARDING_QUEUE:Ljava/util/Queue; return-object v0 .end method .method static nullEntry()Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";" } .end annotation .prologue .line 865 sget-object v0, Lcom/google/common/collect/MapMakerInternalMap$NullEntry;->INSTANCE:Lcom/google/common/collect/MapMakerInternalMap$NullEntry; return-object v0 .end method .method static nullifyEvictable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)V" } .end annotation .annotation build Ljavax/annotation/concurrent/GuardedBy; value = "Segment.this" .end annotation .prologue .line 1967 invoke-static {}, Lcom/google/common/collect/MapMakerInternalMap;->nullEntry()Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; move-result-object v0 .line 1968 invoke-interface {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->setNextEvictable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .line 1969 invoke-interface {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->setPreviousEvictable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .line 1970 return-void .end method .method static nullifyExpirable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)V" } .end annotation .annotation build Ljavax/annotation/concurrent/GuardedBy; value = "Segment.this" .end annotation .prologue .line 1935 invoke-static {}, Lcom/google/common/collect/MapMakerInternalMap;->nullEntry()Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; move-result-object v0 .line 1936 invoke-interface {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->setNextExpirable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .line 1937 invoke-interface {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->setPreviousExpirable(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .line 1938 return-void .end method .method static rehash(I)I .locals 3 .prologue .line 1813 shl-int/lit8 v0, p0, 0xf xor-int/lit16 v0, v0, -0x3283 add-int/2addr v0, p0 .line 1814 ushr-int/lit8 v1, v0, 0xa xor-int/2addr v0, v1 .line 1815 shl-int/lit8 v1, v0, 0x3 add-int/2addr v0, v1 .line 1816 ushr-int/lit8 v1, v0, 0x6 xor-int/2addr v0, v1 .line 1817 shl-int/lit8 v1, v0, 0x2 shl-int/lit8 v2, v0, 0xe add-int/2addr v1, v2 add-int/2addr v0, v1 .line 1818 ushr-int/lit8 v1, v0, 0x10 xor-int/2addr v0, v1 return v0 .end method .method static unset()Lcom/google/common/collect/MapMakerInternalMap$ValueReference; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/google/common/collect/MapMakerInternalMap$ValueReference", ";" } .end annotation .prologue .line 614 sget-object v0, Lcom/google/common/collect/MapMakerInternalMap;->UNSET:Lcom/google/common/collect/MapMakerInternalMap$ValueReference; return-object v0 .end method # virtual methods .method public clear()V .locals 4 .prologue .line 3559 iget-object v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; array-length v2, v1 const/4 v0, 0x0 :goto_0 if-ge v0, v2, :cond_0 aget-object v3, v1, v0 .line 3560 invoke-virtual {v3}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->clear()V .line 3559 add-int/lit8 v0, v0, 0x1 goto :goto_0 .line 3562 :cond_0 return-void .end method .method public containsKey(Ljava/lang/Object;)Z .locals 2 .param p1 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .prologue .line 3451 if-nez p1, :cond_0 .line 3452 const/4 v0, 0x0 .line 3455 :goto_0 return v0 .line 3454 :cond_0 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I move-result v0 .line 3455 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->containsKey(Ljava/lang/Object;I)Z move-result v0 goto :goto_0 .end method .method public containsValue(Ljava/lang/Object;)Z .locals 14 .param p1 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .prologue .line 3460 if-nez p1, :cond_0 .line 3461 const/4 v0, 0x0 .line 3494 :goto_0 return v0 .line 3469 :cond_0 iget-object v7, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; .line 3470 const-wide/16 v4, -0x1 .line 3471 const/4 v0, 0x0 move v6, v0 move-wide v8, v4 :goto_1 const/4 v0, 0x3 if-ge v6, v0, :cond_5 .line 3472 const-wide/16 v2, 0x0 .line 3473 array-length v10, v7 const/4 v0, 0x0 move-wide v4, v2 move v2, v0 :goto_2 if-ge v2, v10, :cond_4 aget-object v3, v7, v2 .line 3476 iget v0, v3, Lcom/google/common/collect/MapMakerInternalMap$Segment;->count:I .line 3478 iget-object v11, v3, Lcom/google/common/collect/MapMakerInternalMap$Segment;->table:Ljava/util/concurrent/atomic/AtomicReferenceArray; .line 3479 const/4 v0, 0x0 move v1, v0 :goto_3 invoke-virtual {v11}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->length()I move-result v0 if-ge v1, v0, :cond_3 .line 3480 invoke-virtual {v11, v1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; :goto_4 if-eqz v0, :cond_2 .line 3481 invoke-virtual {v3, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->getLiveValue(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Ljava/lang/Object; move-result-object v12 .line 3482 if-eqz v12, :cond_1 iget-object v13, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueEquivalence:Lcom/google/common/base/Equivalence; invoke-virtual {v13, p1, v12}, Lcom/google/common/base/Equivalence;->equivalent(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v12 if-eqz v12, :cond_1 .line 3483 const/4 v0, 0x1 goto :goto_0 .line 3480 :cond_1 invoke-interface {v0}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getNext()Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; move-result-object v0 goto :goto_4 .line 3479 :cond_2 add-int/lit8 v0, v1, 0x1 move v1, v0 goto :goto_3 .line 3487 :cond_3 iget v0, v3, Lcom/google/common/collect/MapMakerInternalMap$Segment;->modCount:I int-to-long v0, v0 add-long/2addr v4, v0 .line 3473 add-int/lit8 v0, v2, 0x1 move v2, v0 goto :goto_2 .line 3489 :cond_4 cmp-long v0, v4, v8 if-nez v0, :cond_6 .line 3494 :cond_5 const/4 v0, 0x0 goto :goto_0 .line 3471 :cond_6 add-int/lit8 v0, v6, 0x1 move v6, v0 move-wide v8, v4 goto :goto_1 .end method .method copyEntry(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; .locals 1 .annotation build Lcom/google/common/annotations/VisibleForTesting; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";" } .end annotation .annotation build Ljavax/annotation/concurrent/GuardedBy; value = "Segment.this" .end annotation .prologue .line 1836 invoke-interface {p1}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getHash()I move-result v0 .line 1837 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v0 invoke-virtual {v0, p1, p2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->copyEntry(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; move-result-object v0 return-object v0 .end method .method createSegment(II)Lcom/google/common/collect/MapMakerInternalMap$Segment; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(II)", "Lcom/google/common/collect/MapMakerInternalMap$Segment", ";" } .end annotation .prologue .line 1887 new-instance v0, Lcom/google/common/collect/MapMakerInternalMap$Segment; invoke-direct {v0, p0, p1, p2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->(Lcom/google/common/collect/MapMakerInternalMap;II)V return-object v0 .end method .method public entrySet()Ljava/util/Set; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/Set", "<", "Ljava/util/Map$Entry", ";>;" } .end annotation .prologue .line 3584 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->entrySet:Ljava/util/Set; .line 3585 if-eqz v0, :cond_0 :goto_0 return-object v0 :cond_0 new-instance v0, Lcom/google/common/collect/MapMakerInternalMap$EntrySet; invoke-direct {v0, p0}, Lcom/google/common/collect/MapMakerInternalMap$EntrySet;->(Lcom/google/common/collect/MapMakerInternalMap;)V iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->entrySet:Ljava/util/Set; goto :goto_0 .end method .method evictsBySize()Z .locals 2 .prologue .line 266 iget v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I const/4 v1, -0x1 if-eq v0, v1, :cond_0 const/4 v0, 0x1 :goto_0 return v0 :cond_0 const/4 v0, 0x0 goto :goto_0 .end method .method expires()Z .locals 1 .prologue .line 270 invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->expiresAfterWrite()Z move-result v0 if-nez v0, :cond_0 invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->expiresAfterAccess()Z move-result v0 if-eqz v0, :cond_1 :cond_0 const/4 v0, 0x1 :goto_0 return v0 :cond_1 const/4 v0, 0x0 goto :goto_0 .end method .method expiresAfterAccess()Z .locals 4 .prologue .line 278 iget-wide v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterAccessNanos:J const-wide/16 v2, 0x0 cmp-long v0, v0, v2 if-lez v0, :cond_0 const/4 v0, 0x1 :goto_0 return v0 :cond_0 const/4 v0, 0x0 goto :goto_0 .end method .method expiresAfterWrite()Z .locals 4 .prologue .line 274 iget-wide v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterWriteNanos:J const-wide/16 v2, 0x0 cmp-long v0, v0, v2 if-lez v0, :cond_0 const/4 v0, 0x1 :goto_0 return v0 :cond_0 const/4 v0, 0x0 goto :goto_0 .end method .method public get(Ljava/lang/Object;)Ljava/lang/Object; .locals 2 .param p1 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Object;", ")TV;" } .end annotation .prologue .line 3430 if-nez p1, :cond_0 .line 3431 const/4 v0, 0x0 .line 3434 :goto_0 return-object v0 .line 3433 :cond_0 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I move-result v0 .line 3434 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->get(Ljava/lang/Object;I)Ljava/lang/Object; move-result-object v0 goto :goto_0 .end method .method getEntry(Ljava/lang/Object;)Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; .locals 2 .param p1 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Object;", ")", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";" } .end annotation .prologue .line 3442 if-nez p1, :cond_0 .line 3443 const/4 v0, 0x0 .line 3446 :goto_0 return-object v0 .line 3445 :cond_0 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I move-result v0 .line 3446 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->getEntry(Ljava/lang/Object;I)Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; move-result-object v0 goto :goto_0 .end method .method getLiveValue(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Ljava/lang/Object; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)TV;" } .end annotation .prologue const/4 v0, 0x0 .line 1896 invoke-interface {p1}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getKey()Ljava/lang/Object; move-result-object v1 if-nez v1, :cond_1 .line 1907 :cond_0 :goto_0 return-object v0 .line 1899 :cond_1 invoke-interface {p1}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getValueReference()Lcom/google/common/collect/MapMakerInternalMap$ValueReference; move-result-object v1 invoke-interface {v1}, Lcom/google/common/collect/MapMakerInternalMap$ValueReference;->get()Ljava/lang/Object; move-result-object v1 .line 1900 if-eqz v1, :cond_0 .line 1904 invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->expires()Z move-result v2 if-eqz v2, :cond_2 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->isExpired(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Z move-result v2 if-nez v2, :cond_0 :cond_2 move-object v0, v1 .line 1907 goto :goto_0 .end method .method hash(Ljava/lang/Object;)I .locals 1 .prologue .line 1851 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyEquivalence:Lcom/google/common/base/Equivalence; invoke-virtual {v0, p1}, Lcom/google/common/base/Equivalence;->hash(Ljava/lang/Object;)I move-result v0 .line 1852 invoke-static {v0}, Lcom/google/common/collect/MapMakerInternalMap;->rehash(I)I move-result v0 return v0 .end method .method public isEmpty()Z .locals 10 .prologue const-wide/16 v4, 0x0 const/4 v1, 0x0 .line 3395 .line 3396 iget-object v6, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; move v0, v1 move-wide v2, v4 .line 3397 :goto_0 array-length v7, v6 if-ge v0, v7, :cond_2 .line 3398 aget-object v7, v6, v0 iget v7, v7, Lcom/google/common/collect/MapMakerInternalMap$Segment;->count:I if-eqz v7, :cond_1 .line 3415 :cond_0 :goto_1 return v1 .line 3401 :cond_1 aget-object v7, v6, v0 iget v7, v7, Lcom/google/common/collect/MapMakerInternalMap$Segment;->modCount:I int-to-long v8, v7 add-long/2addr v2, v8 .line 3397 add-int/lit8 v0, v0, 0x1 goto :goto_0 .line 3404 :cond_2 cmp-long v0, v2, v4 if-eqz v0, :cond_4 move v0, v1 .line 3405 :goto_2 array-length v7, v6 if-ge v0, v7, :cond_3 .line 3406 aget-object v7, v6, v0 iget v7, v7, Lcom/google/common/collect/MapMakerInternalMap$Segment;->count:I if-nez v7, :cond_0 .line 3409 aget-object v7, v6, v0 iget v7, v7, Lcom/google/common/collect/MapMakerInternalMap$Segment;->modCount:I int-to-long v8, v7 sub-long/2addr v2, v8 .line 3405 add-int/lit8 v0, v0, 0x1 goto :goto_2 .line 3411 :cond_3 cmp-long v0, v2, v4 if-nez v0, :cond_0 .line 3415 :cond_4 const/4 v1, 0x1 goto :goto_1 .end method .method isExpired(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Z .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)Z" } .end annotation .prologue .line 1916 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->ticker:Lcom/google/common/base/Ticker; invoke-virtual {v0}, Lcom/google/common/base/Ticker;->read()J move-result-wide v0 invoke-virtual {p0, p1, v0, v1}, Lcom/google/common/collect/MapMakerInternalMap;->isExpired(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;J)Z move-result v0 return v0 .end method .method isExpired(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;J)Z .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";J)Z" } .end annotation .prologue .line 1924 invoke-interface {p1}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getExpirationTime()J move-result-wide v0 sub-long v0, p2, v0 const-wide/16 v2, 0x0 cmp-long v0, v0, v2 if-lez v0, :cond_0 const/4 v0, 0x1 :goto_0 return v0 :cond_0 const/4 v0, 0x0 goto :goto_0 .end method .method isLive(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Z .locals 1 .annotation build Lcom/google/common/annotations/VisibleForTesting; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)Z" } .end annotation .prologue .line 1872 invoke-interface {p1}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getHash()I move-result v0 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v0 invoke-virtual {v0, p1}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->getLiveValue(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Ljava/lang/Object; move-result-object v0 if-eqz v0, :cond_0 const/4 v0, 0x1 :goto_0 return v0 :cond_0 const/4 v0, 0x0 goto :goto_0 .end method .method public keySet()Ljava/util/Set; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/Set", ";" } .end annotation .prologue .line 3568 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keySet:Ljava/util/Set; .line 3569 if-eqz v0, :cond_0 :goto_0 return-object v0 :cond_0 new-instance v0, Lcom/google/common/collect/MapMakerInternalMap$KeySet; invoke-direct {v0, p0}, Lcom/google/common/collect/MapMakerInternalMap$KeySet;->(Lcom/google/common/collect/MapMakerInternalMap;)V iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keySet:Ljava/util/Set; goto :goto_0 .end method .method newEntry(Ljava/lang/Object;ILcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; .locals 1 .param p3 # Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .annotation build Lcom/google/common/annotations/VisibleForTesting; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "(TK;I", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";" } .end annotation .annotation build Ljavax/annotation/concurrent/GuardedBy; value = "Segment.this" .end annotation .prologue .line 1827 invoke-virtual {p0, p2}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v0 invoke-virtual {v0, p1, p2, p3}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->newEntry(Ljava/lang/Object;ILcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; move-result-object v0 return-object v0 .end method .method final newSegmentArray(I)[Lcom/google/common/collect/MapMakerInternalMap$Segment; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(I)[", "Lcom/google/common/collect/MapMakerInternalMap$Segment", ";" } .end annotation .prologue .line 1974 new-array v0, p1, [Lcom/google/common/collect/MapMakerInternalMap$Segment; return-object v0 .end method .method newValueReference(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;Ljava/lang/Object;)Lcom/google/common/collect/MapMakerInternalMap$ValueReference; .locals 2 .annotation build Lcom/google/common/annotations/VisibleForTesting; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";TV;)", "Lcom/google/common/collect/MapMakerInternalMap$ValueReference", ";" } .end annotation .annotation build Ljavax/annotation/concurrent/GuardedBy; value = "Segment.this" .end annotation .prologue .line 1846 invoke-interface {p1}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getHash()I move-result v0 .line 1847 iget-object v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v0 invoke-virtual {v1, v0, p1, p2}, Lcom/google/common/collect/MapMakerInternalMap$Strength;->referenceValue(Lcom/google/common/collect/MapMakerInternalMap$Segment;Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;Ljava/lang/Object;)Lcom/google/common/collect/MapMakerInternalMap$ValueReference; move-result-object v0 return-object v0 .end method .method processPendingNotifications()V .locals 4 .prologue .line 1949 :goto_0 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalNotificationQueue:Ljava/util/Queue; invoke-interface {v0}, Ljava/util/Queue;->poll()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/common/collect/MapMaker$RemovalNotification; if-eqz v0, :cond_0 .line 1951 :try_start_0 iget-object v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalListener:Lcom/google/common/collect/MapMaker$RemovalListener; invoke-interface {v1, v0}, Lcom/google/common/collect/MapMaker$RemovalListener;->onRemoval(Lcom/google/common/collect/MapMaker$RemovalNotification;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 .line 1952 :catch_0 move-exception v0 .line 1953 sget-object v1, Lcom/google/common/collect/MapMakerInternalMap;->logger:Ljava/util/logging/Logger; sget-object v2, Ljava/util/logging/Level;->WARNING:Ljava/util/logging/Level; const-string v3, "Exception thrown by removal listener" invoke-virtual {v1, v2, v3, v0}, Ljava/util/logging/Logger;->log(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V goto :goto_0 .line 1956 :cond_0 return-void .end method .method public put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(TK;TV;)TV;" } .end annotation .prologue .line 3499 invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3500 invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3501 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I move-result v0 .line 3502 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 const/4 v2, 0x0 invoke-virtual {v1, p1, v0, p2, v2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->put(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object; move-result-object v0 return-object v0 .end method .method public putAll(Ljava/util/Map;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Map", "<+TK;+TV;>;)V" } .end annotation .prologue .line 3515 invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_0 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_0 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/Map$Entry; .line 3516 invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v2 invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v0 invoke-virtual {p0, v2, v0}, Lcom/google/common/collect/MapMakerInternalMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_0 .line 3518 :cond_0 return-void .end method .method public putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(TK;TV;)TV;" } .end annotation .prologue .line 3507 invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3508 invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3509 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I move-result v0 .line 3510 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 const/4 v2, 0x1 invoke-virtual {v1, p1, v0, p2, v2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->put(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object; move-result-object v0 return-object v0 .end method .method reclaimKey(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;)V .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry", ";)V" } .end annotation .prologue .line 1862 invoke-interface {p1}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getHash()I move-result v0 .line 1863 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->reclaimKey(Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;I)Z .line 1864 return-void .end method .method reclaimValue(Lcom/google/common/collect/MapMakerInternalMap$ValueReference;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/MapMakerInternalMap$ValueReference", ";)V" } .end annotation .prologue .line 1856 invoke-interface {p1}, Lcom/google/common/collect/MapMakerInternalMap$ValueReference;->getEntry()Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry; move-result-object v0 .line 1857 invoke-interface {v0}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getHash()I move-result v1 .line 1858 invoke-virtual {p0, v1}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v2 invoke-interface {v0}, Lcom/google/common/collect/MapMakerInternalMap$ReferenceEntry;->getKey()Ljava/lang/Object; move-result-object v0 invoke-virtual {v2, v0, v1, p1}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->reclaimValue(Ljava/lang/Object;ILcom/google/common/collect/MapMakerInternalMap$ValueReference;)Z .line 1859 return-void .end method .method public remove(Ljava/lang/Object;)Ljava/lang/Object; .locals 2 .param p1 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Object;", ")TV;" } .end annotation .prologue .line 3522 if-nez p1, :cond_0 .line 3523 const/4 v0, 0x0 .line 3526 :goto_0 return-object v0 .line 3525 :cond_0 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I move-result v0 .line 3526 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->remove(Ljava/lang/Object;I)Ljava/lang/Object; move-result-object v0 goto :goto_0 .end method .method public remove(Ljava/lang/Object;Ljava/lang/Object;)Z .locals 2 .param p1 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .param p2 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .prologue .line 3531 if-eqz p1, :cond_0 if-nez p2, :cond_1 .line 3532 :cond_0 const/4 v0, 0x0 .line 3535 :goto_0 return v0 .line 3534 :cond_1 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I move-result v0 .line 3535 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 invoke-virtual {v1, p1, v0, p2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->remove(Ljava/lang/Object;ILjava/lang/Object;)Z move-result v0 goto :goto_0 .end method .method public replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(TK;TV;)TV;" } .end annotation .prologue .line 3551 invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3552 invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3553 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I move-result v0 .line 3554 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 invoke-virtual {v1, p1, v0, p2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->replace(Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object; move-result-object v0 return-object v0 .end method .method public replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z .locals 2 .param p2 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .annotation system Ldalvik/annotation/Signature; value = { "(TK;TV;TV;)Z" } .end annotation .prologue .line 3540 invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3541 invoke-static {p3}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 3542 if-nez p2, :cond_0 .line 3543 const/4 v0, 0x0 .line 3546 :goto_0 return v0 .line 3545 :cond_0 invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I move-result v0 .line 3546 invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; move-result-object v1 invoke-virtual {v1, p1, v0, p2, p3}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->replace(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)Z move-result v0 goto :goto_0 .end method .method segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(I)", "Lcom/google/common/collect/MapMakerInternalMap$Segment", ";" } .end annotation .prologue .line 1883 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; iget v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->segmentShift:I ushr-int v1, p1, v1 iget v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->segmentMask:I and-int/2addr v1, v2 aget-object v0, v0, v1 return-object v0 .end method .method public size()I .locals 6 .prologue .line 3420 iget-object v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment; .line 3421 const-wide/16 v2, 0x0 .line 3422 const/4 v0, 0x0 :goto_0 array-length v4, v1 if-ge v0, v4, :cond_0 .line 3423 aget-object v4, v1, v0 iget v4, v4, Lcom/google/common/collect/MapMakerInternalMap$Segment;->count:I int-to-long v4, v4 add-long/2addr v2, v4 .line 3422 add-int/lit8 v0, v0, 0x1 goto :goto_0 .line 3425 :cond_0 invoke-static {v2, v3}, Lcom/google/common/primitives/Ints;->saturatedCast(J)I move-result v0 return v0 .end method .method usesKeyReferences()Z .locals 2 .prologue .line 282 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; sget-object v1, Lcom/google/common/collect/MapMakerInternalMap$Strength;->STRONG:Lcom/google/common/collect/MapMakerInternalMap$Strength; if-eq v0, v1, :cond_0 const/4 v0, 0x1 :goto_0 return v0 :cond_0 const/4 v0, 0x0 goto :goto_0 .end method .method usesValueReferences()Z .locals 2 .prologue .line 286 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; sget-object v1, Lcom/google/common/collect/MapMakerInternalMap$Strength;->STRONG:Lcom/google/common/collect/MapMakerInternalMap$Strength; if-eq v0, v1, :cond_0 const/4 v0, 0x1 :goto_0 return v0 :cond_0 const/4 v0, 0x0 goto :goto_0 .end method .method public values()Ljava/util/Collection; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/Collection", ";" } .end annotation .prologue .line 3576 iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->values:Ljava/util/Collection; .line 3577 if-eqz v0, :cond_0 :goto_0 return-object v0 :cond_0 new-instance v0, Lcom/google/common/collect/MapMakerInternalMap$Values; invoke-direct {v0, p0}, Lcom/google/common/collect/MapMakerInternalMap$Values;->(Lcom/google/common/collect/MapMakerInternalMap;)V iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->values:Ljava/util/Collection; goto :goto_0 .end method .method writeReplace()Ljava/lang/Object; .locals 14 .prologue .line 3887 new-instance v1, Lcom/google/common/collect/MapMakerInternalMap$SerializationProxy; iget-object v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; iget-object v3, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength; iget-object v4, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyEquivalence:Lcom/google/common/base/Equivalence; iget-object v5, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueEquivalence:Lcom/google/common/base/Equivalence; iget-wide v6, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterWriteNanos:J iget-wide v8, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterAccessNanos:J iget v10, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I iget v11, p0, Lcom/google/common/collect/MapMakerInternalMap;->concurrencyLevel:I iget-object v12, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalListener:Lcom/google/common/collect/MapMaker$RemovalListener; move-object v13, p0 invoke-direct/range {v1 .. v13}, Lcom/google/common/collect/MapMakerInternalMap$SerializationProxy;->(Lcom/google/common/collect/MapMakerInternalMap$Strength;Lcom/google/common/collect/MapMakerInternalMap$Strength;Lcom/google/common/base/Equivalence;Lcom/google/common/base/Equivalence;JJIILcom/google/common/collect/MapMaker$RemovalListener;Ljava/util/concurrent/ConcurrentMap;)V return-object v1 .end method