< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page

        

@@ -141,10 +141,16 @@
   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,10 +198,12 @@
   // 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,10 +486,19 @@
 
   // 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 >