< prev index next >

src/share/vm/oops/instanceRefKlass.hpp

Print this page
rev 12851 : 8138737: Remove oop_ms_adjust_pointers and use oop_iterate instead
Reviewed-by:
rev 12852 : [mq]: 8138737-remove-oop-ms-adjust-kbarrett-rev1
rev 12853 : [mq]: 8138737-remove-oop-ms-adjust-stefank-rev1


 101   template <bool nv, class OopClosureType>
 102   inline void oop_oop_iterate_ref_processing_bounded(oop obj, OopClosureType* closure, MemRegion mr);
 103 
 104   // Reference processing
 105   template <bool nv, class OopClosureType>
 106   inline void oop_oop_iterate_ref_processing(oop obj, OopClosureType* closure);
 107 
 108   // Building blocks for specialized handling.
 109   template <bool nv, typename T, class OopClosureType, class Contains>
 110   static void do_referent(oop obj, OopClosureType* closure, Contains& contains);
 111 
 112   template <bool nv, typename T, class OopClosureType, class Contains>
 113   static void do_next(oop obj, OopClosureType* closure, Contains& contains);
 114 
 115   template <bool nv, typename T, class OopClosureType, class Contains>
 116   static void do_discovered(oop obj, OopClosureType* closure, Contains& contains);
 117 
 118   template <typename T, class OopClosureType>
 119   static bool try_discover(oop obj, ReferenceType type, OopClosureType* closure);
 120 
 121   // Do discovery while handling instance ref klasses, does reference
 122   // processing only if a ReferenceProcessor has been supplied.
 123   template <bool nv, typename T, class OopClosureType, class Contains>
 124   static void oop_oop_iterate_discovery(oop obj, ReferenceType type, OopClosureType* closure, Contains& contains);
 125 
 126   // Handle the fields, don't care about reference processing.
 127   template <bool nv, typename T, class OopClosureType, class Contains>
 128   static void oop_oop_iterate_fields(oop obj, OopClosureType* closure, Contains& contains);
 129 
 130   template <typename T>
 131   static void trace_reference_gc(const char *s, oop obj, T* referent_addr, T* next_addr, T* discovered_addr) NOT_DEBUG_RETURN;
 132 
 133  public:
 134 
 135   ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL)
 136   ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL)
 137 
 138 #if INCLUDE_ALL_GCS
 139   ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL_BACKWARDS)
 140   ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL_BACKWARDS)
 141 #endif // INCLUDE_ALL_GCS
 142 
 143   // Update non-static oop maps so 'referent', 'nextPending' and
 144   // 'discovered' will look like non-oops
 145   static void update_nonstatic_oop_maps(Klass* k);
 146 


 101   template <bool nv, class OopClosureType>
 102   inline void oop_oop_iterate_ref_processing_bounded(oop obj, OopClosureType* closure, MemRegion mr);
 103 
 104   // Reference processing
 105   template <bool nv, class OopClosureType>
 106   inline void oop_oop_iterate_ref_processing(oop obj, OopClosureType* closure);
 107 
 108   // Building blocks for specialized handling.
 109   template <bool nv, typename T, class OopClosureType, class Contains>
 110   static void do_referent(oop obj, OopClosureType* closure, Contains& contains);
 111 
 112   template <bool nv, typename T, class OopClosureType, class Contains>
 113   static void do_next(oop obj, OopClosureType* closure, Contains& contains);
 114 
 115   template <bool nv, typename T, class OopClosureType, class Contains>
 116   static void do_discovered(oop obj, OopClosureType* closure, Contains& contains);
 117 
 118   template <typename T, class OopClosureType>
 119   static bool try_discover(oop obj, ReferenceType type, OopClosureType* closure);
 120 
 121   // Do discovery while handling InstanceRefKlasses. Reference discovery
 122   // is only done if the closure provides a ReferenceProcessor.
 123   template <bool nv, typename T, class OopClosureType, class Contains>
 124   static void oop_oop_iterate_discovery(oop obj, ReferenceType type, OopClosureType* closure, Contains& contains);
 125 
 126   // Apply the closure to all fields. No reference discovery is done.
 127   template <bool nv, typename T, class OopClosureType, class Contains>
 128   static void oop_oop_iterate_fields(oop obj, OopClosureType* closure, Contains& contains);
 129 
 130   template <typename T>
 131   static void trace_reference_gc(const char *s, oop obj, T* referent_addr, T* next_addr, T* discovered_addr) NOT_DEBUG_RETURN;
 132 
 133  public:
 134 
 135   ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL)
 136   ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL)
 137 
 138 #if INCLUDE_ALL_GCS
 139   ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL_BACKWARDS)
 140   ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL_BACKWARDS)
 141 #endif // INCLUDE_ALL_GCS
 142 
 143   // Update non-static oop maps so 'referent', 'nextPending' and
 144   // 'discovered' will look like non-oops
 145   static void update_nonstatic_oop_maps(Klass* k);
 146 
< prev index next >