.class public LOK; .super Ljava/lang/Object; .method public static run(Ljava/lang/Object;Ljava/lang/Object;)V .registers 3 invoke-static {v1, v2}, LOK;->runNoMonitors(Ljava/lang/Object;Ljava/lang/Object;)V invoke-static {v1, v2}, LOK;->runStraightLine(Ljava/lang/Object;Ljava/lang/Object;)V invoke-static {v1, v2}, LOK;->runBalancedJoin(Ljava/lang/Object;Ljava/lang/Object;)V return-void .end method .method public static runNoMonitors(Ljava/lang/Object;Ljava/lang/Object;)V .registers 3 invoke-static {}, LMain;->assertIsManaged()V return-void .end method .method public static runStraightLine(Ljava/lang/Object;Ljava/lang/Object;)V .registers 3 invoke-static {}, LMain;->assertIsManaged()V monitor-enter v1 # 1 monitor-enter v2 # 2 monitor-exit v2 # 2 monitor-exit v1 # 1 return-void .end method .method public static runBalancedJoin(Ljava/lang/Object;Ljava/lang/Object;)V .registers 3 invoke-static {}, LMain;->assertIsManaged()V monitor-enter v1 # 1 if-eqz v2, :Lnull :LnotNull monitor-enter v2 # 2 goto :Lend :Lnull monitor-enter v2 # 2 :Lend monitor-exit v2 # 2 monitor-exit v1 # 1 return-void .end method