< prev index next >

src/share/vm/oops/instanceClassLoaderKlass.cpp

Print this page
rev 7858 : 8073543: Circular include dependency between psScavenge.inline.hpp and psPromotionManager.inline.hpp


  24 
  25 #include "precompiled.hpp"
  26 #include "classfile/javaClasses.hpp"
  27 #include "classfile/systemDictionary.hpp"
  28 #include "gc_implementation/shared/markSweep.inline.hpp"
  29 #include "gc_interface/collectedHeap.inline.hpp"
  30 #include "memory/genOopClosures.inline.hpp"
  31 #include "memory/iterator.inline.hpp"
  32 #include "memory/oopFactory.hpp"
  33 #include "oops/instanceKlass.hpp"
  34 #include "oops/instanceClassLoaderKlass.hpp"
  35 #include "oops/instanceMirrorKlass.hpp"
  36 #include "oops/instanceOop.hpp"
  37 #include "oops/oop.inline.hpp"
  38 #include "oops/symbol.hpp"
  39 #include "runtime/handles.inline.hpp"
  40 #include "utilities/macros.hpp"
  41 #if INCLUDE_ALL_GCS
  42 #include "gc_implementation/parNew/parOopClosures.inline.hpp"
  43 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
  44 #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
  45 #include "oops/oop.pcgc.inline.hpp"
  46 #endif // INCLUDE_ALL_GCS
  47 
  48 // Macro to define InstanceClassLoaderKlass::oop_oop_iterate for virtual/nonvirtual for
  49 // all closures.  Macros calling macros above for each oop size.
  50 // Since ClassLoader objects have only a pointer to the loader_data, they are not
  51 // compressed nor does the pointer move.
  52 
  53 #define InstanceClassLoaderKlass_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix)\
  54                                                                                 \
  55 int InstanceClassLoaderKlass::                                                  \
  56 oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure) {                  \
  57   /* Get size before changing pointers */                                       \
  58   SpecializationStats::record_iterate_call##nv_suffix(SpecializationStats::irk);\
  59   int size = InstanceKlass::oop_oop_iterate##nv_suffix(obj, closure);           \
  60                                                                                 \
  61   if_do_metadata_checked(closure, nv_suffix) {                                  \
  62     ClassLoaderData* cld = java_lang_ClassLoader::loader_data(obj);             \
  63     /* cld can be null if we have a non-registered class loader. */             \
  64     if (cld != NULL) {                                                          \




  24 
  25 #include "precompiled.hpp"
  26 #include "classfile/javaClasses.hpp"
  27 #include "classfile/systemDictionary.hpp"
  28 #include "gc_implementation/shared/markSweep.inline.hpp"
  29 #include "gc_interface/collectedHeap.inline.hpp"
  30 #include "memory/genOopClosures.inline.hpp"
  31 #include "memory/iterator.inline.hpp"
  32 #include "memory/oopFactory.hpp"
  33 #include "oops/instanceKlass.hpp"
  34 #include "oops/instanceClassLoaderKlass.hpp"
  35 #include "oops/instanceMirrorKlass.hpp"
  36 #include "oops/instanceOop.hpp"
  37 #include "oops/oop.inline.hpp"
  38 #include "oops/symbol.hpp"
  39 #include "runtime/handles.inline.hpp"
  40 #include "utilities/macros.hpp"
  41 #if INCLUDE_ALL_GCS
  42 #include "gc_implementation/parNew/parOopClosures.inline.hpp"
  43 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"

  44 #include "oops/oop.pcgc.inline.hpp"
  45 #endif // INCLUDE_ALL_GCS
  46 
  47 // Macro to define InstanceClassLoaderKlass::oop_oop_iterate for virtual/nonvirtual for
  48 // all closures.  Macros calling macros above for each oop size.
  49 // Since ClassLoader objects have only a pointer to the loader_data, they are not
  50 // compressed nor does the pointer move.
  51 
  52 #define InstanceClassLoaderKlass_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix)\
  53                                                                                 \
  54 int InstanceClassLoaderKlass::                                                  \
  55 oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure) {                  \
  56   /* Get size before changing pointers */                                       \
  57   SpecializationStats::record_iterate_call##nv_suffix(SpecializationStats::irk);\
  58   int size = InstanceKlass::oop_oop_iterate##nv_suffix(obj, closure);           \
  59                                                                                 \
  60   if_do_metadata_checked(closure, nv_suffix) {                                  \
  61     ClassLoaderData* cld = java_lang_ClassLoader::loader_data(obj);             \
  62     /* cld can be null if we have a non-registered class loader. */             \
  63     if (cld != NULL) {                                                          \


< prev index next >