src/share/vm/oops/instanceMirrorKlass.hpp

Print this page




  73     // Cache the offset of the static fields in the Class instance
  74     assert(_offset_of_static_fields == 0, "once");
  75     _offset_of_static_fields = InstanceMirrorKlass::cast(SystemDictionary::Class_klass())->size_helper() << LogHeapWordSize;
  76   }
  77 
  78   static int offset_of_static_fields() {
  79     return _offset_of_static_fields;
  80   }
  81 
  82   int compute_static_oop_field_count(oop obj);
  83 
  84   // Given a Klass return the size of the instance
  85   int instance_size(KlassHandle k);
  86 
  87   // allocation
  88   instanceOop allocate_instance(KlassHandle k, TRAPS);
  89 
  90   // GC specific object visitors
  91   //
  92   // Mark Sweep
  93   int  oop_ms_adjust_pointers(oop obj);
  94 #if INCLUDE_ALL_GCS
  95   // Parallel Scavenge
  96   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
  97   // Parallel Compact
  98   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
  99   void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);
 100 #endif
 101 
 102   // Oop fields (and metadata) iterators
 103   //  [nv = true]  Use non-virtual calls to do_oop_nv.
 104   //  [nv = false] Use virtual calls to do_oop.
 105   //
 106   // The InstanceMirrorKlass iterators also visit the hidden Klass pointer.
 107 
 108  public:
 109   // Iterate over the static fields.
 110   template <bool nv, class OopClosureType>
 111   inline void oop_oop_iterate_statics(oop obj, OopClosureType* closure);
 112 
 113  private:




  73     // Cache the offset of the static fields in the Class instance
  74     assert(_offset_of_static_fields == 0, "once");
  75     _offset_of_static_fields = InstanceMirrorKlass::cast(SystemDictionary::Class_klass())->size_helper() << LogHeapWordSize;
  76   }
  77 
  78   static int offset_of_static_fields() {
  79     return _offset_of_static_fields;
  80   }
  81 
  82   int compute_static_oop_field_count(oop obj);
  83 
  84   // Given a Klass return the size of the instance
  85   int instance_size(KlassHandle k);
  86 
  87   // allocation
  88   instanceOop allocate_instance(KlassHandle k, TRAPS);
  89 
  90   // GC specific object visitors
  91   //
  92   // Mark Sweep
  93   int  oop_ms_adjust_pointers(oop obj, MarkSweep* ms);
  94 #if INCLUDE_ALL_GCS
  95   // Parallel Scavenge
  96   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
  97   // Parallel Compact
  98   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
  99   void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);
 100 #endif
 101 
 102   // Oop fields (and metadata) iterators
 103   //  [nv = true]  Use non-virtual calls to do_oop_nv.
 104   //  [nv = false] Use virtual calls to do_oop.
 105   //
 106   // The InstanceMirrorKlass iterators also visit the hidden Klass pointer.
 107 
 108  public:
 109   // Iterate over the static fields.
 110   template <bool nv, class OopClosureType>
 111   inline void oop_oop_iterate_statics(oop obj, OopClosureType* closure);
 112 
 113  private: