< prev index next >

src/share/vm/oops/instanceMirrorKlass.hpp

Print this page




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




  74     // Cache the offset of the static fields in the Class instance
  75     assert(_offset_of_static_fields == 0, "once");
  76     _offset_of_static_fields = InstanceMirrorKlass::cast(SystemDictionary::Class_klass())->size_helper() << LogHeapWordSize;
  77   }
  78 
  79   static int offset_of_static_fields() {
  80     return _offset_of_static_fields;
  81   }
  82 
  83   int compute_static_oop_field_count(oop obj);
  84 
  85   // Given a Klass return the size of the instance
  86   int instance_size(KlassHandle k);
  87 
  88   // allocation
  89   instanceOop allocate_instance(KlassHandle k, TRAPS);
  90 
  91   // GC specific object visitors
  92   //
  93   // Mark Sweep

  94   int  oop_ms_adjust_pointers(oop obj);
  95 #if INCLUDE_ALL_GCS
  96   // Parallel Scavenge
  97   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
  98   // Parallel Compact
  99   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
 100   void oop_pc_update_pointers(oop obj);
 101 #endif
 102 
 103   // Oop fields (and metadata) iterators
 104   //  [nv = true]  Use non-virtual calls to do_oop_nv.
 105   //  [nv = false] Use virtual calls to do_oop.
 106   //
 107   // The InstanceMirrorKlass iterators also visit the hidden Klass pointer.
 108 
 109  public:
 110   // Iterate over the static fields.
 111   template <bool nv, class OopClosureType>
 112   inline void oop_oop_iterate_statics(oop obj, OopClosureType* closure);
 113 


< prev index next >