src/share/vm/oops/instanceClassLoaderKlass.cpp

Print this page
rev 6796 : [mq]: templateOopIterate
rev 6799 : [mq]: latestChanges

*** 30,120 **** #include "memory/genOopClosures.inline.hpp" #include "memory/iterator.inline.hpp" #include "memory/oopFactory.hpp" #include "oops/instanceKlass.hpp" #include "oops/instanceClassLoaderKlass.hpp" - #include "oops/instanceMirrorKlass.hpp" - #include "oops/instanceOop.hpp" - #include "oops/oop.inline.hpp" - #include "oops/symbol.hpp" - #include "runtime/handles.inline.hpp" - #include "utilities/macros.hpp" #if INCLUDE_ALL_GCS ! #include "gc_implementation/parNew/parOopClosures.inline.hpp" ! #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" ! #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" ! #include "oops/oop.pcgc.inline.hpp" ! #endif // INCLUDE_ALL_GCS ! ! // Macro to define InstanceClassLoaderKlass::oop_oop_iterate for virtual/nonvirtual for ! // all closures. Macros calling macros above for each oop size. ! // Since ClassLoader objects have only a pointer to the loader_data, they are not ! // compressed nor does the pointer move. ! ! #define InstanceClassLoaderKlass_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix)\ ! \ ! int InstanceClassLoaderKlass:: \ ! oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure) { \ ! /* Get size before changing pointers */ \ ! SpecializationStats::record_iterate_call##nv_suffix(SpecializationStats::irk);\ ! int size = InstanceKlass::oop_oop_iterate##nv_suffix(obj, closure); \ ! \ ! if_do_metadata_checked(closure, nv_suffix) { \ ! ClassLoaderData* cld = java_lang_ClassLoader::loader_data(obj); \ ! /* cld can be null if we have a non-registered class loader. */ \ ! if (cld != NULL) { \ ! closure->do_class_loader_data(cld); \ ! } \ ! } \ ! \ ! return size; \ ! } ! ! #if INCLUDE_ALL_GCS ! #define InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DEFN(OopClosureType, nv_suffix) \ ! \ ! int InstanceClassLoaderKlass:: \ ! oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* closure) { \ ! /* Get size before changing pointers */ \ ! SpecializationStats::record_iterate_call##nv_suffix(SpecializationStats::irk);\ ! int size = InstanceKlass::oop_oop_iterate_backwards##nv_suffix(obj, closure); \ ! return size; \ ! } ! #endif // INCLUDE_ALL_GCS ! ! #define InstanceClassLoaderKlass_OOP_OOP_ITERATE_DEFN_m(OopClosureType, nv_suffix) \ ! \ ! int InstanceClassLoaderKlass:: \ ! oop_oop_iterate##nv_suffix##_m(oop obj, \ ! OopClosureType* closure, \ ! MemRegion mr) { \ ! SpecializationStats::record_iterate_call##nv_suffix(SpecializationStats::irk);\ ! \ ! int size = InstanceKlass::oop_oop_iterate##nv_suffix##_m(obj, closure, mr); \ ! \ ! if_do_metadata_checked(closure, nv_suffix) { \ ! if (mr.contains(obj)) { \ ! ClassLoaderData* cld = java_lang_ClassLoader::loader_data(obj); \ ! /* cld can be null if we have a non-registered class loader. */ \ ! if (cld != NULL) { \ ! closure->do_class_loader_data(cld); \ ! } \ ! } \ ! } \ ! \ ! return size; \ ! } ! ! ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DEFN) ! ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DEFN) ! #if INCLUDE_ALL_GCS ! ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DEFN) ! ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DEFN) ! #endif // INCLUDE_ALL_GCS ! ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DEFN_m) ! ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DEFN_m) void InstanceClassLoaderKlass::oop_follow_contents(oop obj) { InstanceKlass::oop_follow_contents(obj); ClassLoaderData * const loader_data = java_lang_ClassLoader::loader_data(obj); --- 30,45 ---- #include "memory/genOopClosures.inline.hpp" #include "memory/iterator.inline.hpp" #include "memory/oopFactory.hpp" #include "oops/instanceKlass.hpp" #include "oops/instanceClassLoaderKlass.hpp" #if INCLUDE_ALL_GCS ! #include "gc_implementation/parallelScavenge/psParallelCompact.hpp" ! #endif ! InstanceClassLoaderKlass::InstanceClassLoaderKlass(int vtable_len, int itable_len, int static_field_size, int nonstatic_oop_map_size, ReferenceType rt, AccessFlags access_flags, bool is_anonymous) ! : InstanceKlass(vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, access_flags, is_anonymous, _instance_class_loader) {} void InstanceClassLoaderKlass::oop_follow_contents(oop obj) { InstanceKlass::oop_follow_contents(obj); ClassLoaderData * const loader_data = java_lang_ClassLoader::loader_data(obj);
*** 145,151 **** --- 70,77 ---- int InstanceClassLoaderKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { InstanceKlass::oop_update_pointers(cm, obj); return size_helper(); } + #endif // INCLUDE_ALL_GCS