RFR: 8358339: Handle MethodCounters::_method backlinks after JDK-8355003

Coleen Phillimore coleenp at openjdk.org
Tue Jun 3 12:02:53 UTC 2025


On Mon, 2 Jun 2025 18:41:42 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> Found this when reading mainline-vs-premain webrev. [JDK-8355003](https://bugs.openjdk.org/browse/JDK-8355003) introduced a backlink to `Method*` in `MethodCounters`. I believe we need to handle that backlink at least in `CodeBuffer::finalize_oop_references()`. premain does this, while mainline does not. Also, amusingly, we have `MethodCounters::is_methodCounters`, but not the super-class `Metadata::is_methodCounters`. 
> 
> I pulled in the hunks that use `is_methodCounters()` and `MethodCounters::method()` from premain into this PR.
> 
> Additional testing:
>  - [x] Linux x86_64 server fastdebug, `runtime/cds`
>  - [x] Linux x86_64 server fastdebug, `tier1`
>  - [x] Linux x86_64 server fastdebug, `all`

I don't think this is the right thing to do, since the Method* is already handled in finalize_oop_references since it's a backpointer.

And MethodCounters shouldn't be inhertited from Metadata, they're inherited from MetaspaceObj in mainline.  We want to avoid virtual function pointers in this type.

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

PR Review: https://git.openjdk.org/jdk/pull/25599#pullrequestreview-2892022311
PR Review: https://git.openjdk.org/jdk/pull/25599#pullrequestreview-2892026544


More information about the hotspot-dev mailing list