_(w)environ[] do have a distinct allocation chunk for each entry, so
that _(w)environ[i] pointer and (pointed) string don't change when
updating/deleting any other entry.
Proposed implementation still differs from native:
- allocation is done on process heap, while native uses msvcrt's heap
- first ANSI allocated _environ[] doesn't have per entry allocation.
This is only activated after a change (update/deletion) to _environ[]
is made.
--
v4: msvcrt: Fix getmainargs() family to return correct environment block.
msvcrt: Use msvcrt heap for allocating envionment data.
msvcrt: Test adding UNICODE env variables.
msvcrt/tests: Add tests about intricating kernel32 and msvcrt env calls.
msvcrt/tests: Add tests about allocation of environment entries.
msvcrt: Improve environment tests (initial conditions).
https://gitlab.winehq.org/wine/wine/-/merge_requests/4313
There are applications that uses SRWLOCK in an invalid way and then checks its binary
representation. ~~Specifically they releases an unlocked SRWLOCK then check its bit pattern is
all-ones.~~
Tweak the representation a bit so they are happy.
--
v15: ntdll: Tweak the binary representation of SRWLOCK.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4310
--
v2: vkd3d-shader/ir: Validate index count for IMMCONST64 registers.
vkd3d-shader/ir: Validate index count for IMMCONST registers.
vkd3d-shader/ir: Validate index count for NULL registers.
vkd3d-shader/ir: Validate register indices.
vkd3d-shader/ir: Use vsir_register_init() to initialize a register.
vkd3d-shader/ir: Validate the TEMP register indices in each HS phase.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/462