< prev index next >

src/share/vm/oops/instanceRefKlass.hpp

Print this page




  50   friend class InstanceKlass;
  51 
  52   // Constructor
  53   InstanceRefKlass(int vtable_len, int itable_len, int static_field_size, int nonstatic_oop_map_size, ReferenceType rt, AccessFlags access_flags, bool is_anonymous)
  54     : InstanceKlass(vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, access_flags, is_anonymous) {}
  55 
  56  public:
  57   InstanceRefKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }
  58   // Type testing
  59   bool oop_is_instanceRef() const             { return true; }
  60 
  61   // Casting from Klass*
  62   static InstanceRefKlass* cast(Klass* k) {
  63     assert(k->oop_is_instanceRef(), "cast to InstanceRefKlass");
  64     return (InstanceRefKlass*) k;
  65   }
  66 
  67   // GC specific object visitors
  68   //
  69   // Mark Sweep
  70   void oop_ms_follow_contents(oop obj);
  71   int  oop_ms_adjust_pointers(oop obj);
  72 #if INCLUDE_ALL_GCS
  73   // Parallel Scavenge
  74   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
  75   // Parallel Compact
  76   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
  77   void oop_pc_update_pointers(oop obj);
  78 #endif
  79 
  80   // Oop fields (and metadata) iterators
  81   //  [nv = true]  Use non-virtual calls to do_oop_nv.
  82   //  [nv = false] Use virtual calls to do_oop.
  83   //
  84   // The InstanceRefKlass iterators also support reference processing.
  85 
  86 
  87   // Forward iteration
  88 private:
  89   // Iterate over all oop fields and metadata.
  90   template <bool nv, class OopClosureType>




  50   friend class InstanceKlass;
  51 
  52   // Constructor
  53   InstanceRefKlass(int vtable_len, int itable_len, int static_field_size, int nonstatic_oop_map_size, ReferenceType rt, AccessFlags access_flags, bool is_anonymous)
  54     : InstanceKlass(vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, access_flags, is_anonymous) {}
  55 
  56  public:
  57   InstanceRefKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }
  58   // Type testing
  59   bool oop_is_instanceRef() const             { return true; }
  60 
  61   // Casting from Klass*
  62   static InstanceRefKlass* cast(Klass* k) {
  63     assert(k->oop_is_instanceRef(), "cast to InstanceRefKlass");
  64     return (InstanceRefKlass*) k;
  65   }
  66 
  67   // GC specific object visitors
  68   //
  69   // Mark Sweep

  70   int  oop_ms_adjust_pointers(oop obj);
  71 #if INCLUDE_ALL_GCS
  72   // Parallel Scavenge
  73   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
  74   // Parallel Compact
  75   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
  76   void oop_pc_update_pointers(oop obj);
  77 #endif
  78 
  79   // Oop fields (and metadata) iterators
  80   //  [nv = true]  Use non-virtual calls to do_oop_nv.
  81   //  [nv = false] Use virtual calls to do_oop.
  82   //
  83   // The InstanceRefKlass iterators also support reference processing.
  84 
  85 
  86   // Forward iteration
  87 private:
  88   // Iterate over all oop fields and metadata.
  89   template <bool nv, class OopClosureType>


< prev index next >