On Windows it seems sending to port 0 does nothing and does not error.
Presently sendmsg errors with EINVAL.
This works around it, by checking if it's port 0 then skipping the data.
--
v16: ntdll: Do not send data to port 0.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2100
Without the changes, the test passes or fails based on the binutils version being used. v2.35 (used on the Debian 11 testbot) gives 64-bit DLLs an image base under 4GB, and the test always passes. On a system with binutils 2.37 or later, 64-bit DLLs are based above 4GBs, and the test will fail.
The map_view() change fixes native DLLs, and virtual_map_section() for
builtin DLLs. I wasn't sure how to test a native DLL.
This showed up under Wow64 when running the 64-bit Notepad++ installer
(a 32-bit EXE), which runs 32-bit regsvr32 to register a 64-bit DLL.
regsvr32 calls LoadLibraryExW() with LOAD_LIBRARY_AS_IMAGE_RESOURCE,
which was returning a truncated pointer to the DLLs base address.
Accessing this then crashed.
--
v2: ntdll: Respect zero_bits/limit when mapping a PE file.
ntdll/tests: Test NtMapViewOfSection with a 64-bit DLL and zero_bits > 31.
https://gitlab.winehq.org/wine/wine/-/merge_requests/269
On Windows it seems sending to port 0 does nothing and does not error.
Presently sendmsg errors with EINVAL.
This works around it, by checking if it's port 0 then skipping the data.
--
v17: ntdll: Do not send data to port 0.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2100
Multiple fork and join phases are eliminated. Signature elements are merged where required, and all input/output parameters are rewritten.
--
v3: vkd3d-shader/spirv: Move the function declaration from spirv_compiler_begin_shader_phase() to spirv_compiler_enter_shader_phase().
vkd3d-shader/spirv: Remove the hull shader phase array.
vkd3d-shader/spirv: Merge all shader IR fork and join phases into a single phase.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/84
This patch addresses an issue in Second Life and potentially other
multi-threaded applications which process WM_KEYDOWN in one thread
and then verify that the key is "still down" with GetAsyncKeyState
from another thread. Wine uses a per-thread key cache, resulting
in inconsistent views of key status. Caches are now invalidated
when an input event is injected by the driver or via SendInput.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2153
While running in XCode's profiler, I noticed memory leaks when safearrays were used in `For Each` statements.
The following code would leak a safearray allocation:
```
For Each obj In vpDict.Keys : Debug.Print "Key" : Next
```
This following code does not leak:
```
Dim x
x = vpDict.Keys
For Each obj In x : Debug.Print "Key" : Next
```
Fixes: https://bugs.winehq.org/show_bug.cgi?id=54456
--
v3: vbscript: Fix memory leak in owned safearray iterator
https://gitlab.winehq.org/wine/wine/-/merge_requests/2141
I ran into a script where someone placed a `:` on a new line after an `Else` but before another statement:
```
Else
: VelCoef = LinearEnvelope(BallPos, VelocityIn, VelocityOut)
if Enabled then aBall.Velx = aBall.Velx*VelCoef
if Enabled then aBall.Vely = aBall.Vely*VelCoef
end if
```
I confirmed that this is allowed and works.
I've updated the grammar, and replaced `NL` with `StSep_opt` as it seems to cover all the bases.
Fixes: https://bugs.winehq.org/show_bug.cgi?id=54234
--
v2: vbscript: fix compile when colon follows Else on new line
https://gitlab.winehq.org/wine/wine/-/merge_requests/2142