Integrated: 8336468: Reflection and MethodHandles should use more precise initializer checks
Aleksey Shipilev
shade at openjdk.org
Thu Sep 26 15:16:41 UTC 2024
On Tue, 16 Jul 2024 11:28:22 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> This PR should cover the Reflection/MethodHandles part of [JDK-8336103](https://bugs.openjdk.org/browse/JDK-8336103).
>
> There are places where we change the behavior: `clinit` would now be recorded as "method", instead of "constructor". Tracing back the uses of `get_flags`: it is used for initializing `java.lang.ClassFrameInfo.flags`. There seem to be no readers for this field in VM. Java side for `j.l.CFI` does not seem to check any method/constructor flags. So I would say this change in behavior is not really visible, and there is no need to try and keep the old (odd) behavior.
>
> I also inlined the `select_method` definition, which allows for a bit more straight-forward local code, and obviates the need for wrapping things with `methodHandle`.
>
> @mlchung, you probably want to look at this more closely.
>
> Additional testing:
> - [x] Linux x86_64 server fastdebug, `tier1`
> - [x] Linux x86_64 server fastdebug, `all`
This pull request has now been integrated.
Changeset: 376056ca
Author: Aleksey Shipilev <shade at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/376056ca48fb5dbe3d57cea01a9fbf2ea4c35616
Stats: 40 lines in 5 files changed: 15 ins; 10 del; 15 mod
8336468: Reflection and MethodHandles should use more precise initializer checks
Reviewed-by: liach, coleenp
-------------
PR: https://git.openjdk.org/jdk/pull/20192
More information about the hotspot-dev
mailing list