RFR: 8268406: Deallocate jmethodID native memory [v2]

Serguei Spitsyn sspitsyn at openjdk.org
Tue Jun 17 23:40:32 UTC 2025


On Tue, 17 Jun 2025 13:56:41 GMT, Axel Boldt-Christmas <aboldtch at openjdk.org> wrote:

>> If we remove a jmethodID, we need to keep the number for it in case some JVMTI code still thinks that number is valid.  So we can't decrement the entry count.
>
> That is not was I was trying to propose. What I tried to describe was this:
> 
> ```c++
> // The value of the next jmethodID. This only increments (always unique IDs)
> static uint64_t _jmethodID_counter = 0; 
> // Tracks the number of jmethodID entries in the _jmethod_id_table. 
> // Incremented on insert, decremented on remove. Use to track if we need to resize the table.
> static uint64_t _jmethodID_entry_count = 0;
> 
> 
> The problem with using `_jmethodID_counter` as a proxy for how many entries there are in the table is that it will diverge over time as we keep calling remove due to class unloading.
> 
> Using a separate variable lets us resize based on what is actual in the table.

Interesting suggestion to consider. I'm not sure yet if it is really important.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25267#discussion_r2153327605


More information about the hotspot-dev mailing list