RFR: 8314114: Fix -Wconversion warnings in os code, primarily linux [v3]
Thomas Stuefe
stuefe at openjdk.org
Fri Aug 11 18:07:28 UTC 2023
On Fri, 11 Aug 2023 16:22:20 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> src/hotspot/os/posix/signals_posix.cpp line 1432:
>>
>>> 1430: // are not chained (e.g. if chaining is off), print that one too.
>>> 1431: void PosixSignals::print_signal_handler(outputStream* st, int sig,
>>> 1432: char* buf, int buflen) {
>>
>> This feels weird and wrong to me. Why change what are clearly memory sizes from size_t to a signed int? These are fed from both literals (OBUFLEN) and from sizeof(buf).
>
> Yes, both literals are easily represented as an int, since the buffer we give to error reporting is never 30k long.
Sorry, I don't like this, nor do I understand what this solves.
`size_t` is, by a deeply ingrained convention, used for memory sizes. It signals that intent clearly to the casual reader of the function declaration. `int` as size for an output buffer is away from conventions and just reads odd. Now this change perforates through all callers up to vmError and other call sites and just makes them all slightly worse, and it is pretty invasive (wrt merging changes to downports).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15229#discussion_r1291630801
More information about the hotspot-dev
mailing list