< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page
@@ -41,15 +41,16 @@
  enum KlassID {
    InstanceKlassID,
    InstanceRefKlassID,
    InstanceMirrorKlassID,
    InstanceClassLoaderKlassID,
+   InstanceStackChunkKlassID,
    TypeArrayKlassID,
    ObjArrayKlassID
  };
  
- const uint KLASS_ID_COUNT = 6;
+ const uint KLASS_ID_COUNT = 7;
  
  //
  // A Klass provides:
  //  1: language level class object (method dictionary etc.)
  //  2: provide vm dispatch behavior for the object

@@ -550,10 +551,13 @@
    // These functions describe behavior for the oop not the KLASS.
  
    // actual oop size of obj in memory
    virtual int oop_size(oop obj) const = 0;
  
+   // the size of the object in memory after possible compression during GC promotion/compaction
+   virtual int compact_oop_size(oop obj) const { return oop_size(obj); }
+ 
    // Size of klass in word size.
    virtual int size() const = 0;
  
    // Returns the Java name for a class (Resource allocated)
    // For arrays, this returns the name of the element with a leading '['.

@@ -571,10 +575,15 @@
    const char* class_in_module_of_loader(bool use_are = false, bool include_parent_loader = false) const;
  
    // Returns "interface", "abstract class" or "class".
    const char* external_kind() const;
  
+   virtual size_t copy_disjoint(oop obj, HeapWord* to, size_t word_size);
+   virtual size_t copy_conjoint(oop obj, HeapWord* to, size_t word_size);
+   virtual size_t copy_disjoint_compact(oop obj, HeapWord* to);
+   virtual size_t copy_conjoint_compact(oop obj, HeapWord* to);
+ 
    // type testing operations
  #ifdef ASSERT
   protected:
    virtual bool is_instance_klass_slow()     const { return false; }
    virtual bool is_array_klass_slow()        const { return false; }
< prev index next >