RFR: 8266017: Refactor the *klass::array_klass_impl code to separate the non-exception-throwing API
Coleen Phillimore
coleenp at openjdk.java.net
Tue Apr 27 13:18:35 UTC 2021
On Tue, 27 Apr 2021 04:47:32 GMT, David Holmes <dholmes at openjdk.org> wrote:
> We currently have array_klass() and array_klass_or_null(), where the former can throw exceptions and the latter can not. But they both delegate to:
>
> array_klass_impl(bool or_null, TRAPS)
>
> which combines both the exception-throwing and non-exception-throwing code into one method declared with TRAPS. To make progress with the change of TRAPS to JavaThread (JDK-8252685) we need to separate these code paths into distinct methods.
>
> Testing: tiers 1-3 (in progress)
>
> Thanks,
> David
This is a nice cleanup. I wish we'd done this years ago!
src/hotspot/share/oops/klass.hpp line 525:
> 523: virtual Klass* array_klass_impl(TRAPS);
> 524: virtual Klass* array_klass_or_null_impl(int rank);
> 525: virtual Klass* array_klass_or_null_impl();
I think you should make these pure virtual functions (=0) and remove the bodies in klass.cpp.
-------------
Marked as reviewed by coleenp (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/3711
More information about the hotspot-runtime-dev
mailing list