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   0x0000; // 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