Home | History | Annotate | Download | only in dexdump
      1 Processing 'const-method-handle.dex'...
      2 Opened 'const-method-handle.dex', DEX version '039'
      3 DEX file header:
      4 magic               : 'dex\n039\0'
      5 checksum            : 16656a27
      6 signature           : 1953...5aa5
      7 file_size           : 2524
      8 header_size         : 112
      9 link_size           : 0
     10 link_off            : 0 (0x000000)
     11 string_ids_size     : 57
     12 string_ids_off      : 112 (0x000070)
     13 type_ids_size       : 26
     14 type_ids_off        : 340 (0x000154)
     15 proto_ids_size      : 18
     16 proto_ids_off       : 444 (0x0001bc)
     17 field_ids_size      : 2
     18 field_ids_off       : 660 (0x000294)
     19 method_ids_size     : 23
     20 method_ids_off      : 676 (0x0002a4)
     21 class_defs_size     : 2
     22 class_defs_off      : 860 (0x00035c)
     23 data_size           : 1588
     24 data_off            : 936 (0x0003a8)
     25 
     26 Class #0 header:
     27 class_idx           : 5
     28 access_flags        : 1 (0x0001)
     29 superclass_idx      : 11
     30 interfaces_off      : 0 (0x000000)
     31 source_file_idx     : 29
     32 annotations_off     : 1336 (0x000538)
     33 class_data_off      : 2270 (0x0008de)
     34 static_fields_size  : 0
     35 instance_fields_size: 0
     36 direct_methods_size : 2
     37 virtual_methods_size: 0
     38 
     39 Class #0 annotations:
     40 Annotations on method #1 'main'
     41   VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
     42 
     43 Class #0            -
     44   Class descriptor  : 'LMain;'
     45   Access flags      : 0x0001 (PUBLIC)
     46   Superclass        : 'Ljava/lang/Object;'
     47   Interfaces        -
     48   Static fields     -
     49   Instance fields   -
     50   Direct methods    -
     51     #0              : (in LMain;)
     52       name          : '<init>'
     53       type          : '()V'
     54       access        : 0x10001 (PUBLIC CONSTRUCTOR)
     55       code          -
     56       registers     : 1
     57       ins           : 1
     58       outs          : 1
     59       insns size    : 4 16-bit code units
     60 0003b0:                                        |[0003b0] Main.<init>:()V
     61 0003c0: 7010 0a00 0000                         |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@000a
     62 0003c6: 0e00                                   |0003: return-void
     63       catches       : (none)
     64       positions     : 
     65         0x0000 line=22
     66       locals        : 
     67         0x0000 - 0x0004 reg=0 this LMain; 
     68 
     69     #1              : (in LMain;)
     70       name          : 'main'
     71       type          : '([Ljava/lang/String;)V'
     72       access        : 0x0009 (PUBLIC STATIC)
     73       code          -
     74       registers     : 6
     75       ins           : 1
     76       outs          : 4
     77       insns size    : 25 16-bit code units
     78 0003c8:                                        |[0003c8] Main.main:([Ljava/lang/String;)V
     79 0003d8: 7100 1500 0000                         |0000: invoke-static {}, Ljava/lang/invoke/MethodHandles;.lookup:()Ljava/lang/invoke/MethodHandles$Lookup; // method@0015
     80 0003de: 0c00                                   |0003: move-result-object v0
     81 0003e0: 1c01 0600                              |0004: const-class v1, Lconstmethodhandle/ConstTest; // type@0006
     82 0003e4: 1a02 3000                              |0006: const-string v2, "main" // string@0030
     83 0003e8: 6203 0100                              |0008: sget-object v3, Ljava/lang/Void;.TYPE:Ljava/lang/Class; // field@0001
     84 0003ec: 1c04 1900                              |000a: const-class v4, [Ljava/lang/String; // type@0019
     85 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
     86 0003f6: 0c03                                   |000f: move-result-object v3
     87 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
     88 0003fe: 0c00                                   |0013: move-result-object v0
     89 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
     90 000408: 0e00                                   |0018: return-void
     91       catches       : (none)
     92       positions     : 
     93         0x0000 line=26
     94         0x000c line=27
     95         0x0014 line=28
     96         0x0018 line=29
     97       locals        : 
     98         0x0000 - 0x0019 reg=5 (null) [Ljava/lang/String; 
     99 
    100   Virtual methods   -
    101   source_file_idx   : 29 (Main.java)
    102 
    103 Class #1 header:
    104 class_idx           : 6
    105 access_flags        : 1 (0x0001)
    106 superclass_idx      : 11
    107 interfaces_off      : 0 (0x000000)
    108 source_file_idx     : 3
    109 annotations_off     : 1360 (0x000550)
    110 class_data_off      : 2284 (0x0008ec)
    111 static_fields_size  : 0
    112 instance_fields_size: 0
    113 direct_methods_size : 6
    114 virtual_methods_size: 0
    115 
    116 Class #1 annotations:
    117 Annotations on method #3 'displayMethodHandle'
    118   VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
    119 
    120 Class #1            -
    121   Class descriptor  : 'Lconstmethodhandle/ConstTest;'
    122   Access flags      : 0x0001 (PUBLIC)
    123   Superclass        : 'Ljava/lang/Object;'
    124   Interfaces        -
    125   Static fields     -
    126   Instance fields   -
    127   Direct methods    -
    128     #0              : (in Lconstmethodhandle/ConstTest;)
    129       name          : '<init>'
    130       type          : '()V'
    131       access        : 0x10001 (PUBLIC CONSTRUCTOR)
    132       code          -
    133       registers     : 1
    134       ins           : 1
    135       outs          : 1
    136       insns size    : 4 16-bit code units
    137 00040c:                                        |[00040c] constmethodhandle.ConstTest.<init>:()V
    138 00041c: 7010 0a00 0000                         |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@000a
    139 000422: 0e00                                   |0003: return-void
    140       catches       : (none)
    141       positions     : 
    142         0x0000 line=22
    143       locals        : 
    144         0x0000 - 0x0004 reg=0 this Lconstmethodhandle/ConstTest; 
    145 
    146     #1              : (in Lconstmethodhandle/ConstTest;)
    147       name          : 'displayMethodHandle'
    148       type          : '(Ljava/lang/invoke/MethodHandle;)V'
    149       access        : 0x000a (PRIVATE STATIC)
    150       code          -
    151       registers     : 4
    152       ins           : 1
    153       outs          : 2
    154       insns size    : 47 16-bit code units
    155 000424:                                        |[000424] constmethodhandle.ConstTest.displayMethodHandle:(Ljava/lang/invoke/MethodHandle;)V
    156 000434: 6200 0000                              |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0000
    157 000438: 2201 0d00                              |0002: new-instance v1, Ljava/lang/StringBuilder; // type@000d
    158 00043c: 7010 0c00 0100                         |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@000c
    159 000442: 1a02 1e00                              |0007: const-string v2, "MethodHandle " // string@001e
    160 000446: 6e20 0e00 2100                         |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@000e
    161 00044c: 0c01                                   |000c: move-result-object v1
    162 00044e: 6e20 0d00 3100                         |000d: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@000d
    163 000454: 0c01                                   |0010: move-result-object v1
    164 000456: 1a02 0000                              |0011: const-string v2, " => " // string@0000
    165 00045a: 6e20 0e00 2100                         |0013: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@000e
    166 000460: 0c01                                   |0016: move-result-object v1
    167 000462: 1402 0030 4046                         |0017: const v2, #float 12300 // #46403000
    168 000468: 7110 0900 0200                         |001a: invoke-static {v2}, Ljava/lang/Float;.valueOf:(F)Ljava/lang/Float; // method@0009
    169 00046e: 0c02                                   |001d: move-result-object v2
    170 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
    171 000478: 0c02                                   |0022: move-result-object v2
    172 00047a: 6e20 0d00 2100                         |0023: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@000d
    173 000480: 0c01                                   |0026: move-result-object v1
    174 000482: 6e10 0f00 0100                         |0027: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@000f
    175 000488: 0c01                                   |002a: move-result-object v1
    176 00048a: 6e20 0800 1000                         |002b: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0008
    177 000490: 0e00                                   |002e: return-void
    178       catches       : (none)
    179       positions     : 
    180         0x0000 line=24
    181         0x001a line=25
    182         0x002b line=24
    183         0x002e line=26
    184       locals        : 
    185         0x0000 - 0x002f reg=3 (null) Ljava/lang/invoke/MethodHandle; 
    186 
    187     #2              : (in Lconstmethodhandle/ConstTest;)
    188       name          : 'displayMethodType'
    189       type          : '(Ljava/lang/invoke/MethodType;)V'
    190       access        : 0x000a (PRIVATE STATIC)
    191       code          -
    192       registers     : 4
    193       ins           : 1
    194       outs          : 2
    195       insns size    : 25 16-bit code units
    196 000494:                                        |[000494] constmethodhandle.ConstTest.displayMethodType:(Ljava/lang/invoke/MethodType;)V
    197 0004a4: 6200 0000                              |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0000
    198 0004a8: 2201 0d00                              |0002: new-instance v1, Ljava/lang/StringBuilder; // type@000d
    199 0004ac: 7010 0c00 0100                         |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@000c
    200 0004b2: 1a02 1f00                              |0007: const-string v2, "MethodType " // string@001f
    201 0004b6: 6e20 0e00 2100                         |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@000e
    202 0004bc: 0c01                                   |000c: move-result-object v1
    203 0004be: 6e20 0d00 3100                         |000d: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@000d
    204 0004c4: 0c01                                   |0010: move-result-object v1
    205 0004c6: 6e10 0f00 0100                         |0011: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@000f
    206 0004cc: 0c01                                   |0014: move-result-object v1
    207 0004ce: 6e20 0800 1000                         |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0008
    208 0004d4: 0e00                                   |0018: return-void
    209       catches       : (none)
    210       positions     : 
    211         0x0000 line=29
    212         0x0018 line=30
    213       locals        : 
    214         0x0000 - 0x0019 reg=3 (null) Ljava/lang/invoke/MethodType; 
    215 
    216     #3              : (in Lconstmethodhandle/ConstTest;)
    217       name          : 'main'
    218       type          : '([Ljava/lang/String;)V'
    219       access        : 0x0009 (PUBLIC STATIC)
    220       code          -
    221       registers     : 2
    222       ins           : 1
    223       outs          : 1
    224       insns size    : 15 16-bit code units
    225 0004d8:                                        |[0004d8] constmethodhandle.ConstTest.main:([Ljava/lang/String;)V
    226 0004e8: 7100 0600 0000                         |0000: invoke-static {}, Lconstmethodhandle/ConstTest;.test1:()Ljava/lang/invoke/MethodHandle; // method@0006
    227 0004ee: 0c00                                   |0003: move-result-object v0
    228 0004f0: 7110 0300 0000                         |0004: invoke-static {v0}, Lconstmethodhandle/ConstTest;.displayMethodHandle:(Ljava/lang/invoke/MethodHandle;)V // method@0003
    229 0004f6: 7100 0700 0000                         |0007: invoke-static {}, Lconstmethodhandle/ConstTest;.test2:()Ljava/lang/invoke/MethodType; // method@0007
    230 0004fc: 0c00                                   |000a: move-result-object v0
    231 0004fe: 7110 0400 0000                         |000b: invoke-static {v0}, Lconstmethodhandle/ConstTest;.displayMethodType:(Ljava/lang/invoke/MethodType;)V // method@0004
    232 000504: 0e00                                   |000e: return-void
    233       catches       : (none)
    234       positions     : 
    235       locals        : 
    236 
    237     #4              : (in Lconstmethodhandle/ConstTest;)
    238       name          : 'test1'
    239       type          : '()Ljava/lang/invoke/MethodHandle;'
    240       access        : 0x0009 (PUBLIC STATIC)
    241       code          -
    242       registers     : 1
    243       ins           : 0
    244       outs          : 0
    245       insns size    : 3 16-bit code units
    246 000508:                                        |[000508] constmethodhandle.ConstTest.test1:()Ljava/lang/invoke/MethodHandle;
    247 000518: fe00 0000                              |0000: const-method-handle v0, method_handle@0000
    248 00051c: 1100                                   |0002: return-object v0
    249       catches       : (none)
    250       positions     : 
    251       locals        : 
    252 
    253     #5              : (in Lconstmethodhandle/ConstTest;)
    254       name          : 'test2'
    255       type          : '()Ljava/lang/invoke/MethodType;'
    256       access        : 0x0009 (PUBLIC STATIC)
    257       code          -
    258       registers     : 1
    259       ins           : 0
    260       outs          : 0
    261       insns size    : 3 16-bit code units
    262 000520:                                        |[000520] constmethodhandle.ConstTest.test2:()Ljava/lang/invoke/MethodType;
    263 000530: ff00 1100                              |0000: const-method-type v0, (CSIJFDLjava/lang/Object;)Z // proto@0011
    264 000534: 1100                                   |0002: return-object v0
    265       catches       : (none)
    266       positions     : 
    267       locals        : 
    268 
    269   Virtual methods   -
    270   source_file_idx   : 3 (ConstTest.java)
    271 
    272 Method handle #0:
    273   type        : invoke-instance
    274   target      : Ljava/lang/Object; getClass
    275   target_type : (Ljava/lang/Object;)Ljava/lang/Class;
    276