Home | History | Annotate | Download | only in smali
      1 .class public LOK;
      2 
      3 .super Ljava/lang/Object;
      4 
      5 .method public static run(Ljava/lang/Object;Ljava/lang/Object;)V
      6    .registers 3
      7 
      8    invoke-static {v1, v2}, LOK;->runNoMonitors(Ljava/lang/Object;Ljava/lang/Object;)V
      9 
     10    invoke-static {v1, v2}, LOK;->runStraightLine(Ljava/lang/Object;Ljava/lang/Object;)V
     11 
     12    invoke-static {v1, v2}, LOK;->runBalancedJoin(Ljava/lang/Object;Ljava/lang/Object;)V
     13 
     14    return-void
     15 
     16 .end method
     17 
     18 
     19 
     20 .method public static runNoMonitors(Ljava/lang/Object;Ljava/lang/Object;)V
     21    .registers 3
     22 
     23    invoke-static {}, LMain;->assertIsManaged()V
     24 
     25    return-void
     26 
     27 .end method
     28 
     29 .method public static runStraightLine(Ljava/lang/Object;Ljava/lang/Object;)V
     30    .registers 3
     31 
     32    invoke-static {}, LMain;->assertIsManaged()V
     33 
     34    monitor-enter v1      # 1
     35    monitor-enter v2      # 2
     36 
     37    monitor-exit v2       # 2
     38    monitor-exit v1       # 1
     39 
     40    return-void
     41 
     42 .end method
     43 
     44 .method public static runBalancedJoin(Ljava/lang/Object;Ljava/lang/Object;)V
     45    .registers 3
     46 
     47    invoke-static {}, LMain;->assertIsManaged()V
     48 
     49    monitor-enter v1      # 1
     50 
     51    if-eqz v2, :Lnull
     52 
     53 :LnotNull
     54 
     55    monitor-enter v2      # 2
     56    goto :Lend
     57 
     58 :Lnull
     59    monitor-enter v2      # 2
     60 
     61 :Lend
     62 
     63    monitor-exit v2       # 2
     64    monitor-exit v1       # 1
     65 
     66    return-void
     67 
     68 .end method
     69