1 /* 2 * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 class CondyNestedTest_Code { 25 0xCAFEBABE; 26 0; // minor version 27 55; // version 28 [] { // Constant Pool 29 ; // first element is empty 30 Utf8 "java/lang/Object"; // #1 31 class #1; // #2 32 Utf8 "<init>"; // #3 33 Utf8 "()V"; // #4 34 NameAndType #3 #4; // #5 35 Method #2 #5; // #6 36 Utf8 "Code"; // #7 37 Utf8 "java/lang/String"; // #8 38 class #8; // #9 39 Utf8 "intern"; // #10 40 Utf8 "()Ljava/lang/String;"; // #11 41 NameAndType #10 #11; // #12 42 Method #9 #12; // #13 43 Utf8 "condy_bsm_condy_bsm"; // #14 44 String #14; // #15 45 Utf8 "CondyNestedTest_Code"; // #16 46 class #16; // #17 47 Utf8 "()Ljava/lang/Object;"; // #18 48 NameAndType #14 #18; // #19 49 Method #17 #19; // #20 50 Utf8 "indy_bsmIndy_condy_bsm"; // #21 51 String #21; // #22 52 NameAndType #21 #18; // #23 53 Method #17 #23; // #24 54 Utf8 "indy_bsm_condy_bsm"; // #25 55 String #25; // #26 56 NameAndType #25 #18; // #27 57 Method #17 #27; // #28 58 Utf8 "StackMapTable"; // #29 59 Utf8 "main"; // #30 60 Utf8 "([Ljava/lang/String;)V"; // #31 61 Utf8 "java/lang/invoke/MethodType"; // #32 62 class #32; // #33 63 Utf8 "java/lang/invoke/ConstantCallSite"; // #34 64 class #34; // #35 65 Utf8 "java/lang/invoke/MethodHandles"; // #36 66 class #36; // #37 67 Utf8 "constant"; // #38 68 Utf8 "(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;"; // #39 69 NameAndType #38 #39; // #40 70 Method #37 #40; // #41 71 Utf8 "(Ljava/lang/invoke/MethodHandle;)V"; // #42 72 NameAndType #3 #42; // #43 73 Method #35 #43; // #44 74 Utf8 "bsm"; // #45 75 Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"; // #46 76 Utf8 "bsmIndy"; // #47 77 Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/invoke/CallSite;"; // #48 78 Utf8 "DUMMY_ARG"; // #49 79 String #49; // #50 80 NameAndType #45 #46; // #51 81 Method #17 #51; // #52 82 MethodHandle 6b #52; // #53 83 Utf8 "name"; // #54 84 Utf8 "Ljava/lang/String;"; // #55 85 NameAndType #54 #55; // #56 86 Dynamic 0s #56; // #57 87 Dynamic 1s #56; // #58 88 NameAndType #47 #48; // #59 89 Method #17 #59; // #60 90 MethodHandle 6b #60; // #61 91 NameAndType #54 #11; // #62 92 InvokeDynamic 2s #62; // #63 93 InvokeDynamic 1s #62; // #64 94 Utf8 "BootstrapMethods"; // #65 95 } // Constant Pool 96 97 0x0020; // access 98 #17;// this_cpx 99 #2;// super_cpx 100 101 [] { // Interfaces 102 } // Interfaces 103 104 [] { // fields 105 } // fields 106 107 [] { // methods 108 { // Member 109 0x0001; // access 110 #3; // name_cpx 111 #4; // sig_cpx 112 [] { // Attributes 113 Attr(#7) { // Code 114 1; // max_stack 115 1; // max_locals 116 Bytes[]{ 117 0x2AB70006B1; 118 }; 119 [] { // Traps 120 } // end Traps 121 [] { // Attributes 122 } // Attributes 123 } // end Code 124 } // Attributes 125 } // Member 126 ; 127 { // Member 128 0x0009; // access 129 #30; // name_cpx 130 #31; // sig_cpx 131 [] { // Attributes 132 Attr(#7) { // Code 133 2; // max_stack 134 2; // max_locals 135 Bytes[]{ 136 0x2A0332B6000D4C2B; 137 0x120FA60007B80014; 138 0xB12B1216A60007B8; 139 0x0018B12B121AA600; 140 0x07B8001CB1B1; 141 }; 142 [] { // Traps 143 } // end Traps 144 [] { // Attributes 145 Attr(#29) { // StackMapTable 146 [] { // 147 252b, 17, []z{O,9}; // append_frame 1 148 9b; // same_frame 149 9b; // same_frame 150 } 151 } // end StackMapTable 152 } // Attributes 153 } // end Code 154 } // Attributes 155 } // Member 156 ; 157 { // Member 158 0x0009; // access 159 #45; // name_cpx 160 #46; // sig_cpx 161 [] { // Attributes 162 Attr(#7) { // Code 163 4; // max_stack 164 4; // max_locals 165 Bytes[]{ 166 0x2CC10021039F0011; 167 0xBB00235912092BB8; 168 0x0029B7002CB02BB0; 169 }; 170 [] { // Traps 171 } // end Traps 172 [] { // Attributes 173 Attr(#29) { // StackMapTable 174 [] { // 175 22b; // same_frame 176 } 177 } // end StackMapTable 178 } // Attributes 179 } // end Code 180 } // Attributes 181 } // Member 182 ; 183 { // Member 184 0x0009; // access 185 #47; // name_cpx 186 #48; // sig_cpx 187 [] { // Attributes 188 Attr(#7) { // Code 189 4; // max_stack 190 4; // max_locals 191 Bytes[]{ 192 0xBB00235912092BB8; 193 0x0029B7002CB0; 194 }; 195 [] { // Traps 196 } // end Traps 197 [] { // Attributes 198 } // Attributes 199 } // end Code 200 } // Attributes 201 } // Member 202 ; 203 { // Member 204 0x0009; // access 205 #14; // name_cpx 206 #18; // sig_cpx 207 [] { // Attributes 208 Attr(#7) { // Code 209 1; // max_stack 210 0; // max_locals 211 Bytes[]{ 212 0x123AB0; 213 }; 214 [] { // Traps 215 } // end Traps 216 [] { // Attributes 217 } // Attributes 218 } // end Code 219 } // Attributes 220 } // Member 221 ; 222 { // Member 223 0x0009; // access 224 #21; // name_cpx 225 #18; // sig_cpx 226 [] { // Attributes 227 Attr(#7) { // Code 228 1; // max_stack 229 0; // max_locals 230 Bytes[]{ 231 0xBA003F0000B0; 232 }; 233 [] { // Traps 234 } // end Traps 235 [] { // Attributes 236 } // Attributes 237 } // end Code 238 } // Attributes 239 } // Member 240 ; 241 { // Member 242 0x0009; // access 243 #25; // name_cpx 244 #18; // sig_cpx 245 [] { // Attributes 246 Attr(#7) { // Code 247 1; // max_stack 248 0; // max_locals 249 Bytes[]{ 250 0xBA00400000B0; 251 }; 252 [] { // Traps 253 } // end Traps 254 [] { // Attributes 255 } // Attributes 256 } // end Code 257 } // Attributes 258 } // Member 259 } // methods 260 261 [] { // Attributes 262 Attr(#65) { // BootstrapMethods 263 [] { // bootstrap_methods 264 { // bootstrap_method 265 #53; // bootstrap_method_ref 266 [] { // bootstrap_arguments 267 #50; 268 } // bootstrap_arguments 269 } // bootstrap_method 270 ; 271 { // bootstrap_method 272 #53; // bootstrap_method_ref 273 [] { // bootstrap_arguments 274 #58; 275 } // bootstrap_arguments 276 } // bootstrap_method 277 ; 278 { // bootstrap_method 279 #61; // bootstrap_method_ref 280 [] { // bootstrap_arguments 281 #58; 282 } // bootstrap_arguments 283 } // bootstrap_method 284 } 285 } // end BootstrapMethods 286 } // Attributes 287 } // end class CondyNestedTest_Code