Mercurial > hg > truffle
comparison src/share/vm/oops/instanceClassLoaderKlass.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 | 55fb97c4c58d |
children | 7848fc12602b |
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/instanceClassLoaderKlass.hpp" | 34 #include "oops/instanceClassLoaderKlass.hpp" |
34 #include "oops/instanceMirrorKlass.hpp" | 35 #include "oops/instanceMirrorKlass.hpp" |
35 #include "oops/instanceOop.hpp" | 36 #include "oops/instanceOop.hpp" |
41 #include "gc_implementation/parNew/parOopClosures.inline.hpp" | 42 #include "gc_implementation/parNew/parOopClosures.inline.hpp" |
42 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" | 43 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" |
43 #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" | 44 #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" |
44 #include "oops/oop.pcgc.inline.hpp" | 45 #include "oops/oop.pcgc.inline.hpp" |
45 #endif // INCLUDE_ALL_GCS | 46 #endif // INCLUDE_ALL_GCS |
46 | |
47 #define if_do_metadata_checked(closure, nv_suffix) \ | |
48 /* Make sure the non-virtual and the virtual versions match. */ \ | |
49 assert(closure->do_metadata##nv_suffix() == closure->do_metadata(), \ | |
50 "Inconsistency in do_metadata"); \ | |
51 if (closure->do_metadata##nv_suffix()) | |
52 | 47 |
53 // Macro to define InstanceClassLoaderKlass::oop_oop_iterate for virtual/nonvirtual for | 48 // Macro to define InstanceClassLoaderKlass::oop_oop_iterate for virtual/nonvirtual for |
54 // all closures. Macros calling macros above for each oop size. | 49 // all closures. Macros calling macros above for each oop size. |
55 // Since ClassLoader objects have only a pointer to the loader_data, they are not | 50 // Since ClassLoader objects have only a pointer to the loader_data, they are not |
56 // compressed nor does the pointer move. | 51 // compressed nor does the pointer move. |