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
|