| ; 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 |