Mercurial > hg > truffle
comparison src/share/vm/classfile/classFileParser.hpp @ 4137:04b9a2566eec
Merge with hsx23/hotspot.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sat, 17 Dec 2011 21:40:27 +0100 |
parents | e6b1331a51d2 |
children | cd5d8cafcc84 |
comparison
equal
deleted
inserted
replaced
3737:9dc19b7d89a3 | 4137:04b9a2566eec |
---|---|
31 #include "oops/typeArrayOop.hpp" | 31 #include "oops/typeArrayOop.hpp" |
32 #include "runtime/handles.inline.hpp" | 32 #include "runtime/handles.inline.hpp" |
33 #include "utilities/accessFlags.hpp" | 33 #include "utilities/accessFlags.hpp" |
34 | 34 |
35 class TempNewSymbol; | 35 class TempNewSymbol; |
36 class FieldAllocationCount; | |
37 | |
38 | |
36 // Parser for for .class files | 39 // Parser for for .class files |
37 // | 40 // |
38 // The bytes describing the class file structure is read from a Stream object | 41 // The bytes describing the class file structure is read from a Stream object |
39 | 42 |
40 class ClassFileParser VALUE_OBJ_CLASS_SPEC { | 43 class ClassFileParser VALUE_OBJ_CLASS_SPEC { |
82 bool is_static, u2 signature_index, | 85 bool is_static, u2 signature_index, |
83 u2* constantvalue_index_addr, | 86 u2* constantvalue_index_addr, |
84 bool* is_synthetic_addr, | 87 bool* is_synthetic_addr, |
85 u2* generic_signature_index_addr, | 88 u2* generic_signature_index_addr, |
86 typeArrayHandle* field_annotations, TRAPS); | 89 typeArrayHandle* field_annotations, TRAPS); |
87 typeArrayHandle parse_fields(constantPoolHandle cp, bool is_interface, | 90 typeArrayHandle parse_fields(Symbol* class_name, |
88 struct FieldAllocationCount *fac, | 91 constantPoolHandle cp, bool is_interface, |
89 objArrayHandle* fields_annotations, TRAPS); | 92 FieldAllocationCount *fac, |
93 objArrayHandle* fields_annotations, | |
94 int* java_fields_count_ptr, TRAPS); | |
90 | 95 |
91 // Method parsing | 96 // Method parsing |
92 methodHandle parse_method(constantPoolHandle cp, bool is_interface, | 97 methodHandle parse_method(constantPoolHandle cp, bool is_interface, |
93 AccessFlags* promoted_flags, | 98 AccessFlags* promoted_flags, |
94 typeArrayHandle* method_annotations, | 99 typeArrayHandle* method_annotations, |
148 unsigned int* nonstatic_oop_counts); | 153 unsigned int* nonstatic_oop_counts); |
149 void set_precomputed_flags(instanceKlassHandle k); | 154 void set_precomputed_flags(instanceKlassHandle k); |
150 objArrayHandle compute_transitive_interfaces(instanceKlassHandle super, | 155 objArrayHandle compute_transitive_interfaces(instanceKlassHandle super, |
151 objArrayHandle local_ifs, TRAPS); | 156 objArrayHandle local_ifs, TRAPS); |
152 | 157 |
153 // Special handling for certain classes. | |
154 // Add the "discovered" field to java.lang.ref.Reference if | |
155 // it does not exist. | |
156 void java_lang_ref_Reference_fix_pre(typeArrayHandle* fields_ptr, | |
157 constantPoolHandle cp, | |
158 FieldAllocationCount *fac_ptr, TRAPS); | |
159 // Adjust the field allocation counts for java.lang.Class to add | |
160 // fake fields. | |
161 void java_lang_Class_fix_pre(int* nonstatic_field_size, | |
162 FieldAllocationCount *fac_ptr); | |
163 // Adjust the next_nonstatic_oop_offset to place the fake fields | |
164 // before any Java fields. | |
165 void java_lang_Class_fix_post(int* next_nonstatic_oop_offset); | |
166 // Adjust the field allocation counts for java.lang.invoke.MethodHandle to add | |
167 // a fake address (void*) field. | |
168 void java_lang_invoke_MethodHandle_fix_pre(constantPoolHandle cp, | |
169 typeArrayHandle fields, | |
170 FieldAllocationCount *fac_ptr, TRAPS); | |
171 | |
172 // Format checker methods | 158 // Format checker methods |
173 void classfile_parse_error(const char* msg, TRAPS); | 159 void classfile_parse_error(const char* msg, TRAPS); |
174 void classfile_parse_error(const char* msg, int index, TRAPS); | 160 void classfile_parse_error(const char* msg, int index, TRAPS); |
175 void classfile_parse_error(const char* msg, const char *name, TRAPS); | 161 void classfile_parse_error(const char* msg, const char *name, TRAPS); |
176 void classfile_parse_error(const char* msg, int index, const char *name, TRAPS); | 162 void classfile_parse_error(const char* msg, int index, const char *name, TRAPS); |