On Mon, 24 Jun 2024 20:43:00 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

>> In [JDK-8302671](https://bugs.openjdk.org/browse/JDK-8302671) I fixed a 
>> memmove decay bug by rewriting a sizeof on an array to an explicit size of 
>> 256, but this is a bit of a band aid fix. It's come to my attention that in 
>> C++, one can pass an array by reference, which causes sizeof to work 
>> correctly on an array and has the added bonus of enforcing an array of that 
>> size on the arguments passed to that method. I've reverted my change from 
>> 8302671 and instead explicitly made kstate an array reference so that sizeof 
>> works on the array as expected, and that the array size can be explicitly 
>> set in the array brackets
>> 
>> Verification: https://godbolt.org/z/Ezj76eWWY and GitHub Actions
>
> src/java.desktop/windows/native/libawt/windows/awt_Component.cpp line 3368:
> 
>> 3366:     BYTE tmpState[256];
>> 3367:     WCHAR wc[2];
>> 3368:     memmove(tmpState, kstate, sizeof(kstate));
> 
> Using `memcpy` could be more performant, we know for sure that `tmpState` and 
> `kstate` do not overlap.

I can't quite comment on that since I don't really know what the purpose of the 
memmove is. What does @prrace think?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19798#discussion_r1664191137

Reply via email to