1 /* 2 * Copyright (c) 2019, 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 // Record attribute is ignored because class file minor version is 0. 25 class recordIgnoredVersion { 26 0xCAFEBABE; 27 0; // minor version 28 59; // version 29 [52] { // Constant Pool 30 ; // first element is empty 31 Method #2 #3; // #1 at 0x0A 32 class #4; // #2 at 0x0F 33 NameAndType #5 #6; // #3 at 0x12 34 Utf8 "java/lang/Record"; // #4 at 0x17 35 Utf8 "<init>"; // #5 at 0x2A 36 Utf8 "()V"; // #6 at 0x33 37 Field #8 #9; // #7 at 0x39 38 class #10; // #8 at 0x3E 39 NameAndType #11 #12; // #9 at 0x41 40 Utf8 "recordIgnoredVersion"; // #10 at 0x46 41 Utf8 "x"; // #11 at 0x56 42 Utf8 "I"; // #12 at 0x5A 43 Field #8 #9; // #13 at 0x5E 44 InvokeDynamic 0s #15; // #14 at 0x63 45 NameAndType #16 #17; // #15 at 0x68 46 Utf8 "toString"; // #16 at 0x6D 47 Utf8 "(LrecordIgnoredVersion;)Ljava/lang/String;"; // #17 at 0x78 48 InvokeDynamic 0s #19; // #18 at 0x9E 49 NameAndType #20 #21; // #19 at 0xA3 50 Utf8 "hashCode"; // #20 at 0xA8 51 Utf8 "(LrecordIgnoredVersion;)I"; // #21 at 0xB3 52 InvokeDynamic 0s #23; // #22 at 0xC8 53 NameAndType #24 #25; // #23 at 0xCD 54 Utf8 "equals"; // #24 at 0xD2 55 Utf8 "(LrecordIgnoredVersion;Ljava/lang/Object;)Z"; // #25 at 0xDB 56 Utf8 "(I)V"; // #26 at 0x0102 57 Utf8 "Code"; // #27 at 0x0109 58 Utf8 "LineNumberTable"; // #28 at 0x0110 59 Utf8 "MethodParameters"; // #29 at 0x0122 60 Utf8 "()Ljava/lang/String;"; // #30 at 0x0135 61 Utf8 "()I"; // #31 at 0x014C 62 Utf8 "(Ljava/lang/Object;)Z"; // #32 at 0x0152 63 Utf8 "SourceFile"; // #33 at 0x016A 64 Utf8 "recordIgnoredVersion.java"; // #34 at 0x0177 65 Utf8 "Record"; // #35 at 0x018C 66 Utf8 "BootstrapMethods"; // #36 at 0x0195 67 MethodHandle 6b #38; // #37 at 0x01A8 68 Method #39 #40; // #38 at 0x01AC 69 class #41; // #39 at 0x01B1 70 NameAndType #42 #43; // #40 at 0x01B4 71 Utf8 "java/lang/runtime/ObjectMethods"; // #41 at 0x01B9 72 Utf8 "bootstrap"; // #42 at 0x01DB 73 Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/TypeDescriptor;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/invoke/MethodHandle;)Ljava/lang/Object;"; // #43 at 0x01E7 74 String #11; // #44 at 0x029B 75 MethodHandle 1b #7; // #45 at 0x029E 76 Utf8 "InnerClasses"; // #46 at 0x02A2 77 class #48; // #47 at 0x02B1 78 Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #48 at 0x02B4 79 class #50; // #49 at 0x02DC 80 Utf8 "java/lang/invoke/MethodHandles"; // #50 at 0x02DF 81 Utf8 "Lookup"; // #51 at 0x0300 82 } // Constant Pool 83 84 0x0030; // access [ ACC_SUPER ACC_FINAL ] 85 #8;// this_cpx 86 #2;// super_cpx 87 88 [0] { // Interfaces 89 } // Interfaces 90 91 [1] { // fields 92 { // Member at 0x0313 93 0x8012; // access 94 #11; // name_cpx 95 #12; // sig_cpx 96 [0] { // Attributes 97 } // Attributes 98 } // Member 99 } // fields 100 101 [5] { // methods 102 { // Member at 0x031D 103 0x0001; // access 104 #5; // name_cpx 105 #26; // sig_cpx 106 [2] { // Attributes 107 Attr(#27, 34) { // Code at 0x0325 108 2; // max_stack 109 2; // max_locals 110 Bytes[10]{ 111 0x2AB700012A1BB500; 112 0x07B1; 113 } 114 [0] { // Traps 115 } // end Traps 116 [1] { // Attributes 117 Attr(#28, 6) { // LineNumberTable at 0x0341 118 [1] { // LineNumberTable 119 0 1; // at 0x034D 120 } 121 } // end LineNumberTable 122 } // Attributes 123 } // end Code 124 ; 125 Attr(#29, 5) { // MethodParameters at 0x034D 126 0x01000B8000; 127 } // end MethodParameters 128 } // Attributes 129 } // Member 130 ; 131 { // Member at 0x0358 132 0x8001; // access 133 #16; // name_cpx 134 #30; // sig_cpx 135 [1] { // Attributes 136 Attr(#27, 31) { // Code at 0x0360 137 1; // max_stack 138 1; // max_locals 139 Bytes[7]{ 140 0x2ABA000E0000B0; 141 } 142 [0] { // Traps 143 } // end Traps 144 [1] { // Attributes 145 Attr(#28, 6) { // LineNumberTable at 0x0379 146 [1] { // LineNumberTable 147 0 1; // at 0x0385 148 } 149 } // end LineNumberTable 150 } // Attributes 151 } // end Code 152 } // Attributes 153 } // Member 154 ; 155 { // Member at 0x0385 156 0x8011; // access 157 #20; // name_cpx 158 #31; // sig_cpx 159 [1] { // Attributes 160 Attr(#27, 31) { // Code at 0x038D 161 1; // max_stack 162 1; // max_locals 163 Bytes[7]{ 164 0x2ABA00120000AC; 165 } 166 [0] { // Traps 167 } // end Traps 168 [1] { // Attributes 169 Attr(#28, 6) { // LineNumberTable at 0x03A6 170 [1] { // LineNumberTable 171 0 1; // at 0x03B2 172 } 173 } // end LineNumberTable 174 } // Attributes 175 } // end Code 176 } // Attributes 177 } // Member 178 ; 179 { // Member at 0x03B2 180 0x8011; // access 181 #24; // name_cpx 182 #32; // sig_cpx 183 [1] { // Attributes 184 Attr(#27, 32) { // Code at 0x03BA 185 2; // max_stack 186 2; // max_locals 187 Bytes[8]{ 188 0x2A2BBA00160000AC; 189 } 190 [0] { // Traps 191 } // end Traps 192 [1] { // Attributes 193 Attr(#28, 6) { // LineNumberTable at 0x03D4 194 [1] { // LineNumberTable 195 0 1; // at 0x03E0 196 } 197 } // end LineNumberTable 198 } // Attributes 199 } // end Code 200 } // Attributes 201 } // Member 202 ; 203 { // Member at 0x03E0 204 0x8001; // access 205 #11; // name_cpx 206 #31; // sig_cpx 207 [1] { // Attributes 208 Attr(#27, 29) { // Code at 0x03E8 209 1; // max_stack 210 1; // max_locals 211 Bytes[5]{ 212 0x2AB4000DAC; 213 } 214 [0] { // Traps 215 } // end Traps 216 [1] { // Attributes 217 Attr(#28, 6) { // LineNumberTable at 0x03FF 218 [1] { // LineNumberTable 219 0 1; // at 0x040B 220 } 221 } // end LineNumberTable 222 } // Attributes 223 } // end Code 224 } // Attributes 225 } // Member 226 } // methods 227 228 [4] { // Attributes 229 Attr(#33, 2) { // SourceFile at 0x040D 230 #34; 231 } // end SourceFile 232 ; 233 Attr(#35, 8) { // Record at 0x0415 234 0x0001000B000C0000; 235 } // end Record 236 ; 237 Attr(#36, 12) { // BootstrapMethods at 0x0423 238 [1] { // bootstrap_methods 239 { // bootstrap_method 240 #37; // bootstrap_method_ref 241 [3] { // bootstrap_arguments 242 #8; // at 0x0431 243 #44; // at 0x0433 244 #45; // at 0x0435 245 } // bootstrap_arguments 246 } // bootstrap_method 247 } 248 } // end BootstrapMethods 249 ; 250 Attr(#46, 10) { // InnerClasses at 0x0435 251 [1] { // InnerClasses 252 #47 #49 #51 25; // at 0x0445 253 } 254 } // end InnerClasses 255 } // Attributes 256 } // end class recordIgnoredVersion