Integrated: 8371418: Methods in AdapterHandlerLibrary use HashtableBase iterate method incorrectly

Ashutosh Mehra asmehra at openjdk.org
Mon Nov 10 18:24:24 UTC 2025


On Fri, 7 Nov 2025 14:38:48 GMT, Ashutosh Mehra <asmehra at openjdk.org> wrote:

> The closure passed to `HashTable::iterate` in `AdapterHandlerLibrary::contains` and `AdapterHandlerLibrary::print_handler_on` is returning incorrect value. If the search is successful, it should return false to terminate the iteration, but it is returning true. This patch fixes the return value of these closures.
> In addition, I noticed `CompactHashTable::iterate` goes through all entries unconditionally, which is not optimal for cases where we may want to terminate the iteration when some condition is met. This is the case in `AdapterHandlerLibrary::contains` and `AdapterHandlerLibrary::print_handler_on` when it iterates over `_aot_adapter_handler_table`. This patch updates `CompactHashTable::iterate` to be the same as `HashTAble::iterate` by using return value of the closure to determine if the iteration should continue or abort. It also adds `CompactHashTable::iterate_all` to iterate all the values unconditionally and the users of `CompactHashTable::iterate` are updated to use `CompactHashTable::iterate_all`.

This pull request has now been integrated.

Changeset: cc54d2c0
Author:    Ashutosh Mehra <asmehra at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/cc54d2c06b0e1f799c771d747cfb4059a8774e28
Stats:     75 lines in 7 files changed: 38 ins; 10 del; 27 mod

8371418: Methods in AdapterHandlerLibrary use HashtableBase iterate method incorrectly

Reviewed-by: kvn, adinn

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

PR: https://git.openjdk.org/jdk/pull/28197


More information about the hotspot-dev mailing list