comparison src/share/vm/oops/instanceMirrorKlass.cpp @ 20268:4c1b88a53c74

8046670: Make CMS metadata aware closures applicable for other collectors Reviewed-by: ehelin, mgerdin
author stefank
date Tue, 24 Jun 2014 16:20:15 +0200
parents 9428a0b94204
children a8ea2f110d87
comparison
equal deleted inserted replaced
20267:ff1e37e7eb83 20268:4c1b88a53c74
26 #include "classfile/javaClasses.hpp" 26 #include "classfile/javaClasses.hpp"
27 #include "classfile/systemDictionary.hpp" 27 #include "classfile/systemDictionary.hpp"
28 #include "gc_implementation/shared/markSweep.inline.hpp" 28 #include "gc_implementation/shared/markSweep.inline.hpp"
29 #include "gc_interface/collectedHeap.inline.hpp" 29 #include "gc_interface/collectedHeap.inline.hpp"
30 #include "memory/genOopClosures.inline.hpp" 30 #include "memory/genOopClosures.inline.hpp"
31 #include "memory/iterator.inline.hpp"
31 #include "memory/oopFactory.hpp" 32 #include "memory/oopFactory.hpp"
32 #include "oops/instanceKlass.hpp" 33 #include "oops/instanceKlass.hpp"
33 #include "oops/instanceMirrorKlass.hpp" 34 #include "oops/instanceMirrorKlass.hpp"
34 #include "oops/instanceOop.hpp" 35 #include "oops/instanceOop.hpp"
35 #include "oops/oop.inline.hpp" 36 #include "oops/oop.inline.hpp"
239 (closure)->do_oop##nv_suffix(p), \ 240 (closure)->do_oop##nv_suffix(p), \
240 assert_is_in_closed_subset) \ 241 assert_is_in_closed_subset) \
241 return oop_size(obj); \ 242 return oop_size(obj); \
242 243
243 244
244 #define if_do_metadata_checked(closure, nv_suffix) \
245 /* Make sure the non-virtual and the virtual versions match. */ \
246 assert(closure->do_metadata##nv_suffix() == closure->do_metadata(), \
247 "Inconsistency in do_metadata"); \
248 if (closure->do_metadata##nv_suffix())
249
250 // Macro to define InstanceMirrorKlass::oop_oop_iterate for virtual/nonvirtual for 245 // Macro to define InstanceMirrorKlass::oop_oop_iterate for virtual/nonvirtual for
251 // all closures. Macros calling macros above for each oop size. 246 // all closures. Macros calling macros above for each oop size.
252 247
253 #define InstanceMirrorKlass_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ 248 #define InstanceMirrorKlass_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \
254 \ 249 \