_(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.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4313
Goes atop MRs 409 and 436. The last three commits belong to this MR.
--
v3: vkd3d-shader/dxil: Implement the DXIL CMP2 instruction.
vkd3d-shader/spirv: Support orderedness inversion in comparison instructions.
vkd3d-shader/spirv: Support bool result in spirv_compiler_emit_comparison_instruction().
vkd3d-shader/dxil: Implement the DXIL CAST instruction.
vkd3d-shader/spirv: Support double in spirv_compiler_emit_ftou().
vkd3d-shader/spirv: Support double in spirv_compiler_emit_ftoi().
vkd3d-shader/spirv: Handle unsigned result in spirv_compiler_emit_ftoi().
vkd3d-shader/spirv: Introduce integer width cast instructions.
vkd3d-shader/spirv: Support bool cast in spirv_compiler_emit_alu_instruction().
vkd3d-shader/spirv: Support bool logic ops in spirv_compiler_emit_alu_instruction().
vkd3d-shader/spirv: Support bitcast in spirv_compiler_emit_load_ssa_reg().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/441