< prev index next >

src/share/vm/oops/arrayKlass.hpp

Print this page
rev 8366 : 8080746: Refactor oop iteration macros to be more general
Reviewed-by:


 127 
 128   // JVMTI support
 129   jint jvmti_class_status() const;
 130 
 131   // CDS support - remove and restore oops from metadata. Oops are not shared.
 132   virtual void remove_unshareable_info();
 133   virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
 134 
 135   // Printing
 136   void print_on(outputStream* st) const;
 137   void print_value_on(outputStream* st) const;
 138 
 139   void oop_print_on(oop obj, outputStream* st);
 140 
 141   // Verification
 142   void verify_on(outputStream* st);
 143 
 144   void oop_verify_on(oop obj, outputStream* st);
 145 };
 146 




























 147 #endif // SHARE_VM_OOPS_ARRAYKLASS_HPP


 127 
 128   // JVMTI support
 129   jint jvmti_class_status() const;
 130 
 131   // CDS support - remove and restore oops from metadata. Oops are not shared.
 132   virtual void remove_unshareable_info();
 133   virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
 134 
 135   // Printing
 136   void print_on(outputStream* st) const;
 137   void print_value_on(outputStream* st) const;
 138 
 139   void oop_print_on(oop obj, outputStream* st);
 140 
 141   // Verification
 142   void verify_on(outputStream* st);
 143 
 144   void oop_verify_on(oop obj, outputStream* st);
 145 };
 146 
 147 // Array oop iteration macros for declarations.
 148 #define OOP_OOP_ITERATE_RANGE_DECL(OopClosureType, nv_suffix)        \
 149   int oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* blk, \
 150                                      int start, int end);
 151 
 152 #if INCLUDE_ALL_GCS
 153 // Named NO_BACKWARDS because the definition used by *ArrayKlass isn't reversed, see below.
 154 #define OOP_OOP_ITERATE_NO_BACKWARDS_DECL(OopClosureType, nv_suffix) \
 155   int oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* blk);
 156 #endif // INCLUDE_ALL_GCS
 157 
 158 // Array oop iteration macros for definitions.
 159 #define OOP_OOP_ITERATE_RANGE_DEFN(KlassType, OopClosureType, nv_suffix)                                     \
 160                                                                                                              \
 161 int KlassType::oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* closure, int start, int end) {      \
 162   return oop_oop_iterate_range<nvs_to_bool(nv_suffix)>(obj, closure, start, end);                            \
 163 }
 164 
 165 #if INCLUDE_ALL_GCS
 166 #define OOP_OOP_ITERATE_NO_BACKWARDS_DEFN(KlassType, OopClosureType, nv_suffix)              \
 167 int KlassType::oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* closure) {      \
 168   /* No reverse implementation ATM. */                                                       \
 169   return oop_oop_iterate<nvs_to_bool(nv_suffix)>(obj, closure);                              \
 170 }
 171 #else
 172 #define OOP_OOP_ITERATE_NO_BACKWARDS_DEFN(KlassType, OopClosureType, nv_suffix)
 173 #endif
 174 
 175 #endif // SHARE_VM_OOPS_ARRAYKLASS_HPP
< prev index next >