On Thu, 28 Sep 2023 02:04:12 GMT, David Holmes <[email protected]> wrote:
>> This change came after fixing a merge conflict.
>> In `mutableNUMASpace.cpp`, at lines 163, 182, 202 and 586 the `find`
>> function is called in this way:
>>
>> int i = lgrp_spaces()->find(&lgrp_id, LGRPSpace::equals);
>>
>> where `lgrp_id` is `int`. Therefore, the `LGRPSpace::equals` has to take an
>> `int*` in its first argument. The definition of `find` is:
>>
>> int find(T* token, bool f(T*, const E&)) const {
>
> After JDK-8316115 `lgrp_id` is `uint`.
Even after the JDK-8316115, the local `lgrp_id` is defined as `int` and
compared with `-1` in a few lines before calling the `find`. The local `int`
definition is kept as it is, but the pointer to it is casted to `uint*`.
Maybe @albertnetymk has to double check if this is not overlooked in
JDK-8316115 fix, since the line `int lgrp_id = thr->lgrp_id();` (dates back to
15 years ago) is casting now from `uint` to `int` and comparing with `-1`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15418#discussion_r1339860082