-
-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
upnotes
committed
Oct 3, 2018
1 parent
de14514
commit 81faff6
Showing
7 changed files
with
159 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
package pkg; | ||
|
||
public final class TestFieldSingleAccess { | ||
public Integer field; | ||
|
||
public final void test() { | ||
Integer var10000 = this.field; | ||
if (var10000 != null) { | ||
System.out.println(var10000); | ||
} | ||
|
||
} | ||
|
||
public final void test1() { | ||
synchronized(this.field) { | ||
System.out.println('1'); | ||
} | ||
} | ||
} | ||
|
||
class 'pkg/TestFieldSingleAccess' { | ||
method 'test ()V' { | ||
1 6 | ||
5 7 | ||
8 8 | ||
c 8 | ||
f 11 | ||
} | ||
|
||
method 'test1 ()V' { | ||
1 14 | ||
6 14 | ||
7 15 | ||
a 15 | ||
c 15 | ||
19 17 | ||
} | ||
} | ||
|
||
Lines mapping: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |