hotspot/src/share/vm/oops/instanceClassLoaderKlass.hpp
changeset 13738 d67be49a5beb
parent 13728 882756847a04
child 15482 470d0b0c09f1
equal deleted inserted replaced
13737:aa8c9eb6d900 13738:d67be49a5beb
    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 
    29 
    30 // An instanceClassLoaderKlass is a specialization of the InstanceKlass. It does
    30 // 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
    31 // 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
    32 // 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
    33 // walked and dependant class loaders are kept alive.  I thought we walked
    34 // the list later?
    34 // the list later?
    35 
    35 
    36 class instanceClassLoaderKlass: public InstanceKlass {
    36 class InstanceClassLoaderKlass: public InstanceKlass {
    37   friend class VMStructs;
    37   friend class VMStructs;
    38   friend class InstanceKlass;
    38   friend class InstanceKlass;
    39 
    39 
    40   // Constructor
    40   // Constructor
    41   instanceClassLoaderKlass(int vtable_len, int itable_len, int static_field_size, int nonstatic_oop_map_size, ReferenceType rt, AccessFlags access_flags, bool is_anonymous)
    41   InstanceClassLoaderKlass(int vtable_len, int itable_len, int static_field_size, int nonstatic_oop_map_size, ReferenceType rt, AccessFlags access_flags, bool is_anonymous)
    42     : InstanceKlass(vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, access_flags, is_anonymous) {}
    42     : InstanceKlass(vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, access_flags, is_anonymous) {}
    43 
    43 
    44 public:
    44 public:
    45   virtual bool oop_is_instanceClassLoader() const { return true; }
    45   virtual bool oop_is_instanceClassLoader() const { return true; }
    46 
    46 
    47   instanceClassLoaderKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }
    47   InstanceClassLoaderKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }
    48 
    48 
    49   // Iterators
    49   // Iterators
    50   int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) {
    50   int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) {
    51     return oop_oop_iterate_v(obj, blk);
    51     return oop_oop_iterate_v(obj, blk);
    52   }
    52   }