.class final Lcom/facebook/internal/WorkQueue$WorkNode; .super Ljava/lang/Object; .source "SourceFile" # interfaces .implements Lcom/facebook/internal/WorkQueue$WorkItem; # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/facebook/internal/WorkQueue; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x11 name = "WorkNode" .end annotation # instance fields .field private final callback:Ljava/lang/Runnable; .field private isRunning:Z .field private next:Lcom/facebook/internal/WorkQueue$WorkNode; .field private prev:Lcom/facebook/internal/WorkQueue$WorkNode; .field final synthetic this$0:Lcom/facebook/internal/WorkQueue; # direct methods .method public constructor (Lcom/facebook/internal/WorkQueue;Ljava/lang/Runnable;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Runnable;", ")V" } .end annotation const-string v0, "this$0" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "callback" invoke-static {p2, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iput-object p1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->this$0:Lcom/facebook/internal/WorkQueue; .line 107 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p2, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->callback:Ljava/lang/Runnable; return-void .end method # virtual methods .method public final addToList(Lcom/facebook/internal/WorkQueue$WorkNode;Z)Lcom/facebook/internal/WorkQueue$WorkNode; .locals 4 .line 133 sget-object v0, Lcom/facebook/internal/WorkQueue;->Companion:Lcom/facebook/internal/WorkQueue$Companion; iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; const/4 v2, 0x0 const/4 v3, 0x1 if-nez v1, :cond_0 move v1, v3 goto :goto_0 :cond_0 move v1, v2 :goto_0 invoke-static {v0, v1}, Lcom/facebook/internal/WorkQueue$Companion;->access$assert(Lcom/facebook/internal/WorkQueue$Companion;Z)V iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; if-nez v1, :cond_1 move v2, v3 .line 134 :cond_1 invoke-static {v0, v2}, Lcom/facebook/internal/WorkQueue$Companion;->access$assert(Lcom/facebook/internal/WorkQueue$Companion;Z)V if-nez p1, :cond_2 iput-object p0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; iput-object p0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; move-object p1, p0 goto :goto_3 :cond_2 iput-object p1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; .line 141 iget-object v0, p1, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; iput-object v0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; if-nez v0, :cond_3 goto :goto_1 .line 142 :cond_3 iput-object p0, v0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; :goto_1 iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; if-nez v1, :cond_4 goto :goto_3 :cond_4 if-nez v0, :cond_5 const/4 v0, 0x0 goto :goto_2 .line 143 :cond_5 iget-object v0, v0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; :goto_2 iput-object v0, v1, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; :goto_3 if-eqz p2, :cond_6 move-object p1, p0 :cond_6 return-object p1 .end method .method public cancel()Z .locals 3 iget-object v0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->this$0:Lcom/facebook/internal/WorkQueue; .line 113 invoke-static {v0}, Lcom/facebook/internal/WorkQueue;->access$getWorkLock$p(Lcom/facebook/internal/WorkQueue;)Ljava/util/concurrent/locks/ReentrantLock; move-result-object v0 iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->this$0:Lcom/facebook/internal/WorkQueue; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 114 :try_start_0 invoke-virtual {p0}, Lcom/facebook/internal/WorkQueue$WorkNode;->isRunning()Z move-result v2 if-nez v2, :cond_0 .line 115 invoke-static {v1}, Lcom/facebook/internal/WorkQueue;->access$getPendingJobs$p(Lcom/facebook/internal/WorkQueue;)Lcom/facebook/internal/WorkQueue$WorkNode; move-result-object v2 invoke-virtual {p0, v2}, Lcom/facebook/internal/WorkQueue$WorkNode;->removeFromList(Lcom/facebook/internal/WorkQueue$WorkNode;)Lcom/facebook/internal/WorkQueue$WorkNode; move-result-object v2 invoke-static {v1, v2}, Lcom/facebook/internal/WorkQueue;->access$setPendingJobs$p(Lcom/facebook/internal/WorkQueue;Lcom/facebook/internal/WorkQueue$WorkNode;)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 116 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V const/4 v0, 0x1 return v0 :catchall_0 move-exception v1 goto :goto_0 .line 118 :cond_0 :try_start_1 sget-object v1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 .line 113 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V const/4 v0, 0x0 return v0 :goto_0 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw v1 .end method .method public final getCallback()Ljava/lang/Runnable; .locals 1 iget-object v0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->callback:Ljava/lang/Runnable; return-object v0 .end method .method public final getNext()Lcom/facebook/internal/WorkQueue$WorkNode; .locals 1 iget-object v0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; return-object v0 .end method .method public isRunning()Z .locals 1 iget-boolean v0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->isRunning:Z return v0 .end method .method public moveToFront()V .locals 4 iget-object v0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->this$0:Lcom/facebook/internal/WorkQueue; .line 123 invoke-static {v0}, Lcom/facebook/internal/WorkQueue;->access$getWorkLock$p(Lcom/facebook/internal/WorkQueue;)Ljava/util/concurrent/locks/ReentrantLock; move-result-object v0 iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->this$0:Lcom/facebook/internal/WorkQueue; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 124 :try_start_0 invoke-virtual {p0}, Lcom/facebook/internal/WorkQueue$WorkNode;->isRunning()Z move-result v2 if-nez v2, :cond_0 .line 125 invoke-static {v1}, Lcom/facebook/internal/WorkQueue;->access$getPendingJobs$p(Lcom/facebook/internal/WorkQueue;)Lcom/facebook/internal/WorkQueue$WorkNode; move-result-object v2 invoke-virtual {p0, v2}, Lcom/facebook/internal/WorkQueue$WorkNode;->removeFromList(Lcom/facebook/internal/WorkQueue$WorkNode;)Lcom/facebook/internal/WorkQueue$WorkNode; move-result-object v2 invoke-static {v1, v2}, Lcom/facebook/internal/WorkQueue;->access$setPendingJobs$p(Lcom/facebook/internal/WorkQueue;Lcom/facebook/internal/WorkQueue$WorkNode;)V .line 126 invoke-static {v1}, Lcom/facebook/internal/WorkQueue;->access$getPendingJobs$p(Lcom/facebook/internal/WorkQueue;)Lcom/facebook/internal/WorkQueue$WorkNode; move-result-object v2 const/4 v3, 0x1 invoke-virtual {p0, v2, v3}, Lcom/facebook/internal/WorkQueue$WorkNode;->addToList(Lcom/facebook/internal/WorkQueue$WorkNode;Z)Lcom/facebook/internal/WorkQueue$WorkNode; move-result-object v2 invoke-static {v1, v2}, Lcom/facebook/internal/WorkQueue;->access$setPendingJobs$p(Lcom/facebook/internal/WorkQueue;Lcom/facebook/internal/WorkQueue$WorkNode;)V goto :goto_0 :catchall_0 move-exception v1 goto :goto_1 .line 128 :cond_0 :goto_0 sget-object v1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 123 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :goto_1 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw v1 .end method .method public final removeFromList(Lcom/facebook/internal/WorkQueue$WorkNode;)Lcom/facebook/internal/WorkQueue$WorkNode; .locals 4 .line 151 sget-object v0, Lcom/facebook/internal/WorkQueue;->Companion:Lcom/facebook/internal/WorkQueue$Companion; iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; const/4 v2, 0x0 const/4 v3, 0x1 if-eqz v1, :cond_0 move v1, v3 goto :goto_0 :cond_0 move v1, v2 :goto_0 invoke-static {v0, v1}, Lcom/facebook/internal/WorkQueue$Companion;->access$assert(Lcom/facebook/internal/WorkQueue$Companion;Z)V iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; if-eqz v1, :cond_1 move v2, v3 .line 152 :cond_1 invoke-static {v0, v2}, Lcom/facebook/internal/WorkQueue$Companion;->access$assert(Lcom/facebook/internal/WorkQueue$Companion;Z)V const/4 v0, 0x0 if-ne p1, p0, :cond_2 iget-object p1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; if-ne p1, p0, :cond_2 move-object p1, v0 :cond_2 iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; if-nez v1, :cond_3 goto :goto_1 :cond_3 iget-object v2, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; .line 161 iput-object v2, v1, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; :goto_1 iget-object v2, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; if-nez v2, :cond_4 goto :goto_2 .line 162 :cond_4 iput-object v1, v2, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; :goto_2 iput-object v0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; iput-object v0, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; return-object p1 .end method .method public setRunning(Z)V .locals 0 iput-boolean p1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->isRunning:Z return-void .end method .method public final verify(Z)V .locals 4 .line 169 sget-object v0, Lcom/facebook/internal/WorkQueue;->Companion:Lcom/facebook/internal/WorkQueue$Companion; iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; if-nez v1, :cond_0 goto :goto_0 :cond_0 iget-object v1, v1, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; if-nez v1, :cond_1 :goto_0 move-object v1, p0 :cond_1 const/4 v2, 0x0 const/4 v3, 0x1 if-ne v1, p0, :cond_2 move v1, v3 goto :goto_1 :cond_2 move v1, v2 :goto_1 invoke-static {v0, v1}, Lcom/facebook/internal/WorkQueue$Companion;->access$assert(Lcom/facebook/internal/WorkQueue$Companion;Z)V iget-object v1, p0, Lcom/facebook/internal/WorkQueue$WorkNode;->next:Lcom/facebook/internal/WorkQueue$WorkNode; if-nez v1, :cond_3 goto :goto_2 .line 170 :cond_3 iget-object v1, v1, Lcom/facebook/internal/WorkQueue$WorkNode;->prev:Lcom/facebook/internal/WorkQueue$WorkNode; if-nez v1, :cond_4 :goto_2 move-object v1, p0 :cond_4 if-ne v1, p0, :cond_5 move v1, v3 goto :goto_3 :cond_5 move v1, v2 :goto_3 invoke-static {v0, v1}, Lcom/facebook/internal/WorkQueue$Companion;->access$assert(Lcom/facebook/internal/WorkQueue$Companion;Z)V .line 171 invoke-virtual {p0}, Lcom/facebook/internal/WorkQueue$WorkNode;->isRunning()Z move-result v1 if-ne v1, p1, :cond_6 move v2, v3 :cond_6 invoke-static {v0, v2}, Lcom/facebook/internal/WorkQueue$Companion;->access$assert(Lcom/facebook/internal/WorkQueue$Companion;Z)V return-void .end method