24 |
24 |
25 #ifndef SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP |
25 #ifndef SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP |
26 #define SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP |
26 #define SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP |
27 |
27 |
28 #include "oops/instanceKlass.hpp" |
28 #include "oops/instanceKlass.hpp" |
|
29 #include "utilities/macros.hpp" |
29 |
30 |
30 // An InstanceClassLoaderKlass is a specialization of the InstanceKlass. It does |
31 // An InstanceClassLoaderKlass is a specialization of the InstanceKlass. It does |
31 // not add any field. It is added to walk the dependencies for the class loader |
32 // not add any field. It is added to walk the dependencies for the class loader |
32 // key that this class loader points to. This is how the loader_data graph is |
33 // key that this class loader points to. This is how the loader_data graph is |
33 // walked and dependant class loaders are kept alive. I thought we walked |
34 // walked and dependant class loaders are kept alive. I thought we walked |
59 int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, MemRegion mr); |
60 int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, MemRegion mr); |
60 |
61 |
61 ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DECL) |
62 ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DECL) |
62 ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DECL) |
63 ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DECL) |
63 |
64 |
64 #ifndef SERIALGC |
65 #if INCLUDE_ALL_GCS |
65 #define InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DECL(OopClosureType, nv_suffix) \ |
66 #define InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DECL(OopClosureType, nv_suffix) \ |
66 int oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* blk); |
67 int oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* blk); |
67 |
68 |
68 ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) |
69 ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) |
69 ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) |
70 ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) |
70 #endif // !SERIALGC |
71 #endif // INCLUDE_ALL_GCS |
71 |
72 |
72 // Garbage collection |
73 // Garbage collection |
73 void oop_follow_contents(oop obj); |
74 void oop_follow_contents(oop obj); |
74 |
75 |
75 // Parallel Scavenge and Parallel Old |
76 // Parallel Scavenge and Parallel Old |