< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page




 171   // associate this class with the JAR file where it's loaded from during
 172   // dump time. If a class is not loaded from the shared archive, this field is
 173   // -1.
 174   jshort _shared_class_path_index;
 175 
 176 #if INCLUDE_CDS
 177   // Flags of the current shared class.
 178   u2     _shared_class_flags;
 179   enum {
 180     _has_raw_archived_mirror = 1
 181   };
 182 #endif
 183   // The _archived_mirror is set at CDS dump time pointing to the cached mirror
 184   // in the open archive heap region when archiving java object is supported.
 185   CDS_JAVA_HEAP_ONLY(narrowOop _archived_mirror;)
 186 
 187 protected:
 188 
 189   // Constructor
 190   Klass(KlassID id);
 191   Klass() : _id(KlassID(-1)), _prototype_header(0) { assert(DumpSharedSpaces || UseSharedSpaces, "only for cds"); }
 192 
 193   void* operator new(size_t size, ClassLoaderData* loader_data, size_t word_size, TRAPS) throw();
 194 
 195  public:
 196   int id() { return _id; }
 197 
 198   enum DefaultsLookupMode { find_defaults, skip_defaults };
 199   enum OverpassLookupMode { find_overpass, skip_overpass };
 200   enum StaticLookupMode   { find_static,   skip_static };
 201   enum PrivateLookupMode  { find_private,  skip_private };
 202 
 203   bool is_klass() const volatile { return true; }
 204 
 205   // super() cannot be InstanceKlass* -- Java arrays are covariant, and _super is used
 206   // to implement that. NB: the _super of "[Ljava/lang/Integer;" is "[Ljava/lang/Number;"
 207   // If this is not what your code expects, you're probably looking for Klass::java_super().
 208   Klass* super() const               { return _super; }
 209   void set_super(Klass* k)           { _super = k; }
 210 
 211   // initializes _super link, _primary_supers & _secondary_supers arrays




 171   // associate this class with the JAR file where it's loaded from during
 172   // dump time. If a class is not loaded from the shared archive, this field is
 173   // -1.
 174   jshort _shared_class_path_index;
 175 
 176 #if INCLUDE_CDS
 177   // Flags of the current shared class.
 178   u2     _shared_class_flags;
 179   enum {
 180     _has_raw_archived_mirror = 1
 181   };
 182 #endif
 183   // The _archived_mirror is set at CDS dump time pointing to the cached mirror
 184   // in the open archive heap region when archiving java object is supported.
 185   CDS_JAVA_HEAP_ONLY(narrowOop _archived_mirror;)
 186 
 187 protected:
 188 
 189   // Constructor
 190   Klass(KlassID id);
 191   Klass() : _id(KlassID(-1)) { assert(DumpSharedSpaces || UseSharedSpaces, "only for cds"); }
 192 
 193   void* operator new(size_t size, ClassLoaderData* loader_data, size_t word_size, TRAPS) throw();
 194 
 195  public:
 196   int id() { return _id; }
 197 
 198   enum DefaultsLookupMode { find_defaults, skip_defaults };
 199   enum OverpassLookupMode { find_overpass, skip_overpass };
 200   enum StaticLookupMode   { find_static,   skip_static };
 201   enum PrivateLookupMode  { find_private,  skip_private };
 202 
 203   bool is_klass() const volatile { return true; }
 204 
 205   // super() cannot be InstanceKlass* -- Java arrays are covariant, and _super is used
 206   // to implement that. NB: the _super of "[Ljava/lang/Integer;" is "[Ljava/lang/Number;"
 207   // If this is not what your code expects, you're probably looking for Klass::java_super().
 208   Klass* super() const               { return _super; }
 209   void set_super(Klass* k)           { _super = k; }
 210 
 211   // initializes _super link, _primary_supers & _secondary_supers arrays


< prev index next >