blob: 0ea107d201a241fd2eab42da1375c401eadd6fb4 [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_1.java
.class public dxc/junit/opcodes/monitorenter/jm/T_monitorenter_1
.super java/lang/Object
.field public counter I
.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_1.counter I
return
.end method
.method public run()V
.throws java/lang/InterruptedException
.limit stack 3
.limit locals 3
Label1:
aload_0
dup
astore_1
monitorenter
Label5:
aload_0
getfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_1.counter I
istore_2
Label3:
ldc2_w 500
invokestatic java/lang/Thread/sleep(J)V
aload_0
iinc 2 1
iload_2
putfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_1.counter I
Label4:
aload_1
monitorexit
Label6:
goto Label0
Label7:
aload_1
monitorexit
Label9:
aload_0
iconst_m1
putfield dxc.junit.opcodes.monitorenter.jm.T_monitorenter_1.counter I
athrow
Label0:
return
.catch all from Label5 to Label6 using Label7
.catch all from Label7 to Label9 using Label7
.end method