Processing 'invoke-custom.dex'... Opened 'invoke-custom.dex', DEX version '038' DEX file header: magic : 'dex\n038\0' checksum : dc722174 signature : b59a...f803 file_size : 31732 header_size : 112 link_size : 0 link_off : 0 (0x000000) string_ids_size : 478 string_ids_off : 112 (0x000070) type_ids_size : 77 type_ids_off : 2024 (0x0007e8) proto_ids_size : 91 proto_ids_off : 2332 (0x00091c) field_ids_size : 21 field_ids_off : 3424 (0x000d60) method_ids_size : 243 method_ids_off : 3592 (0x000e08) class_defs_size : 14 class_defs_off : 5536 (0x0015a0) data_size : 25332 data_off : 6400 (0x001900) Class #0 header: class_idx : 7 access_flags : 0 (0x0000) superclass_idx : 52 interfaces_off : 0 (0x000000) source_file_idx : 144 annotations_off : 30700 (0x0077ec) class_data_off : 28922 (0x0070fa) static_fields_size : 0 instance_fields_size: 0 direct_methods_size : 1 virtual_methods_size: 0 Class #0 annotations: Annotations on class VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=LTestBadBootstrapArguments; VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=8 name="TestersConstantCallSite" Class #0 - Class descriptor : 'LTestBadBootstrapArguments$TestersConstantCallSite;' Access flags : 0x0000 () Superclass : 'Ljava/lang/invoke/ConstantCallSite;' Interfaces - Static fields - Instance fields - Direct methods - #0 : (in LTestBadBootstrapArguments$TestersConstantCallSite;) name : '' type : '(Ljava/lang/invoke/MethodHandle;)V' access : 0x10001 (PUBLIC CONSTRUCTOR) method_idx : 8 code - registers : 2 ins : 2 outs : 2 insns size : 4 16-bit code units 001b18: |[001b18] TestBadBootstrapArguments$TestersConstantCallSite.:(Ljava/lang/invoke/MethodHandle;)V 001b28: 7020 d200 1000 |0000: invoke-direct {v0, v1}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 001b2e: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=449 0x0003 line=450 locals : 0x0000 - 0x0004 reg=0 this LTestBadBootstrapArguments$TestersConstantCallSite; 0x0000 - 0x0004 reg=1 mh Ljava/lang/invoke/MethodHandle; Virtual methods - source_file_idx : 144 (TestBadBootstrapArguments.java) Class #1 header: class_idx : 9 access_flags : 1024 (0x0400) superclass_idx : 42 interfaces_off : 0 (0x000000) source_file_idx : 145 annotations_off : 0 (0x000000) class_data_off : 28932 (0x007104) static_fields_size : 0 instance_fields_size: 0 direct_methods_size : 13 virtual_methods_size: 0 Class #1 - Class descriptor : 'LTestBase;' Access flags : 0x0400 (ABSTRACT) Superclass : 'Ljava/lang/Object;' Interfaces - Static fields - Instance fields - Direct methods - #0 : (in LTestBase;) name : '' type : '()V' access : 0x10000 (CONSTRUCTOR) method_idx : 50 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 002544: |[002544] TestBase.:()V 002554: 7010 bf00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00bf 00255a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=19 locals : 0x0000 - 0x0004 reg=0 this LTestBase; #1 : (in LTestBase;) name : 'assertEquals' type : '(BB)V' access : 0x0008 (STATIC) method_idx : 51 code - registers : 5 ins : 2 outs : 2 insns size : 34 16-bit code units 00255c: |[00255c] TestBase.assertEquals:(BB)V 00256c: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003 002570: 0e00 |0002: return-void 002572: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e 002576: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d 00257a: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 002580: 1a02 d300 |000a: const-string v2, "assertEquals b1: " // string@00d3 002584: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 00258a: 6e20 c500 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 002590: 1a02 0d00 |0012: const-string v2, ", b2: " // string@000d 002594: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 00259a: 6e20 c500 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 0025a0: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 0025a6: 0c01 |001d: move-result-object v1 0025a8: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 0025ae: 2700 |0021: throw v0 catches : (none) positions : 0x0000 line=27 0x0002 line=28 0x0003 line=30 locals : 0x0000 - 0x0022 reg=3 b1 B 0x0000 - 0x0022 reg=4 b2 B #2 : (in LTestBase;) name : 'assertEquals' type : '(CC)V' access : 0x0008 (STATIC) method_idx : 52 code - registers : 5 ins : 2 outs : 2 insns size : 34 16-bit code units 0025b0: |[0025b0] TestBase.assertEquals:(CC)V 0025c0: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003 0025c4: 0e00 |0002: return-void 0025c6: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e 0025ca: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d 0025ce: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 0025d4: 1a02 d400 |000a: const-string v2, "assertEquals c1: " // string@00d4 0025d8: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0025de: 6e20 c200 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c2 0025e4: 1a02 0e00 |0012: const-string v2, ", c2: " // string@000e 0025e8: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0025ee: 6e20 c200 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c2 0025f4: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 0025fa: 0c01 |001d: move-result-object v1 0025fc: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 002602: 2700 |0021: throw v0 catches : (none) positions : 0x0000 line=34 0x0002 line=35 0x0003 line=37 locals : 0x0000 - 0x0022 reg=3 c1 C 0x0000 - 0x0022 reg=4 c2 C #3 : (in LTestBase;) name : 'assertEquals' type : '(DD)V' access : 0x0008 (STATIC) method_idx : 53 code - registers : 7 ins : 4 outs : 3 insns size : 36 16-bit code units 002604: |[002604] TestBase.assertEquals:(DD)V 002614: 2f00 0305 |0000: cmpl-double v0, v3, v5 002618: 3900 0300 |0002: if-nez v0, 0005 // +0003 00261c: 0e00 |0004: return-void 00261e: 2200 1e00 |0005: new-instance v0, Ljava/lang/AssertionError; // type@001e 002622: 2201 2d00 |0007: new-instance v1, Ljava/lang/StringBuilder; // type@002d 002626: 7010 c100 0100 |0009: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 00262c: 1a02 d500 |000c: const-string v2, "assertEquals d1: " // string@00d5 002630: 6e20 c800 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 002636: 6e30 c300 3104 |0011: invoke-virtual {v1, v3, v4}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@00c3 00263c: 1a02 0f00 |0014: const-string v2, ", d2: " // string@000f 002640: 6e20 c800 2100 |0016: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 002646: 6e30 c300 5106 |0019: invoke-virtual {v1, v5, v6}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@00c3 00264c: 6e10 ca00 0100 |001c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 002652: 0c01 |001f: move-result-object v1 002654: 7020 b500 1000 |0020: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 00265a: 2700 |0023: throw v0 catches : (none) positions : 0x0000 line=69 0x0004 line=70 0x0005 line=72 locals : 0x0000 - 0x0024 reg=3 d1 D 0x0000 - 0x0024 reg=5 d2 D #4 : (in LTestBase;) name : 'assertEquals' type : '(FF)V' access : 0x0008 (STATIC) method_idx : 54 code - registers : 5 ins : 2 outs : 2 insns size : 36 16-bit code units 00265c: |[00265c] TestBase.assertEquals:(FF)V 00266c: 2d00 0304 |0000: cmpl-float v0, v3, v4 002670: 3900 0300 |0002: if-nez v0, 0005 // +0003 002674: 0e00 |0004: return-void 002676: 2200 1e00 |0005: new-instance v0, Ljava/lang/AssertionError; // type@001e 00267a: 2201 2d00 |0007: new-instance v1, Ljava/lang/StringBuilder; // type@002d 00267e: 7010 c100 0100 |0009: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 002684: 1a02 d600 |000c: const-string v2, "assertEquals f1: " // string@00d6 002688: 6e20 c800 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 00268e: 6e20 c400 3100 |0011: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@00c4 002694: 1a02 1000 |0014: const-string v2, ", f2: " // string@0010 002698: 6e20 c800 2100 |0016: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 00269e: 6e20 c400 4100 |0019: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@00c4 0026a4: 6e10 ca00 0100 |001c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 0026aa: 0c01 |001f: move-result-object v1 0026ac: 7020 b500 1000 |0020: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 0026b2: 2700 |0023: throw v0 catches : (none) positions : 0x0000 line=62 0x0004 line=63 0x0005 line=65 locals : 0x0000 - 0x0024 reg=3 f1 F 0x0000 - 0x0024 reg=4 f2 F #5 : (in LTestBase;) name : 'assertEquals' type : '(II)V' access : 0x0008 (STATIC) method_idx : 55 code - registers : 5 ins : 2 outs : 2 insns size : 34 16-bit code units 0026b4: |[0026b4] TestBase.assertEquals:(II)V 0026c4: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003 0026c8: 0e00 |0002: return-void 0026ca: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e 0026ce: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d 0026d2: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 0026d8: 1a02 d700 |000a: const-string v2, "assertEquals i1: " // string@00d7 0026dc: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0026e2: 6e20 c500 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 0026e8: 1a02 1100 |0012: const-string v2, ", i2: " // string@0011 0026ec: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0026f2: 6e20 c500 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 0026f8: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 0026fe: 0c01 |001d: move-result-object v1 002700: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 002706: 2700 |0021: throw v0 catches : (none) positions : 0x0000 line=48 0x0002 line=49 0x0003 line=51 locals : 0x0000 - 0x0022 reg=3 i1 I 0x0000 - 0x0022 reg=4 i2 I #6 : (in LTestBase;) name : 'assertEquals' type : '(JJ)V' access : 0x0008 (STATIC) method_idx : 56 code - registers : 7 ins : 4 outs : 3 insns size : 36 16-bit code units 002764: |[002764] TestBase.assertEquals:(JJ)V 002774: 3100 0305 |0000: cmp-long v0, v3, v5 002778: 3900 0300 |0002: if-nez v0, 0005 // +0003 00277c: 0e00 |0004: return-void 00277e: 2200 1e00 |0005: new-instance v0, Ljava/lang/AssertionError; // type@001e 002782: 2201 2d00 |0007: new-instance v1, Ljava/lang/StringBuilder; // type@002d 002786: 7010 c100 0100 |0009: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 00278c: 1a02 d800 |000c: const-string v2, "assertEquals l1: " // string@00d8 002790: 6e20 c800 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 002796: 6e30 c600 3104 |0011: invoke-virtual {v1, v3, v4}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c6 00279c: 1a02 1200 |0014: const-string v2, ", l2: " // string@0012 0027a0: 6e20 c800 2100 |0016: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0027a6: 6e30 c600 5106 |0019: invoke-virtual {v1, v5, v6}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c6 0027ac: 6e10 ca00 0100 |001c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 0027b2: 0c01 |001f: move-result-object v1 0027b4: 7020 b500 1000 |0020: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 0027ba: 2700 |0023: throw v0 catches : (none) positions : 0x0000 line=55 0x0004 line=56 0x0005 line=58 locals : 0x0000 - 0x0024 reg=3 l1 J 0x0000 - 0x0024 reg=5 l2 J #7 : (in LTestBase;) name : 'assertEquals' type : '(Ljava/lang/Object;Ljava/lang/Object;)V' access : 0x0008 (STATIC) method_idx : 57 code - registers : 5 ins : 2 outs : 2 insns size : 38 16-bit code units 002708: |[002708] TestBase.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V 002718: 7120 ec00 4300 |0000: invoke-static {v3, v4}, Ljava/util/Objects;.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z // method@00ec 00271e: 0a00 |0003: move-result v0 002720: 3800 0300 |0004: if-eqz v0, 0007 // +0003 002724: 0e00 |0006: return-void 002726: 2200 1e00 |0007: new-instance v0, Ljava/lang/AssertionError; // type@001e 00272a: 2201 2d00 |0009: new-instance v1, Ljava/lang/StringBuilder; // type@002d 00272e: 7010 c100 0100 |000b: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 002734: 1a02 da00 |000e: const-string v2, "assertEquals: o1: " // string@00da 002738: 6e20 c800 2100 |0010: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 00273e: 6e20 c700 3100 |0013: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 002744: 1a02 1300 |0016: const-string v2, ", o2: " // string@0013 002748: 6e20 c800 2100 |0018: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 00274e: 6e20 c700 4100 |001b: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 002754: 6e10 ca00 0100 |001e: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 00275a: 0c01 |0021: move-result-object v1 00275c: 7020 b500 1000 |0022: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 002762: 2700 |0025: throw v0 catches : (none) positions : 0x0000 line=76 0x0006 line=79 0x0007 line=77 locals : 0x0000 - 0x0026 reg=3 o Ljava/lang/Object; 0x0000 - 0x0026 reg=4 p Ljava/lang/Object; #8 : (in LTestBase;) name : 'assertEquals' type : '(SS)V' access : 0x0008 (STATIC) method_idx : 58 code - registers : 5 ins : 2 outs : 2 insns size : 34 16-bit code units 0027bc: |[0027bc] TestBase.assertEquals:(SS)V 0027cc: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003 0027d0: 0e00 |0002: return-void 0027d2: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e 0027d6: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d 0027da: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 0027e0: 1a02 d900 |000a: const-string v2, "assertEquals s1: " // string@00d9 0027e4: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0027ea: 6e20 c500 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 0027f0: 1a02 1400 |0012: const-string v2, ", s2: " // string@0014 0027f4: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0027fa: 6e20 c500 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 002800: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 002806: 0c01 |001d: move-result-object v1 002808: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 00280e: 2700 |0021: throw v0 catches : (none) positions : 0x0000 line=41 0x0002 line=42 0x0003 line=44 locals : 0x0000 - 0x0022 reg=3 s1 S 0x0000 - 0x0022 reg=4 s2 S #9 : (in LTestBase;) name : 'assertNotEquals' type : '(Ljava/lang/Object;Ljava/lang/Object;)V' access : 0x0008 (STATIC) method_idx : 59 code - registers : 5 ins : 2 outs : 2 insns size : 38 16-bit code units 002810: |[002810] TestBase.assertNotEquals:(Ljava/lang/Object;Ljava/lang/Object;)V 002820: 7120 ec00 4300 |0000: invoke-static {v3, v4}, Ljava/util/Objects;.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z // method@00ec 002826: 0a00 |0003: move-result v0 002828: 3900 0300 |0004: if-nez v0, 0007 // +0003 00282c: 0e00 |0006: return-void 00282e: 2200 1e00 |0007: new-instance v0, Ljava/lang/AssertionError; // type@001e 002832: 2201 2d00 |0009: new-instance v1, Ljava/lang/StringBuilder; // type@002d 002836: 7010 c100 0100 |000b: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 00283c: 1a02 dc00 |000e: const-string v2, "assertNotEquals: o1: " // string@00dc 002840: 6e20 c800 2100 |0010: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 002846: 6e20 c700 3100 |0013: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 00284c: 1a02 1300 |0016: const-string v2, ", o2: " // string@0013 002850: 6e20 c800 2100 |0018: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 002856: 6e20 c700 4100 |001b: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 00285c: 6e10 ca00 0100 |001e: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 002862: 0c01 |0021: move-result-object v1 002864: 7020 b500 1000 |0022: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 00286a: 2700 |0025: throw v0 catches : (none) positions : 0x0000 line=82 0x0006 line=85 0x0007 line=83 locals : 0x0000 - 0x0026 reg=3 o Ljava/lang/Object; 0x0000 - 0x0026 reg=4 p Ljava/lang/Object; #10 : (in LTestBase;) name : 'assertNotReached' type : '()V' access : 0x0008 (STATIC) method_idx : 60 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 00286c: |[00286c] TestBase.assertNotReached:()V 00287c: 2200 1e00 |0000: new-instance v0, Ljava/lang/AssertionError; // type@001e 002880: 1a01 a300 |0002: const-string v1, "Unreachable" // string@00a3 002884: 7020 b500 1000 |0004: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 00288a: 2700 |0007: throw v0 catches : (none) positions : 0x0000 line=88 locals : #11 : (in LTestBase;) name : 'assertTrue' type : '(Z)V' access : 0x0008 (STATIC) method_idx : 61 code - registers : 4 ins : 1 outs : 2 insns size : 26 16-bit code units 00288c: |[00288c] TestBase.assertTrue:(Z)V 00289c: 3803 0300 |0000: if-eqz v3, 0003 // +0003 0028a0: 0e00 |0002: return-void 0028a2: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e 0028a6: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d 0028aa: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 0028b0: 1a02 df00 |000a: const-string v2, "assertTrue value: " // string@00df 0028b4: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0028ba: 6e20 c900 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Z)Ljava/lang/StringBuilder; // method@00c9 0028c0: 6e10 ca00 0100 |0012: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 0028c6: 0c01 |0015: move-result-object v1 0028c8: 7020 b500 1000 |0016: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.:(Ljava/lang/Object;)V // method@00b5 0028ce: 2700 |0019: throw v0 catches : (none) positions : 0x0000 line=21 0x0002 line=24 0x0003 line=22 locals : 0x0000 - 0x001a reg=3 value Z #12 : (in LTestBase;) name : 'fail' type : '()V' access : 0x0008 (STATIC) method_idx : 62 code - registers : 2 ins : 0 outs : 2 insns size : 11 16-bit code units 0028d0: |[0028d0] TestBase.fail:()V 0028e0: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0028e4: 1a01 2601 |0002: const-string v1, "fail" // string@0126 0028e8: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 0028ee: 7100 cc00 0000 |0007: invoke-static {}, Ljava/lang/Thread;.dumpStack:()V // method@00cc 0028f4: 0e00 |000a: return-void catches : (none) positions : 0x0000 line=92 0x0007 line=93 0x000a line=94 locals : Virtual methods - source_file_idx : 145 (TestBase.java) Class #2 header: class_idx : 11 access_flags : 0 (0x0000) superclass_idx : 42 interfaces_off : 0 (0x000000) source_file_idx : 148 annotations_off : 30716 (0x0077fc) class_data_off : 28990 (0x00713e) static_fields_size : 0 instance_fields_size: 1 direct_methods_size : 1 virtual_methods_size: 0 Class #2 annotations: Annotations on class VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=LTestInvocationKinds; VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=8 name="Widget" Class #2 - Class descriptor : 'LTestInvocationKinds$Widget;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces - Static fields - Instance fields - #0 : (in LTestInvocationKinds$Widget;) name : 'value' type : 'I' access : 0x0000 () Direct methods - #0 : (in LTestInvocationKinds$Widget;) name : '' type : '(I)V' access : 0x10001 (PUBLIC CONSTRUCTOR) method_idx : 72 code - registers : 2 ins : 2 outs : 1 insns size : 4 16-bit code units 002abc: |[002abc] TestInvocationKinds$Widget.:(I)V 002acc: 7010 bf00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00bf 002ad2: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=177 locals : 0x0000 - 0x0004 reg=0 this LTestInvocationKinds$Widget; 0x0000 - 0x0004 reg=1 value I Virtual methods - source_file_idx : 148 (TestInvocationKinds.java) Class #3 header: class_idx : 13 access_flags : 0 (0x0000) superclass_idx : 48 interfaces_off : 0 (0x000000) source_file_idx : 149 annotations_off : 30732 (0x00780c) class_data_off : 29002 (0x00714a) static_fields_size : 0 instance_fields_size: 0 direct_methods_size : 1 virtual_methods_size: 2 Class #3 annotations: Annotations on class VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=LTestInvokeCustomWithConcurrentThreads; VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=0 name=null VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "Ljava/lang/ThreadLocal<" "Ljava/lang/Integer;" ">;" } Class #3 - Class descriptor : 'LTestInvokeCustomWithConcurrentThreads$1;' Access flags : 0x0000 () Superclass : 'Ljava/lang/ThreadLocal;' Interfaces - Static fields - Instance fields - Direct methods - #0 : (in LTestInvokeCustomWithConcurrentThreads$1;) name : '' type : '()V' access : 0x10000 (CONSTRUCTOR) method_idx : 96 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 002ee8: |[002ee8] TestInvokeCustomWithConcurrentThreads$1.:()V 002ef8: 7010 cf00 0000 |0000: invoke-direct {v0}, Ljava/lang/ThreadLocal;.:()V // method@00cf 002efe: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=33 locals : 0x0000 - 0x0004 reg=0 this LTestInvokeCustomWithConcurrentThreads$1; Virtual methods - #0 : (in LTestInvokeCustomWithConcurrentThreads$1;) name : 'initialValue' type : '()Ljava/lang/Integer;' access : 0x0004 (PROTECTED) method_idx : 97 code - registers : 2 ins : 1 outs : 1 insns size : 13 16-bit code units 002ea0: |[002ea0] TestInvokeCustomWithConcurrentThreads$1.initialValue:()Ljava/lang/Integer; 002eb0: 7100 6500 0000 |0000: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.access$000:()Ljava/util/concurrent/atomic/AtomicInteger; // method@0065 002eb6: 0c00 |0003: move-result-object v0 002eb8: 6e10 f100 0000 |0004: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.getAndIncrement:()I // method@00f1 002ebe: 0a00 |0007: move-result v0 002ec0: 7110 bd00 0000 |0008: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd 002ec6: 0c00 |000b: move-result-object v0 002ec8: 1100 |000c: return-object v0 catches : (none) positions : 0x0000 line=36 locals : 0x0000 - 0x000d reg=1 this LTestInvokeCustomWithConcurrentThreads$1; #1 : (in LTestInvokeCustomWithConcurrentThreads$1;) name : 'initialValue' type : '()Ljava/lang/Object;' access : 0x1044 (PROTECTED BRIDGE SYNTHETIC) method_idx : 98 code - registers : 2 ins : 1 outs : 1 insns size : 5 16-bit code units 002ecc: |[002ecc] TestInvokeCustomWithConcurrentThreads$1.initialValue:()Ljava/lang/Object; 002edc: 6e10 6100 0100 |0000: invoke-virtual {v1}, LTestInvokeCustomWithConcurrentThreads$1;.initialValue:()Ljava/lang/Integer; // method@0061 002ee2: 0c00 |0003: move-result-object v0 002ee4: 1100 |0004: return-object v0 catches : (none) positions : 0x0000 line=33 locals : 0x0000 - 0x0005 reg=1 this LTestInvokeCustomWithConcurrentThreads$1; source_file_idx : 149 (TestInvokeCustomWithConcurrentThreads.java) Class #4 header: class_idx : 19 access_flags : 0 (0x0000) superclass_idx : 42 interfaces_off : 0 (0x000000) source_file_idx : 164 annotations_off : 30748 (0x00781c) class_data_off : 29021 (0x00715d) static_fields_size : 0 instance_fields_size: 0 direct_methods_size : 2 virtual_methods_size: 0 Class #4 annotations: Annotations on method #170 'bsm' VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "(" "Ljava/lang/invoke/MethodHandles$Lookup;" "Ljava/lang/String;" "Ljava/lang/invoke/MethodType;" "Ljava/lang/Class<" "*>;)" "Ljava/lang/invoke/CallSite;" } VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Class #4 - Class descriptor : 'LUnrelatedBSM;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces - Static fields - Instance fields - Direct methods - #0 : (in LUnrelatedBSM;) name : '' type : '()V' access : 0x10000 (CONSTRUCTOR) method_idx : 169 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 003fc8: |[003fc8] UnrelatedBSM.:()V 003fd8: 7010 bf00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00bf 003fde: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=23 locals : 0x0000 - 0x0004 reg=0 this LUnrelatedBSM; #1 : (in LUnrelatedBSM;) name : 'bsm' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite;' access : 0x0008 (STATIC) method_idx : 170 code - registers : 6 ins : 4 outs : 4 insns size : 10 16-bit code units 003fa4: |[003fa4] UnrelatedBSM.bsm:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite; 003fb4: 6e40 d800 5243 |0000: invoke-virtual {v2, v5, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 003fba: 0c00 |0003: move-result-object v0 003fbc: 2201 3400 |0004: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 003fc0: 7020 d200 0100 |0006: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 003fc6: 1101 |0009: return-object v1 catches : (none) positions : 0x0000 line=27 0x0004 line=28 locals : 0x0000 - 0x0000 reg=5 (null) Ljava/lang/Class; 0x0004 - 0x000a reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x000a reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x000a reg=3 name Ljava/lang/String; 0x0000 - 0x000a reg=4 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x000a reg=5 target Ljava/lang/Class; Ljava/lang/Class<*>; Virtual methods - source_file_idx : 164 (UnrelatedBSM.java) Class #5 header: class_idx : 6 access_flags : 1 (0x0001) superclass_idx : 9 interfaces_off : 0 (0x000000) source_file_idx : 136 annotations_off : 30772 (0x007834) class_data_off : 29036 (0x00716c) static_fields_size : 0 instance_fields_size: 0 direct_methods_size : 5 virtual_methods_size: 0 Class #5 annotations: Annotations on method #1 'TestLinkerMethodMinimalArguments' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #2 'TestLinkerMethodMultipleArgumentTypes' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #3 'TestUninitializedCallSite' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #7 'main' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Class #5 - Class descriptor : 'LMain;' Access flags : 0x0001 (PUBLIC) Superclass : 'LTestBase;' Interfaces - Static fields - Instance fields - Direct methods - #0 : (in LMain;) name : '' type : '()V' access : 0x10001 (PUBLIC CONSTRUCTOR) method_idx : 0 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 001900: |[001900] Main.:()V 001910: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.:()V // method@0032 001916: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=21 locals : 0x0000 - 0x0004 reg=0 this LMain; #1 : (in LMain;) name : 'TestLinkerMethodMinimalArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 1 code - registers : 4 ins : 0 outs : 3 insns size : 66 16-bit code units 001918: |[001918] Main.TestLinkerMethodMinimalArguments:()V 001928: 1210 |0000: const/4 v0, #int 1 // #1 00192a: 1301 0a00 |0001: const/16 v1, #int 10 // #a 00192e: 7130 7700 1001 |0003: invoke-static {v0, v1, v1}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077 001934: 7100 0500 0000 |0006: invoke-static {}, LMain;.assertNotReached:()V // method@0005 00193a: 280f |0009: goto 0018 // +000f 00193c: 0d00 |000a: move-exception v0 00193e: 6e10 b600 0000 |000b: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 001944: 0c02 |000e: move-result-object v2 001946: 6e10 c000 0200 |000f: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00194c: 0c02 |0012: move-result-object v2 00194e: 1c03 2200 |0013: const-class v3, Ljava/lang/ClassCastException; // type@0022 001952: 7120 0400 3200 |0015: invoke-static {v2, v3}, LMain;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0004 001958: 1220 |0018: const/4 v0, #int 2 // #2 00195a: 1302 0b00 |0019: const/16 v2, #int 11 // #b 00195e: 7130 7700 1002 |001b: invoke-static {v0, v1, v2}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077 001964: 7100 0500 0000 |001e: invoke-static {}, LMain;.assertNotReached:()V // method@0005 00196a: 280f |0021: goto 0030 // +000f 00196c: 0d00 |0022: move-exception v0 00196e: 6e10 b600 0000 |0023: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 001974: 0c02 |0026: move-result-object v2 001976: 6e10 c000 0200 |0027: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00197c: 0c02 |002a: move-result-object v2 00197e: 1c03 2600 |002b: const-class v3, Ljava/lang/InstantiationException; // type@0026 001982: 7120 0400 3200 |002d: invoke-static {v2, v3}, LMain;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0004 001988: 1230 |0030: const/4 v0, #int 3 // #3 00198a: 1302 0c00 |0031: const/16 v2, #int 12 // #c 00198e: 7130 7700 1002 |0033: invoke-static {v0, v1, v2}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077 001994: 7100 0500 0000 |0036: invoke-static {}, LMain;.assertNotReached:()V // method@0005 00199a: 2802 |0039: goto 003b // +0002 00199c: 0d00 |003a: move-exception v0 00199e: 1200 |003b: const/4 v0, #int 0 // #0 0019a0: 1302 0d00 |003c: const/16 v2, #int 13 // #d 0019a4: 7130 7700 1002 |003e: invoke-static {v0, v1, v2}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077 0019aa: 0e00 |0041: return-void catches : 3 0x0003 - 0x0009 Ljava/lang/BootstrapMethodError; -> 0x000a 0x001b - 0x0021 Ljava/lang/BootstrapMethodError; -> 0x0022 0x0033 - 0x0039 Ljava/lang/ArithmeticException; -> 0x003a positions : 0x0000 line=49 0x0006 line=53 0x0009 line=56 0x000a line=54 0x000b line=55 0x0018 line=59 0x001e line=61 0x0021 line=64 0x0022 line=62 0x0023 line=63 0x0030 line=67 0x0036 line=69 0x0039 line=71 0x003a line=70 0x003b line=73 0x0041 line=75 locals : 0x000b - 0x0018 reg=0 e Ljava/lang/BootstrapMethodError; 0x0023 - 0x0030 reg=0 e Ljava/lang/BootstrapMethodError; #2 : (in LMain;) name : 'TestLinkerMethodMultipleArgumentTypes' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 2 code - registers : 2 ins : 0 outs : 2 insns size : 22 16-bit code units 0019d0: |[0019d0] Main.TestLinkerMethodMultipleArgumentTypes:()V 0019e0: 1300 2100 |0000: const/16 v0, #int 33 // #21 0019e4: 1301 4300 |0002: const/16 v1, #int 67 // #43 0019e8: 7120 8400 1000 |0004: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.test:(II)V // method@0084 0019ee: 1300 f0d8 |0007: const/16 v0, #int -10000 // #d8f0 0019f2: 1301 e803 |0009: const/16 v1, #int 1000 // #3e8 0019f6: 7120 8400 1000 |000b: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.test:(II)V // method@0084 0019fc: 1300 18fc |000e: const/16 v0, #int -1000 // #fc18 001a00: 1301 1027 |0010: const/16 v1, #int 10000 // #2710 001a04: 7120 8400 1000 |0012: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.test:(II)V // method@0084 001a0a: 0e00 |0015: return-void catches : (none) positions : 0x0000 line=42 0x0007 line=43 0x000e line=44 0x0015 line=45 locals : #3 : (in LMain;) name : 'TestUninitializedCallSite' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 3 code - registers : 7 ins : 0 outs : 3 insns size : 78 16-bit code units 001a0c: |[001a0c] Main.TestUninitializedCallSite:()V 001a1c: 2200 3900 |0000: new-instance v0, Ljava/lang/invoke/MutableCallSite; // type@0039 001a20: 6201 1200 |0002: sget-object v1, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@0012 001a24: 7110 e100 0100 |0004: invoke-static {v1}, Ljava/lang/invoke/MethodType;.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@00e1 001a2a: 0c01 |0007: move-result-object v1 001a2c: 7020 e600 1000 |0008: invoke-direct {v0, v1}, Ljava/lang/invoke/MutableCallSite;.:(Ljava/lang/invoke/MethodType;)V // method@00e6 001a32: 6e10 d100 0000 |000b: invoke-virtual {v0}, Ljava/lang/invoke/CallSite;.getTarget:()Ljava/lang/invoke/MethodHandle; // method@00d1 001a38: 0c01 |000e: move-result-object v1 001a3a: fa10 d300 0100 4100 |000f: invoke-polymorphic {v1}, Ljava/lang/invoke/MethodHandle;.invoke:([Ljava/lang/Object;)Ljava/lang/Object;, ()V // method@00d3, proto@0041 001a42: 7100 0600 0000 |0013: invoke-static {}, LMain;.fail:()V // method@0006 001a48: 2809 |0016: goto 001f // +0009 001a4a: 0d01 |0017: move-exception v1 001a4c: 6202 1300 |0018: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001a50: 1a03 2100 |001a: const-string v3, "Caught exception from uninitialized call site" // string@0021 001a54: 6e20 b300 3200 |001c: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001a5a: 2201 3900 |001f: new-instance v1, Ljava/lang/invoke/MutableCallSite; // type@0039 001a5e: 1c02 2c00 |0021: const-class v2, Ljava/lang/String; // type@002c 001a62: 6203 1200 |0023: sget-object v3, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@0012 001a66: 1214 |0025: const/4 v4, #int 1 // #1 001a68: 2344 4600 |0026: new-array v4, v4, [Ljava/lang/Class; // type@0046 001a6c: 1205 |0028: const/4 v5, #int 0 // #0 001a6e: 6206 1100 |0029: sget-object v6, Ljava/lang/Character;.TYPE:Ljava/lang/Class; // field@0011 001a72: 4d06 0405 |002b: aput-object v6, v4, v5 001a76: 7130 e200 3204 |002d: invoke-static {v2, v3, v4}, Ljava/lang/invoke/MethodType;.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@00e2 001a7c: 0c02 |0030: move-result-object v2 001a7e: 7020 e600 2100 |0031: invoke-direct {v1, v2}, Ljava/lang/invoke/MutableCallSite;.:(Ljava/lang/invoke/MethodType;)V // method@00e6 001a84: 0710 |0034: move-object v0, v1 001a86: 6e10 d100 0000 |0035: invoke-virtual {v0}, Ljava/lang/invoke/CallSite;.getTarget:()Ljava/lang/invoke/MethodHandle; // method@00d1 001a8c: 0c01 |0038: move-result-object v1 001a8e: 1302 ff05 |0039: const/16 v2, #int 1535 // #5ff 001a92: 1303 6400 |003b: const/16 v3, #int 100 // #64 001a96: fa30 d300 2103 4800 |003d: invoke-polymorphic {v1, v2, v3}, Ljava/lang/invoke/MethodHandle;.invoke:([Ljava/lang/Object;)Ljava/lang/Object;, (IC)V // method@00d3, proto@0048 001a9e: 7100 0600 0000 |0041: invoke-static {}, LMain;.fail:()V // method@0006 001aa4: 2809 |0044: goto 004d // +0009 001aa6: 0d01 |0045: move-exception v1 001aa8: 6202 1300 |0046: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001aac: 1a03 2100 |0048: const-string v3, "Caught exception from uninitialized call site" // string@0021 001ab0: 6e20 b300 3200 |004a: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001ab6: 0e00 |004d: return-void catches : 2 0x000b - 0x0016 Ljava/lang/IllegalStateException; -> 0x0017 0x0035 - 0x0044 Ljava/lang/IllegalStateException; -> 0x0045 positions : 0x0000 line=24 0x000b line=26 0x0013 line=27 0x0016 line=30 0x0017 line=28 0x0018 line=29 0x001f line=32 0x0035 line=34 0x0041 line=35 0x0044 line=38 0x0045 line=36 0x0046 line=37 0x004d line=39 locals : 0x0018 - 0x001f reg=1 e Ljava/lang/IllegalStateException; 0x0046 - 0x004d reg=1 e Ljava/lang/IllegalStateException; 0x000b - 0x004e reg=0 callSite Ljava/lang/invoke/CallSite; #4 : (in LMain;) name : 'main' type : '([Ljava/lang/String;)V' access : 0x0009 (PUBLIC STATIC) method_idx : 7 code - registers : 1 ins : 1 outs : 0 insns size : 28 16-bit code units 001ad0: |[001ad0] Main.main:([Ljava/lang/String;)V 001ae0: 7100 0300 0000 |0000: invoke-static {}, LMain;.TestUninitializedCallSite:()V // method@0003 001ae6: 7100 0100 0000 |0003: invoke-static {}, LMain;.TestLinkerMethodMinimalArguments:()V // method@0001 001aec: 7100 0200 0000 |0006: invoke-static {}, LMain;.TestLinkerMethodMultipleArgumentTypes:()V // method@0002 001af2: 7100 8c00 0000 |0009: invoke-static {}, LTestLinkerUnrelatedBSM;.test:()V // method@008c 001af8: 7100 6e00 0000 |000c: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.test:()V // method@006e 001afe: 7100 5b00 0000 |000f: invoke-static {}, LTestInvocationKinds;.test:()V // method@005b 001b04: 7100 4500 0000 |0012: invoke-static {}, LTestDynamicBootstrapArguments;.test:()V // method@0045 001b0a: 7100 2b00 0000 |0015: invoke-static {}, LTestBadBootstrapArguments;.test:()V // method@002b 001b10: 7100 a800 0000 |0018: invoke-static {}, LTestVariableArityLinkerMethod;.test:()V // method@00a8 001b16: 0e00 |001b: return-void catches : (none) positions : 0x0000 line=78 0x0003 line=79 0x0006 line=80 0x0009 line=81 0x000c line=82 0x000f line=83 0x0012 line=84 0x0015 line=85 0x0018 line=86 0x001b line=87 locals : 0x0000 - 0x001c reg=0 args [Ljava/lang/String; Virtual methods - source_file_idx : 136 (Main.java) Class #6 header: class_idx : 8 access_flags : 1 (0x0001) superclass_idx : 9 interfaces_off : 0 (0x000000) source_file_idx : 144 annotations_off : 30820 (0x007864) class_data_off : 29062 (0x007186) static_fields_size : 0 instance_fields_size: 0 direct_methods_size : 38 virtual_methods_size: 0 Class #6 annotations: Annotations on class VISIBILITY_SYSTEM Ldalvik/annotation/MemberClasses; value={ LTestBadBootstrapArguments$TestersConstantCallSite; } Annotations on method #14 'bsm' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #15 'bsmDJ' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #16 'bsmDoubleLong' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #19 'bsmReturningTestersConstantCallsite' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #21 'bsmZBCS' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #25 'invokeBoxingArguments' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmDoubleLong" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Double; Ljava/lang/Long; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; doubleValue={ 1.79769e+308 } Lannotations/Constant; longValue={ 9223372036854775807 } } fieldOrMethodName="boxingArguments" Annotations on method #26 'invokeExtraArguments' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 1 } Lannotations/Constant; stringValue={ "2" } Lannotations/Constant; intValue={ 3 } } fieldOrMethodName="extraArguments" Annotations on method #27 'invokeHappy' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ -1 } Lannotations/Constant; stringValue={ "very" } } fieldOrMethodName="happy" Annotations on method #28 'invokeIntegerReturnType' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmReturningInteger" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } returnType=Ljava/lang/Integer; } fieldOrMethodName="integerReturnType" Annotations on method #29 'invokeMissingParameterTypes' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I D } } constantArgumentsForBootstrapMethod={ } fieldOrMethodName="missingParameterTypes" VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/NoSuchMethodError; } Annotations on method #30 'invokeNarrowArguments' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmZBCS" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Z B C S } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; booleanValue={ true } Lannotations/Constant; byteValue={ 127 } Lannotations/Constant; charValue={ 65 } Lannotations/Constant; shortValue={ -32768 } } fieldOrMethodName="narrowArguments" Annotations on method #31 'invokeObjectReturnType' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmReturningObject" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } returnType=Ljava/lang/Object; } fieldOrMethodName="ObjectReturnType" Annotations on method #32 'invokeViaCustomCallSiteClass' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmReturningTestersConstantCallsite" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } returnType=LTestBadBootstrapArguments$TestersConstantCallSite; } fieldOrMethodName="sayHello" Annotations on method #33 'invokeVoidReturnType' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmReturningVoid" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } returnType=V } fieldOrMethodName="voidReturnType" Annotations on method #34 'invokeWideningArguments' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmDJ" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; D J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; doubleValue={ 1.79769e+308 } Lannotations/Constant; intValue={ 2147483647 } } fieldOrMethodName="wideningArguments" Annotations on method #35 'invokeWideningBoxingArguments' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmDoubleLong" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Double; Ljava/lang/Long; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; floatValue={ 3.40282e+38 } Lannotations/Constant; longValue={ 2147483647 } } fieldOrMethodName="wideningBoxingArguments" Annotations on method #36 'invokeWrongArguments' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; stringValue={ "1" } Lannotations/Constant; doubleValue={ 3.14159 } } fieldOrMethodName="wrongArguments" Annotations on method #37 'invokeWrongArgumentsAgain' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; doubleValue={ 3.14159 } Lannotations/Constant; stringValue={ "pie" } } fieldOrMethodName="wrongArgumentsAgain" Annotations on method #38 'invokeWrongParameterTypes' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I D } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ -1 } Lannotations/Constant; stringValue={ "very" } } fieldOrMethodName="wrongParameterTypes" VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/NoSuchMethodError; } Class #6 - Class descriptor : 'LTestBadBootstrapArguments;' Access flags : 0x0001 (PUBLIC) Superclass : 'LTestBase;' Interfaces - Static fields - Instance fields - Direct methods - #0 : (in LTestBadBootstrapArguments;) name : '' type : '()V' access : 0x10001 (PUBLIC CONSTRUCTOR) method_idx : 9 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 001d64: |[001d64] TestBadBootstrapArguments.:()V 001d74: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.:()V // method@0032 001d7a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=27 locals : 0x0000 - 0x0004 reg=0 this LTestBadBootstrapArguments; #1 : (in LTestBadBootstrapArguments;) name : 'boxingArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 12 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 001d7c: |[001d7c] TestBadBootstrapArguments.boxingArguments:()V 001d8c: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001d90: 1a01 e900 |0002: const-string v1, "boxingArguments" // string@00e9 001d94: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001d9a: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=348 0x0007 line=349 locals : #2 : (in LTestBadBootstrapArguments;) name : 'bsm' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 14 code - registers : 7 ins : 5 outs : 4 insns size : 85 16-bit code units 001bb4: |[001bb4] TestBadBootstrapArguments.bsm:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite; 001bc4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001bc8: 1a01 ee00 |0002: const-string v1, "bsm(" // string@00ee 001bcc: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001bd2: 6200 1300 |0007: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001bd6: 6e10 dc00 0200 |0009: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 001bdc: 0c01 |000c: move-result-object v1 001bde: 6e20 af00 1000 |000d: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 001be4: 6200 1300 |0010: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001be8: 1a01 0c00 |0012: const-string v1, ", " // string@000c 001bec: 6e20 b000 1000 |0014: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001bf2: 6200 1300 |0017: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001bf6: 6e20 b000 3000 |0019: invoke-virtual {v0, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001bfc: 6200 1300 |001c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c00: 1a01 0c00 |001e: const-string v1, ", " // string@000c 001c04: 6e20 b000 1000 |0020: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001c0a: 6200 1300 |0023: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c0e: 6e20 af00 4000 |0025: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 001c14: 6200 1300 |0028: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c18: 1a01 0c00 |002a: const-string v1, ", " // string@000c 001c1c: 6e20 b000 1000 |002c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001c22: 6200 1300 |002f: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c26: 6e20 ad00 5000 |0031: invoke-virtual {v0, v5}, Ljava/io/PrintStream;.print:(I)V // method@00ad 001c2c: 6200 1300 |0034: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c30: 1a01 0c00 |0036: const-string v1, ", " // string@000c 001c34: 6e20 b000 1000 |0038: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001c3a: 6200 1300 |003b: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c3e: 6e20 b000 6000 |003d: invoke-virtual {v0, v6}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001c44: 6200 1300 |0040: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c48: 1a01 0700 |0042: const-string v1, ")" // string@0007 001c4c: 6e20 b300 1000 |0044: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001c52: 6e10 dc00 0200 |0047: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 001c58: 0c00 |004a: move-result-object v0 001c5a: 6e40 d800 0243 |004b: invoke-virtual {v2, v0, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 001c60: 0c00 |004e: move-result-object v0 001c62: 2201 3400 |004f: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 001c66: 7020 d200 0100 |0051: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 001c6c: 1101 |0054: return-object v1 catches : (none) positions : 0x0000 line=35 0x0007 line=36 0x0010 line=37 0x0017 line=38 0x001c line=39 0x0023 line=40 0x0028 line=41 0x002f line=42 0x0034 line=43 0x003b line=44 0x0040 line=45 0x0047 line=46 0x004f line=47 locals : 0x004f - 0x0055 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0055 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0055 reg=3 methodName Ljava/lang/String; 0x0000 - 0x0055 reg=4 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0055 reg=5 extraInt I 0x0000 - 0x0055 reg=6 extraString Ljava/lang/String; #3 : (in LTestBadBootstrapArguments;) name : 'bsmDJ' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 15 code - registers : 9 ins : 7 outs : 4 insns size : 45 16-bit code units 001c70: |[001c70] TestBadBootstrapArguments.bsmDJ:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite; 001c80: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c84: 1a01 f100 |0002: const-string v1, "bsmDJ(..., " // string@00f1 001c88: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001c8e: 6200 1300 |0007: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c92: 6e30 ac00 5006 |0009: invoke-virtual {v0, v5, v6}, Ljava/io/PrintStream;.print:(D)V // method@00ac 001c98: 6200 1300 |000c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001c9c: 1a01 0c00 |000e: const-string v1, ", " // string@000c 001ca0: 6e20 b000 1000 |0010: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001ca6: 6200 1300 |0013: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001caa: 6e30 ae00 7008 |0015: invoke-virtual {v0, v7, v8}, Ljava/io/PrintStream;.print:(J)V // method@00ae 001cb0: 6200 1300 |0018: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001cb4: 1a01 0700 |001a: const-string v1, ")" // string@0007 001cb8: 6e20 b300 1000 |001c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001cbe: 6e10 dc00 0200 |001f: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 001cc4: 0c00 |0022: move-result-object v0 001cc6: 6e40 d800 0243 |0023: invoke-virtual {v2, v0, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 001ccc: 0c00 |0026: move-result-object v0 001cce: 2201 3400 |0027: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 001cd2: 7020 d200 0100 |0029: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 001cd8: 1101 |002c: return-object v1 catches : (none) positions : 0x0000 line=270 0x0007 line=271 0x000c line=272 0x0013 line=273 0x0018 line=274 0x001f line=275 0x0027 line=276 locals : 0x0027 - 0x002d reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x002d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x002d reg=3 methodName Ljava/lang/String; 0x0000 - 0x002d reg=4 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x002d reg=5 extraArg0 D 0x0000 - 0x002d reg=7 extraArg1 J #4 : (in LTestBadBootstrapArguments;) name : 'bsmDoubleLong' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 16 code - registers : 7 ins : 5 outs : 4 insns size : 45 16-bit code units 001cdc: |[001cdc] TestBadBootstrapArguments.bsmDoubleLong:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite; 001cec: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001cf0: 1a01 f300 |0002: const-string v1, "bsmDoubleLong(..., " // string@00f3 001cf4: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001cfa: 6200 1300 |0007: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001cfe: 6e20 af00 5000 |0009: invoke-virtual {v0, v5}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 001d04: 6200 1300 |000c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001d08: 1a01 0c00 |000e: const-string v1, ", " // string@000c 001d0c: 6e20 b000 1000 |0010: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 001d12: 6200 1300 |0013: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001d16: 6e20 af00 6000 |0015: invoke-virtual {v0, v6}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 001d1c: 6200 1300 |0018: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001d20: 1a01 0700 |001a: const-string v1, ")" // string@0007 001d24: 6e20 b300 1000 |001c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001d2a: 6e10 dc00 0200 |001f: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 001d30: 0c00 |0022: move-result-object v0 001d32: 6e40 d800 0243 |0023: invoke-virtual {v2, v0, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 001d38: 0c00 |0026: move-result-object v0 001d3a: 2201 3400 |0027: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 001d3e: 7020 d200 0100 |0029: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 001d44: 1101 |002c: return-object v1 catches : (none) positions : 0x0000 line=314 0x0007 line=315 0x000c line=316 0x0013 line=317 0x0018 line=318 0x001f line=319 0x0027 line=320 locals : 0x0027 - 0x002d reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x002d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x002d reg=3 methodName Ljava/lang/String; 0x0000 - 0x002d reg=4 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x002d reg=5 extraArg0 Ljava/lang/Double; 0x0000 - 0x002d reg=6 extraArg1 Ljava/lang/Long; #5 : (in LTestBadBootstrapArguments;) name : 'bsmReturningInteger' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer;' access : 0x0008 (STATIC) method_idx : 17 code - registers : 5 ins : 3 outs : 2 insns size : 13 16-bit code units 001b5c: |[001b5c] TestBadBootstrapArguments.bsmReturningInteger:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer; 001b6c: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001b70: 1a01 eb00 |0002: const-string v1, "bsm returning Integer value." // string@00eb 001b74: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001b7a: 1230 |0007: const/4 v0, #int 3 // #3 001b7c: 7110 bd00 0000 |0008: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd 001b82: 0c00 |000b: move-result-object v0 001b84: 1100 |000c: return-object v0 catches : (none) positions : 0x0000 line=425 0x0007 line=426 locals : 0x0000 - 0x000d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x000d reg=3 name Ljava/lang/String; 0x0000 - 0x000d reg=4 type Ljava/lang/invoke/MethodType; #6 : (in LTestBadBootstrapArguments;) name : 'bsmReturningObject' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object;' access : 0x0008 (STATIC) method_idx : 18 code - registers : 5 ins : 3 outs : 2 insns size : 13 16-bit code units 001b88: |[001b88] TestBadBootstrapArguments.bsmReturningObject:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object; 001b98: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001b9c: 1a01 ec00 |0002: const-string v1, "bsm returning Object value." // string@00ec 001ba0: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001ba6: 2200 2a00 |0007: new-instance v0, Ljava/lang/Object; // type@002a 001baa: 7010 bf00 0000 |0009: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00bf 001bb0: 1100 |000c: return-object v0 catches : (none) positions : 0x0000 line=402 0x0007 line=403 locals : 0x0000 - 0x000d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x000d reg=3 name Ljava/lang/String; 0x0000 - 0x000d reg=4 type Ljava/lang/invoke/MethodType; #7 : (in LTestBadBootstrapArguments;) name : 'bsmReturningTestersConstantCallsite' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite;' access : 0x0008 (STATIC) method_idx : 19 code - registers : 5 ins : 3 outs : 4 insns size : 14 16-bit code units 001b30: |[001b30] TestBadBootstrapArguments.bsmReturningTestersConstantCallsite:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite; 001b40: 2200 0700 |0000: new-instance v0, LTestBadBootstrapArguments$TestersConstantCallSite; // type@0007 001b44: 6e10 dc00 0200 |0002: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 001b4a: 0c01 |0005: move-result-object v1 001b4c: 6e40 d800 1243 |0006: invoke-virtual {v2, v1, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 001b52: 0c01 |0009: move-result-object v1 001b54: 7020 0800 1000 |000a: invoke-direct {v0, v1}, LTestBadBootstrapArguments$TestersConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@0008 001b5a: 1100 |000d: return-object v0 catches : (none) positions : 0x0000 line=455 locals : 0x0000 - 0x000e reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x000e reg=3 name Ljava/lang/String; 0x0000 - 0x000e reg=4 type Ljava/lang/invoke/MethodType; #8 : (in LTestBadBootstrapArguments;) name : 'bsmReturningVoid' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V' access : 0x0008 (STATIC) method_idx : 20 code - registers : 5 ins : 3 outs : 2 insns size : 8 16-bit code units 001d9c: |[001d9c] TestBadBootstrapArguments.bsmReturningVoid:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V 001dac: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001db0: 1a01 ed00 |0002: const-string v1, "bsm returning void value." // string@00ed 001db4: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001dba: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=380 0x0007 line=381 locals : 0x0000 - 0x0008 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0008 reg=3 name Ljava/lang/String; 0x0000 - 0x0008 reg=4 type Ljava/lang/invoke/MethodType; #9 : (in LTestBadBootstrapArguments;) name : 'bsmZBCS' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 21 code - registers : 8 ins : 7 outs : 0 insns size : 5 16-bit code units 001d48: |[001d48] TestBadBootstrapArguments.bsmZBCS:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite; 001d58: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001d5e: 1200 |0003: const/4 v0, #int 0 // #0 001d60: 1100 |0004: return-object v0 catches : (none) positions : 0x0000 line=227 0x0003 line=228 locals : 0x0000 - 0x0005 reg=1 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0005 reg=2 methodName Ljava/lang/String; 0x0000 - 0x0005 reg=3 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0005 reg=4 extraArg0 Z 0x0000 - 0x0005 reg=5 extraArg1 B 0x0000 - 0x0005 reg=6 extraArg2 C 0x0000 - 0x0005 reg=7 extraArg3 S #10 : (in LTestBadBootstrapArguments;) name : 'extraArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 22 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 001dbc: |[001dbc] TestBadBootstrapArguments.extraArguments:()V 001dcc: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001dd0: 1a01 2001 |0002: const-string v1, "extraArguments" // string@0120 001dd4: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001dda: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=158 0x0007 line=159 locals : #11 : (in LTestBadBootstrapArguments;) name : 'happy' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 23 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 001ddc: |[001ddc] TestBadBootstrapArguments.happy:()V 001dec: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001df0: 1a01 3d01 |0002: const-string v1, "happy" // string@013d 001df4: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001dfa: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=74 0x0007 line=75 locals : #12 : (in LTestBadBootstrapArguments;) name : 'integerReturnType' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 24 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001dfc: |[001dfc] TestBadBootstrapArguments.integerReturnType:()V 001e0c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001e12: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=444 0x0003 line=445 locals : #13 : (in LTestBadBootstrapArguments;) name : 'invokeBoxingArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 25 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001e14: |[001e14] TestBadBootstrapArguments.invokeBoxingArguments:()V 001e24: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001e2a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=344 0x0003 line=345 locals : #14 : (in LTestBadBootstrapArguments;) name : 'invokeExtraArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 26 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001e2c: |[001e2c] TestBadBootstrapArguments.invokeExtraArguments:()V 001e3c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001e42: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=154 0x0003 line=155 locals : #15 : (in LTestBadBootstrapArguments;) name : 'invokeHappy' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 27 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001e44: |[001e44] TestBadBootstrapArguments.invokeHappy:()V 001e54: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001e5a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=70 0x0003 line=71 locals : #16 : (in LTestBadBootstrapArguments;) name : 'invokeIntegerReturnType' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 28 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001e5c: |[001e5c] TestBadBootstrapArguments.invokeIntegerReturnType:()V 001e6c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001e72: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=440 0x0003 line=441 locals : #17 : (in LTestBadBootstrapArguments;) name : 'invokeMissingParameterTypes' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 29 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001e74: |[001e74] TestBadBootstrapArguments.invokeMissingParameterTypes:()V 001e84: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001e8a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=124 0x0003 line=125 locals : #18 : (in LTestBadBootstrapArguments;) name : 'invokeNarrowArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 30 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001e8c: |[001e8c] TestBadBootstrapArguments.invokeNarrowArguments:()V 001e9c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001ea2: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=256 0x0003 line=257 locals : #19 : (in LTestBadBootstrapArguments;) name : 'invokeObjectReturnType' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 31 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001ea4: |[001ea4] TestBadBootstrapArguments.invokeObjectReturnType:()V 001eb4: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001eba: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=417 0x0003 line=418 locals : #20 : (in LTestBadBootstrapArguments;) name : 'invokeViaCustomCallSiteClass' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 32 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001ebc: |[001ebc] TestBadBootstrapArguments.invokeViaCustomCallSiteClass:()V 001ecc: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001ed2: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=469 0x0003 line=470 locals : #21 : (in LTestBadBootstrapArguments;) name : 'invokeVoidReturnType' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 33 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001ed4: |[001ed4] TestBadBootstrapArguments.invokeVoidReturnType:()V 001ee4: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001eea: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=394 0x0003 line=395 locals : #22 : (in LTestBadBootstrapArguments;) name : 'invokeWideningArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 34 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001eec: |[001eec] TestBadBootstrapArguments.invokeWideningArguments:()V 001efc: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001f02: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=300 0x0003 line=301 locals : #23 : (in LTestBadBootstrapArguments;) name : 'invokeWideningBoxingArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 35 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001f04: |[001f04] TestBadBootstrapArguments.invokeWideningBoxingArguments:()V 001f14: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001f1a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=372 0x0003 line=373 locals : #24 : (in LTestBadBootstrapArguments;) name : 'invokeWrongArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 36 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001f1c: |[001f1c] TestBadBootstrapArguments.invokeWrongArguments:()V 001f2c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001f32: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=182 0x0003 line=183 locals : #25 : (in LTestBadBootstrapArguments;) name : 'invokeWrongArgumentsAgain' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 37 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001f34: |[001f34] TestBadBootstrapArguments.invokeWrongArgumentsAgain:()V 001f44: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001f4a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=210 0x0003 line=211 locals : #26 : (in LTestBadBootstrapArguments;) name : 'invokeWrongParameterTypes' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 38 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001f4c: |[001f4c] TestBadBootstrapArguments.invokeWrongParameterTypes:()V 001f5c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001f62: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=98 0x0003 line=99 locals : #27 : (in LTestBadBootstrapArguments;) name : 'missingParameterTypes' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 39 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 001f64: |[001f64] TestBadBootstrapArguments.missingParameterTypes:()V 001f74: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001f78: 1a01 8c01 |0002: const-string v1, "missingParameterTypes" // string@018c 001f7c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001f82: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=128 0x0007 line=129 locals : #28 : (in LTestBadBootstrapArguments;) name : 'narrowArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 40 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001f84: |[001f84] TestBadBootstrapArguments.narrowArguments:()V 001f94: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001f9a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=260 0x0003 line=261 locals : #29 : (in LTestBadBootstrapArguments;) name : 'objectReturnType' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 41 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 001f9c: |[001f9c] TestBadBootstrapArguments.objectReturnType:()V 001fac: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 001fb2: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=421 0x0003 line=422 locals : #30 : (in LTestBadBootstrapArguments;) name : 'sayHello' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 42 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 001fb4: |[001fb4] TestBadBootstrapArguments.sayHello:()V 001fc4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001fc8: 1a01 2d00 |0002: const-string v1, "Hello!" // string@002d 001fcc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001fd2: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=473 0x0007 line=474 locals : #31 : (in LTestBadBootstrapArguments;) name : 'test' type : '()V' access : 0x0008 (STATIC) method_idx : 43 code - registers : 3 ins : 0 outs : 2 insns size : 529 16-bit code units 001fd4: |[001fd4] TestBadBootstrapArguments.test:()V 001fe4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 001fe8: 1a01 8f00 |0002: const-string v1, "TestBadBootstrapArguments" // string@008f 001fec: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 001ff2: fc00 0000 0000 |0007: invoke-custom {}, call_site@0000 001ff8: fc00 0100 0000 |000a: invoke-custom {}, call_site@0001 001ffe: 7100 0b00 0000 |000d: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 002004: 2812 |0010: goto 0022 // +0012 002006: 0d00 |0011: move-exception v0 002008: 6201 1300 |0012: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00200c: 1a02 6101 |0014: const-string v2, "invokeWrongParameterTypes => " // string@0161 002010: 6e20 b000 2100 |0016: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002016: 6201 1300 |0019: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00201a: 6e10 c000 0000 |001b: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002020: 0c02 |001e: move-result-object v2 002022: 6e20 b200 2100 |001f: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 002028: fc00 0200 0000 |0022: invoke-custom {}, call_site@0002 00202e: 7100 0b00 0000 |0025: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 002034: 2812 |0028: goto 003a // +0012 002036: 0d00 |0029: move-exception v0 002038: 6201 1300 |002a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00203c: 1a02 5101 |002c: const-string v2, "invokeMissingParameterTypes => " // string@0151 002040: 6e20 b000 2100 |002e: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002046: 6201 1300 |0031: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00204a: 6e10 c000 0000 |0033: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002050: 0c02 |0036: move-result-object v2 002052: 6e20 b200 2100 |0037: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 002058: fc00 0300 0000 |003a: invoke-custom {}, call_site@0003 00205e: 7100 0b00 0000 |003d: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 002064: 2833 |0040: goto 0073 // +0033 002066: 0d00 |0041: move-exception v0 002068: 1c01 3a00 |0042: const-class v1, Ljava/lang/invoke/WrongMethodTypeException; // type@003a 00206c: 6e10 b600 0000 |0044: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 002072: 0c02 |0047: move-result-object v2 002074: 6e10 c000 0200 |0048: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00207a: 0c02 |004b: move-result-object v2 00207c: 7120 0a00 2100 |004c: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a 002082: 6201 1300 |004f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002086: 1a02 4c01 |0051: const-string v2, "invokeExtraArguments => " // string@014c 00208a: 6e20 b000 2100 |0053: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002090: 6201 1300 |0056: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002094: 6e10 c000 0000 |0058: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00209a: 0c02 |005b: move-result-object v2 00209c: 6e20 af00 2100 |005c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 0020a2: 6201 1300 |005f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0020a6: 1a02 0200 |0061: const-string v2, " => " // string@0002 0020aa: 6e20 b000 2100 |0063: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 0020b0: 6201 1300 |0066: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0020b4: 6e10 b600 0000 |0068: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 0020ba: 0c02 |006b: move-result-object v2 0020bc: 6e10 c000 0200 |006c: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 0020c2: 0c02 |006f: move-result-object v2 0020c4: 6e20 b200 2100 |0070: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 0020ca: fc00 0400 0000 |0073: invoke-custom {}, call_site@0004 0020d0: 7100 0b00 0000 |0076: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 0020d6: 2833 |0079: goto 00ac // +0033 0020d8: 0d00 |007a: move-exception v0 0020da: 1c01 2200 |007b: const-class v1, Ljava/lang/ClassCastException; // type@0022 0020de: 6e10 b600 0000 |007d: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 0020e4: 0c02 |0080: move-result-object v2 0020e6: 6e10 c000 0200 |0081: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 0020ec: 0c02 |0084: move-result-object v2 0020ee: 7120 0a00 2100 |0085: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a 0020f4: 6201 1300 |0088: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0020f8: 1a02 5d01 |008a: const-string v2, "invokeWrongArguments => " // string@015d 0020fc: 6e20 b000 2100 |008c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002102: 6201 1300 |008f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002106: 6e10 c000 0000 |0091: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00210c: 0c02 |0094: move-result-object v2 00210e: 6e20 af00 2100 |0095: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 002114: 6201 1300 |0098: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002118: 1a02 0200 |009a: const-string v2, " => " // string@0002 00211c: 6e20 b000 2100 |009c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002122: 6201 1300 |009f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002126: 6e10 b600 0000 |00a1: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 00212c: 0c02 |00a4: move-result-object v2 00212e: 6e10 c000 0200 |00a5: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002134: 0c02 |00a8: move-result-object v2 002136: 6e20 b200 2100 |00a9: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 00213c: fc00 0500 0000 |00ac: invoke-custom {}, call_site@0005 002142: 7100 0b00 0000 |00af: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 002148: 2833 |00b2: goto 00e5 // +0033 00214a: 0d00 |00b3: move-exception v0 00214c: 1c01 2200 |00b4: const-class v1, Ljava/lang/ClassCastException; // type@0022 002150: 6e10 b600 0000 |00b6: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 002156: 0c02 |00b9: move-result-object v2 002158: 6e10 c000 0200 |00ba: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00215e: 0c02 |00bd: move-result-object v2 002160: 7120 0a00 2100 |00be: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a 002166: 6201 1300 |00c1: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00216a: 1a02 5d01 |00c3: const-string v2, "invokeWrongArguments => " // string@015d 00216e: 6e20 b000 2100 |00c5: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002174: 6201 1300 |00c8: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002178: 6e10 c000 0000 |00ca: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00217e: 0c02 |00cd: move-result-object v2 002180: 6e20 af00 2100 |00ce: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 002186: 6201 1300 |00d1: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00218a: 1a02 0200 |00d3: const-string v2, " => " // string@0002 00218e: 6e20 b000 2100 |00d5: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002194: 6201 1300 |00d8: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002198: 6e10 b600 0000 |00da: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 00219e: 0c02 |00dd: move-result-object v2 0021a0: 6e10 c000 0200 |00de: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 0021a6: 0c02 |00e1: move-result-object v2 0021a8: 6e20 b200 2100 |00e2: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 0021ae: fc00 0600 0000 |00e5: invoke-custom {}, call_site@0006 0021b4: 7100 0b00 0000 |00e8: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 0021ba: 2833 |00eb: goto 011e // +0033 0021bc: 0d00 |00ec: move-exception v0 0021be: 1c01 2200 |00ed: const-class v1, Ljava/lang/ClassCastException; // type@0022 0021c2: 6e10 b600 0000 |00ef: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 0021c8: 0c02 |00f2: move-result-object v2 0021ca: 6e10 c000 0200 |00f3: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 0021d0: 0c02 |00f6: move-result-object v2 0021d2: 7120 0a00 2100 |00f7: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a 0021d8: 6201 1300 |00fa: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0021dc: 1a02 5f01 |00fc: const-string v2, "invokeWrongArgumentsAgain => " // string@015f 0021e0: 6e20 b000 2100 |00fe: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 0021e6: 6201 1300 |0101: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0021ea: 6e10 c000 0000 |0103: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 0021f0: 0c02 |0106: move-result-object v2 0021f2: 6e20 af00 2100 |0107: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 0021f8: 6201 1300 |010a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0021fc: 1a02 0200 |010c: const-string v2, " => " // string@0002 002200: 6e20 b000 2100 |010e: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002206: 6201 1300 |0111: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00220a: 6e10 b600 0000 |0113: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 002210: 0c02 |0116: move-result-object v2 002212: 6e10 c000 0200 |0117: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002218: 0c02 |011a: move-result-object v2 00221a: 6e20 b200 2100 |011b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 002220: fc00 0700 0000 |011e: invoke-custom {}, call_site@0007 002226: 7100 0b00 0000 |0121: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 00222c: 2833 |0124: goto 0157 // +0033 00222e: 0d00 |0125: move-exception v0 002230: 1c01 2200 |0126: const-class v1, Ljava/lang/ClassCastException; // type@0022 002234: 6e10 b600 0000 |0128: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 00223a: 0c02 |012b: move-result-object v2 00223c: 6e10 c000 0200 |012c: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002242: 0c02 |012f: move-result-object v2 002244: 7120 0a00 2100 |0130: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a 00224a: 6201 1300 |0133: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00224e: 1a02 5301 |0135: const-string v2, "invokeNarrowArguments => " // string@0153 002252: 6e20 b000 2100 |0137: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002258: 6201 1300 |013a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00225c: 6e10 c000 0000 |013c: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002262: 0c02 |013f: move-result-object v2 002264: 6e20 af00 2100 |0140: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 00226a: 6201 1300 |0143: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00226e: 1a02 0200 |0145: const-string v2, " => " // string@0002 002272: 6e20 b000 2100 |0147: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002278: 6201 1300 |014a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00227c: 6e10 b600 0000 |014c: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 002282: 0c02 |014f: move-result-object v2 002284: 6e10 c000 0200 |0150: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00228a: 0c02 |0153: move-result-object v2 00228c: 6e20 b200 2100 |0154: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 002292: fc00 0800 0000 |0157: invoke-custom {}, call_site@0008 002298: fc00 0900 0000 |015a: invoke-custom {}, call_site@0009 00229e: fc00 0a00 0000 |015d: invoke-custom {}, call_site@000a 0022a4: 7100 0b00 0000 |0160: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 0022aa: 2826 |0163: goto 0189 // +0026 0022ac: 0d00 |0164: move-exception v0 0022ae: 6201 1300 |0165: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0022b2: 1a02 5b01 |0167: const-string v2, "invokeWideningBoxingArguments => " // string@015b 0022b6: 6e20 b000 2100 |0169: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 0022bc: 6201 1300 |016c: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0022c0: 6e10 c000 0000 |016e: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 0022c6: 0c02 |0171: move-result-object v2 0022c8: 6e20 af00 2100 |0172: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 0022ce: 6201 1300 |0175: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0022d2: 1a02 0200 |0177: const-string v2, " => " // string@0002 0022d6: 6e20 b000 2100 |0179: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 0022dc: 6201 1300 |017c: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0022e0: 6e10 b600 0000 |017e: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 0022e6: 0c02 |0181: move-result-object v2 0022e8: 6e10 c000 0200 |0182: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 0022ee: 0c02 |0185: move-result-object v2 0022f0: 6e20 b200 2100 |0186: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 0022f6: fc00 0b00 0000 |0189: invoke-custom {}, call_site@000b 0022fc: 7100 0b00 0000 |018c: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 002302: 2826 |018f: goto 01b5 // +0026 002304: 0d00 |0190: move-exception v0 002306: 6201 1300 |0191: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00230a: 1a02 5801 |0193: const-string v2, "invokeVoidReturnType() => " // string@0158 00230e: 6e20 b000 2100 |0195: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002314: 6201 1300 |0198: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002318: 6e10 c000 0000 |019a: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00231e: 0c02 |019d: move-result-object v2 002320: 6e20 af00 2100 |019e: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 002326: 6201 1300 |01a1: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00232a: 1a02 0200 |01a3: const-string v2, " => " // string@0002 00232e: 6e20 b000 2100 |01a5: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002334: 6201 1300 |01a8: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002338: 6e10 b600 0000 |01aa: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 00233e: 0c02 |01ad: move-result-object v2 002340: 6e10 c000 0200 |01ae: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002346: 0c02 |01b1: move-result-object v2 002348: 6e20 b200 2100 |01b2: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 00234e: fc00 0c00 0000 |01b5: invoke-custom {}, call_site@000c 002354: 7100 0b00 0000 |01b8: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 00235a: 2826 |01bb: goto 01e1 // +0026 00235c: 0d00 |01bc: move-exception v0 00235e: 6201 1300 |01bd: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002362: 1a02 5501 |01bf: const-string v2, "invokeObjectReturnType() => " // string@0155 002366: 6e20 b000 2100 |01c1: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 00236c: 6201 1300 |01c4: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002370: 6e10 c000 0000 |01c6: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002376: 0c02 |01c9: move-result-object v2 002378: 6e20 af00 2100 |01ca: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 00237e: 6201 1300 |01cd: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002382: 1a02 0200 |01cf: const-string v2, " => " // string@0002 002386: 6e20 b000 2100 |01d1: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 00238c: 6201 1300 |01d4: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002390: 6e10 b600 0000 |01d6: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 002396: 0c02 |01d9: move-result-object v2 002398: 6e10 c000 0200 |01da: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 00239e: 0c02 |01dd: move-result-object v2 0023a0: 6e20 b200 2100 |01de: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 0023a6: fc00 0d00 0000 |01e1: invoke-custom {}, call_site@000d 0023ac: 7100 0b00 0000 |01e4: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 0023b2: 2826 |01e7: goto 020d // +0026 0023b4: 0d00 |01e8: move-exception v0 0023b6: 6201 1300 |01e9: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0023ba: 1a02 4f01 |01eb: const-string v2, "invokeIntegerReturnType() => " // string@014f 0023be: 6e20 b000 2100 |01ed: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 0023c4: 6201 1300 |01f0: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0023c8: 6e10 c000 0000 |01f2: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 0023ce: 0c02 |01f5: move-result-object v2 0023d0: 6e20 af00 2100 |01f6: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 0023d6: 6201 1300 |01f9: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0023da: 1a02 0200 |01fb: const-string v2, " => " // string@0002 0023de: 6e20 b000 2100 |01fd: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 0023e4: 6201 1300 |0200: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0023e8: 6e10 b600 0000 |0202: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 0023ee: 0c02 |0205: move-result-object v2 0023f0: 6e10 c000 0200 |0206: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 0023f6: 0c02 |0209: move-result-object v2 0023f8: 6e20 b200 2100 |020a: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 0023fe: fc00 0e00 0000 |020d: invoke-custom {}, call_site@000e 002404: 0e00 |0210: return-void catches : 11 0x000a - 0x0010 Ljava/lang/NoSuchMethodError; -> 0x0011 0x0022 - 0x0028 Ljava/lang/NoSuchMethodError; -> 0x0029 0x003a - 0x0040 Ljava/lang/BootstrapMethodError; -> 0x0041 0x0073 - 0x0079 Ljava/lang/BootstrapMethodError; -> 0x007a 0x00ac - 0x00b2 Ljava/lang/BootstrapMethodError; -> 0x00b3 0x00e5 - 0x00eb Ljava/lang/BootstrapMethodError; -> 0x00ec 0x011e - 0x0124 Ljava/lang/BootstrapMethodError; -> 0x0125 0x015d - 0x0163 Ljava/lang/BootstrapMethodError; -> 0x0164 0x0189 - 0x018f Ljava/lang/BootstrapMethodError; -> 0x0190 0x01b5 - 0x01bb Ljava/lang/BootstrapMethodError; -> 0x01bc 0x01e1 - 0x01e7 Ljava/lang/BootstrapMethodError; -> 0x01e8 positions : 0x0000 line=477 0x0007 line=478 0x000a line=480 0x000d line=481 0x0010 line=485 0x0011 line=482 0x0012 line=483 0x0019 line=484 0x0022 line=487 0x0025 line=488 0x0028 line=492 0x0029 line=489 0x002a line=490 0x0031 line=491 0x003a line=494 0x003d line=495 0x0040 line=502 0x0041 line=496 0x0042 line=497 0x004f line=498 0x0056 line=499 0x005f line=500 0x0066 line=501 0x0073 line=504 0x0076 line=505 0x0079 line=512 0x007a line=506 0x007b line=507 0x0088 line=508 0x008f line=509 0x0098 line=510 0x009f line=511 0x00ac line=514 0x00af line=515 0x00b2 line=522 0x00b3 line=516 0x00b4 line=517 0x00c1 line=518 0x00c8 line=519 0x00d1 line=520 0x00d8 line=521 0x00e5 line=524 0x00e8 line=525 0x00eb line=532 0x00ec line=526 0x00ed line=527 0x00fa line=528 0x0101 line=529 0x010a line=530 0x0111 line=531 0x011e line=534 0x0121 line=535 0x0124 line=542 0x0125 line=536 0x0126 line=537 0x0133 line=538 0x013a line=539 0x0143 line=540 0x014a line=541 0x0157 line=543 0x015a line=544 0x015d line=546 0x0160 line=547 0x0163 line=553 0x0164 line=548 0x0165 line=549 0x016c line=550 0x0175 line=551 0x017c line=552 0x0189 line=555 0x018c line=556 0x018f line=562 0x0190 line=557 0x0191 line=558 0x0198 line=559 0x01a1 line=560 0x01a8 line=561 0x01b5 line=564 0x01b8 line=565 0x01bb line=571 0x01bc line=566 0x01bd line=567 0x01c4 line=568 0x01cd line=569 0x01d4 line=570 0x01e1 line=573 0x01e4 line=574 0x01e7 line=580 0x01e8 line=575 0x01e9 line=576 0x01f0 line=577 0x01f9 line=578 0x0200 line=579 0x020d line=581 0x0210 line=582 locals : 0x0012 - 0x0022 reg=0 expected Ljava/lang/NoSuchMethodError; 0x002a - 0x003a reg=0 expected Ljava/lang/NoSuchMethodError; 0x0042 - 0x0073 reg=0 expected Ljava/lang/BootstrapMethodError; 0x007b - 0x00ac reg=0 expected Ljava/lang/BootstrapMethodError; 0x00b4 - 0x00e5 reg=0 expected Ljava/lang/BootstrapMethodError; 0x00ed - 0x011e reg=0 expected Ljava/lang/BootstrapMethodError; 0x0126 - 0x0157 reg=0 expected Ljava/lang/BootstrapMethodError; 0x0165 - 0x0189 reg=0 expected Ljava/lang/BootstrapMethodError; 0x0191 - 0x01b5 reg=0 expected Ljava/lang/BootstrapMethodError; 0x01bd - 0x01e1 reg=0 expected Ljava/lang/BootstrapMethodError; 0x01e9 - 0x020d reg=0 expected Ljava/lang/BootstrapMethodError; #32 : (in LTestBadBootstrapArguments;) name : 'voidReturnType' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 44 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 00248c: |[00248c] TestBadBootstrapArguments.voidReturnType:()V 00249c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b 0024a2: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=398 0x0003 line=399 locals : #33 : (in LTestBadBootstrapArguments;) name : 'wideningArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 45 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 0024a4: |[0024a4] TestBadBootstrapArguments.wideningArguments:()V 0024b4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0024b8: 1a01 d101 |0002: const-string v1, "wideningArguments" // string@01d1 0024bc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 0024c2: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=304 0x0007 line=305 locals : #34 : (in LTestBadBootstrapArguments;) name : 'wideningBoxingArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 46 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 0024c4: |[0024c4] TestBadBootstrapArguments.wideningBoxingArguments:()V 0024d4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0024d8: 1a01 d201 |0002: const-string v1, "wideningBoxingArguments" // string@01d2 0024dc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 0024e2: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=376 0x0007 line=377 locals : #35 : (in LTestBadBootstrapArguments;) name : 'wrongArguments' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 47 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 0024e4: |[0024e4] TestBadBootstrapArguments.wrongArguments:()V 0024f4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0024f8: 1a01 d401 |0002: const-string v1, "wrongArguments" // string@01d4 0024fc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 002502: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=186 0x0007 line=187 locals : #36 : (in LTestBadBootstrapArguments;) name : 'wrongArgumentsAgain' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 48 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 002504: |[002504] TestBadBootstrapArguments.wrongArgumentsAgain:()V 002514: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002518: 1a01 d501 |0002: const-string v1, "wrongArgumentsAgain" // string@01d5 00251c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 002522: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=214 0x0007 line=215 locals : #37 : (in LTestBadBootstrapArguments;) name : 'wrongParameterTypes' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 49 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 002524: |[002524] TestBadBootstrapArguments.wrongParameterTypes:()V 002534: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002538: 1a01 d601 |0002: const-string v1, "wrongParameterTypes" // string@01d6 00253c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 002542: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=102 0x0007 line=103 locals : Virtual methods - source_file_idx : 144 (TestBadBootstrapArguments.java) Class #7 header: class_idx : 10 access_flags : 0 (0x0000) superclass_idx : 9 interfaces_off : 0 (0x000000) source_file_idx : 147 annotations_off : 30988 (0x00790c) class_data_off : 29220 (0x007224) static_fields_size : 1 instance_fields_size: 0 direct_methods_size : 7 virtual_methods_size: 0 Class #7 annotations: Annotations on method #67 'bsm' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #71 'testDynamic' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestDynamicBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/String; J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; stringValue={ "A" } Lannotations/Constant; longValue={ 100000000 } } fieldOrMethodName="target" parameterTypes={ I Ljava/lang/String; D } returnType=I Class #7 - Class descriptor : 'LTestDynamicBootstrapArguments;' Access flags : 0x0000 () Superclass : 'LTestBase;' Interfaces - Static fields - #0 : (in LTestDynamicBootstrapArguments;) name : 'bsmCalls' type : 'I' access : 0x000a (PRIVATE STATIC) Instance fields - Direct methods - #0 : (in LTestDynamicBootstrapArguments;) name : '' type : '()V' access : 0x10008 (STATIC CONSTRUCTOR) method_idx : 63 code - registers : 1 ins : 0 outs : 0 insns size : 4 16-bit code units 0029c8: |[0029c8] TestDynamicBootstrapArguments.:()V 0029d8: 1200 |0000: const/4 v0, #int 0 // #0 0029da: 6700 0000 |0001: sput v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 0029de: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=27 locals : #1 : (in LTestDynamicBootstrapArguments;) name : '' type : '()V' access : 0x10000 (CONSTRUCTOR) method_idx : 64 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 0029e0: |[0029e0] TestDynamicBootstrapArguments.:()V 0029f0: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.:()V // method@0032 0029f6: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=26 locals : 0x0000 - 0x0004 reg=0 this LTestDynamicBootstrapArguments; #2 : (in LTestDynamicBootstrapArguments;) name : 'bsm' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite;' access : 0x0008 (STATIC) method_idx : 67 code - registers : 11 ins : 6 outs : 4 insns size : 43 16-bit code units 002960: |[002960] TestDynamicBootstrapArguments.bsm:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite; 002970: 6000 0000 |0000: sget v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 002974: d800 0001 |0002: add-int/lit8 v0, v0, #int 1 // #01 002978: 6700 0000 |0004: sput v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 00297c: 1c00 0a00 |0006: const-class v0, LTestDynamicBootstrapArguments; // type@000a 002980: 2201 2d00 |0008: new-instance v1, Ljava/lang/StringBuilder; // type@002d 002984: 7010 c100 0100 |000a: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 00298a: 6e20 c800 6100 |000d: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 002990: 6e20 c800 8100 |0010: invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 002996: 6e30 c600 910a |0013: invoke-virtual {v1, v9, v10}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c6 00299c: 6e10 ca00 0100 |0016: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 0029a2: 0c01 |0019: move-result-object v1 0029a4: 6e40 d800 0571 |001a: invoke-virtual {v5, v0, v1, v7}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 0029aa: 0c02 |001d: move-result-object v2 0029ac: 6203 1300 |001e: sget-object v3, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0029b0: 1a04 ea00 |0020: const-string v4, "bsm" // string@00ea 0029b4: 6e20 b300 4300 |0022: invoke-virtual {v3, v4}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 0029ba: 2203 3400 |0025: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0034 0029be: 7020 d200 2300 |0027: invoke-direct {v3, v2}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 0029c4: 1103 |002a: return-object v3 catches : (none) positions : 0x0000 line=36 0x0006 line=37 0x0008 line=38 0x001a line=39 0x001e line=40 0x0025 line=41 locals : 0x0008 - 0x002b reg=0 definingClass Ljava/lang/Class; Ljava/lang/Class<*>; 0x001a - 0x002b reg=1 methodName Ljava/lang/String; 0x001e - 0x002b reg=2 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x002b reg=5 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x002b reg=6 name Ljava/lang/String; 0x0000 - 0x002b reg=7 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x002b reg=8 otherNameComponent Ljava/lang/String; 0x0000 - 0x002b reg=9 nameSuffix J #3 : (in LTestDynamicBootstrapArguments;) name : 'targetA100000000' type : '(ILjava/lang/String;Ljava/lang/Double;)I' access : 0x000a (PRIVATE STATIC) method_idx : 68 code - registers : 5 ins : 3 outs : 2 insns size : 30 16-bit code units 0028f8: |[0028f8] TestDynamicBootstrapArguments.targetA100000000:(ILjava/lang/String;Ljava/lang/Double;)I 002908: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00290c: 6e20 ad00 2000 |0002: invoke-virtual {v0, v2}, Ljava/io/PrintStream;.print:(I)V // method@00ad 002912: 6200 1300 |0005: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002916: 1a01 0c00 |0007: const-string v1, ", " // string@000c 00291a: 6e20 b000 1000 |0009: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002920: 6200 1300 |000c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002924: 6e20 b000 3000 |000e: invoke-virtual {v0, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 00292a: 6200 1300 |0011: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00292e: 1a01 0c00 |0013: const-string v1, ", " // string@000c 002932: 6e20 b000 1000 |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002938: 6200 1300 |0018: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00293c: 6e20 b200 4000 |001a: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 002942: 0f02 |001d: return v2 catches : (none) positions : 0x0000 line=71 0x0005 line=72 0x000c line=73 0x0011 line=74 0x0018 line=75 0x001d line=76 locals : 0x0000 - 0x001e reg=2 i I 0x0000 - 0x001e reg=3 s Ljava/lang/String; 0x0000 - 0x001e reg=4 d Ljava/lang/Double; #4 : (in LTestDynamicBootstrapArguments;) name : 'test' type : '()V' access : 0x0008 (STATIC) method_idx : 69 code - registers : 2 ins : 0 outs : 2 insns size : 25 16-bit code units 0029f8: |[0029f8] TestDynamicBootstrapArguments.test:()V 002a08: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002a0c: 1a01 9200 |0002: const-string v1, "TestDynamicArguments" // string@0092 002a10: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 002a16: 7100 4600 0000 |0007: invoke-static {}, LTestDynamicBootstrapArguments;.testCallSites:()V // method@0046 002a1c: 6000 0000 |000a: sget v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 002a20: 1231 |000c: const/4 v1, #int 3 // #3 002a22: 7120 4100 0100 |000d: invoke-static {v1, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 002a28: 7100 4600 0000 |0010: invoke-static {}, LTestDynamicBootstrapArguments;.testCallSites:()V // method@0046 002a2e: 6000 0000 |0013: sget v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 002a32: 7120 4100 0100 |0015: invoke-static {v1, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 002a38: 0e00 |0018: return-void catches : (none) positions : 0x0000 line=86 0x0007 line=87 0x000a line=88 0x0010 line=89 0x0013 line=90 0x0018 line=91 locals : #5 : (in LTestDynamicBootstrapArguments;) name : 'testCallSites' type : '()V' access : 0x0008 (STATIC) method_idx : 70 code - registers : 3 ins : 0 outs : 3 insns size : 55 16-bit code units 002a3c: |[002a3c] TestDynamicBootstrapArguments.testCallSites:()V 002a4c: 1a00 8b00 |0000: const-string v0, "One" // string@008b 002a50: 1801 182d 4454 fb21 0940 |0002: const-wide v1, #double 3.14159 // #400921fb54442d18 002a5a: 7120 b900 2100 |0007: invoke-static {v1, v2}, Ljava/lang/Double;.valueOf:(D)Ljava/lang/Double; // method@00b9 002a60: 0c01 |000a: move-result-object v1 002a62: 1202 |000b: const/4 v2, #int 0 // #0 002a64: fc30 0f00 0201 |000c: invoke-custom {v2, v0, v1}, call_site@000f 002a6a: 0a00 |000f: move-result v0 002a6c: 7120 4100 0200 |0010: invoke-static {v2, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 002a72: 1a00 a200 |0013: const-string v0, "Two" // string@00a2 002a76: 1801 6957 148b 0abf 0540 |0015: const-wide v1, #double 2.71828 // #4005bf0a8b145769 002a80: 7120 b900 2100 |001a: invoke-static {v1, v2}, Ljava/lang/Double;.valueOf:(D)Ljava/lang/Double; // method@00b9 002a86: 0c01 |001d: move-result-object v1 002a88: 1212 |001e: const/4 v2, #int 1 // #1 002a8a: fc30 1000 0201 |001f: invoke-custom {v2, v0, v1}, call_site@0010 002a90: 0a00 |0022: move-result v0 002a92: 7120 4100 0200 |0023: invoke-static {v2, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 002a98: 1a00 9f00 |0026: const-string v0, "Three" // string@009f 002a9c: 1601 0000 |0028: const-wide/16 v1, #int 0 // #0 002aa0: 7120 b900 2100 |002a: invoke-static {v1, v2}, Ljava/lang/Double;.valueOf:(D)Ljava/lang/Double; // method@00b9 002aa6: 0c01 |002d: move-result-object v1 002aa8: 1222 |002e: const/4 v2, #int 2 // #2 002aaa: fc30 1100 0201 |002f: invoke-custom {v2, v0, v1}, call_site@0011 002ab0: 0a00 |0032: move-result v0 002ab2: 7120 4100 0200 |0033: invoke-static {v2, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 002ab8: 0e00 |0036: return-void catches : (none) positions : 0x0000 line=80 0x0013 line=81 0x0026 line=82 0x0036 line=83 locals : #6 : (in LTestDynamicBootstrapArguments;) name : 'testDynamic' type : '(ILjava/lang/String;Ljava/lang/Double;)I' access : 0x000a (PRIVATE STATIC) method_idx : 71 code - registers : 4 ins : 3 outs : 0 insns size : 5 16-bit code units 002944: |[002944] TestDynamicBootstrapArguments.testDynamic:(ILjava/lang/String;Ljava/lang/Double;)I 002954: 7100 4200 0000 |0000: invoke-static {}, LTestDynamicBootstrapArguments;.assertNotReached:()V // method@0042 00295a: 1200 |0003: const/4 v0, #int 0 // #0 00295c: 0f00 |0004: return v0 catches : (none) positions : 0x0000 line=66 0x0003 line=67 locals : 0x0000 - 0x0005 reg=1 i I 0x0000 - 0x0005 reg=2 s Ljava/lang/String; 0x0000 - 0x0005 reg=3 d Ljava/lang/Double; Virtual methods - source_file_idx : 147 (TestDynamicBootstrapArguments.java) Class #8 header: class_idx : 12 access_flags : 0 (0x0000) superclass_idx : 9 interfaces_off : 0 (0x000000) source_file_idx : 148 annotations_off : 31020 (0x00792c) class_data_off : 29258 (0x00724a) static_fields_size : 1 instance_fields_size: 1 direct_methods_size : 18 virtual_methods_size: 1 Class #8 annotations: Annotations on class VISIBILITY_SYSTEM Ldalvik/annotation/MemberClasses; value={ LTestInvocationKinds$Widget; } Annotations on method #78 'getInstanceField' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupInstanceFieldGetter" } fieldOrMethodName="instance_field" parameterTypes={ LTestInvocationKinds; } returnType=D Annotations on method #80 'getStaticField' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupStaticFieldGetter" } fieldOrMethodName="static_field" parameterTypes={ } returnType=I Annotations on method #81 'lookupConstructor' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #82 'lookupInstanceFieldGetter' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #83 'lookupInstanceFieldSetter' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #84 'lookupStaticFieldGetter' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #85 'lookupStaticFieldSetter' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #86 'lookupVirtual' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #87 'makeWidget' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupConstructor" } fieldOrMethodName="unused" parameterTypes={ I } returnType=LTestInvocationKinds$Widget; Annotations on method #88 'maxIntegerValue' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupVirtual" } fieldOrMethodName="getMaxIntegerValue" parameterTypes={ LTestInvocationKinds; I I } returnType=I Annotations on method #89 'setInstanceField' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupInstanceFieldSetter" } fieldOrMethodName="instance_field" parameterTypes={ LTestInvocationKinds; D } returnType=V Annotations on method #90 'setStaticField' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupStaticFieldSetter" } fieldOrMethodName="static_field" parameterTypes={ I } returnType=V Class #8 - Class descriptor : 'LTestInvocationKinds;' Access flags : 0x0000 () Superclass : 'LTestBase;' Interfaces - Static fields - #0 : (in LTestInvocationKinds;) name : 'static_field' type : 'I' access : 0x000a (PRIVATE STATIC) Instance fields - #0 : (in LTestInvocationKinds;) name : 'instance_field' type : 'D' access : 0x0002 (PRIVATE) Direct methods - #0 : (in LTestInvocationKinds;) name : '' type : '()V' access : 0x10000 (CONSTRUCTOR) method_idx : 73 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 002ca4: |[002ca4] TestInvocationKinds.:()V 002cb4: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.:()V // method@0032 002cba: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=25 locals : 0x0000 - 0x0004 reg=0 this LTestInvocationKinds; #1 : (in LTestInvocationKinds;) name : 'getInstanceField' type : '(LTestInvocationKinds;)D' access : 0x000a (PRIVATE STATIC) method_idx : 78 code - registers : 3 ins : 1 outs : 0 insns size : 6 16-bit code units 002af0: |[002af0] TestInvocationKinds.getInstanceField:(LTestInvocationKinds;)D 002b00: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d 002b06: 1900 f87f |0003: const-wide/high16 v0, #long 9221120237041090560 // #7ff8 002b0a: 1000 |0005: return-wide v0 catches : (none) positions : 0x0000 line=117 0x0003 line=118 locals : 0x0000 - 0x0006 reg=2 instance LTestInvocationKinds; #2 : (in LTestInvocationKinds;) name : 'getStaticField' type : '()I' access : 0x000a (PRIVATE STATIC) method_idx : 80 code - registers : 1 ins : 0 outs : 0 insns size : 5 16-bit code units 002b28: |[002b28] TestInvocationKinds.getStaticField:()I 002b38: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d 002b3e: 1200 |0003: const/4 v0, #int 0 // #0 002b40: 0f00 |0004: return v0 catches : (none) positions : 0x0000 line=71 0x0003 line=72 locals : #3 : (in LTestInvocationKinds;) name : 'lookupConstructor' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 81 code - registers : 7 ins : 3 outs : 3 insns size : 20 16-bit code units 002b60: |[002b60] TestInvocationKinds.lookupConstructor:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 002b70: 6e10 e500 0600 |0000: invoke-virtual {v6}, Ljava/lang/invoke/MethodType;.returnType:()Ljava/lang/Class; // method@00e5 002b76: 0c00 |0003: move-result-object v0 002b78: 6201 1400 |0004: sget-object v1, Ljava/lang/Void;.TYPE:Ljava/lang/Class; // field@0014 002b7c: 6e20 df00 1600 |0006: invoke-virtual {v6, v1}, Ljava/lang/invoke/MethodType;.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@00df 002b82: 0c01 |0009: move-result-object v1 002b84: 6e30 d500 0401 |000a: invoke-virtual {v4, v0, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findConstructor:(Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d5 002b8a: 0c02 |000d: move-result-object v2 002b8c: 2203 3400 |000e: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0034 002b90: 7020 d200 2300 |0010: invoke-direct {v3, v2}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 002b96: 1103 |0013: return-object v3 catches : (none) positions : 0x0000 line=183 0x0004 line=184 0x000a line=185 0x000e line=186 locals : 0x0004 - 0x0014 reg=0 cls Ljava/lang/Class; Ljava/lang/Class<*>; 0x000a - 0x0014 reg=1 constructorMethodType Ljava/lang/invoke/MethodType; 0x000e - 0x0014 reg=2 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0014 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0014 reg=5 name Ljava/lang/String; 0x0000 - 0x0014 reg=6 methodType Ljava/lang/invoke/MethodType; #4 : (in LTestInvocationKinds;) name : 'lookupInstanceFieldGetter' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' access : 0x0008 (STATIC) method_idx : 82 code - registers : 5 ins : 3 outs : 4 insns size : 20 16-bit code units 002b98: |[002b98] TestInvocationKinds.lookupInstanceFieldGetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 002ba8: 0000 |0000: nop // spacer 002baa: 1200 |0001: const/4 v0, #int 0 // #0 002bac: 6e20 e400 0400 |0002: invoke-virtual {v4, v0}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4 002bb2: 0c00 |0005: move-result-object v0 002bb4: 6e10 e500 0400 |0006: invoke-virtual {v4}, Ljava/lang/invoke/MethodType;.returnType:()Ljava/lang/Class; // method@00e5 002bba: 0c01 |0009: move-result-object v1 002bbc: 6e40 d600 0213 |000a: invoke-virtual {v2, v0, v3, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findGetter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00d6 002bc2: 0c00 |000d: move-result-object v0 002bc4: 2201 3400 |000e: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 002bc8: 7020 d200 0100 |0010: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 002bce: 1101 |0013: return-object v1 catches : (none) positions : 0x0000 line=101 0x0001 line=102 0x000e line=103 locals : 0x000e - 0x0014 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0014 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0014 reg=3 name Ljava/lang/String; 0x0000 - 0x0014 reg=4 methodType Ljava/lang/invoke/MethodType; #5 : (in LTestInvocationKinds;) name : 'lookupInstanceFieldSetter' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' access : 0x0008 (STATIC) method_idx : 83 code - registers : 5 ins : 3 outs : 4 insns size : 21 16-bit code units 002bd0: |[002bd0] TestInvocationKinds.lookupInstanceFieldSetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 002be0: 0000 |0000: nop // spacer 002be2: 1200 |0001: const/4 v0, #int 0 // #0 002be4: 6e20 e400 0400 |0002: invoke-virtual {v4, v0}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4 002bea: 0c00 |0005: move-result-object v0 002bec: 1211 |0006: const/4 v1, #int 1 // #1 002bee: 6e20 e400 1400 |0007: invoke-virtual {v4, v1}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4 002bf4: 0c01 |000a: move-result-object v1 002bf6: 6e40 d700 0213 |000b: invoke-virtual {v2, v0, v3, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findSetter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00d7 002bfc: 0c00 |000e: move-result-object v0 002bfe: 2201 3400 |000f: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 002c02: 7020 d200 0100 |0011: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 002c08: 1101 |0014: return-object v1 catches : (none) positions : 0x0000 line=78 0x0001 line=79 0x000f line=80 locals : 0x000f - 0x0015 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0015 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0015 reg=3 name Ljava/lang/String; 0x0000 - 0x0015 reg=4 methodType Ljava/lang/invoke/MethodType; #6 : (in LTestInvocationKinds;) name : 'lookupStaticFieldGetter' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' access : 0x0008 (STATIC) method_idx : 84 code - registers : 5 ins : 3 outs : 4 insns size : 16 16-bit code units 002c0c: |[002c0c] TestInvocationKinds.lookupStaticFieldGetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 002c1c: 1c00 0c00 |0000: const-class v0, LTestInvocationKinds; // type@000c 002c20: 6e10 e500 0400 |0002: invoke-virtual {v4}, Ljava/lang/invoke/MethodType;.returnType:()Ljava/lang/Class; // method@00e5 002c26: 0c01 |0005: move-result-object v1 002c28: 6e40 d900 0213 |0006: invoke-virtual {v2, v0, v3, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findStaticGetter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00d9 002c2e: 0c00 |0009: move-result-object v0 002c30: 2201 3400 |000a: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 002c34: 7020 d200 0100 |000c: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 002c3a: 1101 |000f: return-object v1 catches : (none) positions : 0x0000 line=32 0x0002 line=33 0x000a line=34 locals : 0x000a - 0x0010 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0010 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0010 reg=3 name Ljava/lang/String; 0x0000 - 0x0010 reg=4 methodType Ljava/lang/invoke/MethodType; #7 : (in LTestInvocationKinds;) name : 'lookupStaticFieldSetter' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' access : 0x0008 (STATIC) method_idx : 85 code - registers : 5 ins : 3 outs : 4 insns size : 17 16-bit code units 002c3c: |[002c3c] TestInvocationKinds.lookupStaticFieldSetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 002c4c: 1c00 0c00 |0000: const-class v0, LTestInvocationKinds; // type@000c 002c50: 1201 |0002: const/4 v1, #int 0 // #0 002c52: 6e20 e400 1400 |0003: invoke-virtual {v4, v1}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4 002c58: 0c01 |0006: move-result-object v1 002c5a: 6e40 da00 0213 |0007: invoke-virtual {v2, v0, v3, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findStaticSetter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00da 002c60: 0c00 |000a: move-result-object v0 002c62: 2201 3400 |000b: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 002c66: 7020 d200 0100 |000d: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 002c6c: 1101 |0010: return-object v1 catches : (none) positions : 0x0000 line=54 0x0002 line=56 0x0007 line=55 0x000b line=57 locals : 0x000b - 0x0011 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0011 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0011 reg=3 name Ljava/lang/String; 0x0000 - 0x0011 reg=4 methodType Ljava/lang/invoke/MethodType; #8 : (in LTestInvocationKinds;) name : 'lookupVirtual' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 86 code - registers : 6 ins : 3 outs : 4 insns size : 18 16-bit code units 002c70: |[002c70] TestInvocationKinds.lookupVirtual:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 002c80: 1200 |0000: const/4 v0, #int 0 // #0 002c82: 1211 |0001: const/4 v1, #int 1 // #1 002c84: 6e30 e000 0501 |0002: invoke-virtual {v5, v0, v1}, Ljava/lang/invoke/MethodType;.dropParameterTypes:(II)Ljava/lang/invoke/MethodType; // method@00e0 002c8a: 0c00 |0005: move-result-object v0 002c8c: 1c01 0c00 |0006: const-class v1, LTestInvocationKinds; // type@000c 002c90: 6e40 db00 1304 |0008: invoke-virtual {v3, v1, v4, v0}, Ljava/lang/invoke/MethodHandles$Lookup;.findVirtual:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00db 002c96: 0c01 |000b: move-result-object v1 002c98: 2202 3400 |000c: new-instance v2, Ljava/lang/invoke/ConstantCallSite; // type@0034 002c9c: 7020 d200 1200 |000e: invoke-direct {v2, v1}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 002ca2: 1102 |0011: return-object v2 catches : (none) positions : 0x0000 line=146 0x0006 line=147 0x000c line=148 locals : 0x0006 - 0x0012 reg=0 mt Ljava/lang/invoke/MethodType; 0x000c - 0x0012 reg=1 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0012 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0012 reg=4 name Ljava/lang/String; 0x0000 - 0x0012 reg=5 methodType Ljava/lang/invoke/MethodType; #9 : (in LTestInvocationKinds;) name : 'makeWidget' type : '(I)LTestInvocationKinds$Widget;' access : 0x000a (PRIVATE STATIC) method_idx : 87 code - registers : 2 ins : 1 outs : 0 insns size : 5 16-bit code units 002ad4: |[002ad4] TestInvocationKinds.makeWidget:(I)LTestInvocationKinds$Widget; 002ae4: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d 002aea: 1200 |0003: const/4 v0, #int 0 // #0 002aec: 1100 |0004: return-object v0 catches : (none) positions : 0x0000 line=200 0x0003 line=201 locals : 0x0000 - 0x0005 reg=1 v I #10 : (in LTestInvocationKinds;) name : 'maxIntegerValue' type : '(LTestInvocationKinds;II)I' access : 0x000a (PRIVATE STATIC) method_idx : 88 code - registers : 4 ins : 3 outs : 0 insns size : 5 16-bit code units 002b44: |[002b44] TestInvocationKinds.maxIntegerValue:(LTestInvocationKinds;II)I 002b54: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d 002b5a: 1200 |0003: const/4 v0, #int 0 // #0 002b5c: 0f00 |0004: return v0 catches : (none) positions : 0x0000 line=159 0x0003 line=160 locals : 0x0000 - 0x0005 reg=1 receiver LTestInvocationKinds; 0x0000 - 0x0005 reg=2 x I 0x0000 - 0x0005 reg=3 y I #11 : (in LTestInvocationKinds;) name : 'setInstanceField' type : '(LTestInvocationKinds;D)V' access : 0x000a (PRIVATE STATIC) method_idx : 89 code - registers : 5 ins : 3 outs : 0 insns size : 8 16-bit code units 002cbc: |[002cbc] TestInvocationKinds.setInstanceField:(LTestInvocationKinds;D)V 002ccc: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d 002cd2: 1900 f87f |0003: const-wide/high16 v0, #long 9221120237041090560 // #7ff8 002cd6: 5a20 0200 |0005: iput-wide v0, v2, LTestInvocationKinds;.instance_field:D // field@0002 002cda: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=94 0x0003 line=95 0x0007 line=96 locals : 0x0000 - 0x0008 reg=2 instance LTestInvocationKinds; 0x0000 - 0x0008 reg=3 value D #12 : (in LTestInvocationKinds;) name : 'setStaticField' type : '(I)V' access : 0x000a (PRIVATE STATIC) method_idx : 90 code - registers : 1 ins : 1 outs : 0 insns size : 4 16-bit code units 002cdc: |[002cdc] TestInvocationKinds.setStaticField:(I)V 002cec: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d 002cf2: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=48 0x0003 line=49 locals : 0x0000 - 0x0004 reg=0 value I #13 : (in LTestInvocationKinds;) name : 'test' type : '()V' access : 0x0009 (PUBLIC STATIC) method_idx : 91 code - registers : 2 ins : 0 outs : 2 insns size : 24 16-bit code units 002cf4: |[002cf4] TestInvocationKinds.test:()V 002d04: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002d08: 1c01 0c00 |0002: const-class v1, LTestInvocationKinds; // type@000c 002d0c: 6e10 b700 0100 |0004: invoke-virtual {v1}, Ljava/lang/Class;.getName:()Ljava/lang/String; // method@00b7 002d12: 0c01 |0007: move-result-object v1 002d14: 6e20 b300 1000 |0008: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 002d1a: 7100 5f00 0000 |000b: invoke-static {}, LTestInvocationKinds;.testStaticFieldAccessors:()V // method@005f 002d20: 7100 5d00 0000 |000e: invoke-static {}, LTestInvocationKinds;.testInstanceFieldAccessors:()V // method@005d 002d26: 7100 5e00 0000 |0011: invoke-static {}, LTestInvocationKinds;.testInvokeVirtual:()V // method@005e 002d2c: 7100 5c00 0000 |0014: invoke-static {}, LTestInvocationKinds;.testConstructor:()V // method@005c 002d32: 0e00 |0017: return-void catches : (none) positions : 0x0000 line=212 0x000b line=213 0x000e line=214 0x0011 line=215 0x0014 line=216 0x0017 line=217 locals : #14 : (in LTestInvocationKinds;) name : 'testConstructor' type : '()V' access : 0x0008 (STATIC) method_idx : 92 code - registers : 3 ins : 0 outs : 2 insns size : 31 16-bit code units 002d34: |[002d34] TestInvocationKinds.testConstructor:()V 002d44: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002d48: 1a01 b601 |0002: const-string v1, "testConstructor => " // string@01b6 002d4c: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002d52: 1230 |0007: const/4 v0, #int 3 // #3 002d54: fc10 1200 0000 |0008: invoke-custom {v0}, call_site@0012 002d5a: 0c00 |000b: move-result-object v0 002d5c: 1c01 0b00 |000c: const-class v1, LTestInvocationKinds$Widget; // type@000b 002d60: 6e10 c000 0000 |000e: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002d66: 0c02 |0011: move-result-object v2 002d68: 7120 4c00 2100 |0012: invoke-static {v1, v2}, LTestInvocationKinds;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@004c 002d6e: 6201 1300 |0015: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002d72: 6e10 c000 0000 |0017: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 002d78: 0c02 |001a: move-result-object v2 002d7a: 6e20 b200 2100 |001b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 002d80: 0e00 |001e: return-void catches : (none) positions : 0x0000 line=205 0x0007 line=206 0x000c line=207 0x0015 line=208 0x001e line=209 locals : 0x000c - 0x001f reg=0 receiver LTestInvocationKinds$Widget; #15 : (in LTestInvocationKinds;) name : 'testInstanceFieldAccessors' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 93 code - registers : 5 ins : 0 outs : 4 insns size : 44 16-bit code units 002d84: |[002d84] TestInvocationKinds.testInstanceFieldAccessors:()V 002d94: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002d98: 1a01 b801 |0002: const-string v1, "testInstanceFieldAccessors" // string@01b8 002d9c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 002da2: 2200 0c00 |0007: new-instance v0, LTestInvocationKinds; // type@000c 002da6: 7010 4900 0000 |0009: invoke-direct {v0}, LTestInvocationKinds;.:()V // method@0049 002dac: 1601 0100 |000c: const-wide/16 v1, #int 1 // #1 002db0: 5a01 0200 |000e: iput-wide v1, v0, LTestInvocationKinds;.instance_field:D // field@0002 002db4: 1801 182d 4454 fb21 0940 |0010: const-wide v1, #double 3.14159 // #400921fb54442d18 002dbe: fc30 1300 1002 |0015: invoke-custom {v0, v1, v2}, call_site@0013 002dc4: 5303 0200 |0018: iget-wide v3, v0, LTestInvocationKinds;.instance_field:D // field@0002 002dc8: 7140 4a00 2143 |001a: invoke-static {v1, v2, v3, v4}, LTestInvocationKinds;.assertEquals:(DD)V // method@004a 002dce: 1801 6957 148b 0abf 0540 |001d: const-wide v1, #double 2.71828 // #4005bf0a8b145769 002dd8: 5a01 0200 |0022: iput-wide v1, v0, LTestInvocationKinds;.instance_field:D // field@0002 002ddc: fc10 1400 0000 |0024: invoke-custom {v0}, call_site@0014 002de2: 0b03 |0027: move-result-wide v3 002de4: 7140 4a00 2143 |0028: invoke-static {v1, v2, v3, v4}, LTestInvocationKinds;.assertEquals:(DD)V // method@004a 002dea: 0e00 |002b: return-void catches : (none) positions : 0x0000 line=133 0x0007 line=134 0x000c line=135 0x0010 line=136 0x0018 line=137 0x001d line=138 0x0024 line=139 0x002b line=140 locals : 0x000c - 0x002c reg=0 instance LTestInvocationKinds; #16 : (in LTestInvocationKinds;) name : 'testInvokeVirtual' type : '()V' access : 0x0008 (STATIC) method_idx : 94 code - registers : 3 ins : 0 outs : 3 insns size : 25 16-bit code units 002dec: |[002dec] TestInvocationKinds.testInvokeVirtual:()V 002dfc: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002e00: 1a01 ba01 |0002: const-string v1, "testInvokeVirtual => max(77, -3) = " // string@01ba 002e04: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 002e0a: 2200 0c00 |0007: new-instance v0, LTestInvocationKinds; // type@000c 002e0e: 7010 4900 0000 |0009: invoke-direct {v0}, LTestInvocationKinds;.:()V // method@0049 002e14: 1301 4d00 |000c: const/16 v1, #int 77 // #4d 002e18: 12d2 |000e: const/4 v2, #int -3 // #fd 002e1a: fc30 1500 1002 |000f: invoke-custom {v0, v1, v2}, call_site@0015 002e20: 0a01 |0012: move-result v1 002e22: 6202 1300 |0013: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002e26: 6e20 b100 1200 |0015: invoke-virtual {v2, v1}, Ljava/io/PrintStream;.println:(I)V // method@00b1 002e2c: 0e00 |0018: return-void catches : (none) positions : 0x0000 line=168 0x0007 line=169 0x000c line=170 0x0013 line=171 0x0018 line=172 locals : 0x000c - 0x0019 reg=0 receiver LTestInvocationKinds; 0x0013 - 0x0019 reg=1 result I #17 : (in LTestInvocationKinds;) name : 'testStaticFieldAccessors' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 95 code - registers : 2 ins : 0 outs : 2 insns size : 47 16-bit code units 002e30: |[002e30] TestInvocationKinds.testStaticFieldAccessors:()V 002e40: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 002e44: 1a01 bb01 |0002: const-string v1, "testStaticFieldAccessors" // string@01bb 002e48: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 002e4e: 1230 |0007: const/4 v0, #int 3 // #3 002e50: fc10 1600 0000 |0008: invoke-custom {v0}, call_site@0016 002e56: 6001 0300 |000b: sget v1, LTestInvocationKinds;.static_field:I // field@0003 002e5a: 7120 4b00 0100 |000d: invoke-static {v1, v0}, LTestInvocationKinds;.assertEquals:(II)V // method@004b 002e60: 1240 |0010: const/4 v0, #int 4 // #4 002e62: fc10 1700 0000 |0011: invoke-custom {v0}, call_site@0017 002e68: 6001 0300 |0014: sget v1, LTestInvocationKinds;.static_field:I // field@0003 002e6c: 7120 4b00 0100 |0016: invoke-static {v1, v0}, LTestInvocationKinds;.assertEquals:(II)V // method@004b 002e72: 6000 0300 |0019: sget v0, LTestInvocationKinds;.static_field:I // field@0003 002e76: fc00 1800 0000 |001b: invoke-custom {}, call_site@0018 002e7c: 0a01 |001e: move-result v1 002e7e: 7120 4b00 1000 |001f: invoke-static {v0, v1}, LTestInvocationKinds;.assertEquals:(II)V // method@004b 002e84: 1400 ffff ff7f |0022: const v0, #float nan // #7fffffff 002e8a: 6700 0300 |0025: sput v0, LTestInvocationKinds;.static_field:I // field@0003 002e8e: fc00 1900 0000 |0027: invoke-custom {}, call_site@0019 002e94: 0a01 |002a: move-result v1 002e96: 7120 4b00 1000 |002b: invoke-static {v0, v1}, LTestInvocationKinds;.assertEquals:(II)V // method@004b 002e9c: 0e00 |002e: return-void catches : (none) positions : 0x0000 line=122 0x0007 line=123 0x000b line=124 0x0010 line=125 0x0014 line=126 0x0019 line=127 0x0022 line=128 0x0027 line=129 0x002e line=130 locals : Virtual methods - #0 : (in LTestInvocationKinds;) name : 'getMaxIntegerValue' type : '(II)I' access : 0x0001 (PUBLIC) method_idx : 79 code - registers : 4 ins : 3 outs : 0 insns size : 6 16-bit code units 002b0c: |[002b0c] TestInvocationKinds.getMaxIntegerValue:(II)I 002b1c: 3732 0400 |0000: if-le v2, v3, 0004 // +0004 002b20: 0120 |0002: move v0, v2 002b22: 2802 |0003: goto 0005 // +0002 002b24: 0130 |0004: move v0, v3 002b26: 0f00 |0005: return v0 catches : (none) positions : 0x0000 line=164 locals : 0x0000 - 0x0006 reg=1 this LTestInvocationKinds; 0x0000 - 0x0006 reg=2 x I 0x0000 - 0x0006 reg=3 y I source_file_idx : 148 (TestInvocationKinds.java) Class #9 header: class_idx : 14 access_flags : 1 (0x0001) superclass_idx : 9 interfaces_off : 18256 (0x004750) source_file_idx : 149 annotations_off : 31132 (0x00799c) class_data_off : 29344 (0x0072a0) static_fields_size : 7 instance_fields_size: 0 direct_methods_size : 8 virtual_methods_size: 1 Class #9 annotations: Annotations on field #10 'threadIndex' VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "Ljava/lang/ThreadLocal<" "Ljava/lang/Integer;" ">;" } Annotations on method #106 'linkerMethod' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #109 'setCalled' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvokeCustomWithConcurrentThreads; name="linkerMethod" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } } fieldOrMethodName="setCalled" parameterTypes={ I } returnType=I Annotations on method #110 'test' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Class #9 - Class descriptor : 'LTestInvokeCustomWithConcurrentThreads;' Access flags : 0x0001 (PUBLIC) Superclass : 'LTestBase;' Interfaces - #0 : 'Ljava/lang/Runnable;' Static fields - #0 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'NUMBER_OF_THREADS' type : 'I' access : 0x001a (PRIVATE STATIC FINAL) value : 16 #1 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'barrier' type : 'Ljava/util/concurrent/CyclicBarrier;' access : 0x001a (PRIVATE STATIC FINAL) #2 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'called' type : '[Ljava/util/concurrent/atomic/AtomicInteger;' access : 0x001a (PRIVATE STATIC FINAL) #3 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'instantiated' type : '[Ljava/lang/invoke/CallSite;' access : 0x001a (PRIVATE STATIC FINAL) #4 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'nextIndex' type : 'Ljava/util/concurrent/atomic/AtomicInteger;' access : 0x001a (PRIVATE STATIC FINAL) #5 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'targetted' type : '[Ljava/util/concurrent/atomic/AtomicInteger;' access : 0x001a (PRIVATE STATIC FINAL) #6 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'threadIndex' type : 'Ljava/lang/ThreadLocal;' access : 0x001a (PRIVATE STATIC FINAL) Instance fields - Direct methods - #0 : (in LTestInvokeCustomWithConcurrentThreads;) name : '' type : '()V' access : 0x10008 (STATIC CONSTRUCTOR) method_idx : 99 code - registers : 2 ins : 0 outs : 2 insns size : 37 16-bit code units 003064: |[003064] TestInvokeCustomWithConcurrentThreads.:()V 003074: 2200 3e00 |0000: new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger; // type@003e 003078: 1201 |0002: const/4 v1, #int 0 // #0 00307a: 7020 ef00 1000 |0003: invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;.:(I)V // method@00ef 003080: 6900 0800 |0006: sput-object v0, LTestInvokeCustomWithConcurrentThreads;.nextIndex:Ljava/util/concurrent/atomic/AtomicInteger; // field@0008 003084: 2200 0d00 |0008: new-instance v0, LTestInvokeCustomWithConcurrentThreads$1; // type@000d 003088: 7010 6000 0000 |000a: invoke-direct {v0}, LTestInvokeCustomWithConcurrentThreads$1;.:()V // method@0060 00308e: 6900 0a00 |000d: sput-object v0, LTestInvokeCustomWithConcurrentThreads;.threadIndex:Ljava/lang/ThreadLocal; // field@000a 003092: 1300 1000 |000f: const/16 v0, #int 16 // #10 003096: 2301 4b00 |0011: new-array v1, v0, [Ljava/lang/invoke/CallSite; // type@004b 00309a: 6901 0700 |0013: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007 00309e: 2301 4c00 |0015: new-array v1, v0, [Ljava/util/concurrent/atomic/AtomicInteger; // type@004c 0030a2: 6901 0600 |0017: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 0030a6: 2301 4c00 |0019: new-array v1, v0, [Ljava/util/concurrent/atomic/AtomicInteger; // type@004c 0030aa: 6901 0900 |001b: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009 0030ae: 2201 3d00 |001d: new-instance v1, Ljava/util/concurrent/CyclicBarrier; // type@003d 0030b2: 7020 ed00 0100 |001f: invoke-direct {v1, v0}, Ljava/util/concurrent/CyclicBarrier;.:(I)V // method@00ed 0030b8: 6901 0500 |0022: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.barrier:Ljava/util/concurrent/CyclicBarrier; // field@0005 0030bc: 0e00 |0024: return-void catches : (none) positions : 0x0000 line=30 0x0008 line=32 0x000f line=41 0x0015 line=44 0x0019 line=47 0x001d line=50 locals : #1 : (in LTestInvokeCustomWithConcurrentThreads;) name : '' type : '()V' access : 0x10002 (PRIVATE CONSTRUCTOR) method_idx : 100 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 0030c0: |[0030c0] TestInvokeCustomWithConcurrentThreads.:()V 0030d0: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.:()V // method@0032 0030d6: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=52 locals : 0x0000 - 0x0004 reg=0 this LTestInvokeCustomWithConcurrentThreads; #2 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'access$000' type : '()Ljava/util/concurrent/atomic/AtomicInteger;' access : 0x1008 (STATIC SYNTHETIC) method_idx : 101 code - registers : 1 ins : 0 outs : 0 insns size : 3 16-bit code units 00304c: |[00304c] TestInvokeCustomWithConcurrentThreads.access$000:()Ljava/util/concurrent/atomic/AtomicInteger; 00305c: 6200 0800 |0000: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.nextIndex:Ljava/util/concurrent/atomic/AtomicInteger; // field@0008 003060: 1100 |0002: return-object v0 catches : (none) positions : 0x0000 line=27 locals : #3 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'getThreadIndex' type : '()I' access : 0x000a (PRIVATE STATIC) method_idx : 105 code - registers : 1 ins : 0 outs : 1 insns size : 13 16-bit code units 002f00: |[002f00] TestInvokeCustomWithConcurrentThreads.getThreadIndex:()I 002f10: 6200 0a00 |0000: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.threadIndex:Ljava/lang/ThreadLocal; // field@000a 002f14: 6e10 d000 0000 |0002: invoke-virtual {v0}, Ljava/lang/ThreadLocal;.get:()Ljava/lang/Object; // method@00d0 002f1a: 0c00 |0005: move-result-object v0 002f1c: 1f00 2700 |0006: check-cast v0, Ljava/lang/Integer; // type@0027 002f20: 6e10 bc00 0000 |0008: invoke-virtual {v0}, Ljava/lang/Integer;.intValue:()I // method@00bc 002f26: 0a00 |000b: move-result v0 002f28: 0f00 |000c: return v0 catches : (none) positions : 0x0000 line=55 locals : #4 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'linkerMethod' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 106 code - registers : 8 ins : 3 outs : 4 insns size : 97 16-bit code units 002f78: |[002f78] TestInvokeCustomWithConcurrentThreads.linkerMethod:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 002f88: 1c00 0e00 |0000: const-class v0, LTestInvokeCustomWithConcurrentThreads; // type@000e 002f8c: 6e40 d800 0576 |0002: invoke-virtual {v5, v0, v6, v7}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 002f92: 0c00 |0005: move-result-object v0 002f94: 6e10 d400 0000 |0006: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4 002f9a: 0c01 |0009: move-result-object v1 002f9c: 7120 6700 1700 |000a: invoke-static {v7, v1}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0067 002fa2: 6e10 d400 0000 |000d: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4 002fa8: 0c01 |0010: move-result-object v1 002faa: 6e10 e300 0100 |0011: invoke-virtual {v1}, Ljava/lang/invoke/MethodType;.parameterCount:()I // method@00e3 002fb0: 0a01 |0014: move-result v1 002fb2: 1212 |0015: const/4 v2, #int 1 // #1 002fb4: 7120 6600 2100 |0016: invoke-static {v1, v2}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066 002fba: 2321 4800 |0019: new-array v1, v2, [Ljava/lang/Object; // type@0048 002fbe: 7100 6900 0000 |001b: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069 002fc4: 0a03 |001e: move-result v3 002fc6: 7110 bd00 0300 |001f: invoke-static {v3}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd 002fcc: 0c03 |0022: move-result-object v3 002fce: 1204 |0023: const/4 v4, #int 0 // #0 002fd0: 4d03 0104 |0024: aput-object v3, v1, v4 002fd4: 7130 de00 4001 |0026: invoke-static {v0, v4, v1}, Ljava/lang/invoke/MethodHandles;.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle; // method@00de 002fda: 0c00 |0029: move-result-object v0 002fdc: 2321 4600 |002a: new-array v1, v2, [Ljava/lang/Class; // type@0046 002fe0: 6203 1200 |002c: sget-object v3, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@0012 002fe4: 4d03 0104 |002e: aput-object v3, v1, v4 002fe8: 7130 dd00 4001 |0030: invoke-static {v0, v4, v1}, Ljava/lang/invoke/MethodHandles;.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00dd 002fee: 0c00 |0033: move-result-object v0 002ff0: 6e10 d400 0000 |0034: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4 002ff6: 0c01 |0037: move-result-object v1 002ff8: 6e10 e300 0100 |0038: invoke-virtual {v1}, Ljava/lang/invoke/MethodType;.parameterCount:()I // method@00e3 002ffe: 0a01 |003b: move-result v1 003000: 7120 6600 2100 |003c: invoke-static {v1, v2}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066 003006: 6e10 d400 0000 |003f: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4 00300c: 0c01 |0042: move-result-object v1 00300e: 7120 6700 1700 |0043: invoke-static {v7, v1}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0067 003014: 6201 0500 |0046: sget-object v1, LTestInvokeCustomWithConcurrentThreads;.barrier:Ljava/util/concurrent/CyclicBarrier; // field@0005 003018: 6e10 ee00 0100 |0048: invoke-virtual {v1}, Ljava/util/concurrent/CyclicBarrier;.await:()I // method@00ee 00301e: 6201 0700 |004b: sget-object v1, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007 003022: 7100 6900 0000 |004d: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069 003028: 0a02 |0050: move-result v2 00302a: 2203 3400 |0051: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0034 00302e: 7020 d200 0300 |0053: invoke-direct {v3, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 003034: 4d03 0102 |0056: aput-object v3, v1, v2 003038: 6201 0700 |0058: sget-object v1, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007 00303c: 7100 6900 0000 |005a: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069 003042: 0a02 |005d: move-result v2 003044: 4601 0102 |005e: aget-object v1, v1, v2 003048: 1101 |0060: return-object v1 catches : (none) positions : 0x0000 line=87 0x0002 line=88 0x0006 line=89 0x000d line=90 0x0019 line=91 0x002a line=92 0x0034 line=93 0x003f line=94 0x0046 line=99 0x004b line=101 0x0058 line=102 locals : 0x0006 - 0x0061 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0061 reg=5 caller Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0061 reg=6 name Ljava/lang/String; 0x0000 - 0x0061 reg=7 methodType Ljava/lang/invoke/MethodType; #5 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'notUsed' type : '(I)I' access : 0x0009 (PUBLIC STATIC) method_idx : 107 code - registers : 1 ins : 1 outs : 0 insns size : 1 16-bit code units 002f2c: |[002f2c] TestInvokeCustomWithConcurrentThreads.notUsed:(I)I 002f3c: 0f00 |0000: return v0 catches : (none) positions : 0x0000 line=59 locals : 0x0000 - 0x0001 reg=0 x I #6 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'setCalled' type : '(I)I' access : 0x000a (PRIVATE STATIC) method_idx : 109 code - registers : 3 ins : 1 outs : 2 insns size : 20 16-bit code units 002f40: |[002f40] TestInvokeCustomWithConcurrentThreads.setCalled:(I)I 002f50: 6200 0600 |0000: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 002f54: 4600 0002 |0002: aget-object v0, v0, v2 002f58: 6e10 f100 0000 |0004: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.getAndIncrement:()I // method@00f1 002f5e: 6200 0900 |0007: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009 002f62: 7100 6900 0000 |0009: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069 002f68: 0a01 |000c: move-result v1 002f6a: 4600 0001 |000d: aget-object v0, v0, v1 002f6e: 6e20 f200 2000 |000f: invoke-virtual {v0, v2}, Ljava/util/concurrent/atomic/AtomicInteger;.set:(I)V // method@00f2 002f74: 1200 |0012: const/4 v0, #int 0 // #0 002f76: 0f00 |0013: return v0 catches : (none) positions : 0x0000 line=79 0x0007 line=80 0x0012 line=81 locals : 0x0000 - 0x0014 reg=2 index I #7 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'test' type : '()V' access : 0x0009 (PUBLIC STATIC) method_idx : 110 code - registers : 12 ins : 0 outs : 3 insns size : 229 16-bit code units 0030fc: |[0030fc] TestInvokeCustomWithConcurrentThreads.test:()V 00310c: 1200 |0000: const/4 v0, #int 0 // #0 00310e: 0101 |0001: move v1, v0 003110: 1302 1000 |0002: const/16 v2, #int 16 // #10 003114: 3521 1700 |0004: if-ge v1, v2, 001b // +0017 003118: 6202 0600 |0006: sget-object v2, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 00311c: 2203 3e00 |0008: new-instance v3, Ljava/util/concurrent/atomic/AtomicInteger; // type@003e 003120: 7020 ef00 0300 |000a: invoke-direct {v3, v0}, Ljava/util/concurrent/atomic/AtomicInteger;.:(I)V // method@00ef 003126: 4d03 0201 |000d: aput-object v3, v2, v1 00312a: 6202 0900 |000f: sget-object v2, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009 00312e: 2203 3e00 |0011: new-instance v3, Ljava/util/concurrent/atomic/AtomicInteger; // type@003e 003132: 7020 ef00 0300 |0013: invoke-direct {v3, v0}, Ljava/util/concurrent/atomic/AtomicInteger;.:(I)V // method@00ef 003138: 4d03 0201 |0016: aput-object v3, v2, v1 00313c: d801 0101 |0018: add-int/lit8 v1, v1, #int 1 // #01 003140: 28e8 |001a: goto 0002 // -0018 003142: 2321 4a00 |001b: new-array v1, v2, [Ljava/lang/Thread; // type@004a 003146: 0103 |001d: move v3, v0 003148: 3523 1600 |001e: if-ge v3, v2, 0034 // +0016 00314c: 2204 2f00 |0020: new-instance v4, Ljava/lang/Thread; // type@002f 003150: 2205 0e00 |0022: new-instance v5, LTestInvokeCustomWithConcurrentThreads; // type@000e 003154: 7010 6400 0500 |0024: invoke-direct {v5}, LTestInvokeCustomWithConcurrentThreads;.:()V // method@0064 00315a: 7020 cb00 5400 |0027: invoke-direct {v4, v5}, Ljava/lang/Thread;.:(Ljava/lang/Runnable;)V // method@00cb 003160: 4d04 0103 |002a: aput-object v4, v1, v3 003164: 4604 0103 |002c: aget-object v4, v1, v3 003168: 6e10 ce00 0400 |002e: invoke-virtual {v4}, Ljava/lang/Thread;.start:()V // method@00ce 00316e: d803 0301 |0031: add-int/lit8 v3, v3, #int 1 // #01 003172: 28eb |0033: goto 001e // -0015 003174: 0103 |0034: move v3, v0 003176: 3523 0a00 |0035: if-ge v3, v2, 003f // +000a 00317a: 4604 0103 |0037: aget-object v4, v1, v3 00317e: 6e10 cd00 0400 |0039: invoke-virtual {v4}, Ljava/lang/Thread;.join:()V // method@00cd 003184: d803 0301 |003c: add-int/lit8 v3, v3, #int 1 // #01 003188: 28f7 |003e: goto 0035 // -0009 00318a: 1203 |003f: const/4 v3, #int 0 // #0 00318c: 1204 |0040: const/4 v4, #int 0 // #0 00318e: 0145 |0041: move v5, v4 003190: 0134 |0042: move v4, v3 003192: 0103 |0043: move v3, v0 003194: 3523 2200 |0044: if-ge v3, v2, 0066 // +0022 003198: 6206 0700 |0046: sget-object v6, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007 00319c: 4606 0603 |0048: aget-object v6, v6, v3 0031a0: 1207 |004a: const/4 v7, #int 0 // #0 0031a2: 7120 6800 7600 |004b: invoke-static {v6, v7}, LTestInvokeCustomWithConcurrentThreads;.assertNotEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0068 0031a8: 6206 0600 |004e: sget-object v6, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 0031ac: 4606 0603 |0050: aget-object v6, v6, v3 0031b0: 6e10 f000 0600 |0052: invoke-virtual {v6}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0 0031b6: 0a06 |0055: move-result v6 0031b8: 3806 0d00 |0056: if-eqz v6, 0063 // +000d 0031bc: d804 0401 |0058: add-int/lit8 v4, v4, #int 1 // #01 0031c0: 6206 0600 |005a: sget-object v6, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 0031c4: 4606 0603 |005c: aget-object v6, v6, v3 0031c8: 6e10 f000 0600 |005e: invoke-virtual {v6}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0 0031ce: 0a06 |0061: move-result v6 0031d0: b065 |0062: add-int/2addr v5, v6 0031d2: d803 0301 |0063: add-int/lit8 v3, v3, #int 1 // #01 0031d6: 28df |0065: goto 0044 // -0021 0031d8: 6203 1300 |0066: sget-object v3, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0031dc: 2206 2d00 |0068: new-instance v6, Ljava/lang/StringBuilder; // type@002d 0031e0: 7010 c100 0600 |006a: invoke-direct {v6}, Ljava/lang/StringBuilder;.:()V // method@00c1 0031e6: 1a07 b800 |006d: const-string v7, "Winners " // string@00b8 0031ea: 6e20 c800 7600 |006f: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0031f0: 6e20 c500 4600 |0072: invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 0031f6: 1a07 0500 |0075: const-string v7, " Votes " // string@0005 0031fa: 6e20 c800 7600 |0077: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 003200: 6e20 c500 5600 |007a: invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 003206: 6e10 ca00 0600 |007d: invoke-virtual {v6}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 00320c: 0c06 |0080: move-result-object v6 00320e: 6e20 b300 6300 |0081: invoke-virtual {v3, v6}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003214: 1223 |0084: const/4 v3, #int 2 // #2 003216: 1216 |0085: const/4 v6, #int 1 // #1 003218: 3264 2c00 |0086: if-eq v4, v6, 00b2 // +002c 00321c: 6207 1300 |0088: sget-object v7, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003220: 1a08 9e00 |008a: const-string v8, "Threads did not the same call-sites:" // string@009e 003224: 6e20 b300 8700 |008c: invoke-virtual {v7, v8}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 00322a: 0107 |008f: move v7, v0 00322c: 3527 2200 |0090: if-ge v7, v2, 00b2 // +0022 003230: 6208 1300 |0092: sget-object v8, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003234: 1a09 0400 |0094: const-string v9, " Thread % 2d invoked call site instance #%02d\n" // string@0004 003238: 233a 4800 |0096: new-array v10, v3, [Ljava/lang/Object; // type@0048 00323c: 7110 bd00 0700 |0098: invoke-static {v7}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd 003242: 0c0b |009b: move-result-object v11 003244: 4d0b 0a00 |009c: aput-object v11, v10, v0 003248: 620b 0900 |009e: sget-object v11, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009 00324c: 460b 0b07 |00a0: aget-object v11, v11, v7 003250: 6e10 f000 0b00 |00a2: invoke-virtual {v11}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0 003256: 0a0b |00a5: move-result v11 003258: 7110 bd00 0b00 |00a6: invoke-static {v11}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd 00325e: 0c0b |00a9: move-result-object v11 003260: 4d0b 0a06 |00aa: aput-object v11, v10, v6 003264: 6e30 ab00 980a |00ac: invoke-virtual {v8, v9, v10}, Ljava/io/PrintStream;.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; // method@00ab 00326a: d807 0701 |00af: add-int/lit8 v7, v7, #int 1 // #01 00326e: 28df |00b1: goto 0090 // -0021 003270: 3225 2c00 |00b2: if-eq v5, v2, 00de // +002c 003274: 6207 1300 |00b4: sget-object v7, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003278: 1a08 2000 |00b6: const-string v8, "Call-sites invocations :" // string@0020 00327c: 6e20 b300 8700 |00b8: invoke-virtual {v7, v8}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003282: 0107 |00bb: move v7, v0 003284: 3527 2200 |00bc: if-ge v7, v2, 00de // +0022 003288: 6208 1300 |00be: sget-object v8, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00328c: 1a09 0300 |00c0: const-string v9, " Call site instance #%02d was invoked % 2d times\n" // string@0003 003290: 233a 4800 |00c2: new-array v10, v3, [Ljava/lang/Object; // type@0048 003294: 7110 bd00 0700 |00c4: invoke-static {v7}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd 00329a: 0c0b |00c7: move-result-object v11 00329c: 4d0b 0a00 |00c8: aput-object v11, v10, v0 0032a0: 620b 0600 |00ca: sget-object v11, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 0032a4: 460b 0b07 |00cc: aget-object v11, v11, v7 0032a8: 6e10 f000 0b00 |00ce: invoke-virtual {v11}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0 0032ae: 0a0b |00d1: move-result v11 0032b0: 7110 bd00 0b00 |00d2: invoke-static {v11}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd 0032b6: 0c0b |00d5: move-result-object v11 0032b8: 4d0b 0a06 |00d6: aput-object v11, v10, v6 0032bc: 6e30 ab00 980a |00d8: invoke-virtual {v8, v9, v10}, Ljava/io/PrintStream;.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; // method@00ab 0032c2: d807 0701 |00db: add-int/lit8 v7, v7, #int 1 // #01 0032c6: 28df |00dd: goto 00bc // -0021 0032c8: 7120 6600 6400 |00de: invoke-static {v4, v6}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066 0032ce: 7120 6600 2500 |00e1: invoke-static {v5, v2}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066 0032d4: 0e00 |00e4: return-void catches : (none) positions : 0x0000 line=107 0x0006 line=108 0x000f line=109 0x0018 line=107 0x001b line=113 0x001d line=114 0x0020 line=115 0x002c line=116 0x0031 line=114 0x0034 line=120 0x0037 line=121 0x003c line=120 0x003f line=125 0x0040 line=126 0x0041 line=127 0x0046 line=128 0x004e line=129 0x0058 line=130 0x005a line=131 0x0063 line=127 0x0066 line=135 0x0084 line=139 0x0088 line=140 0x008f line=141 0x0092 line=142 0x0098 line=143 0x00ac line=142 0x00af line=141 0x00b2 line=149 0x00b4 line=150 0x00bb line=151 0x00be line=152 0x00c4 line=153 0x00d8 line=152 0x00db line=151 0x00de line=157 0x00e1 line=158 0x00e4 line=159 locals : 0x0002 - 0x001b reg=1 i I 0x001e - 0x0034 reg=3 i I 0x0035 - 0x003f reg=3 i I 0x0040 - 0x0044 reg=3 winners I 0x0041 - 0x0044 reg=4 votes I 0x0044 - 0x0066 reg=3 i I 0x0090 - 0x00b2 reg=7 i I 0x00bc - 0x00de reg=7 i I 0x001d - 0x00e5 reg=1 threads [Ljava/lang/Thread; 0x0044 - 0x00e5 reg=4 winners I 0x0044 - 0x00e5 reg=5 votes I Virtual methods - #0 : (in LTestInvokeCustomWithConcurrentThreads;) name : 'run' type : '()V' access : 0x0001 (PUBLIC) method_idx : 108 code - registers : 2 ins : 1 outs : 1 insns size : 9 16-bit code units 0030d8: |[0030d8] TestInvokeCustomWithConcurrentThreads.run:()V 0030e8: 12f0 |0000: const/4 v0, #int -1 // #ff 0030ea: fc10 1a00 0000 |0001: invoke-custom {v0}, call_site@001a 0030f0: 0a00 |0004: move-result v0 0030f2: 7110 6b00 0000 |0005: invoke-static {v0}, LTestInvokeCustomWithConcurrentThreads;.notUsed:(I)I // method@006b 0030f8: 0e00 |0008: return-void catches : (none) positions : 0x0000 line=63 0x0005 line=64 0x0008 line=65 locals : 0x0005 - 0x0009 reg=0 x I 0x0000 - 0x0009 reg=1 this LTestInvokeCustomWithConcurrentThreads; source_file_idx : 149 (TestInvokeCustomWithConcurrentThreads.java) Class #10 header: class_idx : 15 access_flags : 1 (0x0001) superclass_idx : 9 interfaces_off : 0 (0x000000) source_file_idx : 151 annotations_off : 31180 (0x0079cc) class_data_off : 29403 (0x0072db) static_fields_size : 5 instance_fields_size: 0 direct_methods_size : 6 virtual_methods_size: 0 Class #10 annotations: Annotations on method #114 'add' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestLinkerMethodMinimalArguments; name="linkerMethod" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } } fieldOrMethodName="_add" parameterTypes={ I I } returnType=I Annotations on method #118 'linkerMethod' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #119 'test' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Class #10 - Class descriptor : 'LTestLinkerMethodMinimalArguments;' Access flags : 0x0001 (PUBLIC) Superclass : 'LTestBase;' Interfaces - Static fields - #0 : (in LTestLinkerMethodMinimalArguments;) name : 'FAILURE_TYPE_LINKER_METHOD_RETURNS_NULL' type : 'I' access : 0x0018 (STATIC FINAL) value : 1 #1 : (in LTestLinkerMethodMinimalArguments;) name : 'FAILURE_TYPE_LINKER_METHOD_THROWS' type : 'I' access : 0x0018 (STATIC FINAL) value : 2 #2 : (in LTestLinkerMethodMinimalArguments;) name : 'FAILURE_TYPE_NONE' type : 'I' access : 0x0018 (STATIC FINAL) value : 0 #3 : (in LTestLinkerMethodMinimalArguments;) name : 'FAILURE_TYPE_TARGET_METHOD_THROWS' type : 'I' access : 0x0018 (STATIC FINAL) value : 3 #4 : (in LTestLinkerMethodMinimalArguments;) name : 'forceFailureType' type : 'I' access : 0x000a (PRIVATE STATIC) Instance fields - Direct methods - #0 : (in LTestLinkerMethodMinimalArguments;) name : '' type : '()V' access : 0x10008 (STATIC CONSTRUCTOR) method_idx : 111 code - registers : 1 ins : 0 outs : 0 insns size : 4 16-bit code units 003404: |[003404] TestLinkerMethodMinimalArguments.:()V 003414: 1200 |0000: const/4 v0, #int 0 // #0 003416: 6700 0f00 |0001: sput v0, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f 00341a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=26 locals : #1 : (in LTestLinkerMethodMinimalArguments;) name : '' type : '()V' access : 0x10001 (PUBLIC CONSTRUCTOR) method_idx : 112 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 00341c: |[00341c] TestLinkerMethodMinimalArguments.:()V 00342c: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.:()V // method@0032 003432: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=25 locals : 0x0000 - 0x0004 reg=0 this LTestLinkerMethodMinimalArguments; #2 : (in LTestLinkerMethodMinimalArguments;) name : '_add' type : '(II)I' access : 0x0008 (STATIC) method_idx : 113 code - registers : 4 ins : 2 outs : 2 insns size : 23 16-bit code units 0032d8: |[0032d8] TestLinkerMethodMinimalArguments._add:(II)I 0032e8: 6000 0f00 |0000: sget v0, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f 0032ec: 1231 |0002: const/4 v1, #int 3 // #3 0032ee: 3210 0500 |0003: if-eq v0, v1, 0008 // +0005 0032f2: 9000 0203 |0005: add-int v0, v2, v3 0032f6: 0f00 |0007: return v0 0032f8: 6200 1300 |0008: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0032fc: 1a01 a000 |000a: const-string v1, "Throwing ArithmeticException in add()" // string@00a0 003300: 6e20 b300 1000 |000c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003306: 2200 1d00 |000f: new-instance v0, Ljava/lang/ArithmeticException; // type@001d 00330a: 1a01 cc00 |0011: const-string v1, "add" // string@00cc 00330e: 7020 b400 1000 |0013: invoke-direct {v0, v1}, Ljava/lang/ArithmeticException;.:(Ljava/lang/String;)V // method@00b4 003314: 2700 |0016: throw v0 catches : (none) positions : 0x0000 line=51 0x0005 line=55 0x0008 line=52 0x000f line=53 locals : 0x0000 - 0x0017 reg=2 a I 0x0000 - 0x0017 reg=3 b I #3 : (in LTestLinkerMethodMinimalArguments;) name : 'add' type : '(II)I' access : 0x000a (PRIVATE STATIC) method_idx : 114 code - registers : 3 ins : 2 outs : 0 insns size : 5 16-bit code units 003318: |[003318] TestLinkerMethodMinimalArguments.add:(II)I 003328: 7100 7400 0000 |0000: invoke-static {}, LTestLinkerMethodMinimalArguments;.assertNotReached:()V // method@0074 00332e: 12f0 |0003: const/4 v0, #int -1 // #ff 003330: 0f00 |0004: return v0 catches : (none) positions : 0x0000 line=45 0x0003 line=46 locals : 0x0000 - 0x0005 reg=1 a I 0x0000 - 0x0005 reg=2 b I #4 : (in LTestLinkerMethodMinimalArguments;) name : 'linkerMethod' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 118 code - registers : 7 ins : 3 outs : 4 insns size : 96 16-bit code units 003334: |[003334] TestLinkerMethodMinimalArguments.linkerMethod:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 003344: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003348: 2201 2d00 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@002d 00334c: 7010 c100 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 003352: 1a02 6701 |0007: const-string v2, "linkerMethod failure type " // string@0167 003356: 6e20 c800 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 00335c: 6002 0f00 |000c: sget v2, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f 003360: 6e20 c500 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 003366: 6e10 ca00 0100 |0011: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 00336c: 0c01 |0014: move-result-object v1 00336e: 6e20 b300 1000 |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003374: 1c00 0f00 |0018: const-class v0, LTestLinkerMethodMinimalArguments; // type@000f 003378: 6e40 d800 0465 |001a: invoke-virtual {v4, v0, v5, v6}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 00337e: 0c00 |001d: move-result-object v0 003380: 6001 0f00 |001e: sget v1, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f 003384: 2b01 3800 0000 |0020: packed-switch v1, 00000058 // +00000038 00338a: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 00338e: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 003394: 1101 |0028: return-object v1 003396: 6201 1300 |0029: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00339a: 1a02 a100 |002b: const-string v2, "Throwing InstantiationException in linkerMethod()" // string@00a1 00339e: 6e20 b300 2100 |002d: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 0033a4: 2201 2600 |0030: new-instance v1, Ljava/lang/InstantiationException; // type@0026 0033a8: 1a02 6601 |0032: const-string v2, "linkerMethod" // string@0166 0033ac: 7020 bb00 2100 |0034: invoke-direct {v1, v2}, Ljava/lang/InstantiationException;.:(Ljava/lang/String;)V // method@00bb 0033b2: 2701 |0037: throw v1 0033b4: 6201 1300 |0038: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 0033b8: 2202 2d00 |003a: new-instance v2, Ljava/lang/StringBuilder; // type@002d 0033bc: 7010 c100 0200 |003c: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c1 0033c2: 1a03 8c00 |003f: const-string v3, "Returning null instead of CallSite for " // string@008c 0033c6: 6e20 c800 3200 |0041: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0033cc: 6e20 c800 5200 |0044: invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0033d2: 1a03 0000 |0047: const-string v3, " " // string@0000 0033d6: 6e20 c800 3200 |0049: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0033dc: 6e20 c700 6200 |004c: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 0033e2: 6e10 ca00 0200 |004f: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 0033e8: 0c02 |0052: move-result-object v2 0033ea: 6e20 b300 2100 |0053: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 0033f0: 1201 |0056: const/4 v1, #int 0 // #0 0033f2: 1101 |0057: return-object v1 0033f4: 0001 0200 0100 0000 1800 0000 0900 ... |0058: packed-switch-data (8 units) catches : (none) positions : 0x0000 line=61 0x0018 line=62 0x001a line=63 0x001e line=64 0x0023 line=73 0x0029 line=70 0x0030 line=71 0x0038 line=66 0x0056 line=68 locals : 0x001e - 0x0060 reg=0 mh_add Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0060 reg=4 caller Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0060 reg=5 name Ljava/lang/String; 0x0000 - 0x0060 reg=6 methodType Ljava/lang/invoke/MethodType; #5 : (in LTestLinkerMethodMinimalArguments;) name : 'test' type : '(III)V' access : 0x0009 (PUBLIC STATIC) method_idx : 119 code - registers : 6 ins : 3 outs : 2 insns size : 68 16-bit code units 003434: |[003434] TestLinkerMethodMinimalArguments.test:(III)V 003444: 1200 |0000: const/4 v0, #int 0 // #0 003446: 1211 |0001: const/4 v1, #int 1 // #1 003448: 3a03 0400 |0002: if-ltz v3, 0006 // +0004 00344c: 0112 |0004: move v2, v1 00344e: 2802 |0005: goto 0007 // +0002 003450: 0102 |0006: move v2, v0 003452: 7110 7500 0200 |0007: invoke-static {v2}, LTestLinkerMethodMinimalArguments;.assertTrue:(Z)V // method@0075 003458: 1232 |000a: const/4 v2, #int 3 // #3 00345a: 3623 0400 |000b: if-gt v3, v2, 000f // +0004 00345e: 0110 |000d: move v0, v1 003460: 0000 |000e: nop // spacer 003462: 7110 7500 0000 |000f: invoke-static {v0}, LTestLinkerMethodMinimalArguments;.assertTrue:(Z)V // method@0075 003468: 6703 0f00 |0012: sput v3, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f 00346c: 9000 0405 |0014: add-int v0, v4, v5 003470: fc20 1b00 5400 |0016: invoke-custom {v4, v5}, call_site@001b 003476: 0a01 |0019: move-result v1 003478: 7120 7300 1000 |001a: invoke-static {v0, v1}, LTestLinkerMethodMinimalArguments;.assertEquals:(II)V // method@0073 00347e: 6200 1300 |001d: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003482: 2201 2d00 |001f: new-instance v1, Ljava/lang/StringBuilder; // type@002d 003486: 7010 c100 0100 |0021: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c1 00348c: 1a02 2a00 |0024: const-string v2, "Failure Type + " // string@002a 003490: 6e20 c800 2100 |0026: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 003496: 6e20 c500 3100 |0029: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 00349c: 1a02 0100 |002c: const-string v2, " (" // string@0001 0034a0: 6e20 c800 2100 |002e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0034a6: 6e20 c500 4100 |0031: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 0034ac: 6e20 c500 5100 |0034: invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 0034b2: 1a02 0700 |0037: const-string v2, ")" // string@0007 0034b6: 6e20 c800 2100 |0039: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 0034bc: 6e10 ca00 0100 |003c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 0034c2: 0c01 |003f: move-result-object v1 0034c4: 6e20 b300 1000 |0040: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 0034ca: 0e00 |0043: return-void catches : (none) positions : 0x0000 line=78 0x000a line=79 0x0012 line=80 0x0014 line=81 0x001d line=82 0x0043 line=83 locals : 0x0000 - 0x0044 reg=3 failureType I 0x0000 - 0x0044 reg=4 x I 0x0000 - 0x0044 reg=5 y I Virtual methods - source_file_idx : 151 (TestLinkerMethodMinimalArguments.java) Class #11 header: class_idx : 16 access_flags : 1 (0x0001) superclass_idx : 9 interfaces_off : 0 (0x000000) source_file_idx : 153 annotations_off : 31220 (0x0079f4) class_data_off : 29445 (0x007305) static_fields_size : 1 instance_fields_size: 0 direct_methods_size : 6 virtual_methods_size: 1 Class #11 annotations: Annotations on method #124 'add' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestLinkerMethodMultipleArgumentTypes; name="linkerMethod" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I I I I I F D Ljava/lang/String; Ljava/lang/Class; J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ -1 } Lannotations/Constant; intValue={ 1 } Lannotations/Constant; intValue={ 97 } Lannotations/Constant; intValue={ 1024 } Lannotations/Constant; intValue={ 1 } Lannotations/Constant; floatValue={ 11.1 } Lannotations/Constant; doubleValue={ 2.2 } Lannotations/Constant; stringValue={ "Hello" } Lannotations/Constant; classValue={ LTestLinkerMethodMultipleArgumentTypes; } Lannotations/Constant; longValue={ 123456789 } } fieldOrMethodName="_add" parameterTypes={ I I } returnType=I Annotations on method #131 'linkerMethod' VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "(" "Ljava/lang/invoke/MethodHandles$Lookup;" "Ljava/lang/String;" "Ljava/lang/invoke/MethodType;" "IIIIIFD" "Ljava/lang/String;" "Ljava/lang/Class<" "*>;J)" "Ljava/lang/invoke/CallSite;" } VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #132 'test' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Class #11 - Class descriptor : 'LTestLinkerMethodMultipleArgumentTypes;' Access flags : 0x0001 (PUBLIC) Superclass : 'LTestBase;' Interfaces - Static fields - #0 : (in LTestLinkerMethodMultipleArgumentTypes;) name : 'bootstrapRunCount' type : 'I' access : 0x000a (PRIVATE STATIC) Instance fields - Direct methods - #0 : (in LTestLinkerMethodMultipleArgumentTypes;) name : '' type : '()V' access : 0x10008 (STATIC CONSTRUCTOR) method_idx : 120 code - registers : 1 ins : 0 outs : 0 insns size : 4 16-bit code units 003618: |[003618] TestLinkerMethodMultipleArgumentTypes.:()V 003628: 1200 |0000: const/4 v0, #int 0 // #0 00362a: 6700 1000 |0001: sput v0, LTestLinkerMethodMultipleArgumentTypes;.bootstrapRunCount:I // field@0010 00362e: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=28 locals : #1 : (in LTestLinkerMethodMultipleArgumentTypes;) name : '' type : '()V' access : 0x10001 (PUBLIC CONSTRUCTOR) method_idx : 121 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 003630: |[003630] TestLinkerMethodMultipleArgumentTypes.:()V 003640: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.:()V // method@0032 003646: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=26 locals : 0x0000 - 0x0004 reg=0 this LTestLinkerMethodMultipleArgumentTypes; #2 : (in LTestLinkerMethodMultipleArgumentTypes;) name : '_add' type : '(II)I' access : 0x000a (PRIVATE STATIC) method_idx : 123 code - registers : 3 ins : 2 outs : 0 insns size : 3 16-bit code units 0034e4: |[0034e4] TestLinkerMethodMultipleArgumentTypes._add:(II)I 0034f4: 9000 0102 |0000: add-int v0, v1, v2 0034f8: 0f00 |0002: return v0 catches : (none) positions : 0x0000 line=74 locals : 0x0000 - 0x0003 reg=1 a I 0x0000 - 0x0003 reg=2 b I #3 : (in LTestLinkerMethodMultipleArgumentTypes;) name : 'add' type : '(II)I' access : 0x000a (PRIVATE STATIC) method_idx : 124 code - registers : 3 ins : 2 outs : 0 insns size : 5 16-bit code units 0034fc: |[0034fc] TestLinkerMethodMultipleArgumentTypes.add:(II)I 00350c: 7100 8200 0000 |0000: invoke-static {}, LTestLinkerMethodMultipleArgumentTypes;.assertNotReached:()V // method@0082 003512: 12f0 |0003: const/4 v0, #int -1 // #ff 003514: 0f00 |0004: return v0 catches : (none) positions : 0x0000 line=68 0x0003 line=69 locals : 0x0000 - 0x0005 reg=1 a I 0x0000 - 0x0005 reg=2 b I #4 : (in LTestLinkerMethodMultipleArgumentTypes;) name : 'linkerMethod' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIIIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 131 code - registers : 31 ins : 15 outs : 4 insns size : 119 16-bit code units 003518: |[003518] TestLinkerMethodMultipleArgumentTypes.linkerMethod:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIIIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite; 003528: 0800 1100 |0000: move-object/from16 v0, v17 00352c: 0801 1200 |0002: move-object/from16 v1, v18 003530: 6202 1300 |0004: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003534: 2203 2d00 |0006: new-instance v3, Ljava/lang/StringBuilder; // type@002d 003538: 7010 c100 0300 |0008: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c1 00353e: 1a04 6100 |000b: const-string v4, "Linking " // string@0061 003542: 6e20 c800 4300 |000d: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 003548: 6e20 c800 0300 |0010: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 00354e: 1a04 0000 |0013: const-string v4, " " // string@0000 003552: 6e20 c800 4300 |0015: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 003558: 6e20 c700 1300 |0018: invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 00355e: 6e10 ca00 0300 |001b: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca 003564: 0c03 |001e: move-result-object v3 003566: 6e20 b300 3200 |001f: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 00356c: 12f2 |0022: const/4 v2, #int -1 // #ff 00356e: 0203 1300 |0023: move/from16 v3, v19 003572: 7120 7f00 3200 |0025: invoke-static {v2, v3}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f 003578: 1212 |0028: const/4 v2, #int 1 // #1 00357a: 0204 1400 |0029: move/from16 v4, v20 00357e: 7120 7f00 4200 |002b: invoke-static {v2, v4}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f 003584: 1305 6100 |002e: const/16 v5, #int 97 // #61 003588: 0206 1500 |0030: move/from16 v6, v21 00358c: 7120 7f00 6500 |0032: invoke-static {v5, v6}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f 003592: 1305 0004 |0035: const/16 v5, #int 1024 // #400 003596: 0207 1600 |0037: move/from16 v7, v22 00359a: 7120 7f00 7500 |0039: invoke-static {v5, v7}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f 0035a0: 0205 1700 |003c: move/from16 v5, v23 0035a4: 7120 7f00 5200 |003e: invoke-static {v2, v5}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f 0035aa: 1402 9a99 3141 |0041: const v2, #float 11.1 // #4131999a 0035b0: 0208 1800 |0044: move/from16 v8, v24 0035b4: 7120 7e00 8200 |0046: invoke-static {v2, v8}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(FF)V // method@007e 0035ba: 1809 9a99 9999 9999 0140 |0049: const-wide v9, #double 2.2 // #400199999999999a 0035c4: 050b 1900 |004e: move-wide/from16 v11, v25 0035c8: 7140 7d00 a9cb |0050: invoke-static {v9, v10, v11, v12}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(DD)V // method@007d 0035ce: 1a02 2c00 |0053: const-string v2, "Hello" // string@002c 0035d2: 0809 1b00 |0055: move-object/from16 v9, v27 0035d6: 7120 8100 9200 |0057: invoke-static {v2, v9}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0081 0035dc: 1c02 1000 |005a: const-class v2, LTestLinkerMethodMultipleArgumentTypes; // type@0010 0035e0: 080a 1c00 |005c: move-object/from16 v10, v28 0035e4: 7120 8100 a200 |005e: invoke-static {v2, v10}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0081 0035ea: 170d 15cd 5b07 |0061: const-wide/32 v13, #float 1.6536e-34 // #075bcd15 0035f0: 0502 1d00 |0064: move-wide/from16 v2, v29 0035f4: 7140 8000 ed32 |0066: invoke-static {v13, v14, v2, v3}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(JJ)V // method@0080 0035fa: 1c0d 1000 |0069: const-class v13, LTestLinkerMethodMultipleArgumentTypes; // type@0010 0035fe: 080e 1000 |006b: move-object/from16 v14, v16 003602: 6e40 d800 de10 |006d: invoke-virtual {v14, v13, v0, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 003608: 0c0d |0070: move-result-object v13 00360a: 220f 3400 |0071: new-instance v15, Ljava/lang/invoke/ConstantCallSite; // type@0034 00360e: 7020 d200 df00 |0073: invoke-direct {v15, v13}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 003614: 110f |0076: return-object v15 catches : (none) positions : 0x0000 line=93 0x0022 line=94 0x0028 line=95 0x002e line=96 0x0035 line=97 0x003c line=98 0x0041 line=99 0x0049 line=100 0x0053 line=101 0x005a line=102 0x0061 line=103 0x0069 line=104 0x006b line=105 0x0071 line=106 locals : 0x0000 - 0x0000 reg=28 (null) Ljava/lang/Class; 0x0071 - 0x0077 reg=13 mh_add Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0077 reg=16 caller Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0077 reg=17 name Ljava/lang/String; 0x0000 - 0x0077 reg=18 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0077 reg=19 v1 I 0x0000 - 0x0077 reg=20 v2 I 0x0000 - 0x0077 reg=21 v3 I 0x0000 - 0x0077 reg=22 v4 I 0x0000 - 0x0077 reg=23 v5 I 0x0000 - 0x0077 reg=24 v6 F 0x0000 - 0x0077 reg=25 v7 D 0x0000 - 0x0077 reg=27 v8 Ljava/lang/String; 0x0000 - 0x0077 reg=28 v9 Ljava/lang/Class; Ljava/lang/Class<*>; 0x0000 - 0x0077 reg=29 v10 J #5 : (in LTestLinkerMethodMultipleArgumentTypes;) name : 'test' type : '(II)V' access : 0x0009 (PUBLIC STATIC) method_idx : 132 code - registers : 4 ins : 2 outs : 2 insns size : 17 16-bit code units 003648: |[003648] TestLinkerMethodMultipleArgumentTypes.test:(II)V 003658: 9000 0203 |0000: add-int v0, v2, v3 00365c: fc20 1c00 3200 |0002: invoke-custom {v2, v3}, call_site@001c 003662: 0a01 |0005: move-result v1 003664: 7120 7f00 1000 |0006: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f 00366a: 6200 1300 |0009: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 00366e: 9001 0203 |000b: add-int v1, v2, v3 003672: 6e20 b100 1000 |000d: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(I)V // method@00b1 003678: 0e00 |0010: return-void catches : (none) positions : 0x0000 line=114 0x0009 line=115 0x0010 line=116 locals : 0x0000 - 0x0011 reg=2 x I 0x0000 - 0x0011 reg=3 y I Virtual methods - #0 : (in LTestLinkerMethodMultipleArgumentTypes;) name : 'GetBootstrapRunCount' type : '()I' access : 0x0001 (PUBLIC) method_idx : 122 code - registers : 2 ins : 1 outs : 0 insns size : 3 16-bit code units 0034cc: |[0034cc] TestLinkerMethodMultipleArgumentTypes.GetBootstrapRunCount:()I 0034dc: 6000 1000 |0000: sget v0, LTestLinkerMethodMultipleArgumentTypes;.bootstrapRunCount:I // field@0010 0034e0: 0f00 |0002: return v0 catches : (none) positions : 0x0000 line=110 locals : 0x0000 - 0x0003 reg=1 this LTestLinkerMethodMultipleArgumentTypes; source_file_idx : 153 (TestLinkerMethodMultipleArgumentTypes.java) Class #12 header: class_idx : 17 access_flags : 0 (0x0000) superclass_idx : 9 interfaces_off : 0 (0x000000) source_file_idx : 154 annotations_off : 31260 (0x007a1c) class_data_off : 29483 (0x00732b) static_fields_size : 0 instance_fields_size: 0 direct_methods_size : 6 virtual_methods_size: 0 Class #12 annotations: Annotations on method #136 'addf' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LUnrelatedBSM; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Class; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; classValue={ LTestLinkerUnrelatedBSM; } } fieldOrMethodName="_addf" parameterTypes={ F F } returnType=F Annotations on method #139 'subf' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LUnrelatedBSM; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Class; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; classValue={ LTestLinkerUnrelatedBSM; } } fieldOrMethodName="_subf" parameterTypes={ F F } returnType=F Class #12 - Class descriptor : 'LTestLinkerUnrelatedBSM;' Access flags : 0x0000 () Superclass : 'LTestBase;' Interfaces - Static fields - Instance fields - Direct methods - #0 : (in LTestLinkerUnrelatedBSM;) name : '' type : '()V' access : 0x10000 (CONSTRUCTOR) method_idx : 133 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 0036e4: |[0036e4] TestLinkerUnrelatedBSM.:()V 0036f4: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.:()V // method@0032 0036fa: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=23 locals : 0x0000 - 0x0004 reg=0 this LTestLinkerUnrelatedBSM; #1 : (in LTestLinkerUnrelatedBSM;) name : '_addf' type : '(FF)F' access : 0x0009 (PUBLIC STATIC) method_idx : 134 code - registers : 3 ins : 2 outs : 0 insns size : 3 16-bit code units 00367c: |[00367c] TestLinkerUnrelatedBSM._addf:(FF)F 00368c: a600 0102 |0000: add-float v0, v1, v2 003690: 0f00 |0002: return v0 catches : (none) positions : 0x0000 line=47 locals : 0x0000 - 0x0003 reg=1 a F 0x0000 - 0x0003 reg=2 b F #2 : (in LTestLinkerUnrelatedBSM;) name : '_subf' type : '(FF)F' access : 0x000a (PRIVATE STATIC) method_idx : 135 code - registers : 3 ins : 2 outs : 0 insns size : 3 16-bit code units 003694: |[003694] TestLinkerUnrelatedBSM._subf:(FF)F 0036a4: a700 0102 |0000: sub-float v0, v1, v2 0036a8: 0f00 |0002: return v0 catches : (none) positions : 0x0000 line=73 locals : 0x0000 - 0x0003 reg=1 a F 0x0000 - 0x0003 reg=2 b F #3 : (in LTestLinkerUnrelatedBSM;) name : 'addf' type : '(FF)F' access : 0x000a (PRIVATE STATIC) method_idx : 136 code - registers : 3 ins : 2 outs : 0 insns size : 5 16-bit code units 0036ac: |[0036ac] TestLinkerUnrelatedBSM.addf:(FF)F 0036bc: 7100 8a00 0000 |0000: invoke-static {}, LTestLinkerUnrelatedBSM;.assertNotReached:()V // method@008a 0036c2: 1210 |0003: const/4 v0, #int 1 // #1 0036c4: 0f00 |0004: return v0 catches : (none) positions : 0x0000 line=42 0x0003 line=43 locals : 0x0000 - 0x0005 reg=1 a F 0x0000 - 0x0005 reg=2 b F #4 : (in LTestLinkerUnrelatedBSM;) name : 'subf' type : '(FF)F' access : 0x000a (PRIVATE STATIC) method_idx : 139 code - registers : 3 ins : 2 outs : 0 insns size : 5 16-bit code units 0036c8: |[0036c8] TestLinkerUnrelatedBSM.subf:(FF)F 0036d8: 7100 8a00 0000 |0000: invoke-static {}, LTestLinkerUnrelatedBSM;.assertNotReached:()V // method@008a 0036de: 1210 |0003: const/4 v0, #int 1 // #1 0036e0: 0f00 |0004: return v0 catches : (none) positions : 0x0000 line=68 0x0003 line=69 locals : 0x0000 - 0x0005 reg=1 a F 0x0000 - 0x0005 reg=2 b F #5 : (in LTestLinkerUnrelatedBSM;) name : 'test' type : '()V' access : 0x0009 (PUBLIC STATIC) method_idx : 140 code - registers : 4 ins : 0 outs : 2 insns size : 34 16-bit code units 0036fc: |[0036fc] TestLinkerUnrelatedBSM.test:()V 00370c: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003710: 1c01 1100 |0002: const-class v1, LTestLinkerUnrelatedBSM; // type@0011 003714: 6e10 b700 0100 |0004: invoke-virtual {v1}, Ljava/lang/Class;.getName:()Ljava/lang/String; // method@00b7 00371a: 0c01 |0007: move-result-object v1 00371c: 6e20 b300 1000 |0008: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003722: 1500 003f |000b: const/high16 v0, #int 1056964608 // #3f00 003726: 1501 0040 |000d: const/high16 v1, #int 1073741824 // #4000 00372a: fc20 1d00 0100 |000f: invoke-custom {v1, v0}, call_site@001d 003730: 0a02 |0012: move-result v2 003732: 1503 2040 |0013: const/high16 v3, #int 1075838976 // #4020 003736: 7120 8900 2300 |0015: invoke-static {v3, v2}, LTestLinkerUnrelatedBSM;.assertEquals:(FF)V // method@0089 00373c: fc20 1e00 0100 |0018: invoke-custom {v1, v0}, call_site@001e 003742: 0a00 |001b: move-result v0 003744: 1501 c03f |001c: const/high16 v1, #int 1069547520 // #3fc0 003748: 7120 8900 0100 |001e: invoke-static {v1, v0}, LTestLinkerUnrelatedBSM;.assertEquals:(FF)V // method@0089 00374e: 0e00 |0021: return-void catches : (none) positions : 0x0000 line=77 0x000b line=78 0x0018 line=79 0x0021 line=80 locals : Virtual methods - source_file_idx : 154 (TestLinkerUnrelatedBSM.java) Class #13 header: class_idx : 18 access_flags : 1 (0x0001) superclass_idx : 9 interfaces_off : 0 (0x000000) source_file_idx : 156 annotations_off : 31292 (0x007a3c) class_data_off : 29514 (0x00734a) static_fields_size : 0 instance_fields_size: 0 direct_methods_size : 27 virtual_methods_size: 0 Class #13 annotations: Annotations on method #143 'bsmWithBoxedArray' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #144 'bsmWithClassAndFloatArray' VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "(" "Ljava/lang/invoke/MethodHandles$Lookup;" "Ljava/lang/String;" "Ljava/lang/invoke/MethodType;" "Ljava/lang/Class<" "*>;[F)" "Ljava/lang/invoke/CallSite;" } VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #145 'bsmWithClassArray' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #146 'bsmWithDoubleArray' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #147 'bsmWithFloatAndLongArray' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #148 'bsmWithIntAndStringArray' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #149 'bsmWithLongAndIntArray' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #150 'bsmWithStringArray' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #151 'bsmWithWiderArray' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } Annotations on method #152 'methodA' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; stringValue={ "Aachen" } Lannotations/Constant; stringValue={ "Aalborg" } Lannotations/Constant; stringValue={ "Aalto" } } fieldOrMethodName="methodA" Annotations on method #153 'methodB' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; stringValue={ "barium" } } fieldOrMethodName="methodB" Annotations on method #154 'methodC' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/String; } } fieldOrMethodName="methodC" Annotations on method #155 'methodD' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 101 } Lannotations/Constant; stringValue={ "zoo" } Lannotations/Constant; stringValue={ "zoogene" } Lannotations/Constant; stringValue={ "zoogenic" } } fieldOrMethodName="methodD" Annotations on method #156 'methodE' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 102 } Lannotations/Constant; stringValue={ "zonic" } } fieldOrMethodName="methodE" Annotations on method #157 'methodF' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 103 } } fieldOrMethodName="methodF" Annotations on method #158 'methodG' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithLongAndIntArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; J [I } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; longValue={ 81985529216486895 } Lannotations/Constant; intValue={ 1 } Lannotations/Constant; intValue={ -1 } Lannotations/Constant; intValue={ 2 } Lannotations/Constant; intValue={ -2 } } fieldOrMethodName="methodG" Annotations on method #159 'methodH' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithFloatAndLongArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; F [J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; floatValue={ -2.71828 } Lannotations/Constant; longValue={ 999999999999 } Lannotations/Constant; longValue={ -8888888888888 } } fieldOrMethodName="methodH" Annotations on method #160 'methodI' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithClassAndFloatArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Class; [F } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; classValue={ Ljava/lang/Throwable; } Lannotations/Constant; floatValue={ 3.40282e+38 } Lannotations/Constant; floatValue={ 1.4013e-45 } Lannotations/Constant; floatValue={ 3.14159 } Lannotations/Constant; floatValue={ -3.14159 } } fieldOrMethodName="methodI" Annotations on method #161 'methodJ' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithDoubleArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [D } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; doubleValue={ 1.79769e+308 } Lannotations/Constant; doubleValue={ 4.94066e-324 } Lannotations/Constant; doubleValue={ 2.71828 } Lannotations/Constant; doubleValue={ -3.14159 } } fieldOrMethodName="methodJ" Annotations on method #162 'methodK' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithClassArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/Class; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; classValue={ Ljava/lang/Integer; } Lannotations/Constant; classValue={ Ljava/lang/invoke/MethodHandles; } Lannotations/Constant; classValue={ Ljava/util/Arrays; } } fieldOrMethodName="methodK" Annotations on method #163 'methodO' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 103 } Lannotations/Constant; intValue={ 104 } } fieldOrMethodName="methodO" Annotations on method #164 'methodP' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 103 } Lannotations/Constant; stringValue={ "A" } Lannotations/Constant; stringValue={ "B" } Lannotations/Constant; intValue={ 42 } } fieldOrMethodName="methodP" Annotations on method #165 'methodQ' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithWiderArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 103 } Lannotations/Constant; intValue={ 42 } } fieldOrMethodName="methodQ" Annotations on method #166 'methodR' VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithBoxedArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/Integer; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 1030 } Lannotations/Constant; intValue={ 420 } } fieldOrMethodName="methodR" Class #13 - Class descriptor : 'LTestVariableArityLinkerMethod;' Access flags : 0x0001 (PUBLIC) Superclass : 'LTestBase;' Interfaces - Static fields - Instance fields - Direct methods - #0 : (in LTestVariableArityLinkerMethod;) name : '' type : '()V' access : 0x10001 (PUBLIC CONSTRUCTOR) method_idx : 141 code - registers : 1 ins : 1 outs : 1 insns size : 4 16-bit code units 003a7c: |[003a7c] TestVariableArityLinkerMethod.:()V 003a8c: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.:()V // method@0032 003a92: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=27 locals : 0x0000 - 0x0004 reg=0 this LTestVariableArityLinkerMethod; #1 : (in LTestVariableArityLinkerMethod;) name : 'bsmWithBoxedArray' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 143 code - registers : 7 ins : 4 outs : 4 insns size : 34 16-bit code units 003750: |[003750] TestVariableArityLinkerMethod.bsmWithBoxedArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite; 003760: 1a00 f800 |0000: const-string v0, "bsmWithBoxedArray" // string@00f8 003764: 1241 |0002: const/4 v1, #int 4 // #4 003766: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 00376a: 1202 |0005: const/4 v2, #int 0 // #0 00376c: 4d03 0102 |0006: aput-object v3, v1, v2 003770: 1212 |0008: const/4 v2, #int 1 // #1 003772: 4d04 0102 |0009: aput-object v4, v1, v2 003776: 1222 |000b: const/4 v2, #int 2 // #2 003778: 4d05 0102 |000c: aput-object v5, v1, v2 00377c: 1232 |000e: const/4 v2, #int 3 // #3 00377e: 4d06 0102 |000f: aput-object v6, v1, v2 003782: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 003788: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 00378e: 0c00 |0017: move-result-object v0 003790: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 003796: 0c00 |001b: move-result-object v0 003798: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 00379c: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 0037a2: 1101 |0021: return-object v1 catches : (none) positions : 0x0000 line=477 0x0014 line=478 0x001c line=479 locals : 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0022 reg=6 extraArgs [Ljava/lang/Integer; #2 : (in LTestVariableArityLinkerMethod;) name : 'bsmWithClassAndFloatArray' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite;' access : 0x008a (PRIVATE STATIC VARARGS) method_idx : 144 code - registers : 8 ins : 5 outs : 4 insns size : 37 16-bit code units 0037a4: |[0037a4] TestVariableArityLinkerMethod.bsmWithClassAndFloatArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite; 0037b4: 1a00 f900 |0000: const-string v0, "bsmWithClassAndFloatArray" // string@00f9 0037b8: 1251 |0002: const/4 v1, #int 5 // #5 0037ba: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 0037be: 1202 |0005: const/4 v2, #int 0 // #0 0037c0: 4d03 0102 |0006: aput-object v3, v1, v2 0037c4: 1212 |0008: const/4 v2, #int 1 // #1 0037c6: 4d04 0102 |0009: aput-object v4, v1, v2 0037ca: 1222 |000b: const/4 v2, #int 2 // #2 0037cc: 4d05 0102 |000c: aput-object v5, v1, v2 0037d0: 1232 |000e: const/4 v2, #int 3 // #3 0037d2: 4d06 0102 |000f: aput-object v6, v1, v2 0037d6: 1242 |0011: const/4 v2, #int 4 // #4 0037d8: 4d07 0102 |0012: aput-object v7, v1, v2 0037dc: 7120 a700 1000 |0014: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 0037e2: 6e10 dc00 0300 |0017: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 0037e8: 0c00 |001a: move-result-object v0 0037ea: 6e40 d800 0354 |001b: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 0037f0: 0c00 |001e: move-result-object v0 0037f2: 2201 3400 |001f: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 0037f6: 7020 d200 0100 |0021: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 0037fc: 1101 |0024: return-object v1 catches : (none) positions : 0x0000 line=294 0x0017 line=296 0x001f line=297 locals : 0x0000 - 0x0000 reg=6 (null) Ljava/lang/Class; 0x001f - 0x0025 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0025 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0025 reg=4 methodName Ljava/lang/String; 0x0000 - 0x0025 reg=5 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0025 reg=6 extraArg Ljava/lang/Class; Ljava/lang/Class<*>; 0x0000 - 0x0025 reg=7 arityArgs [F #3 : (in LTestVariableArityLinkerMethod;) name : 'bsmWithClassArray' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite;' access : 0x008a (PRIVATE STATIC VARARGS) method_idx : 145 code - registers : 7 ins : 4 outs : 4 insns size : 34 16-bit code units 003800: |[003800] TestVariableArityLinkerMethod.bsmWithClassArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite; 003810: 1a00 fa00 |0000: const-string v0, "bsmWithClassArray" // string@00fa 003814: 1241 |0002: const/4 v1, #int 4 // #4 003816: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 00381a: 1202 |0005: const/4 v2, #int 0 // #0 00381c: 4d03 0102 |0006: aput-object v3, v1, v2 003820: 1212 |0008: const/4 v2, #int 1 // #1 003822: 4d04 0102 |0009: aput-object v4, v1, v2 003826: 1222 |000b: const/4 v2, #int 2 // #2 003828: 4d05 0102 |000c: aput-object v5, v1, v2 00382c: 1232 |000e: const/4 v2, #int 3 // #3 00382e: 4d06 0102 |000f: aput-object v6, v1, v2 003832: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 003838: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 00383e: 0c00 |0017: move-result-object v0 003840: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 003846: 0c00 |001b: move-result-object v0 003848: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 00384c: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 003852: 1101 |0021: return-object v1 catches : (none) positions : 0x0000 line=367 0x0014 line=368 0x001c line=369 locals : 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0022 reg=6 arityArgs [Ljava/lang/Class; #4 : (in LTestVariableArityLinkerMethod;) name : 'bsmWithDoubleArray' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite;' access : 0x008a (PRIVATE STATIC VARARGS) method_idx : 146 code - registers : 7 ins : 4 outs : 4 insns size : 34 16-bit code units 003854: |[003854] TestVariableArityLinkerMethod.bsmWithDoubleArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite; 003864: 1a00 fb00 |0000: const-string v0, "bsmWithDoubleArray" // string@00fb 003868: 1241 |0002: const/4 v1, #int 4 // #4 00386a: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 00386e: 1202 |0005: const/4 v2, #int 0 // #0 003870: 4d03 0102 |0006: aput-object v3, v1, v2 003874: 1212 |0008: const/4 v2, #int 1 // #1 003876: 4d04 0102 |0009: aput-object v4, v1, v2 00387a: 1222 |000b: const/4 v2, #int 2 // #2 00387c: 4d05 0102 |000c: aput-object v5, v1, v2 003880: 1232 |000e: const/4 v2, #int 3 // #3 003882: 4d06 0102 |000f: aput-object v6, v1, v2 003886: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 00388c: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 003892: 0c00 |0017: move-result-object v0 003894: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 00389a: 0c00 |001b: move-result-object v0 00389c: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 0038a0: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 0038a6: 1101 |0021: return-object v1 catches : (none) positions : 0x0000 line=332 0x0014 line=333 0x001c line=334 locals : 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0022 reg=6 arityArgs [D #5 : (in LTestVariableArityLinkerMethod;) name : 'bsmWithFloatAndLongArray' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite;' access : 0x008a (PRIVATE STATIC VARARGS) method_idx : 147 code - registers : 9 ins : 5 outs : 4 insns size : 41 16-bit code units 0038a8: |[0038a8] TestVariableArityLinkerMethod.bsmWithFloatAndLongArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite; 0038b8: 1a00 fc00 |0000: const-string v0, "bsmWithFloatAndLongArray" // string@00fc 0038bc: 1251 |0002: const/4 v1, #int 5 // #5 0038be: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 0038c2: 1202 |0005: const/4 v2, #int 0 // #0 0038c4: 4d04 0102 |0006: aput-object v4, v1, v2 0038c8: 1212 |0008: const/4 v2, #int 1 // #1 0038ca: 4d05 0102 |0009: aput-object v5, v1, v2 0038ce: 1222 |000b: const/4 v2, #int 2 // #2 0038d0: 4d06 0102 |000c: aput-object v6, v1, v2 0038d4: 7110 ba00 0700 |000e: invoke-static {v7}, Ljava/lang/Float;.valueOf:(F)Ljava/lang/Float; // method@00ba 0038da: 0c02 |0011: move-result-object v2 0038dc: 1233 |0012: const/4 v3, #int 3 // #3 0038de: 4d02 0103 |0013: aput-object v2, v1, v3 0038e2: 1242 |0015: const/4 v2, #int 4 // #4 0038e4: 4d08 0102 |0016: aput-object v8, v1, v2 0038e8: 7120 a700 1000 |0018: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 0038ee: 6e10 dc00 0400 |001b: invoke-virtual {v4}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 0038f4: 0c00 |001e: move-result-object v0 0038f6: 6e40 d800 0465 |001f: invoke-virtual {v4, v0, v5, v6}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 0038fc: 0c00 |0022: move-result-object v0 0038fe: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 003902: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 003908: 1101 |0028: return-object v1 catches : (none) positions : 0x0000 line=257 0x000e line=258 0x0018 line=257 0x001b line=259 0x0023 line=260 locals : 0x0023 - 0x0029 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0029 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0029 reg=5 methodName Ljava/lang/String; 0x0000 - 0x0029 reg=6 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0029 reg=7 extraArg F 0x0000 - 0x0029 reg=8 arityArgs [J #6 : (in LTestVariableArityLinkerMethod;) name : 'bsmWithIntAndStringArray' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite;' access : 0x008a (PRIVATE STATIC VARARGS) method_idx : 148 code - registers : 9 ins : 5 outs : 4 insns size : 41 16-bit code units 00390c: |[00390c] TestVariableArityLinkerMethod.bsmWithIntAndStringArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite; 00391c: 1a00 fd00 |0000: const-string v0, "bsmWithIntAndStringArray" // string@00fd 003920: 1251 |0002: const/4 v1, #int 5 // #5 003922: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 003926: 1202 |0005: const/4 v2, #int 0 // #0 003928: 4d04 0102 |0006: aput-object v4, v1, v2 00392c: 1212 |0008: const/4 v2, #int 1 // #1 00392e: 4d05 0102 |0009: aput-object v5, v1, v2 003932: 1222 |000b: const/4 v2, #int 2 // #2 003934: 4d06 0102 |000c: aput-object v6, v1, v2 003938: 7110 bd00 0700 |000e: invoke-static {v7}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd 00393e: 0c02 |0011: move-result-object v2 003940: 1233 |0012: const/4 v3, #int 3 // #3 003942: 4d02 0103 |0013: aput-object v2, v1, v3 003946: 1242 |0015: const/4 v2, #int 4 // #4 003948: 4d08 0102 |0016: aput-object v8, v1, v2 00394c: 7120 a700 1000 |0018: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 003952: 6e10 dc00 0400 |001b: invoke-virtual {v4}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 003958: 0c00 |001e: move-result-object v0 00395a: 6e40 d800 0465 |001f: invoke-virtual {v4, v0, v5, v6}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 003960: 0c00 |0022: move-result-object v0 003962: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 003966: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 00396c: 1101 |0028: return-object v1 catches : (none) positions : 0x0000 line=133 0x000e line=138 0x0018 line=133 0x001b line=140 0x0023 line=141 locals : 0x0023 - 0x0029 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0029 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0029 reg=5 methodName Ljava/lang/String; 0x0000 - 0x0029 reg=6 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0029 reg=7 extraInt I 0x0000 - 0x0029 reg=8 extraArityArgs [Ljava/lang/String; #7 : (in LTestVariableArityLinkerMethod;) name : 'bsmWithLongAndIntArray' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite;' access : 0x008a (PRIVATE STATIC VARARGS) method_idx : 149 code - registers : 10 ins : 6 outs : 4 insns size : 41 16-bit code units 003970: |[003970] TestVariableArityLinkerMethod.bsmWithLongAndIntArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite; 003980: 1a00 fe00 |0000: const-string v0, "bsmWithLongAndIntArray" // string@00fe 003984: 1251 |0002: const/4 v1, #int 5 // #5 003986: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 00398a: 1202 |0005: const/4 v2, #int 0 // #0 00398c: 4d04 0102 |0006: aput-object v4, v1, v2 003990: 1212 |0008: const/4 v2, #int 1 // #1 003992: 4d05 0102 |0009: aput-object v5, v1, v2 003996: 1222 |000b: const/4 v2, #int 2 // #2 003998: 4d06 0102 |000c: aput-object v6, v1, v2 00399c: 7120 be00 8700 |000e: invoke-static {v7, v8}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@00be 0039a2: 0c02 |0011: move-result-object v2 0039a4: 1233 |0012: const/4 v3, #int 3 // #3 0039a6: 4d02 0103 |0013: aput-object v2, v1, v3 0039aa: 1242 |0015: const/4 v2, #int 4 // #4 0039ac: 4d09 0102 |0016: aput-object v9, v1, v2 0039b0: 7120 a700 1000 |0018: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 0039b6: 6e10 dc00 0400 |001b: invoke-virtual {v4}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 0039bc: 0c00 |001e: move-result-object v0 0039be: 6e40 d800 0465 |001f: invoke-virtual {v4, v0, v5, v6}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 0039c4: 0c00 |0022: move-result-object v0 0039c6: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 0039ca: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 0039d0: 1101 |0028: return-object v1 catches : (none) positions : 0x0000 line=219 0x001b line=220 0x0023 line=221 locals : 0x0023 - 0x0029 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0029 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0029 reg=5 methodName Ljava/lang/String; 0x0000 - 0x0029 reg=6 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0029 reg=7 extraArg J 0x0000 - 0x0029 reg=9 arityArgs [I #8 : (in LTestVariableArityLinkerMethod;) name : 'bsmWithStringArray' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite;' access : 0x008a (PRIVATE STATIC VARARGS) method_idx : 150 code - registers : 7 ins : 4 outs : 4 insns size : 34 16-bit code units 0039d4: |[0039d4] TestVariableArityLinkerMethod.bsmWithStringArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite; 0039e4: 1a00 ff00 |0000: const-string v0, "bsmWithStringArray" // string@00ff 0039e8: 1241 |0002: const/4 v1, #int 4 // #4 0039ea: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 0039ee: 1202 |0005: const/4 v2, #int 0 // #0 0039f0: 4d03 0102 |0006: aput-object v3, v1, v2 0039f4: 1212 |0008: const/4 v2, #int 1 // #1 0039f6: 4d04 0102 |0009: aput-object v4, v1, v2 0039fa: 1222 |000b: const/4 v2, #int 2 // #2 0039fc: 4d05 0102 |000c: aput-object v5, v1, v2 003a00: 1232 |000e: const/4 v2, #int 3 // #3 003a02: 4d06 0102 |000f: aput-object v6, v1, v2 003a06: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 003a0c: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 003a12: 0c00 |0017: move-result-object v0 003a14: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 003a1a: 0c00 |001b: move-result-object v0 003a1c: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 003a20: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 003a26: 1101 |0021: return-object v1 catches : (none) positions : 0x0000 line=61 0x0014 line=62 0x001c line=63 locals : 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0022 reg=6 arityArgs [Ljava/lang/String; #9 : (in LTestVariableArityLinkerMethod;) name : 'bsmWithWiderArray' type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) method_idx : 151 code - registers : 7 ins : 4 outs : 4 insns size : 34 16-bit code units 003a28: |[003a28] TestVariableArityLinkerMethod.bsmWithWiderArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite; 003a38: 1a00 0001 |0000: const-string v0, "bsmWithWiderArray" // string@0100 003a3c: 1241 |0002: const/4 v1, #int 4 // #4 003a3e: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 003a42: 1202 |0005: const/4 v2, #int 0 // #0 003a44: 4d03 0102 |0006: aput-object v3, v1, v2 003a48: 1212 |0008: const/4 v2, #int 1 // #1 003a4a: 4d04 0102 |0009: aput-object v4, v1, v2 003a4e: 1222 |000b: const/4 v2, #int 2 // #2 003a50: 4d05 0102 |000c: aput-object v5, v1, v2 003a54: 1232 |000e: const/4 v2, #int 3 // #3 003a56: 4d06 0102 |000f: aput-object v6, v1, v2 003a5a: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 003a60: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc 003a66: 0c00 |0017: move-result-object v0 003a68: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 003a6e: 0c00 |001b: move-result-object v0 003a70: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 003a74: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 003a7a: 1101 |0021: return-object v1 catches : (none) positions : 0x0000 line=447 0x0014 line=448 0x001c line=449 locals : 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; 0x0000 - 0x0022 reg=6 extraArgs [J #10 : (in LTestVariableArityLinkerMethod;) name : 'methodA' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 152 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003a94: |[003a94] TestVariableArityLinkerMethod.methodA:()V 003aa4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003aa8: 1a01 7501 |0002: const-string v1, "methodA" // string@0175 003aac: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003ab2: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=86 0x0007 line=87 locals : #11 : (in LTestVariableArityLinkerMethod;) name : 'methodB' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 153 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003ab4: |[003ab4] TestVariableArityLinkerMethod.methodB:()V 003ac4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003ac8: 1a01 7601 |0002: const-string v1, "methodB" // string@0176 003acc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003ad2: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=105 0x0007 line=106 locals : #12 : (in LTestVariableArityLinkerMethod;) name : 'methodC' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 154 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003ad4: |[003ad4] TestVariableArityLinkerMethod.methodC:()V 003ae4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003ae8: 1a01 7701 |0002: const-string v1, "methodC" // string@0177 003aec: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003af2: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=123 0x0007 line=124 locals : #13 : (in LTestVariableArityLinkerMethod;) name : 'methodD' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 155 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003af4: |[003af4] TestVariableArityLinkerMethod.methodD:()V 003b04: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003b08: 1a01 7801 |0002: const-string v1, "methodD" // string@0178 003b0c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003b12: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=166 0x0007 line=167 locals : #14 : (in LTestVariableArityLinkerMethod;) name : 'methodE' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 156 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003b14: |[003b14] TestVariableArityLinkerMethod.methodE:()V 003b24: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003b28: 1a01 7901 |0002: const-string v1, "methodE" // string@0179 003b2c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003b32: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=189 0x0007 line=190 locals : #15 : (in LTestVariableArityLinkerMethod;) name : 'methodF' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 157 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003b34: |[003b34] TestVariableArityLinkerMethod.methodF:()V 003b44: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003b48: 1a01 7a01 |0002: const-string v1, "methodF" // string@017a 003b4c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003b52: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=209 0x0007 line=210 locals : #16 : (in LTestVariableArityLinkerMethod;) name : 'methodG' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 158 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003b54: |[003b54] TestVariableArityLinkerMethod.methodG:()V 003b64: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003b68: 1a01 7b01 |0002: const-string v1, "methodG" // string@017b 003b6c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003b72: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=247 0x0007 line=248 locals : #17 : (in LTestVariableArityLinkerMethod;) name : 'methodH' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 159 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003b74: |[003b74] TestVariableArityLinkerMethod.methodH:()V 003b84: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003b88: 1a01 7c01 |0002: const-string v1, "methodH" // string@017c 003b8c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003b92: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=284 0x0007 line=285 locals : #18 : (in LTestVariableArityLinkerMethod;) name : 'methodI' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 160 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003b94: |[003b94] TestVariableArityLinkerMethod.methodI:()V 003ba4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003ba8: 1a01 7d01 |0002: const-string v1, "methodI" // string@017d 003bac: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003bb2: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=323 0x0007 line=324 locals : #19 : (in LTestVariableArityLinkerMethod;) name : 'methodJ' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 161 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003bb4: |[003bb4] TestVariableArityLinkerMethod.methodJ:()V 003bc4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003bc8: 1a01 7e01 |0002: const-string v1, "methodJ" // string@017e 003bcc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003bd2: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=358 0x0007 line=359 locals : #20 : (in LTestVariableArityLinkerMethod;) name : 'methodK' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 162 code - registers : 2 ins : 0 outs : 2 insns size : 8 16-bit code units 003bd4: |[003bd4] TestVariableArityLinkerMethod.methodK:()V 003be4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003be8: 1a01 7f01 |0002: const-string v1, "methodK" // string@017f 003bec: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003bf2: 0e00 |0007: return-void catches : (none) positions : 0x0000 line=392 0x0007 line=393 locals : #21 : (in LTestVariableArityLinkerMethod;) name : 'methodO' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 163 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 003bf4: |[003bf4] TestVariableArityLinkerMethod.methodO:()V 003c04: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e 003c0a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=413 0x0003 line=414 locals : #22 : (in LTestVariableArityLinkerMethod;) name : 'methodP' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 164 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 003c0c: |[003c0c] TestVariableArityLinkerMethod.methodP:()V 003c1c: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e 003c22: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=441 0x0003 line=442 locals : #23 : (in LTestVariableArityLinkerMethod;) name : 'methodQ' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 165 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 003c24: |[003c24] TestVariableArityLinkerMethod.methodQ:()V 003c34: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e 003c3a: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=468 0x0003 line=469 locals : #24 : (in LTestVariableArityLinkerMethod;) name : 'methodR' type : '()V' access : 0x000a (PRIVATE STATIC) method_idx : 166 code - registers : 0 ins : 0 outs : 0 insns size : 4 16-bit code units 003c3c: |[003c3c] TestVariableArityLinkerMethod.methodR:()V 003c4c: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e 003c52: 0e00 |0003: return-void catches : (none) positions : 0x0000 line=501 0x0003 line=502 locals : #25 : (in LTestVariableArityLinkerMethod;) name : 'printBsmArgs' type : '(Ljava/lang/String;[Ljava/lang/Object;)V' access : 0x008a (PRIVATE STATIC VARARGS) method_idx : 167 code - registers : 6 ins : 2 outs : 2 insns size : 159 16-bit code units 003c54: |[003c54] TestVariableArityLinkerMethod.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V 003c64: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003c68: 6e20 b000 4000 |0002: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003c6e: 6200 1300 |0005: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003c72: 1a01 0600 |0007: const-string v1, "(" // string@0006 003c76: 6e20 b000 1000 |0009: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003c7c: 1200 |000c: const/4 v0, #int 0 // #0 003c7e: 2151 |000d: array-length v1, v5 003c80: 3510 8900 |000e: if-ge v0, v1, 0097 // +0089 003c84: 3800 0900 |0010: if-eqz v0, 0019 // +0009 003c88: 6201 1300 |0012: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003c8c: 1a02 0c00 |0014: const-string v2, ", " // string@000c 003c90: 6e20 b000 2100 |0016: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003c96: 4601 0500 |0019: aget-object v1, v5, v0 003c9a: 3801 7100 |001b: if-eqz v1, 008c // +0071 003c9e: 4601 0500 |001d: aget-object v1, v5, v0 003ca2: 6e10 c000 0100 |001f: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003ca8: 0c01 |0022: move-result-object v1 003caa: 6e10 b800 0100 |0023: invoke-virtual {v1}, Ljava/lang/Class;.isArray:()Z // method@00b8 003cb0: 0a01 |0026: move-result v1 003cb2: 3801 6500 |0027: if-eqz v1, 008c // +0065 003cb6: 4601 0500 |0029: aget-object v1, v5, v0 003cba: 6e10 c000 0100 |002b: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003cc0: 0c02 |002e: move-result-object v2 003cc2: 1c03 4400 |002f: const-class v3, [I // type@0044 003cc6: 3332 0f00 |0031: if-ne v2, v3, 0040 // +000f 003cca: 6202 1300 |0033: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003cce: 0713 |0035: move-object v3, v1 003cd0: 1f03 4400 |0036: check-cast v3, [I // type@0044 003cd4: 7110 e900 0300 |0038: invoke-static {v3}, Ljava/util/Arrays;.toString:([I)Ljava/lang/String; // method@00e9 003cda: 0c03 |003b: move-result-object v3 003cdc: 6e20 b000 3200 |003c: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003ce2: 284c |003f: goto 008b // +004c 003ce4: 6e10 c000 0100 |0040: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003cea: 0c02 |0043: move-result-object v2 003cec: 1c03 4500 |0044: const-class v3, [J // type@0045 003cf0: 3332 0f00 |0046: if-ne v2, v3, 0055 // +000f 003cf4: 6202 1300 |0048: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003cf8: 0713 |004a: move-object v3, v1 003cfa: 1f03 4500 |004b: check-cast v3, [J // type@0045 003cfe: 7110 ea00 0300 |004d: invoke-static {v3}, Ljava/util/Arrays;.toString:([J)Ljava/lang/String; // method@00ea 003d04: 0c03 |0050: move-result-object v3 003d06: 6e20 b000 3200 |0051: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003d0c: 2837 |0054: goto 008b // +0037 003d0e: 6e10 c000 0100 |0055: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003d14: 0c02 |0058: move-result-object v2 003d16: 1c03 4300 |0059: const-class v3, [F // type@0043 003d1a: 3332 0f00 |005b: if-ne v2, v3, 006a // +000f 003d1e: 6202 1300 |005d: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003d22: 0713 |005f: move-object v3, v1 003d24: 1f03 4300 |0060: check-cast v3, [F // type@0043 003d28: 7110 e800 0300 |0062: invoke-static {v3}, Ljava/util/Arrays;.toString:([F)Ljava/lang/String; // method@00e8 003d2e: 0c03 |0065: move-result-object v3 003d30: 6e20 b000 3200 |0066: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003d36: 2822 |0069: goto 008b // +0022 003d38: 6e10 c000 0100 |006a: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003d3e: 0c02 |006d: move-result-object v2 003d40: 1c03 4200 |006e: const-class v3, [D // type@0042 003d44: 3332 0f00 |0070: if-ne v2, v3, 007f // +000f 003d48: 6202 1300 |0072: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003d4c: 0713 |0074: move-object v3, v1 003d4e: 1f03 4200 |0075: check-cast v3, [D // type@0042 003d52: 7110 e700 0300 |0077: invoke-static {v3}, Ljava/util/Arrays;.toString:([D)Ljava/lang/String; // method@00e7 003d58: 0c03 |007a: move-result-object v3 003d5a: 6e20 b000 3200 |007b: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003d60: 280d |007e: goto 008b // +000d 003d62: 6202 1300 |007f: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003d66: 0713 |0081: move-object v3, v1 003d68: 1f03 4800 |0082: check-cast v3, [Ljava/lang/Object; // type@0048 003d6c: 7110 eb00 0300 |0084: invoke-static {v3}, Ljava/util/Arrays;.toString:([Ljava/lang/Object;)Ljava/lang/String; // method@00eb 003d72: 0c03 |0087: move-result-object v3 003d74: 6e20 b000 3200 |0088: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003d7a: 2808 |008b: goto 0093 // +0008 003d7c: 6201 1300 |008c: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003d80: 4602 0500 |008e: aget-object v2, v5, v0 003d84: 6e20 af00 2100 |0090: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 003d8a: d800 0001 |0093: add-int/lit8 v0, v0, #int 1 // #01 003d8e: 2900 78ff |0095: goto/16 000d // -0088 003d92: 6200 1300 |0097: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003d96: 1a01 0800 |0099: const-string v1, ");" // string@0008 003d9a: 6e20 b300 1000 |009b: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 003da0: 0e00 |009e: return-void catches : (none) positions : 0x0000 line=29 0x0005 line=30 0x000c line=31 0x0010 line=32 0x0012 line=33 0x0019 line=35 0x0029 line=36 0x002b line=37 0x0033 line=38 0x0040 line=39 0x0048 line=40 0x0055 line=41 0x005d line=42 0x006a line=43 0x0072 line=44 0x007f line=46 0x008b line=48 0x008c line=49 0x0093 line=31 0x0097 line=52 0x009e line=53 locals : 0x002b - 0x008b reg=1 array Ljava/lang/Object; 0x000d - 0x0097 reg=0 i I 0x0000 - 0x009f reg=4 method Ljava/lang/String; 0x0000 - 0x009f reg=5 args [Ljava/lang/Object; #26 : (in LTestVariableArityLinkerMethod;) name : 'test' type : '()V' access : 0x0008 (STATIC) method_idx : 168 code - registers : 3 ins : 0 outs : 2 insns size : 224 16-bit code units 003da4: |[003da4] TestVariableArityLinkerMethod.test:()V 003db4: 1200 |0000: const/4 v0, #int 0 // #0 003db6: 0101 |0001: move v1, v0 003db8: 1222 |0002: const/4 v2, #int 2 // #2 003dba: 3521 0e00 |0003: if-ge v1, v2, 0011 // +000e 003dbe: fc00 1f00 0000 |0005: invoke-custom {}, call_site@001f 003dc4: fc00 2000 0000 |0008: invoke-custom {}, call_site@0020 003dca: fc00 2100 0000 |000b: invoke-custom {}, call_site@0021 003dd0: d801 0101 |000e: add-int/lit8 v1, v1, #int 1 // #01 003dd4: 28f2 |0010: goto 0002 // -000e 003dd6: 0000 |0011: nop // spacer 003dd8: 3520 0e00 |0012: if-ge v0, v2, 0020 // +000e 003ddc: fc00 2200 0000 |0014: invoke-custom {}, call_site@0022 003de2: fc00 2300 0000 |0017: invoke-custom {}, call_site@0023 003de8: fc00 2400 0000 |001a: invoke-custom {}, call_site@0024 003dee: d800 0001 |001d: add-int/lit8 v0, v0, #int 1 // #01 003df2: 28f3 |001f: goto 0012 // -000d 003df4: fc00 2500 0000 |0020: invoke-custom {}, call_site@0025 003dfa: fc00 2600 0000 |0023: invoke-custom {}, call_site@0026 003e00: fc00 2700 0000 |0026: invoke-custom {}, call_site@0027 003e06: fc00 2800 0000 |0029: invoke-custom {}, call_site@0028 003e0c: fc00 2900 0000 |002c: invoke-custom {}, call_site@0029 003e12: fc00 2a00 0000 |002f: invoke-custom {}, call_site@002a 003e18: 7100 8e00 0000 |0032: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e 003e1e: 2826 |0035: goto 005b // +0026 003e20: 0d00 |0036: move-exception v0 003e22: 6201 1300 |0037: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003e26: 1a02 8201 |0039: const-string v2, "methodO => " // string@0182 003e2a: 6e20 b000 2100 |003b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003e30: 6201 1300 |003e: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003e34: 6e10 c000 0000 |0040: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003e3a: 0c02 |0043: move-result-object v2 003e3c: 6e20 af00 2100 |0044: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 003e42: 6201 1300 |0047: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003e46: 1a02 0200 |0049: const-string v2, " => " // string@0002 003e4a: 6e20 b000 2100 |004b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003e50: 6201 1300 |004e: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003e54: 6e10 b600 0000 |0050: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 003e5a: 0c02 |0053: move-result-object v2 003e5c: 6e10 c000 0200 |0054: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003e62: 0c02 |0057: move-result-object v2 003e64: 6e20 b200 2100 |0058: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 003e6a: fc00 2b00 0000 |005b: invoke-custom {}, call_site@002b 003e70: 7100 8e00 0000 |005e: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e 003e76: 2826 |0061: goto 0087 // +0026 003e78: 0d00 |0062: move-exception v0 003e7a: 6201 1300 |0063: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003e7e: 1a02 8401 |0065: const-string v2, "methodP => " // string@0184 003e82: 6e20 b000 2100 |0067: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003e88: 6201 1300 |006a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003e8c: 6e10 c000 0000 |006c: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003e92: 0c02 |006f: move-result-object v2 003e94: 6e20 af00 2100 |0070: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 003e9a: 6201 1300 |0073: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003e9e: 1a02 0200 |0075: const-string v2, " => " // string@0002 003ea2: 6e20 b000 2100 |0077: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003ea8: 6201 1300 |007a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003eac: 6e10 b600 0000 |007c: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 003eb2: 0c02 |007f: move-result-object v2 003eb4: 6e10 c000 0200 |0080: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003eba: 0c02 |0083: move-result-object v2 003ebc: 6e20 b200 2100 |0084: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 003ec2: fc00 2c00 0000 |0087: invoke-custom {}, call_site@002c 003ec8: 7100 8e00 0000 |008a: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e 003ece: 2826 |008d: goto 00b3 // +0026 003ed0: 0d00 |008e: move-exception v0 003ed2: 6201 1300 |008f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003ed6: 1a02 8601 |0091: const-string v2, "methodQ => " // string@0186 003eda: 6e20 b000 2100 |0093: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003ee0: 6201 1300 |0096: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003ee4: 6e10 c000 0000 |0098: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003eea: 0c02 |009b: move-result-object v2 003eec: 6e20 af00 2100 |009c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 003ef2: 6201 1300 |009f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003ef6: 1a02 0200 |00a1: const-string v2, " => " // string@0002 003efa: 6e20 b000 2100 |00a3: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003f00: 6201 1300 |00a6: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003f04: 6e10 b600 0000 |00a8: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 003f0a: 0c02 |00ab: move-result-object v2 003f0c: 6e10 c000 0200 |00ac: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003f12: 0c02 |00af: move-result-object v2 003f14: 6e20 b200 2100 |00b0: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 003f1a: fc00 2d00 0000 |00b3: invoke-custom {}, call_site@002d 003f20: 7100 8e00 0000 |00b6: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e 003f26: 2826 |00b9: goto 00df // +0026 003f28: 0d00 |00ba: move-exception v0 003f2a: 6201 1300 |00bb: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003f2e: 1a02 8801 |00bd: const-string v2, "methodR => " // string@0188 003f32: 6e20 b000 2100 |00bf: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003f38: 6201 1300 |00c2: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003f3c: 6e10 c000 0000 |00c4: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003f42: 0c02 |00c7: move-result-object v2 003f44: 6e20 af00 2100 |00c8: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af 003f4a: 6201 1300 |00cb: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003f4e: 1a02 0200 |00cd: const-string v2, " => " // string@0002 003f52: 6e20 b000 2100 |00cf: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 003f58: 6201 1300 |00d2: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 003f5c: 6e10 b600 0000 |00d4: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 003f62: 0c02 |00d7: move-result-object v2 003f64: 6e10 c000 0200 |00d8: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 003f6a: 0c02 |00db: move-result-object v2 003f6c: 6e20 b200 2100 |00dc: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 003f72: 0e00 |00df: return-void catches : 4 0x002f - 0x0035 Ljava/lang/BootstrapMethodError; -> 0x0036 0x005b - 0x0061 Ljava/lang/BootstrapMethodError; -> 0x0062 0x0087 - 0x008d Ljava/lang/BootstrapMethodError; -> 0x008e 0x00b3 - 0x00b9 Ljava/lang/BootstrapMethodError; -> 0x00ba positions : 0x0000 line=506 0x0005 line=507 0x0008 line=508 0x000b line=509 0x000e line=506 0x0011 line=511 0x0014 line=512 0x0017 line=513 0x001a line=514 0x001d line=511 0x0020 line=516 0x0023 line=517 0x0026 line=518 0x0029 line=519 0x002c line=520 0x002f line=527 0x0032 line=528 0x0035 line=534 0x0036 line=529 0x0037 line=530 0x003e line=531 0x0047 line=532 0x004e line=533 0x005b line=538 0x005e line=539 0x0061 line=545 0x0062 line=540 0x0063 line=541 0x006a line=542 0x0073 line=543 0x007a line=544 0x0087 line=549 0x008a line=550 0x008d line=556 0x008e line=551 0x008f line=552 0x0096 line=553 0x009f line=554 0x00a6 line=555 0x00b3 line=560 0x00b6 line=561 0x00b9 line=567 0x00ba line=562 0x00bb line=563 0x00c2 line=564 0x00cb line=565 0x00d2 line=566 0x00df line=568 locals : 0x0002 - 0x0011 reg=1 i I 0x0012 - 0x0020 reg=0 i I 0x0037 - 0x005b reg=0 expected Ljava/lang/BootstrapMethodError; 0x0063 - 0x0087 reg=0 expected Ljava/lang/BootstrapMethodError; 0x008f - 0x00b3 reg=0 expected Ljava/lang/BootstrapMethodError; 0x00bb - 0x00df reg=0 expected Ljava/lang/BootstrapMethodError; Virtual methods - source_file_idx : 156 (TestVariableArityLinkerMethod.java) Method handle #0: type : invoke-static target : LTestBadBootstrapArguments; bsm target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ID)Ljava/lang/invoke/CallSite; Method handle #1: type : invoke-static target : LTestBadBootstrapArguments; bsm target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite; Method handle #2: type : invoke-static target : LTestBadBootstrapArguments; bsmDJ target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite; Method handle #3: type : invoke-static target : LTestBadBootstrapArguments; bsmDoubleLong target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite; Method handle #4: type : invoke-static target : LTestBadBootstrapArguments; bsmReturningInteger target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer; Method handle #5: type : invoke-static target : LTestBadBootstrapArguments; bsmReturningObject target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object; Method handle #6: type : invoke-static target : LTestBadBootstrapArguments; bsmReturningTestersConstantCallsite target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite; Method handle #7: type : invoke-static target : LTestBadBootstrapArguments; bsmReturningVoid target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V Method handle #8: type : invoke-static target : LTestBadBootstrapArguments; bsmZBCS target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite; Method handle #9: type : invoke-static target : LTestDynamicBootstrapArguments; bsm target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite; Method handle #10: type : invoke-static target : LTestInvocationKinds; lookupConstructor target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #11: type : invoke-static target : LTestInvocationKinds; lookupInstanceFieldGetter target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #12: type : invoke-static target : LTestInvocationKinds; lookupInstanceFieldSetter target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #13: type : invoke-static target : LTestInvocationKinds; lookupStaticFieldGetter target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #14: type : invoke-static target : LTestInvocationKinds; lookupStaticFieldSetter target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #15: type : invoke-static target : LTestInvocationKinds; lookupVirtual target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #16: type : invoke-static target : LTestInvokeCustomWithConcurrentThreads; linkerMethod target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #17: type : invoke-static target : LTestLinkerMethodMinimalArguments; linkerMethod target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #18: type : invoke-static target : LTestLinkerMethodMultipleArgumentTypes; linkerMethod target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIIIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite; Method handle #19: type : invoke-static target : LTestVariableArityLinkerMethod; bsmWithBoxedArray target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite; Method handle #20: type : invoke-static target : LTestVariableArityLinkerMethod; bsmWithClassAndFloatArray target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite; Method handle #21: type : invoke-static target : LTestVariableArityLinkerMethod; bsmWithClassArray target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite; Method handle #22: type : invoke-static target : LTestVariableArityLinkerMethod; bsmWithDoubleArray target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite; Method handle #23: type : invoke-static target : LTestVariableArityLinkerMethod; bsmWithFloatAndLongArray target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite; Method handle #24: type : invoke-static target : LTestVariableArityLinkerMethod; bsmWithIntAndStringArray target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite; Method handle #25: type : invoke-static target : LTestVariableArityLinkerMethod; bsmWithLongAndIntArray target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite; Method handle #26: type : invoke-static target : LTestVariableArityLinkerMethod; bsmWithStringArray target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite; Method handle #27: type : invoke-static target : LTestVariableArityLinkerMethod; bsmWithWiderArray target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite; Method handle #28: type : invoke-static target : LUnrelatedBSM; bsm target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite; Call site #0: // offset 29649 link_argument[0] : 1 (MethodHandle) link_argument[1] : happy (String) link_argument[2] : ()V (MethodType) link_argument[3] : -1 (int) link_argument[4] : very (String) Call site #1: // offset 29662 link_argument[0] : 0 (MethodHandle) link_argument[1] : wrongParameterTypes (String) link_argument[2] : ()V (MethodType) link_argument[3] : -1 (int) link_argument[4] : very (String) Call site #2: // offset 29675 link_argument[0] : 0 (MethodHandle) link_argument[1] : missingParameterTypes (String) link_argument[2] : ()V (MethodType) Call site #3: // offset 29683 link_argument[0] : 1 (MethodHandle) link_argument[1] : extraArguments (String) link_argument[2] : ()V (MethodType) link_argument[3] : 1 (int) link_argument[4] : 2 (String) link_argument[5] : 3 (int) Call site #4: // offset 29697 link_argument[0] : 1 (MethodHandle) link_argument[1] : wrongArguments (String) link_argument[2] : ()V (MethodType) link_argument[3] : 1 (String) link_argument[4] : 3.14159 (double) Call site #5: // offset 29697 link_argument[0] : 1 (MethodHandle) link_argument[1] : wrongArguments (String) link_argument[2] : ()V (MethodType) link_argument[3] : 1 (String) link_argument[4] : 3.14159 (double) Call site #6: // offset 29716 link_argument[0] : 1 (MethodHandle) link_argument[1] : wrongArgumentsAgain (String) link_argument[2] : ()V (MethodType) link_argument[3] : 3.14159 (double) link_argument[4] : pie (String) Call site #7: // offset 29736 link_argument[0] : 8 (MethodHandle) link_argument[1] : narrowArguments (String) link_argument[2] : ()V (MethodType) link_argument[3] : 1 (int) link_argument[4] : 127 (int) link_argument[5] : 65 (int) link_argument[6] : -32768 (int) Call site #8: // offset 29753 link_argument[0] : 2 (MethodHandle) link_argument[1] : wideningArguments (String) link_argument[2] : ()V (MethodType) link_argument[3] : 1.79769e+308 (double) link_argument[4] : 2147483647 (int) Call site #9: // offset 29775 link_argument[0] : 3 (MethodHandle) link_argument[1] : boxingArguments (String) link_argument[2] : ()V (MethodType) link_argument[3] : 1.79769e+308 (double) link_argument[4] : 9223372036854775807 (long) Call site #10: // offset 29800 link_argument[0] : 3 (MethodHandle) link_argument[1] : wideningBoxingArguments (String) link_argument[2] : ()V (MethodType) link_argument[3] : 3.40282e+38 (float) link_argument[4] : 2147483647 (long) Call site #11: // offset 29818 link_argument[0] : 7 (MethodHandle) link_argument[1] : voidReturnType (String) link_argument[2] : ()V (MethodType) Call site #12: // offset 29826 link_argument[0] : 5 (MethodHandle) link_argument[1] : ObjectReturnType (String) link_argument[2] : ()V (MethodType) Call site #13: // offset 29833 link_argument[0] : 4 (MethodHandle) link_argument[1] : integerReturnType (String) link_argument[2] : ()V (MethodType) Call site #14: // offset 29841 link_argument[0] : 6 (MethodHandle) link_argument[1] : sayHello (String) link_argument[2] : ()V (MethodType) Call site #15: // offset 29849 link_argument[0] : 9 (MethodHandle) link_argument[1] : target (String) link_argument[2] : (ILjava/lang/String;Ljava/lang/Double;)I (MethodType) link_argument[3] : A (String) link_argument[4] : 100000000 (long) Call site #16: // offset 29849 link_argument[0] : 9 (MethodHandle) link_argument[1] : target (String) link_argument[2] : (ILjava/lang/String;Ljava/lang/Double;)I (MethodType) link_argument[3] : A (String) link_argument[4] : 100000000 (long) Call site #17: // offset 29849 link_argument[0] : 9 (MethodHandle) link_argument[1] : target (String) link_argument[2] : (ILjava/lang/String;Ljava/lang/Double;)I (MethodType) link_argument[3] : A (String) link_argument[4] : 100000000 (long) Call site #18: // offset 29864 link_argument[0] : 10 (MethodHandle) link_argument[1] : unused (String) link_argument[2] : (I)LTestInvocationKinds$Widget; (MethodType) Call site #19: // offset 29872 link_argument[0] : 12 (MethodHandle) link_argument[1] : instance_field (String) link_argument[2] : (LTestInvocationKinds;D)V (MethodType) Call site #20: // offset 29880 link_argument[0] : 11 (MethodHandle) link_argument[1] : instance_field (String) link_argument[2] : (LTestInvocationKinds;)D (MethodType) Call site #21: // offset 29888 link_argument[0] : 15 (MethodHandle) link_argument[1] : getMaxIntegerValue (String) link_argument[2] : (LTestInvocationKinds;II)I (MethodType) Call site #22: // offset 29896 link_argument[0] : 14 (MethodHandle) link_argument[1] : static_field (String) link_argument[2] : (I)V (MethodType) Call site #23: // offset 29896 link_argument[0] : 14 (MethodHandle) link_argument[1] : static_field (String) link_argument[2] : (I)V (MethodType) Call site #24: // offset 29904 link_argument[0] : 13 (MethodHandle) link_argument[1] : static_field (String) link_argument[2] : ()I (MethodType) Call site #25: // offset 29904 link_argument[0] : 13 (MethodHandle) link_argument[1] : static_field (String) link_argument[2] : ()I (MethodType) Call site #26: // offset 29912 link_argument[0] : 16 (MethodHandle) link_argument[1] : setCalled (String) link_argument[2] : (I)I (MethodType) Call site #27: // offset 29920 link_argument[0] : 17 (MethodHandle) link_argument[1] : _add (String) link_argument[2] : (II)I (MethodType) Call site #28: // offset 29927 link_argument[0] : 18 (MethodHandle) link_argument[1] : _add (String) link_argument[2] : (II)I (MethodType) link_argument[3] : -1 (int) link_argument[4] : 1 (int) link_argument[5] : 97 (int) link_argument[6] : 1024 (int) link_argument[7] : 1 (int) link_argument[8] : 11.1 (float) link_argument[9] : 2.2 (double) link_argument[10] : Hello (String) link_argument[11] : LTestLinkerMethodMultipleArgumentTypes; (Class) link_argument[12] : 123456789 (long) Call site #29: // offset 29968 link_argument[0] : 28 (MethodHandle) link_argument[1] : _addf (String) link_argument[2] : (FF)F (MethodType) link_argument[3] : LTestLinkerUnrelatedBSM; (Class) Call site #30: // offset 29977 link_argument[0] : 28 (MethodHandle) link_argument[1] : _subf (String) link_argument[2] : (FF)F (MethodType) link_argument[3] : LTestLinkerUnrelatedBSM; (Class) Call site #31: // offset 29986 link_argument[0] : 26 (MethodHandle) link_argument[1] : methodA (String) link_argument[2] : ()V (MethodType) link_argument[3] : Aachen (String) link_argument[4] : Aalborg (String) link_argument[5] : Aalto (String) Call site #32: // offset 30000 link_argument[0] : 26 (MethodHandle) link_argument[1] : methodB (String) link_argument[2] : ()V (MethodType) link_argument[3] : barium (String) Call site #33: // offset 30010 link_argument[0] : 26 (MethodHandle) link_argument[1] : methodC (String) link_argument[2] : ()V (MethodType) Call site #34: // offset 30018 link_argument[0] : 24 (MethodHandle) link_argument[1] : methodD (String) link_argument[2] : ()V (MethodType) link_argument[3] : 101 (int) link_argument[4] : zoo (String) link_argument[5] : zoogene (String) link_argument[6] : zoogenic (String) Call site #35: // offset 30037 link_argument[0] : 24 (MethodHandle) link_argument[1] : methodE (String) link_argument[2] : ()V (MethodType) link_argument[3] : 102 (int) link_argument[4] : zonic (String) Call site #36: // offset 30050 link_argument[0] : 24 (MethodHandle) link_argument[1] : methodF (String) link_argument[2] : ()V (MethodType) link_argument[3] : 103 (int) Call site #37: // offset 30060 link_argument[0] : 25 (MethodHandle) link_argument[1] : methodG (String) link_argument[2] : ()V (MethodType) link_argument[3] : 81985529216486895 (long) link_argument[4] : 1 (int) link_argument[5] : -1 (int) link_argument[6] : 2 (int) link_argument[7] : -2 (int) Call site #38: // offset 30085 link_argument[0] : 23 (MethodHandle) link_argument[1] : methodH (String) link_argument[2] : ()V (MethodType) link_argument[3] : -2.71828 (float) link_argument[4] : 999999999999 (long) link_argument[5] : -8888888888888 (long) Call site #39: // offset 30112 link_argument[0] : 20 (MethodHandle) link_argument[1] : methodI (String) link_argument[2] : ()V (MethodType) link_argument[3] : Ljava/lang/Throwable; (Class) link_argument[4] : 3.40282e+38 (float) link_argument[5] : 1.4013e-45 (float) link_argument[6] : 3.14159 (float) link_argument[7] : -3.14159 (float) Call site #40: // offset 30142 link_argument[0] : 22 (MethodHandle) link_argument[1] : methodJ (String) link_argument[2] : ()V (MethodType) link_argument[3] : 1.79769e+308 (double) link_argument[4] : 4.94066e-324 (double) link_argument[5] : 2.71828 (double) link_argument[6] : -3.14159 (double) Call site #41: // offset 30186 link_argument[0] : 21 (MethodHandle) link_argument[1] : methodK (String) link_argument[2] : ()V (MethodType) link_argument[3] : Ljava/lang/Integer; (Class) link_argument[4] : Ljava/lang/invoke/MethodHandles; (Class) link_argument[5] : Ljava/util/Arrays; (Class) Call site #42: // offset 30200 link_argument[0] : 24 (MethodHandle) link_argument[1] : methodO (String) link_argument[2] : ()V (MethodType) link_argument[3] : 103 (int) link_argument[4] : 104 (int) Call site #43: // offset 30212 link_argument[0] : 24 (MethodHandle) link_argument[1] : methodP (String) link_argument[2] : ()V (MethodType) link_argument[3] : 103 (int) link_argument[4] : A (String) link_argument[5] : B (String) link_argument[6] : 42 (int) Call site #44: // offset 30228 link_argument[0] : 27 (MethodHandle) link_argument[1] : methodQ (String) link_argument[2] : ()V (MethodType) link_argument[3] : 103 (int) link_argument[4] : 42 (int) Call site #45: // offset 30240 link_argument[0] : 19 (MethodHandle) link_argument[1] : methodR (String) link_argument[2] : ()V (MethodType) link_argument[3] : 1030 (int) link_argument[4] : 420 (int)