< prev index next >
src/hotspot/share/oops/instanceClassLoaderKlass.hpp
Print this page
*** 23,33 ****
*/
#ifndef SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP
#define SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP
- #include "gc/shared/specialized_oop_closures.hpp"
#include "oops/instanceKlass.hpp"
#include "utilities/macros.hpp"
class ClassFileParser;
--- 23,32 ----
*** 38,49 ****
// the list later?
class InstanceClassLoaderKlass: public InstanceKlass {
friend class VMStructs;
friend class InstanceKlass;
! private:
! InstanceClassLoaderKlass(const ClassFileParser& parser) : InstanceKlass(parser, InstanceKlass::_misc_kind_class_loader) {}
public:
InstanceClassLoaderKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }
// GC specific object visitors
--- 37,51 ----
// the list later?
class InstanceClassLoaderKlass: public InstanceKlass {
friend class VMStructs;
friend class InstanceKlass;
! public:
! static const int ID = InstanceClassLoaderKlassID;
!
! private:
! InstanceClassLoaderKlass(const ClassFileParser& parser) : InstanceKlass(parser, InstanceKlass::_misc_kind_class_loader, ID) {}
public:
InstanceClassLoaderKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }
// GC specific object visitors
*** 55,95 ****
void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);
#endif
// Oop fields (and metadata) iterators
- // [nv = true] Use non-virtual calls to do_oop_nv.
- // [nv = false] Use virtual calls to do_oop.
//
// The InstanceClassLoaderKlass iterators also visit the CLD pointer (or mirror of anonymous klasses.)
! private:
// Forward iteration
// Iterate over the oop fields and metadata.
! template <bool nv, class OopClosureType>
inline void oop_oop_iterate(oop obj, OopClosureType* closure);
- #if INCLUDE_OOP_OOP_ITERATE_BACKWARDS
// Reverse iteration
// Iterate over the oop fields and metadata.
! template <bool nv, class OopClosureType>
inline void oop_oop_iterate_reverse(oop obj, OopClosureType* closure);
- #endif
// Bounded range iteration
// Iterate over the oop fields and metadata.
! template <bool nv, class OopClosureType>
inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
-
- public:
-
- ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL)
- ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL)
-
- #if INCLUDE_OOP_OOP_ITERATE_BACKWARDS
- ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL_BACKWARDS)
- ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL_BACKWARDS)
- #endif
-
};
#endif // SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP
--- 57,82 ----
void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);
#endif
// Oop fields (and metadata) iterators
//
// The InstanceClassLoaderKlass iterators also visit the CLD pointer (or mirror of anonymous klasses.)
! public:
// Forward iteration
// Iterate over the oop fields and metadata.
! template <typename T, class OopClosureType>
inline void oop_oop_iterate(oop obj, OopClosureType* closure);
// Reverse iteration
// Iterate over the oop fields and metadata.
! template <typename T, class OopClosureType>
inline void oop_oop_iterate_reverse(oop obj, OopClosureType* closure);
// Bounded range iteration
// Iterate over the oop fields and metadata.
! template <typename T, class OopClosureType>
inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
};
#endif // SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP
< prev index next >