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