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     Method #8 #22; // #1
  33     Field #23 #24; // #2
  34     String #25; // #3
  35     Method #26 #27; // #4
  36     Method #28 #29; // #5
  37     Method #30 #29; // #6
  38     class #31; // #7
  39     class #34; // #8
  40     Utf8 "oa"; // #9
  41     Utf8 "[Ljava/lang/Object;"; // #10
  42     Utf8 "<init>"; // #11
  43     Utf8 "()V"; // #12
  44     Utf8 "Code"; // #13
  45     Utf8 "LineNumberTable"; // #14
  46     Utf8 "m"; // #15
  47     Utf8 "invokeTarget"; // #16
  48     Utf8 "invokeTargetNotInstanceHost"; // #17
  49     Utf8 "SourceFile"; // #18
  50     Utf8 "TestNestmateMembership.java"; // #19
  51     Utf8 "NestHost"; // #20
  52     class #35; // #21
  53     NameAndType #11 #12; // #22
  54     class #36; // #23
  55     NameAndType #37 #38; // #24
  56     Utf8 "CallerNotInstanceHost.m() - java version"; // #25
  57     class #39; // #26
  58     NameAndType #40 #41; // #27
  59     class #42; // #28
  60     NameAndType #15 #12; // #29
  61     class #44; // #30
  62     Utf8 "TestNestmateMembership$CallerNotInstanceHost"; // #31
  63     Utf8 "CallerNotInstanceHost"; // #32
  64     Utf8 "InnerClasses"; // #33
  65     Utf8 "java/lang/Object"; // #34
  66     Utf8 "TestNestmateMembership"; // #35
  67     Utf8 "java/lang/System"; // #36
  68     Utf8 "out"; // #37
  69     Utf8 "Ljava/io/PrintStream;"; // #38
  70     Utf8 "java/io/PrintStream"; // #39
  71     Utf8 "println"; // #40
  72     Utf8 "(Ljava/lang/String;)V"; // #41
  73     Utf8 "TestNestmateMembership$Target"; // #42
  74     Utf8 "Target"; // #43
  75     Utf8 "TestNestmateMembership$TargetNotInstanceHost"; // #44
  76     Utf8 "TargetNotInstanceHost"; // #45
  77     class #10; // #46 - added
  78   } // Constant Pool
  79 
  80   0x0020; // access
  81   #7;// this_cpx
  82   #8;// super_cpx
  83 
  84   [] { // Interfaces
  85   } // Interfaces
  86 
  87   [] { // fields
  88     { // Member
  89       0x0000; // access
  90       #9; // name_cpx
  91       #10; // sig_cpx
  92       [] { // Attributes
  93       } // Attributes
  94     } // Member
  95   } // fields
  96 
  97   [] { // methods
  98     { // Member
  99       0x0000; // access
 100       #11; // name_cpx
 101       #12; // sig_cpx
 102       [] { // Attributes
 103         Attr(#13) { // Code
 104           1; // max_stack
 105           1; // max_locals
 106           Bytes[]{
 107             0x2AB70001B1;
 108           };
 109           [] { // Traps
 110           } // end Traps
 111           [] { // Attributes
 112             Attr(#14) { // LineNumberTable
 113               [] { // LineNumberTable
 114                 0  104;
 115               }
 116             } // end LineNumberTable
 117           } // Attributes
 118         } // end Code
 119       } // Attributes
 120     } // Member
 121     ;
 122     { // Member
 123       0x000A; // access
 124       #15; // name_cpx
 125       #12; // sig_cpx
 126       [] { // Attributes
 127         Attr(#13) { // Code
 128           2; // max_stack
 129           0; // max_locals
 130           Bytes[]{
 131             0xB200021203B60004;
 132             0xB1;
 133           };
 134           [] { // Traps
 135           } // end Traps
 136           [] { // Attributes
 137             Attr(#14) { // LineNumberTable
 138               [] { // LineNumberTable
 139                 0  107;
 140                 8  108;
 141               }
 142             } // end LineNumberTable
 143           } // Attributes
 144         } // end Code
 145       } // Attributes
 146     } // Member
 147     ;
 148     { // Member
 149       0x0009; // access
 150       #16; // name_cpx
 151       #12; // sig_cpx
 152       [] { // Attributes
 153         Attr(#13) { // Code
 154           0; // max_stack
 155           0; // max_locals
 156           Bytes[]{
 157             0xB80005B1;
 158           };
 159           [] { // Traps
 160           } // end Traps
 161           [] { // Attributes
 162             Attr(#14) { // LineNumberTable
 163               [] { // LineNumberTable
 164                 0  110;
 165                 3  111;
 166               }
 167             } // end LineNumberTable
 168           } // Attributes
 169         } // end Code
 170       } // Attributes
 171     } // Member
 172     ;
 173     { // Member
 174       0x0009; // access
 175       #17; // name_cpx
 176       #12; // sig_cpx
 177       [] { // Attributes
 178         Attr(#13) { // Code
 179           0; // max_stack
 180           0; // max_locals
 181           Bytes[]{
 182             0xB80006B1;
 183           };
 184           [] { // Traps
 185           } // end Traps
 186           [] { // Attributes
 187             Attr(#14) { // LineNumberTable
 188               [] { // LineNumberTable
 189                 0  113;
 190                 3  114;
 191               }
 192             } // end LineNumberTable
 193           } // Attributes
 194         } // end Code
 195       } // Attributes
 196     } // Member
 197   } // methods
 198 
 199   [] { // Attributes
 200     Attr(#18) { // SourceFile
 201       #19;
 202     } // end SourceFile
 203     ;
 204     Attr(#20) { // NestHost
 205       0x002E; // modified - #46
 206     } // end NestHost
 207     ;
 208     Attr(#33) { // InnerClasses
 209       [] { // InnerClasses
 210         #7 #21 #32 8;
 211         #28 #21 #43 8;
 212         #30 #21 #45 8;
 213       }
 214     } // end InnerClasses
 215   } // Attributes
 216 } // end class TestNestmateMembership$CallerNotInstanceHost