Preventing duplicate field access
This commit is contained in:
67
testData/src/pkg/TestFieldSingleAccess.jasm
Normal file
67
testData/src/pkg/TestFieldSingleAccess.jasm
Normal file
@@ -0,0 +1,67 @@
|
||||
/**
|
||||
* This code can be assembled with <a href="https://wiki.openjdk.java.net/display/CodeTools/asmtools">asmtools</a>
|
||||
* using <code>asmtools jasm -g *.jasm</code> command line.
|
||||
*/
|
||||
package pkg;
|
||||
|
||||
super public final class TestFieldSingleAccess
|
||||
version 52:0
|
||||
{
|
||||
|
||||
public Field field:"Ljava/lang/Integer;";
|
||||
|
||||
public Method "<init>":"()V"
|
||||
stack 1 locals 1
|
||||
{
|
||||
aload_0;
|
||||
invokespecial Method java/lang/Object."<init>":"()V";
|
||||
return;
|
||||
}
|
||||
|
||||
public final Method test:"()V"
|
||||
stack 2 locals 1
|
||||
{
|
||||
aload_0;
|
||||
getfield Field field:"Ljava/lang/Integer;";
|
||||
dup;
|
||||
ifnull L17;
|
||||
getstatic Field java/lang/System.out:"Ljava/io/PrintStream;";
|
||||
swap;
|
||||
invokevirtual Method java/io/PrintStream.println:"(Ljava/lang/Object;)V";
|
||||
L17: stack_frame_type same;
|
||||
return;
|
||||
}
|
||||
|
||||
public final Method test1:"()V"
|
||||
stack 2 locals 3
|
||||
{
|
||||
aload_0;
|
||||
getfield Field field:"Ljava/lang/Integer;";
|
||||
dup;
|
||||
astore_1;
|
||||
monitorenter;
|
||||
try t0;
|
||||
getstatic Field java/lang/System.out:"Ljava/io/PrintStream;";
|
||||
bipush 49;
|
||||
invokevirtual Method java/io/PrintStream.println:"(C)V";
|
||||
aload_1;
|
||||
monitorexit;
|
||||
endtry t0;
|
||||
goto L25;
|
||||
catch t0 #0;
|
||||
catch t1 #0;
|
||||
try t1;
|
||||
stack_frame_type full;
|
||||
locals_map class TestFieldSingleAccess, class java/lang/Object;
|
||||
stack_map class java/lang/Throwable;
|
||||
astore_2;
|
||||
aload_1;
|
||||
monitorexit;
|
||||
endtry t1;
|
||||
aload_2;
|
||||
athrow;
|
||||
L25: stack_frame_type chop1;
|
||||
return;
|
||||
}
|
||||
|
||||
} // end Class TestFieldSingleAccess
|
||||
Reference in New Issue
Block a user