On Thu Jul 13 19:42:16 2023 +0000, Jinoh Kang wrote:
> This leads to a regression: NtContinue() can no longer properly restore
> X16 and X17, since they are now clobbered by `__wine_syscall_dispatcher_return`.
> The proper fix is at
> https://www.winehq.org/mailman3/hyperkitty/list/wine-devel@winehq.org/threa…,
> which is a superset of this patchset.
> I don't have an ARM64 build machine at the moment; can you rebase it and
> see if it works?
> Many thanks for your work!
Can verify that your patch works for me, apologies for missing this in my original MR
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3315#note_38932
This fixes SetWindowLongPtr on WoW64. On 32-bit, we have
```
#define SetWindowLongPtrA SetWindowLongA
#define SetWindowLongPtrW SetWindowLongW
```
meaning that on WoW64, all pointers passed would be padded with `0xffffffff` (because they are treated as LONG), and this is the cause of many of the failing WoW64 tests. This fixes that behavior. I'm not sure if this is the right place to fix it though.
--
v6: wow64win: Always use NtUserSetWindowLongPtr() for GWLP_HINSTANCE and GWLP_WNDPROC.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3294
On Thu Jul 13 18:07:29 2023 +0000, Gabriel Ivăncescu wrote:
> There's no need for a cast though. `ARRAY_SIZE` is already `size_t`
> (because it's implemented with `sizeof`), and a comparison between a
> signed integer and an unsigned integer with at least as many bits is
> always promoted to unsigned.
That is true. This thread can be dismissed then.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3301#note_38929
On Thu Jul 13 16:37:28 2023 +0000, Jeffrey Smith wrote:
> Compilers can (and at least some do) treat an enumeration as a _signed_
> integer. For the comparison to work as desired you'll want to cast
> `InformationClass` to an unsigned type. I think `size_t` would be appropriate.
There's no need for a cast though. `ARRAY_SIZE` is already `size_t` (because it's implemented with `sizeof`), and a comparison between a signed integer and an unsigned integer with at least as many bits is always promoted to unsigned.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3301#note_38928