Skip to content

Commit 636225b

Browse files
committedMar 25, 2022
8283607: Rename KlassID to KlassKind
Reviewed-by: dholmes, tschatzl
1 parent 6b59760 commit 636225b

14 files changed

+62
-60
lines changed
 

‎src/hotspot/share/memory/iterator.inline.hpp

+20-20
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ void Devirtualizer::do_cld(OopClosureType* closure, ClassLoaderData* cld) {
174174
// It allows for a single call to do a multi-dispatch to an optimized version
175175
// of oop_oop_iterate that statically know all these types:
176176
// - OopClosureType : static type give at call site
177-
// - Klass* : dynamic to static type through Klass::id() -> table index
177+
// - Klass* : dynamic to static type through Klass::kind() -> table index
178178
// - UseCompressedOops : dynamic to static value determined once
179179
//
180180
// when users call obj->oop_iterate(&cl).
@@ -190,7 +190,7 @@ void Devirtualizer::do_cld(OopClosureType* closure, ClassLoaderData* cld) {
190190
// used when calling do_oop.
191191
//
192192
// Klass* :
193-
// A table mapping from *Klass::ID to function is setup. This happens once
193+
// A table mapping from *Klass::Kind to function is setup. This happens once
194194
// when the program starts, when the static _table instance is initialized for
195195
// the OopOopIterateDispatch specialized with the OopClosureType.
196196
//
@@ -223,7 +223,7 @@ class OopOopIterateDispatch : public AllStatic {
223223

224224
template <typename KlassType>
225225
void set_init_function() {
226-
_function[KlassType::ID] = &init<KlassType>;
226+
_function[KlassType::Kind] = &init<KlassType>;
227227
}
228228

229229
template <typename KlassType>
@@ -232,20 +232,20 @@ class OopOopIterateDispatch : public AllStatic {
232232
// when functions pointers are updated.
233233
STATIC_ASSERT(sizeof(_function[0]) == sizeof(void*));
234234
if (UseCompressedOops) {
235-
_function[KlassType::ID] = &oop_oop_iterate<KlassType, narrowOop>;
235+
_function[KlassType::Kind] = &oop_oop_iterate<KlassType, narrowOop>;
236236
} else {
237-
_function[KlassType::ID] = &oop_oop_iterate<KlassType, oop>;
237+
_function[KlassType::Kind] = &oop_oop_iterate<KlassType, oop>;
238238
}
239239
}
240240

241241
template <typename KlassType>
242242
void set_resolve_function_and_execute(OopClosureType* cl, oop obj, Klass* k) {
243243
set_resolve_function<KlassType>();
244-
_function[KlassType::ID](cl, obj, k);
244+
_function[KlassType::Kind](cl, obj, k);
245245
}
246246

247247
public:
248-
FunctionType _function[KLASS_ID_COUNT];
248+
FunctionType _function[KLASS_KIND_COUNT];
249249

250250
Table(){
251251
set_init_function<InstanceKlass>();
@@ -261,7 +261,7 @@ class OopOopIterateDispatch : public AllStatic {
261261
public:
262262

263263
static FunctionType function(Klass* klass) {
264-
return _table._function[klass->id()];
264+
return _table._function[klass->kind()];
265265
}
266266
};
267267

@@ -288,26 +288,26 @@ class OopOopIterateBoundedDispatch {
288288

289289
template <typename KlassType>
290290
void set_init_function() {
291-
_function[KlassType::ID] = &init<KlassType>;
291+
_function[KlassType::Kind] = &init<KlassType>;
292292
}
293293

294294
template <typename KlassType>
295295
void set_resolve_function() {
296296
if (UseCompressedOops) {
297-
_function[KlassType::ID] = &oop_oop_iterate_bounded<KlassType, narrowOop>;
297+
_function[KlassType::Kind] = &oop_oop_iterate_bounded<KlassType, narrowOop>;
298298
} else {
299-
_function[KlassType::ID] = &oop_oop_iterate_bounded<KlassType, oop>;
299+
_function[KlassType::Kind] = &oop_oop_iterate_bounded<KlassType, oop>;
300300
}
301301
}
302302

303303
template <typename KlassType>
304304
void set_resolve_function_and_execute(OopClosureType* cl, oop obj, Klass* k, MemRegion mr) {
305305
set_resolve_function<KlassType>();
306-
_function[KlassType::ID](cl, obj, k, mr);
306+
_function[KlassType::Kind](cl, obj, k, mr);
307307
}
308308

309309
public:
310-
FunctionType _function[KLASS_ID_COUNT];
310+
FunctionType _function[KLASS_KIND_COUNT];
311311

312312
Table(){
313313
set_init_function<InstanceKlass>();
@@ -323,7 +323,7 @@ class OopOopIterateBoundedDispatch {
323323
public:
324324

325325
static FunctionType function(Klass* klass) {
326-
return _table._function[klass->id()];
326+
return _table._function[klass->kind()];
327327
}
328328
};
329329

@@ -350,26 +350,26 @@ class OopOopIterateBackwardsDispatch {
350350

351351
template <typename KlassType>
352352
void set_init_function() {
353-
_function[KlassType::ID] = &init<KlassType>;
353+
_function[KlassType::Kind] = &init<KlassType>;
354354
}
355355

356356
template <typename KlassType>
357357
void set_resolve_function() {
358358
if (UseCompressedOops) {
359-
_function[KlassType::ID] = &oop_oop_iterate_backwards<KlassType, narrowOop>;
359+
_function[KlassType::Kind] = &oop_oop_iterate_backwards<KlassType, narrowOop>;
360360
} else {
361-
_function[KlassType::ID] = &oop_oop_iterate_backwards<KlassType, oop>;
361+
_function[KlassType::Kind] = &oop_oop_iterate_backwards<KlassType, oop>;
362362
}
363363
}
364364

365365
template <typename KlassType>
366366
void set_resolve_function_and_execute(OopClosureType* cl, oop obj, Klass* k) {
367367
set_resolve_function<KlassType>();
368-
_function[KlassType::ID](cl, obj, k);
368+
_function[KlassType::Kind](cl, obj, k);
369369
}
370370

371371
public:
372-
FunctionType _function[KLASS_ID_COUNT];
372+
FunctionType _function[KLASS_KIND_COUNT];
373373

374374
Table(){
375375
set_init_function<InstanceKlass>();
@@ -385,7 +385,7 @@ class OopOopIterateBackwardsDispatch {
385385
public:
386386

387387
static FunctionType function(Klass* klass) {
388-
return _table._function[klass->id()];
388+
return _table._function[klass->kind()];
389389
}
390390
};
391391

‎src/hotspot/share/oops/arrayKlass.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ Method* ArrayKlass::uncached_lookup_method(const Symbol* name,
8383
return super()->uncached_lookup_method(name, signature, OverpassLookupMode::skip, private_mode);
8484
}
8585

86-
ArrayKlass::ArrayKlass(Symbol* name, KlassID id) :
87-
Klass(id),
86+
ArrayKlass::ArrayKlass(Symbol* name, KlassKind kind) :
87+
Klass(kind),
8888
_dimension(1),
8989
_higher_dimension(NULL),
9090
_lower_dimension(NULL) {

‎src/hotspot/share/oops/arrayKlass.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class ArrayKlass: public Klass {
4545
// Constructors
4646
// The constructor with the Symbol argument does the real array
4747
// initialization, the other is a dummy
48-
ArrayKlass(Symbol* name, KlassID id);
48+
ArrayKlass(Symbol* name, KlassKind kind);
4949
ArrayKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for cds"); }
5050

5151
public:

‎src/hotspot/share/oops/instanceClassLoaderKlass.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ class InstanceClassLoaderKlass: public InstanceKlass {
4040
friend class VMStructs;
4141
friend class InstanceKlass;
4242
public:
43-
static const KlassID ID = InstanceClassLoaderKlassID;
43+
static const KlassKind Kind = InstanceClassLoaderKlassKind;
4444

4545
private:
46-
InstanceClassLoaderKlass(const ClassFileParser& parser) : InstanceKlass(parser, ID) {}
46+
InstanceClassLoaderKlass(const ClassFileParser& parser) : InstanceKlass(parser, Kind) {}
4747

4848
public:
4949
InstanceClassLoaderKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }

‎src/hotspot/share/oops/instanceKlass.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -485,8 +485,8 @@ Array<int>* InstanceKlass::create_new_default_vtable_indices(int len, TRAPS) {
485485
return vtable_indices;
486486
}
487487

488-
InstanceKlass::InstanceKlass(const ClassFileParser& parser, KlassID id) :
489-
Klass(id),
488+
InstanceKlass::InstanceKlass(const ClassFileParser& parser, KlassKind kind) :
489+
Klass(kind),
490490
_nest_members(NULL),
491491
_nest_host(NULL),
492492
_permitted_subclasses(NULL),

‎src/hotspot/share/oops/instanceKlass.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,10 @@ class InstanceKlass: public Klass {
133133
friend class CompileReplay;
134134

135135
public:
136-
static const KlassID ID = InstanceKlassID;
136+
static const KlassKind Kind = InstanceKlassKind;
137137

138138
protected:
139-
InstanceKlass(const ClassFileParser& parser, KlassID id = ID);
139+
InstanceKlass(const ClassFileParser& parser, KlassKind kind = Kind);
140140

141141
public:
142142
InstanceKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }

‎src/hotspot/share/oops/instanceMirrorKlass.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ class InstanceMirrorKlass: public InstanceKlass {
4545
friend class InstanceKlass;
4646

4747
public:
48-
static const KlassID ID = InstanceMirrorKlassID;
48+
static const KlassKind Kind = InstanceMirrorKlassKind;
4949

5050
private:
5151
static int _offset_of_static_fields;
5252

53-
InstanceMirrorKlass(const ClassFileParser& parser) : InstanceKlass(parser, ID) {}
53+
InstanceMirrorKlass(const ClassFileParser& parser) : InstanceKlass(parser, Kind) {}
5454

5555
public:
5656
InstanceMirrorKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }

‎src/hotspot/share/oops/instanceRefKlass.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ class ClassFileParser;
5050
class InstanceRefKlass: public InstanceKlass {
5151
friend class InstanceKlass;
5252
public:
53-
static const KlassID ID = InstanceRefKlassID;
53+
static const KlassKind Kind = InstanceRefKlassKind;
5454

5555
private:
56-
InstanceRefKlass(const ClassFileParser& parser) : InstanceKlass(parser, ID) {}
56+
InstanceRefKlass(const ClassFileParser& parser) : InstanceKlass(parser, Kind) {}
5757

5858
public:
5959
InstanceRefKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); }

‎src/hotspot/share/oops/klass.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ void* Klass::operator new(size_t size, ClassLoaderData* loader_data, size_t word
201201
// which zeros out memory - calloc equivalent.
202202
// The constructor is also used from CppVtableCloner,
203203
// which doesn't zero out the memory before calling the constructor.
204-
Klass::Klass(KlassID id) : _id(id),
204+
Klass::Klass(KlassKind kind) : _kind(kind),
205205
_shared_class_path_index(-1) {
206206
CDS_ONLY(_shared_class_flags = 0;)
207207
CDS_JAVA_HEAP_ONLY(_archived_mirror_index = -1;)

‎src/hotspot/share/oops/klass.hpp

+24-22
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,17 @@
3737
#include "jfr/support/jfrTraceIdExtension.hpp"
3838
#endif
3939

40-
// Klass IDs for all subclasses of Klass
41-
enum KlassID {
42-
InstanceKlassID,
43-
InstanceRefKlassID,
44-
InstanceMirrorKlassID,
45-
InstanceClassLoaderKlassID,
46-
TypeArrayKlassID,
47-
ObjArrayKlassID
40+
// Klass Kinds for all subclasses of Klass
41+
enum KlassKind {
42+
InstanceKlassKind,
43+
InstanceRefKlassKind,
44+
InstanceMirrorKlassKind,
45+
InstanceClassLoaderKlassKind,
46+
TypeArrayKlassKind,
47+
ObjArrayKlassKind
4848
};
4949

50-
const uint KLASS_ID_COUNT = 6;
50+
const uint KLASS_KIND_COUNT = ObjArrayKlassKind + 1;
5151

5252
//
5353
// A Klass provides:
@@ -114,8 +114,10 @@ class Klass : public Metadata {
114114
// because it is frequently queried.
115115
jint _layout_helper;
116116

117-
// Klass identifier used to implement devirtualized oop closure dispatching.
118-
const KlassID _id;
117+
// Klass kind used to resolve the runtime type of the instance.
118+
// - Used to implement devirtualized oop closure dispatching.
119+
// - Various type checking in the JVM
120+
const KlassKind _kind;
119121

120122
// Processed access flags, for use by Class.getModifiers.
121123
jint _modifier_flags;
@@ -186,13 +188,13 @@ class Klass : public Metadata {
186188
protected:
187189

188190
// Constructor
189-
Klass(KlassID id);
190-
Klass() : _id(KlassID(-1)) { assert(DumpSharedSpaces || UseSharedSpaces, "only for cds"); }
191+
Klass(KlassKind kind);
192+
Klass() : _kind(KlassKind(-1)) { assert(DumpSharedSpaces || UseSharedSpaces, "only for cds"); }
191193

192194
void* operator new(size_t size, ClassLoaderData* loader_data, size_t word_size, TRAPS) throw();
193195

194196
public:
195-
int id() { return _id; }
197+
int kind() { return _kind; }
196198

197199
enum class DefaultsLookupMode { find, skip };
198200
enum class OverpassLookupMode { find, skip };
@@ -615,15 +617,15 @@ class Klass : public Metadata {
615617
public:
616618
#endif
617619

618-
bool is_instance_klass() const { return assert_same_query(_id <= InstanceClassLoaderKlassID, is_instance_klass_slow()); }
620+
bool is_instance_klass() const { return assert_same_query(_kind <= InstanceClassLoaderKlassKind, is_instance_klass_slow()); }
619621
// Other is anything that is not one of the more specialized kinds of InstanceKlass.
620-
bool is_other_instance_klass() const { return _id == InstanceKlassID; }
621-
bool is_reference_instance_klass() const { return _id == InstanceRefKlassID; }
622-
bool is_mirror_instance_klass() const { return _id == InstanceMirrorKlassID; }
623-
bool is_class_loader_instance_klass() const { return _id == InstanceClassLoaderKlassID; }
624-
bool is_array_klass() const { return assert_same_query( _id >= TypeArrayKlassID, is_array_klass_slow()); }
625-
bool is_objArray_klass() const { return assert_same_query( _id == ObjArrayKlassID, is_objArray_klass_slow()); }
626-
bool is_typeArray_klass() const { return assert_same_query( _id == TypeArrayKlassID, is_typeArray_klass_slow()); }
622+
bool is_other_instance_klass() const { return _kind == InstanceKlassKind; }
623+
bool is_reference_instance_klass() const { return _kind == InstanceRefKlassKind; }
624+
bool is_mirror_instance_klass() const { return _kind == InstanceMirrorKlassKind; }
625+
bool is_class_loader_instance_klass() const { return _kind == InstanceClassLoaderKlassKind; }
626+
bool is_array_klass() const { return assert_same_query( _kind >= TypeArrayKlassKind, is_array_klass_slow()); }
627+
bool is_objArray_klass() const { return assert_same_query( _kind == ObjArrayKlassKind, is_objArray_klass_slow()); }
628+
bool is_typeArray_klass() const { return assert_same_query( _kind == TypeArrayKlassKind, is_typeArray_klass_slow()); }
627629
#undef assert_same_query
628630

629631
// Access flags

‎src/hotspot/share/oops/objArrayKlass.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ ObjArrayKlass* ObjArrayKlass::allocate_objArray_klass(ClassLoaderData* loader_da
136136
return oak;
137137
}
138138

139-
ObjArrayKlass::ObjArrayKlass(int n, Klass* element_klass, Symbol* name) : ArrayKlass(name, ID) {
139+
ObjArrayKlass::ObjArrayKlass(int n, Klass* element_klass, Symbol* name) : ArrayKlass(name, Kind) {
140140
set_dimension(n);
141141
set_element_klass(element_klass);
142142

‎src/hotspot/share/oops/objArrayKlass.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class ObjArrayKlass : public ArrayKlass {
3737
friend class JVMCIVMStructs;
3838

3939
public:
40-
static const KlassID ID = ObjArrayKlassID;
40+
static const KlassKind Kind = ObjArrayKlassKind;
4141

4242
private:
4343
// If you add a new field that points to any metaspace object, you

‎src/hotspot/share/oops/typeArrayKlass.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ TypeArrayKlass* TypeArrayKlass::allocate(ClassLoaderData* loader_data, BasicType
7575
return new (loader_data, size, THREAD) TypeArrayKlass(type, name);
7676
}
7777

78-
TypeArrayKlass::TypeArrayKlass(BasicType type, Symbol* name) : ArrayKlass(name, ID) {
78+
TypeArrayKlass::TypeArrayKlass(BasicType type, Symbol* name) : ArrayKlass(name, Kind) {
7979
set_layout_helper(array_layout_helper(type));
8080
assert(is_array_klass(), "sanity");
8181
assert(is_typeArray_klass(), "sanity");

‎src/hotspot/share/oops/typeArrayKlass.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class TypeArrayKlass : public ArrayKlass {
3636
friend class VMStructs;
3737

3838
public:
39-
static const KlassID ID = TypeArrayKlassID;
39+
static const KlassKind Kind = TypeArrayKlassKind;
4040

4141
private:
4242
jint _max_length; // maximum number of elements allowed in an array

0 commit comments

Comments
 (0)
Please sign in to comment.