xref: /aosp_15_r20/art/test/088-monitor-verification/smali/UnbalancedJoin.smali (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard Worker.class public LUnbalancedJoin;
2*795d594fSAndroid Build Coastguard Worker
3*795d594fSAndroid Build Coastguard Worker.super Ljava/lang/Object;
4*795d594fSAndroid Build Coastguard Worker
5*795d594fSAndroid Build Coastguard Worker.method public static run(Ljava/lang/Object;Ljava/lang/Object;)V
6*795d594fSAndroid Build Coastguard Worker   .registers 3
7*795d594fSAndroid Build Coastguard Worker
8*795d594fSAndroid Build Coastguard Worker   invoke-static {}, LMain;->assertIsInterpreted()V
9*795d594fSAndroid Build Coastguard Worker
10*795d594fSAndroid Build Coastguard Worker   if-eqz v2, :Lnull
11*795d594fSAndroid Build Coastguard Worker
12*795d594fSAndroid Build Coastguard Worker:LnotNull
13*795d594fSAndroid Build Coastguard Worker
14*795d594fSAndroid Build Coastguard Worker   monitor-enter v1      # 1
15*795d594fSAndroid Build Coastguard Worker   monitor-enter v2      # 2
16*795d594fSAndroid Build Coastguard Worker   goto :Lend
17*795d594fSAndroid Build Coastguard Worker
18*795d594fSAndroid Build Coastguard Worker:Lnull
19*795d594fSAndroid Build Coastguard Worker   monitor-enter v2      # 1
20*795d594fSAndroid Build Coastguard Worker   monitor-enter v1      # 2
21*795d594fSAndroid Build Coastguard Worker
22*795d594fSAndroid Build Coastguard Worker:Lend
23*795d594fSAndroid Build Coastguard Worker
24*795d594fSAndroid Build Coastguard Worker   # Lock levels are "opposite" for the joined flows.
25*795d594fSAndroid Build Coastguard Worker
26*795d594fSAndroid Build Coastguard Worker   monitor-exit v2       # 2
27*795d594fSAndroid Build Coastguard Worker   monitor-exit v1       # 1
28*795d594fSAndroid Build Coastguard Worker
29*795d594fSAndroid Build Coastguard Worker   return-void
30*795d594fSAndroid Build Coastguard Worker
31*795d594fSAndroid Build Coastguard Worker.end method
32