annotate test/runtime/classFileParserBug/emptynumbootstrapmethods1.jcod @ 20218:828056cf311f

8040792: G1: Memory usage calculation uses sizeof(this) instead of sizeof(classname) Summary: A few locations in the code use sizeof(this) which returns the size of the pointer instead of sizeof(classname) which returns the size of the sum of its members. This change fixes these errors and adds a few tests. Reviewed-by: mgerdin, brutisso
author tschatzl
date Mon, 21 Jul 2014 09:40:19 +0200
parents 366c198c896d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17934
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
1 /*
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
4 *
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
7 * published by the Free Software Foundation.
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
8 *
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
13 * accompanied this code).
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
14 *
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
18 *
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
21 * questions.
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
22 */
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
23
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
24 /*
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
25 * This test contains a BootstrapMethods attribute with an empty
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
26 * bootstrap_methods table. This yields a BootstrapMethods
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
27 * attribute length of 2 and should not cause a
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
28 * java.lang.ClassFormatError to be thrown.
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
29 */
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
30 class emptynumbootstrapmethods1 {
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
31 0xCAFEBABE;
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
32 0; // minor version
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
33 51; // version
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
34 [12] { // Constant Pool
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
35 ; // first element is empty
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
36 class #2; // #1 at 0x0A
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
37 Utf8 "emptynumbootstrapmethods1"; // #2 at 0x0D
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
38 class #4; // #3 at 0x1F
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
39 Utf8 "java/lang/Object"; // #4 at 0x22
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
40 MethodHandle 5b #9; // #5 at 0x35
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
41 NameAndType #7 #8; // #6 at 0x39
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
42 Utf8 "equals"; // #7 at 0x3E
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
43 Utf8 "(Ljava/lang/Object;)Z"; // #8 at 0x47
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
44 Method #3 #6; // #9 at 0x5F
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
45 Utf8 "equalsx"; // #10 at 0x3E
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
46 Utf8 "BootstrapMethods"; // #11 at 0x69
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
47 } // Constant Pool
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
48
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
49 0x0001; // access
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
50 #1;// this_cpx
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
51 #3;// super_cpx
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
52
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
53 [0] { // Interfaces
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
54 } // Interfaces
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
55
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
56 [0] { // fields
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
57 } // fields
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
58
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
59 [0] { // methods
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
60 } // methods
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
61
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
62 [1] { // Attributes
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
63 Attr(#11, 2) { // BootstrapMethods at 0x8A
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
64 [0] { // bootstrap_methods
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
65 }
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
66 } // end BootstrapMethods
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
67 } // Attributes
366c198c896d 8041918: BootstrapMethods attribute cannot be empty.
lfoltan
parents:
diff changeset
68 } // end class atrbsm00101m10p