src/share/vm/oops/instanceClassLoaderKlass.hpp

Print this page
rev 6796 : [mq]: templateOopIterate

*** 37,75 **** class InstanceClassLoaderKlass: public InstanceKlass { friend class VMStructs; friend class InstanceKlass; // Constructor ! 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) {} public: virtual bool oop_is_instanceClassLoader() const { return true; } InstanceClassLoaderKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); } ! // Iterators ! int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) { ! return oop_oop_iterate_v(obj, blk); ! } ! int oop_oop_iterate_m(oop obj, ExtendedOopClosure* blk, MemRegion mr) { ! return oop_oop_iterate_v_m(obj, blk, mr); } ! #define InstanceClassLoaderKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \ ! int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk); \ ! int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, MemRegion mr); ! ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DECL) ! ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceClassLoaderKlass_OOP_OOP_ITERATE_DECL) #if INCLUDE_ALL_GCS ! #define InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DECL(OopClosureType, nv_suffix) \ ! int oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* blk); ! ! ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) ! ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceClassLoaderKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) #endif // INCLUDE_ALL_GCS // Garbage collection void oop_follow_contents(oop obj); --- 37,68 ---- class InstanceClassLoaderKlass: public InstanceKlass { friend class VMStructs; friend class InstanceKlass; // Constructor ! InstanceClassLoaderKlass(int vtable_len, int itable_len, int static_field_size, int nonstatic_oop_map_size, ReferenceType rt, AccessFlags access_flags, bool is_anonymous); public: virtual bool oop_is_instanceClassLoader() const { return true; } InstanceClassLoaderKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); } ! static InstanceClassLoaderKlass* cast(Klass* k) { ! assert(k->is_klass(), "must be"); ! assert(k->oop_is_instanceClassLoader(), "cast to instanceClassLoaderKlass"); ! return (InstanceClassLoaderKlass*) k; } ! template <bool nv, typename OopClosureType> ! int oop_oop_iterate(oop obj, OopClosureType* blk); ! template <bool nv, typename OopClosureType> ! int oop_oop_iterate_m(oop obj, OopClosureType* blk, MemRegion mr); #if INCLUDE_ALL_GCS ! template <bool nv, typename OopClosureType> ! int oop_oop_iterate_backwards(oop obj, OopClosureType* blk); #endif // INCLUDE_ALL_GCS // Garbage collection void oop_follow_contents(oop obj);