< prev index next >
src/hotspot/share/oops/instanceKlass.hpp
Print this page
*** 141,150 ****
--- 141,156 ----
int* _default_value_offset;
friend class ValueKlass;
};
+ class ValueTypes VALUE_OBJ_CLASS_SPEC {
+ public:
+ u2 _class_info_index;
+ Symbol* _class_name;
+ };
+
class InstanceKlass: public Klass {
friend class VMStructs;
friend class JVMCIVMStructs;
friend class ClassFileParser;
friend class CompileReplay;
*** 192,201 ****
--- 198,209 ----
// number_of_inner_classes * 4. If the class has both InnerClasses
// and EnclosingMethod attributes the _inner_classes array length is
// number_of_inner_classes * 4 + enclosing_method_attribute_size.
Array<jushort>* _inner_classes;
+ Array<ValueTypes>* _value_types;
+
// the source debug extension for this klass, NULL if not specified.
// Specified as UTF-8 string without terminating zero byte in the classfile,
// it is stored in the instanceklass as a NULL-terminated UTF-8 string
const char* _source_debug_extension;
// Array name derived from this class which needs unreferencing
*** 478,487 ****
--- 486,504 ----
// inner classes
Array<u2>* inner_classes() const { return _inner_classes; }
void set_inner_classes(Array<u2>* f) { _inner_classes = f; }
+ Array<ValueTypes>* value_types() const { return _value_types; }
+ void set_value_types(Array<ValueTypes>* f) { _value_types = f; }
+
+ bool is_declared_value_type(int index);
+ bool is_declared_value_type(Symbol* symbol);
+
+ static bool is_declared_value_type(Array<ValueTypes>* value_types, int index);
+ static bool is_declared_value_type(ConstantPool* constants, Array<ValueTypes>* value_types, Symbol* symbol);
+
enum InnerClassAttributeOffset {
// From http://mirror.eng/products/jdk/1.1/docs/guide/innerclasses/spec/innerclasses.doc10.html#18814
inner_class_inner_class_info_offset = 0,
inner_class_outer_class_info_offset = 1,
inner_class_inner_name_offset = 2,
< prev index next >