Module: wine
Branch: master
Commit: 953b93737a6cf2c2c45b01a982961b21ea4cd1ef
URL: https://gitlab.winehq.org/wine/wine/-/commit/953b93737a6cf2c2c45b01a982961b…
Author: John Chadwick <john(a)jchw.io>
Date: Mon Oct 3 02:21:34 2022 -0400
wintab32: Fix match_token to match XWayland devices.
XWayland tablet devices have the Wayland seat ID appended to the end of
them, preceded by a colon. This prevents match_token from properly
detecting XWayland devices and causes Wintab32 to fail to initialize.
This change allows a matched token to end in a colon, and thus allows
XWayland tablet devices to be detected correctly.
Signed-off-by: John Chadwick <john(a)jchw.io>
---
dlls/winex11.drv/wintab.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c
index b906a589e08..6f1437f14c6 100644
--- a/dlls/winex11.drv/wintab.c
+++ b/dlls/winex11.drv/wintab.c
@@ -374,7 +374,7 @@ static BOOL match_token(const char *haystack, const char *needle)
for (q = needle; *q && *p && tolower(*p) == tolower(*q); q++)
p++;
- if (! *q && (isspace(*p) || !*p))
+ if (! *q && (isspace(*p) || *p == ':' || !*p))
return TRUE;
while (*p && ! isspace(*p))
Module: wine
Branch: master
Commit: 4934c1276232a9ac9cad1bdf750c5ac099944180
URL: https://gitlab.winehq.org/wine/wine/-/commit/4934c1276232a9ac9cad1bdf750c5a…
Author: Martin Storsjö <martin(a)martin.st>
Date: Sat Oct 1 23:49:29 2022 +0300
wow64: Use the right SEH opcode in raise_exception on arm64.
On ARM and ARM64, each SEH opcode is supposed to map to exactly one
instruction; the operation of writing x29+x30 with a stack offset
with writeback is called ".seh_save_fplr_x".
Using the right opcode would fix inconsistent unwinding if we would
unwind from near the end of the prologue (which is implausible here).
However, clang/LLVM might also get checking for mismatches between
SEH opcodes and the prolog/epilog ranges
(https://reviews.llvm.org/D131394), mainly to guard against
inconsistencies in the unwind info generated by the compiler, but
that would trigger on this handwritten function too.
---
dlls/wow64/process.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/dlls/wow64/process.c b/dlls/wow64/process.c
index 1d35702bf01..a810d5e5543 100644
--- a/dlls/wow64/process.c
+++ b/dlls/wow64/process.c
@@ -421,8 +421,7 @@ __ASM_GLOBAL_FUNC( raise_exception,
#elif defined(__aarch64__)
__ASM_GLOBAL_FUNC( raise_exception,
"stp x29, x30, [sp, #-32]!\n\t"
- __ASM_SEH(".seh_stackalloc 32\n\t")
- __ASM_SEH(".seh_save_fplr 0\n\t")
+ __ASM_SEH(".seh_save_fplr_x 32\n\t")
__ASM_SEH(".seh_endprologue\n\t")
__ASM_CFI(".cfi_def_cfa x29, 32\n\t")
__ASM_CFI(".cfi_offset x30, -24\n\t")