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