< prev index next >
src/share/vm/oops/instanceKlass.hpp
Print this page
@@ -205,16 +205,19 @@
int _itable_len; // length of Java itable (in words)
// _is_marked_dependent can be set concurrently, thus cannot be part of the
// _misc_flags.
bool _is_marked_dependent; // used for marking during flushing and deoptimization
+ public:
enum {
_extra_is_being_redefined = 1 << 0, // used for locking redefinition
_extra_has_value_fields = 1 << 1, // has value fields and related embedded section is not empty
- _extra_has_vcc_klass = 1 << 2 // has a pointer to its Value Capable Class (MVT)
+ _extra_is_bufferable = 1 << 2, // value can be buffered out side of the Java heap
+ _extra_has_vcc_klass = 1 << 3 // has a pointer to its Value Capable Class (MVT)
};
+ protected:
u1 _extra_flags;
// The low three bits of _misc_flags contains the kind field.
// This can be used to quickly discriminate among the five kinds of
// InstanceKlass.
@@ -541,10 +544,12 @@
// marking
bool is_marked_dependent() const { return _is_marked_dependent; }
void set_is_marked_dependent(bool value) { _is_marked_dependent = value; }
+ static ByteSize extra_flags_offset() { return in_ByteSize(offset_of(InstanceKlass, _extra_flags)); }
+
// initialization (virtuals from Klass)
bool should_be_initialized() const; // means that initialize should be called
void initialize(TRAPS);
void link_class(TRAPS);
bool link_class_or_fail(TRAPS); // returns false on failure
< prev index next >