284 lines
14 KiB
Plaintext
284 lines
14 KiB
Plaintext
Processing 'const-method-handle.dex'...
|
|
Opened 'const-method-handle.dex', DEX version '039'
|
|
DEX file header:
|
|
magic : 'dex\n039\0'
|
|
checksum : 16656a27
|
|
signature : 1953...5aa5
|
|
file_size : 2524
|
|
header_size : 112
|
|
link_size : 0
|
|
link_off : 0 (0x000000)
|
|
string_ids_size : 57
|
|
string_ids_off : 112 (0x000070)
|
|
type_ids_size : 26
|
|
type_ids_off : 340 (0x000154)
|
|
proto_ids_size : 18
|
|
proto_ids_off : 444 (0x0001bc)
|
|
field_ids_size : 2
|
|
field_ids_off : 660 (0x000294)
|
|
method_ids_size : 23
|
|
method_ids_off : 676 (0x0002a4)
|
|
class_defs_size : 2
|
|
class_defs_off : 860 (0x00035c)
|
|
data_size : 1588
|
|
data_off : 936 (0x0003a8)
|
|
|
|
Class #0 header:
|
|
class_idx : 5
|
|
access_flags : 1 (0x0001)
|
|
superclass_idx : 11
|
|
interfaces_off : 0 (0x000000)
|
|
source_file_idx : 29
|
|
annotations_off : 1336 (0x000538)
|
|
class_data_off : 2270 (0x0008de)
|
|
static_fields_size : 0
|
|
instance_fields_size: 0
|
|
direct_methods_size : 2
|
|
virtual_methods_size: 0
|
|
|
|
Class #0 annotations:
|
|
Annotations on method #1 'main'
|
|
VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
|
|
|
|
Class #0 -
|
|
Class descriptor : 'LMain;'
|
|
Access flags : 0x0001 (PUBLIC)
|
|
Superclass : 'Ljava/lang/Object;'
|
|
Interfaces -
|
|
Static fields -
|
|
Instance fields -
|
|
Direct methods -
|
|
#0 : (in LMain;)
|
|
name : '<init>'
|
|
type : '()V'
|
|
access : 0x10001 (PUBLIC CONSTRUCTOR)
|
|
method_idx : 0
|
|
code -
|
|
registers : 1
|
|
ins : 1
|
|
outs : 1
|
|
insns size : 4 16-bit code units
|
|
0003b0: |[0003b0] Main.<init>:()V
|
|
0003c0: 7010 0a00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@000a
|
|
0003c6: 0e00 |0003: return-void
|
|
catches : (none)
|
|
positions :
|
|
0x0000 line=22
|
|
locals :
|
|
0x0000 - 0x0004 reg=0 this LMain;
|
|
|
|
#1 : (in LMain;)
|
|
name : 'main'
|
|
type : '([Ljava/lang/String;)V'
|
|
access : 0x0009 (PUBLIC STATIC)
|
|
method_idx : 1
|
|
code -
|
|
registers : 6
|
|
ins : 1
|
|
outs : 4
|
|
insns size : 25 16-bit code units
|
|
0003c8: |[0003c8] Main.main:([Ljava/lang/String;)V
|
|
0003d8: 7100 1500 0000 |0000: invoke-static {}, Ljava/lang/invoke/MethodHandles;.lookup:()Ljava/lang/invoke/MethodHandles$Lookup; // method@0015
|
|
0003de: 0c00 |0003: move-result-object v0
|
|
0003e0: 1c01 0600 |0004: const-class v1, Lconstmethodhandle/ConstTest; // type@0006
|
|
0003e4: 1a02 3000 |0006: const-string v2, "main" // string@0030
|
|
0003e8: 6203 0100 |0008: sget-object v3, Ljava/lang/Void;.TYPE:Ljava/lang/Class; // field@0001
|
|
0003ec: 1c04 1900 |000a: const-class v4, [Ljava/lang/String; // type@0019
|
|
0003f0: 7120 1600 4300 |000c: invoke-static {v3, v4}, Ljava/lang/invoke/MethodType;.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@0016
|
|
0003f6: 0c03 |000f: move-result-object v3
|
|
0003f8: 6e40 1400 1032 |0010: invoke-virtual {v0, v1, v2, v3}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@0014
|
|
0003fe: 0c00 |0013: move-result-object v0
|
|
000400: fa20 1200 5000 1000 |0014: invoke-polymorphic {v0, v5}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, ([Ljava/lang/String;)V // method@0012, proto@0010
|
|
000408: 0e00 |0018: return-void
|
|
catches : (none)
|
|
positions :
|
|
0x0000 line=26
|
|
0x000c line=27
|
|
0x0014 line=28
|
|
0x0018 line=29
|
|
locals :
|
|
0x0000 - 0x0019 reg=5 (null) [Ljava/lang/String;
|
|
|
|
Virtual methods -
|
|
source_file_idx : 29 (Main.java)
|
|
|
|
Class #1 header:
|
|
class_idx : 6
|
|
access_flags : 1 (0x0001)
|
|
superclass_idx : 11
|
|
interfaces_off : 0 (0x000000)
|
|
source_file_idx : 3
|
|
annotations_off : 1360 (0x000550)
|
|
class_data_off : 2284 (0x0008ec)
|
|
static_fields_size : 0
|
|
instance_fields_size: 0
|
|
direct_methods_size : 6
|
|
virtual_methods_size: 0
|
|
|
|
Class #1 annotations:
|
|
Annotations on method #3 'displayMethodHandle'
|
|
VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
|
|
|
|
Class #1 -
|
|
Class descriptor : 'Lconstmethodhandle/ConstTest;'
|
|
Access flags : 0x0001 (PUBLIC)
|
|
Superclass : 'Ljava/lang/Object;'
|
|
Interfaces -
|
|
Static fields -
|
|
Instance fields -
|
|
Direct methods -
|
|
#0 : (in Lconstmethodhandle/ConstTest;)
|
|
name : '<init>'
|
|
type : '()V'
|
|
access : 0x10001 (PUBLIC CONSTRUCTOR)
|
|
method_idx : 2
|
|
code -
|
|
registers : 1
|
|
ins : 1
|
|
outs : 1
|
|
insns size : 4 16-bit code units
|
|
00040c: |[00040c] constmethodhandle.ConstTest.<init>:()V
|
|
00041c: 7010 0a00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@000a
|
|
000422: 0e00 |0003: return-void
|
|
catches : (none)
|
|
positions :
|
|
0x0000 line=22
|
|
locals :
|
|
0x0000 - 0x0004 reg=0 this Lconstmethodhandle/ConstTest;
|
|
|
|
#1 : (in Lconstmethodhandle/ConstTest;)
|
|
name : 'displayMethodHandle'
|
|
type : '(Ljava/lang/invoke/MethodHandle;)V'
|
|
access : 0x000a (PRIVATE STATIC)
|
|
method_idx : 3
|
|
code -
|
|
registers : 4
|
|
ins : 1
|
|
outs : 2
|
|
insns size : 47 16-bit code units
|
|
000424: |[000424] constmethodhandle.ConstTest.displayMethodHandle:(Ljava/lang/invoke/MethodHandle;)V
|
|
000434: 6200 0000 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0000
|
|
000438: 2201 0d00 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@000d
|
|
00043c: 7010 0c00 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@000c
|
|
000442: 1a02 1e00 |0007: const-string v2, "MethodHandle " // string@001e
|
|
000446: 6e20 0e00 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@000e
|
|
00044c: 0c01 |000c: move-result-object v1
|
|
00044e: 6e20 0d00 3100 |000d: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@000d
|
|
000454: 0c01 |0010: move-result-object v1
|
|
000456: 1a02 0000 |0011: const-string v2, " => " // string@0000
|
|
00045a: 6e20 0e00 2100 |0013: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@000e
|
|
000460: 0c01 |0016: move-result-object v1
|
|
000462: 1402 0030 4046 |0017: const v2, #float 12300 // #46403000
|
|
000468: 7110 0900 0200 |001a: invoke-static {v2}, Ljava/lang/Float;.valueOf:(F)Ljava/lang/Float; // method@0009
|
|
00046e: 0c02 |001d: move-result-object v2
|
|
000470: fa20 1100 2300 0100 |001e: invoke-polymorphic {v3, v2}, Ljava/lang/invoke/MethodHandle;.invoke:([Ljava/lang/Object;)Ljava/lang/Object;, (Ljava/lang/Object;)Ljava/lang/Class; // method@0011, proto@0001
|
|
000478: 0c02 |0022: move-result-object v2
|
|
00047a: 6e20 0d00 2100 |0023: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@000d
|
|
000480: 0c01 |0026: move-result-object v1
|
|
000482: 6e10 0f00 0100 |0027: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@000f
|
|
000488: 0c01 |002a: move-result-object v1
|
|
00048a: 6e20 0800 1000 |002b: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0008
|
|
000490: 0e00 |002e: return-void
|
|
catches : (none)
|
|
positions :
|
|
0x0000 line=24
|
|
0x001a line=25
|
|
0x002b line=24
|
|
0x002e line=26
|
|
locals :
|
|
0x0000 - 0x002f reg=3 (null) Ljava/lang/invoke/MethodHandle;
|
|
|
|
#2 : (in Lconstmethodhandle/ConstTest;)
|
|
name : 'displayMethodType'
|
|
type : '(Ljava/lang/invoke/MethodType;)V'
|
|
access : 0x000a (PRIVATE STATIC)
|
|
method_idx : 4
|
|
code -
|
|
registers : 4
|
|
ins : 1
|
|
outs : 2
|
|
insns size : 25 16-bit code units
|
|
000494: |[000494] constmethodhandle.ConstTest.displayMethodType:(Ljava/lang/invoke/MethodType;)V
|
|
0004a4: 6200 0000 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0000
|
|
0004a8: 2201 0d00 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@000d
|
|
0004ac: 7010 0c00 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@000c
|
|
0004b2: 1a02 1f00 |0007: const-string v2, "MethodType " // string@001f
|
|
0004b6: 6e20 0e00 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@000e
|
|
0004bc: 0c01 |000c: move-result-object v1
|
|
0004be: 6e20 0d00 3100 |000d: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@000d
|
|
0004c4: 0c01 |0010: move-result-object v1
|
|
0004c6: 6e10 0f00 0100 |0011: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@000f
|
|
0004cc: 0c01 |0014: move-result-object v1
|
|
0004ce: 6e20 0800 1000 |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0008
|
|
0004d4: 0e00 |0018: return-void
|
|
catches : (none)
|
|
positions :
|
|
0x0000 line=29
|
|
0x0018 line=30
|
|
locals :
|
|
0x0000 - 0x0019 reg=3 (null) Ljava/lang/invoke/MethodType;
|
|
|
|
#3 : (in Lconstmethodhandle/ConstTest;)
|
|
name : 'main'
|
|
type : '([Ljava/lang/String;)V'
|
|
access : 0x0009 (PUBLIC STATIC)
|
|
method_idx : 5
|
|
code -
|
|
registers : 2
|
|
ins : 1
|
|
outs : 1
|
|
insns size : 15 16-bit code units
|
|
0004d8: |[0004d8] constmethodhandle.ConstTest.main:([Ljava/lang/String;)V
|
|
0004e8: 7100 0600 0000 |0000: invoke-static {}, Lconstmethodhandle/ConstTest;.test1:()Ljava/lang/invoke/MethodHandle; // method@0006
|
|
0004ee: 0c00 |0003: move-result-object v0
|
|
0004f0: 7110 0300 0000 |0004: invoke-static {v0}, Lconstmethodhandle/ConstTest;.displayMethodHandle:(Ljava/lang/invoke/MethodHandle;)V // method@0003
|
|
0004f6: 7100 0700 0000 |0007: invoke-static {}, Lconstmethodhandle/ConstTest;.test2:()Ljava/lang/invoke/MethodType; // method@0007
|
|
0004fc: 0c00 |000a: move-result-object v0
|
|
0004fe: 7110 0400 0000 |000b: invoke-static {v0}, Lconstmethodhandle/ConstTest;.displayMethodType:(Ljava/lang/invoke/MethodType;)V // method@0004
|
|
000504: 0e00 |000e: return-void
|
|
catches : (none)
|
|
positions :
|
|
locals :
|
|
|
|
#4 : (in Lconstmethodhandle/ConstTest;)
|
|
name : 'test1'
|
|
type : '()Ljava/lang/invoke/MethodHandle;'
|
|
access : 0x0009 (PUBLIC STATIC)
|
|
method_idx : 6
|
|
code -
|
|
registers : 1
|
|
ins : 0
|
|
outs : 0
|
|
insns size : 3 16-bit code units
|
|
000508: |[000508] constmethodhandle.ConstTest.test1:()Ljava/lang/invoke/MethodHandle;
|
|
000518: fe00 0000 |0000: const-method-handle v0, method_handle@0000
|
|
00051c: 1100 |0002: return-object v0
|
|
catches : (none)
|
|
positions :
|
|
locals :
|
|
|
|
#5 : (in Lconstmethodhandle/ConstTest;)
|
|
name : 'test2'
|
|
type : '()Ljava/lang/invoke/MethodType;'
|
|
access : 0x0009 (PUBLIC STATIC)
|
|
method_idx : 7
|
|
code -
|
|
registers : 1
|
|
ins : 0
|
|
outs : 0
|
|
insns size : 3 16-bit code units
|
|
000520: |[000520] constmethodhandle.ConstTest.test2:()Ljava/lang/invoke/MethodType;
|
|
000530: ff00 1100 |0000: const-method-type v0, (CSIJFDLjava/lang/Object;)Z // proto@0011
|
|
000534: 1100 |0002: return-object v0
|
|
catches : (none)
|
|
positions :
|
|
locals :
|
|
|
|
Virtual methods -
|
|
source_file_idx : 3 (ConstTest.java)
|
|
|
|
Method handle #0:
|
|
type : invoke-instance
|
|
target : Ljava/lang/Object; getClass
|
|
target_type : (Ljava/lang/Object;)Ljava/lang/Class;
|