blob: 5927fed8f3f79b6a273f55549d2913b9196d0ffe [file] [log] [blame]
; Copyright (C) 2008 The Android Open Source Project
;
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
; You may obtain a copy of the License at
;
; http://www.apache.org/licenses/LICENSE-2.0
;
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
.source T_monitorenter_2.java
.class public dxc/junit/opcodes/monitorenter/jm/T_monitorenter_2
.super java/lang/Object
.field private flg I
.field public result Z
.method public <init>()V
.limit stack 2
.limit locals 1
aload_0
invokespecial java/lang/Object/<init>()V
aload_0
iconst_0
putfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_2.flg I
aload_0
iconst_1
putfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_2.result Z
return
.end method
.method public run(I)V
.throws java/lang/InterruptedException
.limit stack 3
.limit locals 4
aload_0
dup
astore_2
monitorenter
Label13:
aload_0
dup
astore_3
monitorenter
Label7:
aload_0
iload_1
putfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_2.flg I
aload_3
monitorexit
Label8:
goto Label0
Label9:
aload_0
iconst_0
putfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_2.result Z
aload_3
monitorexit
Label11:
athrow
Label0:
ldc2_w 500
invokestatic java/lang/Thread/sleep(J)V
aload_0
getfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_2.flg I
iload_1
if_icmpeq Label1
aload_0
iconst_0
putfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_2.result Z
Label1:
aload_2
monitorexit
Label14:
goto Label2
Label15:
aload_0
iconst_0
putfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_2.result Z
aload_2
monitorexit
Label17:
athrow
Label2:
return
.catch all from Label7 to Label8 using Label9
.catch all from Label9 to Label11 using Label9
.catch all from Label13 to Label14 using Label15
.catch all from Label15 to Label17 using Label15
.end method