Mercurial > hg > graal-jvmci-8
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 \ |