On Tue, 2 Sep 2025 11:43:22 GMT, Coleen Phillimore <cole...@openjdk.org> wrote:

>> I think the term is "hides" not "shadows".  InstanceKlass::cast() is better 
>> - one additional check that super is always another InstanceKlass.
>
> Do we still need java_super ?

There are a few places that use it. Maybe we should look at these again in the 
future.


compiler dependencies:

./share/code/dependencies.cpp:      for (InstanceKlass* super = 
k->java_super(); super != nullptr; super = super->java_super()) {
./share/code/dependencies.cpp:      _klass = _klass->java_super();

subklass and sibling:

./share/oops/instanceKlass.cpp:    _current = _current->java_super(); // 
backtrack; no more sibling subclasses left
./share/oops/klass.cpp:  InstanceKlass* super = java_super();
./share/oops/klass.cpp:          && (super->java_super() == nullptr || 
!is_interface())),

Some general cases where you have a Klass but wants same super as in 
java.lang.Class::getSuperClass

./share/oops/klassVtable.cpp:  InstanceKlass* super = _klass->java_super();
./share/prims/jni.cpp:  // Rules of Class.getSuperClass as implemented by 
KLass::java_super:
./share/prims/jni.cpp:  Klass* super = k->java_super();
./share/prims/jni.cpp:         "java_super computation depends on interface, 
array, other super");
./share/services/heapDumper.cpp:  InstanceKlass* java_super = k->java_super();
./share/services/heapDumper.cpp:  assert(java_super != nullptr, "checking");
./share/services/heapDumper.cpp:  writer->write_classID(java_super);

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27037#discussion_r2317159260

Reply via email to