_(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.
--
v3: msvcrt: Let each _environ[] entry have a distinct allocation block.
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
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v5: vkd3d-shader: Add constant folding for 'floor'.
vkd3d-shader: Add a missing entry to instruction debug print helper.
vkd3d-shader: Add constant folding for 'ceil'.
vkd3d-shader: Add support for floor() on SM1-3.
vkd3d-shader: Add support for ceil() on SM1-3.
vkd3d-shader/tpf: Add support for ceil().
vkd3d-shader/hlsl: Parse ceil() function.
tests: Add some tests for ceil().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/417