.class final Lcom/google/common/collect/LinkedHashMultimap$ValueSet; .super Lcom/google/common/collect/Sets$ImprovedAbstractSet; .source "LinkedHashMultimap.java" # interfaces .implements Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; # annotations .annotation build Lcom/google/common/annotations/VisibleForTesting; .end annotation .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/google/common/collect/LinkedHashMultimap; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x10 name = "ValueSet" .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/collect/Sets$ImprovedAbstractSet", ";", "Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink", ";" } .end annotation # instance fields .field private firstEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink", ";" } .end annotation .end field .field hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; .annotation build Lcom/google/common/annotations/VisibleForTesting; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "[", "Lcom/google/common/collect/LinkedHashMultimap$ValueEntry", ";" } .end annotation .end field .field private final key:Ljava/lang/Object; .annotation system Ldalvik/annotation/Signature; value = { "TK;" } .end annotation .end field .field private lastEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink", ";" } .end annotation .end field .field private modCount:I .field private size:I .field final synthetic this$0:Lcom/google/common/collect/LinkedHashMultimap; # direct methods .method constructor (Lcom/google/common/collect/LinkedHashMultimap;Ljava/lang/Object;I)V .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(TK;I)V" } .end annotation .prologue const/4 v0, 0x0 .line 319 iput-object p1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->this$0:Lcom/google/common/collect/LinkedHashMultimap; invoke-direct {p0}, Lcom/google/common/collect/Sets$ImprovedAbstractSet;->()V .line 311 iput v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->size:I .line 312 iput v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->modCount:I .line 320 iput-object p2, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->key:Ljava/lang/Object; .line 321 iput-object p0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->firstEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .line 322 iput-object p0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->lastEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .line 324 const-wide/high16 v0, 0x3ff0000000000000L # 1.0 invoke-static {p3, v0, v1}, Lcom/google/common/collect/Hashing;->closedTableSize(ID)I move-result v0 .line 327 new-array v0, v0, [Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; .line 328 iput-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; .line 329 return-void .end method .method static synthetic access$000(Lcom/google/common/collect/LinkedHashMultimap$ValueSet;)Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .locals 1 .prologue .line 303 iget-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->firstEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; return-object v0 .end method .method static synthetic access$100(Lcom/google/common/collect/LinkedHashMultimap$ValueSet;)I .locals 1 .prologue .line 303 iget v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->modCount:I return v0 .end method .method private mask()I .locals 1 .prologue .line 332 iget-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; array-length v0, v0 add-int/lit8 v0, v0, -0x1 return v0 .end method .method private rehashIfNecessary()V .locals 6 .prologue .line 439 iget v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->size:I iget-object v1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; array-length v1, v1 const-wide/high16 v2, 0x3ff0000000000000L # 1.0 invoke-static {v0, v1, v2, v3}, Lcom/google/common/collect/Hashing;->needsResizing(IID)Z move-result v0 if-eqz v0, :cond_0 .line 441 iget-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; array-length v0, v0 mul-int/lit8 v0, v0, 0x2 new-array v2, v0, [Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; .line 442 iput-object v2, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; .line 443 array-length v0, v2 add-int/lit8 v3, v0, -0x1 .line 444 iget-object v1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->firstEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .line 445 :goto_0 if-eq v1, p0, :cond_0 move-object v0, v1 .line 446 check-cast v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; .line 447 iget v4, v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->smearedValueHash:I and-int/2addr v4, v3 .line 448 aget-object v5, v2, v4 iput-object v5, v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->nextInValueBucket:Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; .line 449 aput-object v0, v2, v4 .line 445 invoke-interface {v1}, Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;->getSuccessorInValueSet()Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; move-result-object v1 goto :goto_0 .line 452 :cond_0 return-void .end method # virtual methods .method public add(Ljava/lang/Object;)Z .locals 5 .param p1 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .annotation system Ldalvik/annotation/Signature; value = { "(TV;)Z" } .end annotation .prologue .line 416 invoke-static {p1}, Lcom/google/common/collect/Hashing;->smearedHash(Ljava/lang/Object;)I move-result v2 .line 417 invoke-direct {p0}, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->mask()I move-result v0 and-int v3, v2, v0 .line 418 iget-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; aget-object v1, v0, v3 move-object v0, v1 .line 419 :goto_0 if-eqz v0, :cond_1 .line 421 invoke-virtual {v0, p1, v2}, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->matchesValue(Ljava/lang/Object;I)Z move-result v4 if-eqz v4, :cond_0 .line 422 const/4 v0, 0x0 .line 435 :goto_1 return v0 .line 420 :cond_0 iget-object v0, v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->nextInValueBucket:Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; goto :goto_0 .line 426 :cond_1 new-instance v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; iget-object v4, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->key:Ljava/lang/Object; invoke-direct {v0, v4, p1, v2, v1}, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->(Ljava/lang/Object;Ljava/lang/Object;ILcom/google/common/collect/LinkedHashMultimap$ValueEntry;)V .line 427 iget-object v1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->lastEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; invoke-static {v1, v0}, Lcom/google/common/collect/LinkedHashMultimap;->access$200(Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;)V .line 428 invoke-static {v0, p0}, Lcom/google/common/collect/LinkedHashMultimap;->access$200(Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;)V .line 429 iget-object v1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->this$0:Lcom/google/common/collect/LinkedHashMultimap; invoke-static {v1}, Lcom/google/common/collect/LinkedHashMultimap;->access$300(Lcom/google/common/collect/LinkedHashMultimap;)Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; move-result-object v1 invoke-virtual {v1}, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->getPredecessorInMultimap()Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; move-result-object v1 invoke-static {v1, v0}, Lcom/google/common/collect/LinkedHashMultimap;->access$400(Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;)V .line 430 iget-object v1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->this$0:Lcom/google/common/collect/LinkedHashMultimap; invoke-static {v1}, Lcom/google/common/collect/LinkedHashMultimap;->access$300(Lcom/google/common/collect/LinkedHashMultimap;)Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; move-result-object v1 invoke-static {v0, v1}, Lcom/google/common/collect/LinkedHashMultimap;->access$400(Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;)V .line 431 iget-object v1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; aput-object v0, v1, v3 .line 432 iget v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->size:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->size:I .line 433 iget v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->modCount:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->modCount:I .line 434 invoke-direct {p0}, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->rehashIfNecessary()V .line 435 const/4 v0, 0x1 goto :goto_1 .end method .method public clear()V .locals 2 .prologue .line 480 iget-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; const/4 v1, 0x0 invoke-static {v0, v1}, Ljava/util/Arrays;->fill([Ljava/lang/Object;Ljava/lang/Object;)V .line 481 const/4 v0, 0x0 iput v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->size:I .line 482 iget-object v1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->firstEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .line 483 :goto_0 if-eq v1, p0, :cond_0 move-object v0, v1 .line 484 check-cast v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; .line 485 invoke-static {v0}, Lcom/google/common/collect/LinkedHashMultimap;->access$600(Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;)V .line 483 invoke-interface {v1}, Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;->getSuccessorInValueSet()Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; move-result-object v1 goto :goto_0 .line 487 :cond_0 invoke-static {p0, p0}, Lcom/google/common/collect/LinkedHashMultimap;->access$200(Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;)V .line 488 iget v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->modCount:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->modCount:I .line 489 return-void .end method .method public contains(Ljava/lang/Object;)Z .locals 3 .param p1 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .prologue .line 404 invoke-static {p1}, Lcom/google/common/collect/Hashing;->smearedHash(Ljava/lang/Object;)I move-result v1 .line 405 iget-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; invoke-direct {p0}, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->mask()I move-result v2 and-int/2addr v2, v1 aget-object v0, v0, v2 :goto_0 if-eqz v0, :cond_1 .line 407 invoke-virtual {v0, p1, v1}, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->matchesValue(Ljava/lang/Object;I)Z move-result v2 if-eqz v2, :cond_0 .line 408 const/4 v0, 0x1 .line 411 :goto_1 return v0 .line 406 :cond_0 iget-object v0, v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->nextInValueBucket:Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; goto :goto_0 .line 411 :cond_1 const/4 v0, 0x0 goto :goto_1 .end method .method public getPredecessorInValueSet()Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink", ";" } .end annotation .prologue .line 337 iget-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->lastEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; return-object v0 .end method .method public getSuccessorInValueSet()Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink", ";" } .end annotation .prologue .line 342 iget-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->firstEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; return-object v0 .end method .method public iterator()Ljava/util/Iterator; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/Iterator", ";" } .end annotation .prologue .line 357 new-instance v0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet$1; invoke-direct {v0, p0}, Lcom/google/common/collect/LinkedHashMultimap$ValueSet$1;->(Lcom/google/common/collect/LinkedHashMultimap$ValueSet;)V return-object v0 .end method .method public remove(Ljava/lang/Object;)Z .locals 6 .param p1 # Ljava/lang/Object; .annotation runtime Ljavax/annotation/Nullable; .end annotation .end param .prologue .line 456 invoke-static {p1}, Lcom/google/common/collect/Hashing;->smearedHash(Ljava/lang/Object;)I move-result v2 .line 457 invoke-direct {p0}, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->mask()I move-result v0 and-int v3, v2, v0 .line 458 const/4 v1, 0x0 .line 459 iget-object v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; aget-object v0, v0, v3 :goto_0 if-eqz v0, :cond_2 .line 461 invoke-virtual {v0, p1, v2}, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->matchesValue(Ljava/lang/Object;I)Z move-result v4 if-eqz v4, :cond_1 .line 462 if-nez v1, :cond_0 .line 464 iget-object v1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->hashTable:[Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; iget-object v2, v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->nextInValueBucket:Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; aput-object v2, v1, v3 .line 468 :goto_1 invoke-static {v0}, Lcom/google/common/collect/LinkedHashMultimap;->access$500(Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;)V .line 469 invoke-static {v0}, Lcom/google/common/collect/LinkedHashMultimap;->access$600(Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;)V .line 470 iget v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->size:I add-int/lit8 v0, v0, -0x1 iput v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->size:I .line 471 iget v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->modCount:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->modCount:I .line 472 const/4 v0, 0x1 .line 475 :goto_2 return v0 .line 466 :cond_0 iget-object v2, v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->nextInValueBucket:Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; iput-object v2, v1, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->nextInValueBucket:Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; goto :goto_1 .line 460 :cond_1 iget-object v1, v0, Lcom/google/common/collect/LinkedHashMultimap$ValueEntry;->nextInValueBucket:Lcom/google/common/collect/LinkedHashMultimap$ValueEntry; move-object v5, v1 move-object v1, v0 move-object v0, v5 goto :goto_0 .line 475 :cond_2 const/4 v0, 0x0 goto :goto_2 .end method .method public setPredecessorInValueSet(Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink", ";)V" } .end annotation .prologue .line 347 iput-object p1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->lastEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .line 348 return-void .end method .method public setSuccessorInValueSet(Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink", ";)V" } .end annotation .prologue .line 352 iput-object p1, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->firstEntry:Lcom/google/common/collect/LinkedHashMultimap$ValueSetLink; .line 353 return-void .end method .method public size()I .locals 1 .prologue .line 399 iget v0, p0, Lcom/google/common/collect/LinkedHashMultimap$ValueSet;->size:I return v0 .end method