1 /*
   2  * Copyright (c) 2017, 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 // NestHost attribute refers to class with no nest
  25 
  26 class TestNestmateMembership$CallerNotOurHost {
  27   0xCAFEBABE;
  28   0; // minor version
  29   55; // version
  30   [] { // Constant Pool
  31     ; // first element is empty
  32     Field #34 #35; // #1
  33     String #36; // #2
  34     Method #37 #38; // #3
  35     Method #7 #39; // #4
  36     Method #9 #39; // #5
  37     Method #14 #40; // #6
  38     class #41; // #7
  39     Method #7 #40; // #8
  40     class #44; // #9
  41     Method #9 #40; // #10
  42     Field #7 #46; // #11
  43     Field #9 #46; // #12
  44     class #47; // #13
  45     class #49; // #14
  46     Utf8 "f"; // #15
  47     Utf8 "I"; // #16
  48     Utf8 "m"; // #17
  49     Utf8 "()V"; // #18
  50     Utf8 "Code"; // #19
  51     Utf8 "LineNumberTable"; // #20
  52     Utf8 "invokeTarget"; // #21
  53     Utf8 "invokeTargetNotOurHost"; // #22
  54     Utf8 "<init>"; // #23
  55     Utf8 "newTarget"; // #24
  56     Utf8 "newTargetNotOurHost"; // #25
  57     Utf8 "getFieldTarget"; // #26
  58     Utf8 "getFieldTargetNotOurHost"; // #27
  59     Utf8 "putFieldTarget"; // #28
  60     Utf8 "putFieldTargetNotOurHost"; // #29
  61     Utf8 "SourceFile"; // #30
  62     Utf8 "TestNestmateMembership.java"; // #31
  63     Utf8 "NestHost"; // #32
  64     class #50; // #33
  65     class #51; // #34
  66     NameAndType #52 #53; // #35
  67     Utf8 "CallerNotOurHost.m() - java version"; // #36
  68     class #54; // #37
  69     NameAndType #55 #56; // #38
  70     NameAndType #17 #18; // #39
  71     NameAndType #23 #18; // #40
  72     Utf8 "TestNestmateMembership$Target"; // #41
  73     Utf8 "Target"; // #42
  74     Utf8 "InnerClasses"; // #43
  75     Utf8 "TestNestmateMembership$TargetNotOurHost"; // #44
  76     Utf8 "TargetNotOurHost"; // #45
  77     NameAndType #15 #16; // #46
  78     Utf8 "TestNestmateMembership$CallerNotOurHost"; // #47
  79     Utf8 "CallerNotOurHost"; // #48
  80     Utf8 "java/lang/Object"; // #49
  81     Utf8 "TestNestmateMembership"; // #50
  82     Utf8 "java/lang/System"; // #51
  83     Utf8 "out"; // #52
  84     Utf8 "Ljava/io/PrintStream;"; // #53
  85     Utf8 "java/io/PrintStream"; // #54
  86     Utf8 "println"; // #55
  87     Utf8 "(Ljava/lang/String;)V"; // #56
  88     //  Added
  89     Utf8 "InvalidNestHost"; // #57
  90     class #57; // #58
  91   } // Constant Pool
  92 
  93   0x0020; // access
  94   #13;// this_cpx
  95   #14;// super_cpx
  96 
  97   [] { // Interfaces
  98   } // Interfaces
  99 
 100   [] { // fields
 101     { // Member
 102       0x000A; // access
 103       #15; // name_cpx
 104       #16; // sig_cpx
 105       [] { // Attributes
 106       } // Attributes
 107     } // Member
 108   } // fields
 109 
 110   [] { // methods
 111     { // Member
 112       0x000A; // access
 113       #17; // name_cpx
 114       #18; // sig_cpx
 115       [] { // Attributes
 116         Attr(#19) { // Code
 117           2; // max_stack
 118           0; // max_locals
 119           Bytes[]{
 120             0xB200011202B60003;
 121             0xB1;
 122           };
 123           [] { // Traps
 124           } // end Traps
 125           [] { // Attributes
 126             Attr(#20) { // LineNumberTable
 127               [] { // LineNumberTable
 128                 0  297;
 129                 8  298;
 130               }
 131             } // end LineNumberTable
 132           } // Attributes
 133         } // end Code
 134       } // Attributes
 135     } // Member
 136     ;
 137     { // Member
 138       0x0009; // access
 139       #21; // name_cpx
 140       #18; // sig_cpx
 141       [] { // Attributes
 142         Attr(#19) { // Code
 143           0; // max_stack
 144           0; // max_locals
 145           Bytes[]{
 146             0xB80004B1;
 147           };
 148           [] { // Traps
 149           } // end Traps
 150           [] { // Attributes
 151             Attr(#20) { // LineNumberTable
 152               [] { // LineNumberTable
 153                 0  300;
 154                 3  301;
 155               }
 156             } // end LineNumberTable
 157           } // Attributes
 158         } // end Code
 159       } // Attributes
 160     } // Member
 161     ;
 162     { // Member
 163       0x0009; // access
 164       #22; // name_cpx
 165       #18; // sig_cpx
 166       [] { // Attributes
 167         Attr(#19) { // Code
 168           0; // max_stack
 169           0; // max_locals
 170           Bytes[]{
 171             0xB80005B1;
 172           };
 173           [] { // Traps
 174           } // end Traps
 175           [] { // Attributes
 176             Attr(#20) { // LineNumberTable
 177               [] { // LineNumberTable
 178                 0  303;
 179                 3  304;
 180               }
 181             } // end LineNumberTable
 182           } // Attributes
 183         } // end Code
 184       } // Attributes
 185     } // Member
 186     ;
 187     { // Member
 188       0x0002; // access
 189       #23; // name_cpx
 190       #18; // sig_cpx
 191       [] { // Attributes
 192         Attr(#19) { // Code
 193           1; // max_stack
 194           1; // max_locals
 195           Bytes[]{
 196             0x2AB70006B1;
 197           };
 198           [] { // Traps
 199           } // end Traps
 200           [] { // Attributes
 201             Attr(#20) { // LineNumberTable
 202               [] { // LineNumberTable
 203                 0  308;
 204               }
 205             } // end LineNumberTable
 206           } // Attributes
 207         } // end Code
 208       } // Attributes
 209     } // Member
 210     ;
 211     { // Member
 212       0x0009; // access
 213       #24; // name_cpx
 214       #18; // sig_cpx
 215       [] { // Attributes
 216         Attr(#19) { // Code
 217           2; // max_stack
 218           1; // max_locals
 219           Bytes[]{
 220             0xBB000759B700084B;
 221             0xB1;
 222           };
 223           [] { // Traps
 224           } // end Traps
 225           [] { // Attributes
 226             Attr(#20) { // LineNumberTable
 227               [] { // LineNumberTable
 228                 0  311;
 229                 8  312;
 230               }
 231             } // end LineNumberTable
 232           } // Attributes
 233         } // end Code
 234       } // Attributes
 235     } // Member
 236     ;
 237     { // Member
 238       0x0009; // access
 239       #25; // name_cpx
 240       #18; // sig_cpx
 241       [] { // Attributes
 242         Attr(#19) { // Code
 243           2; // max_stack
 244           1; // max_locals
 245           Bytes[]{
 246             0xBB000959B7000A4B;
 247             0xB1;
 248           };
 249           [] { // Traps
 250           } // end Traps
 251           [] { // Attributes
 252             Attr(#20) { // LineNumberTable
 253               [] { // LineNumberTable
 254                 0  314;
 255                 8  315;
 256               }
 257             } // end LineNumberTable
 258           } // Attributes
 259         } // end Code
 260       } // Attributes
 261     } // Member
 262     ;
 263     { // Member
 264       0x0009; // access
 265       #26; // name_cpx
 266       #18; // sig_cpx
 267       [] { // Attributes
 268         Attr(#19) { // Code
 269           1; // max_stack
 270           1; // max_locals
 271           Bytes[]{
 272             0xB2000B3BB1;
 273           };
 274           [] { // Traps
 275           } // end Traps
 276           [] { // Attributes
 277             Attr(#20) { // LineNumberTable
 278               [] { // LineNumberTable
 279                 0  322;
 280                 4  323;
 281               }
 282             } // end LineNumberTable
 283           } // Attributes
 284         } // end Code
 285       } // Attributes
 286     } // Member
 287     ;
 288     { // Member
 289       0x0009; // access
 290       #27; // name_cpx
 291       #18; // sig_cpx
 292       [] { // Attributes
 293         Attr(#19) { // Code
 294           1; // max_stack
 295           1; // max_locals
 296           Bytes[]{
 297             0xB2000C3BB1;
 298           };
 299           [] { // Traps
 300           } // end Traps
 301           [] { // Attributes
 302             Attr(#20) { // LineNumberTable
 303               [] { // LineNumberTable
 304                 0  325;
 305                 4  326;
 306               }
 307             } // end LineNumberTable
 308           } // Attributes
 309         } // end Code
 310       } // Attributes
 311     } // Member
 312     ;
 313     { // Member
 314       0x0009; // access
 315       #28; // name_cpx
 316       #18; // sig_cpx
 317       [] { // Attributes
 318         Attr(#19) { // Code
 319           1; // max_stack
 320           0; // max_locals
 321           Bytes[]{
 322             0x102AB3000BB1;
 323           };
 324           [] { // Traps
 325           } // end Traps
 326           [] { // Attributes
 327             Attr(#20) { // LineNumberTable
 328               [] { // LineNumberTable
 329                 0  328;
 330                 5  329;
 331               }
 332             } // end LineNumberTable
 333           } // Attributes
 334         } // end Code
 335       } // Attributes
 336     } // Member
 337     ;
 338     { // Member
 339       0x0009; // access
 340       #29; // name_cpx
 341       #18; // sig_cpx
 342       [] { // Attributes
 343         Attr(#19) { // Code
 344           1; // max_stack
 345           0; // max_locals
 346           Bytes[]{
 347             0x102AB3000CB1;
 348           };
 349           [] { // Traps
 350           } // end Traps
 351           [] { // Attributes
 352             Attr(#20) { // LineNumberTable
 353               [] { // LineNumberTable
 354                 0  331;
 355                 5  332;
 356               }
 357             } // end LineNumberTable
 358           } // Attributes
 359         } // end Code
 360       } // Attributes
 361     } // Member
 362   } // methods
 363 
 364   [] { // Attributes
 365     Attr(#30) { // SourceFile
 366       #31;
 367     } // end SourceFile
 368     ;
 369     Attr(#32) { // NestHost
 370       0x003A; // modified - #58
 371     } // end NestHost
 372     ;
 373     Attr(#43) { // InnerClasses
 374       [] { // InnerClasses
 375         #7 #33 #42 8;
 376         #9 #33 #45 8;
 377         #13 #33 #48 8;
 378       }
 379     } // end InnerClasses
 380   } // Attributes
 381 } // end class TestNestmateMembership$CallerNotOurHost