- 17 Jul, 2023 12 commits
-
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Victor Chiletto authored
re4_tweaks relies on this function being hotpatchable [1]. [1]: https://github.com/nipkownix/re4_tweaks/blob/7cfcf5c4272f7d68d177661ffe84e9d1e0d2f383/dllmain/input.cpp#L903
-
Jinoh Kang authored
SafeSEH is not applicable to architectures other than i386. This fixes compiling with the clang ARM assembler, which cannot parse ".def @feat.00" since "@" is parsed as the start of a line comment.
-
Jinoh Kang authored
Today, NtContinue() on ARM64 does not restore X16 and X17 from the context. This is because the values for X16 and X17 are overwritten when the current thread returns to the "user mode" (PE side) via __wine_syscall_dispatcher, which in turn uses them as scratch registers for restoring SP and PC respectively. We cannot avoid using scratch registers when restoring SP and PC. This is because ARMv8 does not have an unprivileged (EL0) instruction that loads SP and PC from memory or non-GPR architectural state. Fix this by making ARM64 __wine_syscall_dispatcher perform a full context restore via raise(SIGUSR2) when NtContinue() is used. Since raising a signal is quite expensive, it should be done only when necessary. To achieve this, split the ARM64 syscall dispatcher's returning behaviour into a fast path (that does not involve signals) and a slow path (that involves signals): - If CONTEXT_INTEGER is not set, the dispatcher takes the fast path: the X16 and X17 registers are clobbered as usual. - If X16 == PC and X17 == SP, the dispatcher also takes the fast path: it can safely use X16 and X17 without corrupting the register values, since those two registers already have the desired values. This fast path is used in call_user_apc_dispatcher(), call_user_exception_dispatcher(), and call_init_thunk(). - Otherwise, the dispatcher takes the slow path: it raises SIGUSR2 and does full context restore in the signal handler. Fixes: 88e33621
-
Nikolay Sivov authored
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
-
Alistair Leslie-Hughes authored
-
Alistair Leslie-Hughes authored
-
Bernhard Kölbl authored
-
Bernhard Kölbl authored
-
- 14 Jul, 2023 28 commits
-
-
Tim Clem authored
-
Tim Clem authored
-
Tim Clem authored
Fall through in create_link and allow SHGetFolderPathAndSubDirW to create an empty folder in place if the alternatives are not available. Creating a link back to $HOME makes a recursive directory structure, which results in crashes in programs that naively search %USERPROFILE% (e.g. Quicken).
-
Biswapriyo Nath authored
-
Biswapriyo Nath authored
-
Biswapriyo Nath authored
-
Biswapriyo Nath authored
-
Zebediah Figura authored
-
Zebediah Figura authored
-
Zebediah Figura authored
-
Zebediah Figura authored
-
Zebediah Figura authored
-
Zebediah Figura authored
-
Hans Leidekker authored
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55114
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Zebediah Figura authored
-
Zebediah Figura authored
GL_MAP_WRITE_BIT does not mean that the buffer will be filled, unless an INVALIDATE bit is explicitly set. The application is free to partially update the buffer, even if it does not read from it. Thanks to Aida Jonikienė for doing most of the debugging here. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55045
-
Jinoh Kang authored
Commit b1cc87cb ("msi: The line control has a height of exactly 2 device units.", 2007-12-16) open-coded the body of (msi_)dialog_add_control() inside dialog_line_control() modulo the height override. Except the fixed height, line controls have nothing special compared to other controls. Thus, there is little merit in open-coding it. Also, dialog_line_control() has bit-rotted over time; it already missed a few changes that were done to any other controls. Fix this by just using dialog_add_control(). Also, add a special case logic just for line controls.
-
Jinoh Kang authored
Fixes: 2c5bd492
-