RFR: 8336468: Reflection and MethodHandles should use more precise initializer checks [v3]
    Aleksey Shipilev 
    shade at openjdk.org
       
    Mon Aug 19 09:34:27 UTC 2024
    
    
  
> 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`
Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
 - Whitespace and comments
 - Merge branch 'master' into JDK-8336468-reflection-init-checks
 - Merge branch 'master' into JDK-8336468-reflection-init-checks
 - Remove unnecessary handle-izing
 - Fix
 - Fix
-------------
Changes:
  - all: https://git.openjdk.org/jdk/pull/20192/files
  - new: https://git.openjdk.org/jdk/pull/20192/files/6e35634b..969cbb9e
Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=20192&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20192&range=01-02
  Stats: 47349 lines in 1374 files changed: 26449 ins; 14376 del; 6524 mod
  Patch: https://git.openjdk.org/jdk/pull/20192.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20192/head:pull/20192
PR: https://git.openjdk.org/jdk/pull/20192
    
    
More information about the hotspot-dev
mailing list