Make functions ntlea needs to patch hotpatchable. And add a asm wrapper for `GetWindowLongA` to workaround an assumption ntlea made.
--
v6: user32: add hotpatchable wrapper for GetWindowLongA
https://gitlab.winehq.org/wine/wine/-/merge_requests/3855
Make functions ntlea needs to patch hotpatchable. And add a asm wrapper for `GetWindowLongA` to workaround an assumption ntlea made.
--
v5: user32: add hotpatchable wrapper for GetWindowLongA
https://gitlab.winehq.org/wine/wine/-/merge_requests/3855
`getpeername()` is currently handled in ntdll. This merge request changes ntdll to forward `getpeername()` to wineserver. The implementation utilises new `peer_addr` and `peer_addr_len` fields in wineserver's `struct sock`.
This fixes multiple `todo_wine`s in `ws2_32/tests` and allows for more accurate peer names to be provided in case the address the socket is bound to on the Unix side does not match what `bind()` was called with on the Windows side.
*This merge request was originally intended to be included in !2786 (Add support for AF_UNIX sockets) but was split into its own merge request because this is not an insignificant change.*
--
v27: server: Move getpeername() implementation from ntdll/unix.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3074
--
v5: gdiplus/tests: add tests of InterpolationMode Bilinear for GdipDrawImagePointsRect
gdiplus: implement PixelOffsetMode Half and HighQuality for GdipDrawImagePointsRect
https://gitlab.winehq.org/wine/wine/-/merge_requests/3877
This patch-set adds the definitions and struct modifications required to eventually implement `FileRenameInformationEx` and `FileLinkInformationEx`.
The initial tests are copies of the tests for `FileRenameInformation` and `FileLinkInformation`, but with the `ReplaceIfExists` field replaced with the equivalient `Flag` value: `FILE_RENAME_REPLACE_IF_EXISTS` or `FILE_LINK_REPLACE_IF_EXISTS` respectively.
--
v3: ntdll/tests: Test both FileLinkInformation and FileLinkInformationEx in test_file_link_information.
include: Add flags to FILE_LINK_INFORMATION used by FileLinkInformationEx.
ntdll/tests: Test both FileRenameInformation and FileRenameInformationEx in test_file_rename_information.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3836
On Mon Sep 18 17:52:49 2023 +0000, Zebediah Figura wrote:
> Why are we adding one here? That doesn't look right.
I think I see what the intent is, but it is unnecessarily 'clever'. It would be clearer to use something like a `BOOL modified`, and ultimately `return modified ? NORMALIZE_RESULT_SUCCESS_MODIFIED : NORMALIZE_RESULT_SUCCESS;`
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_45774
Make functions ntlea needs to patch hotpatchable. And add a asm wrapper for `GetWindowLongA` to workaround an assumption ntlea made.
--
v3: user32: add hotpatchable wrapper for GetWindowLongA
https://gitlab.winehq.org/wine/wine/-/merge_requests/3855
Zebediah Figura (@zfigura) commented about dlls/mspatcha/pa19.c:
> + }
> +
> + nt_headers->OptionalHeader.ImageBase = (DWORD)new_image_base;
> + result = TRUE;
> +
> + reloc_dir_remaining = (LONG)reloc_dir_size;
> + while (reloc_dir_remaining > 0) {
> +
> + if (reloc_block->SizeOfBlock <= (ULONG)reloc_dir_remaining
> + && reloc_block->SizeOfBlock > sizeof(IMAGE_BASE_RELOCATION))
> + {
> + reloc_block_base = (IMAGE_BASE_RELOCATION UNALIGNED *)(mapped_image_base +
> + image_rva_to_file_offset(nt_headers, reloc_block->VirtualAddress, mapped_image_base, mapped_image_size));
> + if (reloc_block_base)
> + {
> + reloc = (USHORT UNALIGNED *)((PUCHAR)reloc_block + sizeof(IMAGE_BASE_RELOCATION));
I don't think we want UNALIGNED, not least because it doesn't do anything on non-MSVC compilers. If any of these actually can be unaligned (can they?) then I think we should just use memcpy.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_45759
I'm aware that winecfg allows unlinking of symlinked folders, but this is very annoying when regularly recreating WINEPREFIXES. This change makes it easy to isolate those folders from the start.
--
v4: ntdll: Add environment variable to prevent symlinking dosdevices/z:
shell32: Add environment variable to prevent symlinking home folders
https://gitlab.winehq.org/wine/wine/-/merge_requests/3259
This is mostly just no-ops moving stuff around except for last patch, so they're in a consistent ordering for when we'll replace them to dispex vtbl methods, keeping those patches smaller and more obvious what they change.
Next MR will convert query_interface (and maybe destructor, QI will need a bit more prep work first).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3881
--
v3: dmime: Pass the DMUS_PMSG through the performance graph.
dmime: Rename DMUS_PMSGToItem to message_from_DMUS_PMSG.
dmime: Remove unnecessary struct message members.
dmime: Use a struct list to keep performance messages.
dmime: Get rid of the DMUS_PMSGItem typedef.
dmime: Convert DMUS_PMSG music and reference times in SendPMsg.
dmime/tests: Test that SendPMsg also converts reference time.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3851
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
--
v3: Add vscode workspace setup
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This patch-set adds the definitions and struct modifications required to eventually implement `FileRenameInformationEx` and `FileLinkInformationEx`.
The initial tests are copies of the tests for `FileRenameInformation` and `FileLinkInformation`, but with the `ReplaceIfExists` field replaced with the equivalient `Flag` value: `FILE_RENAME_REPLACE_IF_EXISTS` or `FILE_LINK_REPLACE_IF_EXISTS` respectively.
--
v2: ntdll/tests: Test both FileLinkInformation and FileLinkInformationEx in test_file_link_information.
include: Add flags to FILE_LINK_INFORMATION used by FileLinkInformationEx.
ntdll/tests: Test both FileRenameInformation and FileRenameInformationEx in test_file_rename_information.
include: Add flags to FILE_RENAME_INFORMATION used by FileRenameInformationEx.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3836
--
v3: gdiplus/tests: add tests of InterpolationMode Bilinear for GdipDrawImagePointsRect
gdiplus: implement PixelOffsetMode Half and HighQuality for GdipDrawImagePointsRect
https://gitlab.winehq.org/wine/wine/-/merge_requests/3877
Force as to emit expected CIE/FDE information for x86_64 CPU
in .debug_frame section.
This has been unveiled by 425bd55b02e375b9ac8f79b254ce3ca5c9e72719
(before this commit, the .cfi directives where not emitted by
winebuild).
x86_64-w64-mingw32-as on x86_64 emits "strange" unwinding
information (from winebuild).
00000000 0000000000000014 ffffffff CIE
Version: 1
Augmentation: ""
Code alignment factor: 1
Data alignment factor: -8
Return address column: 32
DW_CFA_def_cfa: r7 (rsp) ofs 8
DW_CFA_offset: r32 (xmm15) at cfa-8
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
Consequence: in unwinding, xmm15 gets updated, but rip isn't, causing
an infinite loop in dbghelp.
Wine-Bug-Id: https://bugs.winehq.org/show_bug.cgi?id=55560
Signed-off-by: Eric Pouech <epouech(a)codeweavers.com>
--
v2: tools/winebuild: Emit SEH unwind information instead of dwarf.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3873
On Windows, `listen()` throws `WSAEOPNOTSUPP` when provided with a `SOCK_DGRAM` socket. Wine currently only throws `WSAEOPNOTSUPP` if the socket is bound; otherwise it throws `WSAEINVAL`. This patch modifies the `IOCTL_AFD_LISTEN` case in wineserver's `sock_ioctl()` throw `WSAEOPNOTSUPP` if it's passed an unbound `SOCK_DGRAM` socket.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3878