< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page
@@ -165,10 +165,12 @@
                                  // contention that may happen when a nearby object is modified.
    AccessFlags _access_flags;    // Access flags. The class/interface distinction is stored here.
  
    JFR_ONLY(DEFINE_TRACE_ID_FIELD;)
  
+   markWord _prototype_header;   // Used to initialize objects' header
+ 
  private:
    // This is an index into FileMapHeader::_shared_path_table[], to
    // associate this class with the JAR file where it's loaded from during
    // dump time. If a class is not loaded from the shared archive, this field is
    // -1.

@@ -673,10 +675,17 @@
    inline bool is_non_strong_hidden() const;
  
    bool is_cloneable() const;
    void set_is_cloneable();
  
+   markWord prototype_header() const      {
+     assert(UseCompactObjectHeaders, "only use with compact object headers");
+     return _prototype_header;
+   }
+   inline void set_prototype_header(markWord header);
+   static ByteSize prototype_header_offset() { return in_ByteSize(offset_of(Klass, _prototype_header)); }
+ 
    JFR_ONLY(DEFINE_TRACE_ID_METHODS;)
  
    virtual void metaspace_pointers_do(MetaspaceClosure* iter);
    virtual MetaspaceObj::Type type() const { return ClassType; }
  
< prev index next >