mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against e83f427a65726bfdefd2712a96f228e720c8b274
This commit is contained in:
parent
6bee4b6e76
commit
692d7d43e0
@ -1,4 +1,4 @@
|
||||
From 2c63306841e4cca19e722282efab78af21d3f5eb Mon Sep 17 00:00:00 2001
|
||||
From 0b9ca95d49019b20fd8088c64217f524a9fe476f Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Wesie <awesie@gmail.com>
|
||||
Date: Fri, 27 Jul 2018 01:26:56 -0500
|
||||
Subject: [PATCH] Use NtContinue to continue execution after exceptions.
|
||||
@ -14,9 +14,9 @@ unlikely that it has the correct behavior if called by an external caller.
|
||||
The __syscall_NtContinue wrapper is used so that it can be hooked by a
|
||||
third-party.
|
||||
---
|
||||
dlls/ntdll/exception.c | 9 +++++++--
|
||||
dlls/ntdll/signal_i386.c | 3 ++-
|
||||
2 files changed, 9 insertions(+), 3 deletions(-)
|
||||
dlls/ntdll/exception.c | 9 +++++++--
|
||||
dlls/ntdll/signal_i386.c | 10 ++++++++--
|
||||
2 files changed, 15 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
|
||||
index 3b85f1efa04..411d2bf5b8f 100644
|
||||
@ -39,10 +39,10 @@ index 3b85f1efa04..411d2bf5b8f 100644
|
||||
|
||||
/*************************************************************
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 50152370b49..59255ed7493 100644
|
||||
index 87ffd62c8c5..6be23f850ba 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -2589,6 +2589,7 @@ __ASM_STDCALL_FUNC( RtlUnwind, 16,
|
||||
@@ -2546,19 +2546,25 @@ __ASM_STDCALL_FUNC( RtlUnwind, 16,
|
||||
__ASM_CFI(".cfi_same_value %ebp\n\t")
|
||||
"ret $16" ) /* actually never returns */
|
||||
|
||||
@ -50,15 +50,26 @@ index 50152370b49..59255ed7493 100644
|
||||
|
||||
/*******************************************************************
|
||||
* NtRaiseException (NTDLL.@)
|
||||
@@ -2596,7 +2597,7 @@ __ASM_STDCALL_FUNC( RtlUnwind, 16,
|
||||
*/
|
||||
NTSTATUS WINAPI NtRaiseException( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL first_chance )
|
||||
{
|
||||
NTSTATUS status = raise_exception( rec, context, first_chance );
|
||||
- if (status == STATUS_SUCCESS) NtSetContextThread( GetCurrentThread(), context );
|
||||
+ if (status == STATUS_SUCCESS) __syscall_NtContinue(context, FALSE);
|
||||
return status;
|
||||
+ NTSTATUS status;
|
||||
+
|
||||
if (first_chance)
|
||||
{
|
||||
- NTSTATUS status = send_debug_event( rec, TRUE, context );
|
||||
+ status = send_debug_event( rec, TRUE, context );
|
||||
if (status == DBG_CONTINUE || status == DBG_EXCEPTION_HANDLED)
|
||||
NtSetContextThread( GetCurrentThread(), context );
|
||||
}
|
||||
- return raise_exception( rec, context, first_chance );
|
||||
+ status = raise_exception( rec, context, first_chance );
|
||||
+ if (status == STATUS_SUCCESS)
|
||||
+ __syscall_NtContinue(context, FALSE);
|
||||
+ return status;
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "12c09051b48507cf8bb37d500719661d0c6ad9f0"
|
||||
echo "e83f427a65726bfdefd2712a96f228e720c8b274"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e346f494c426a300082db6dd8f7ec42cb892e241 Mon Sep 17 00:00:00 2001
|
||||
From a18943341e17fef24e9b7f8dd85458a2e33bedab Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 19 Mar 2015 02:07:24 +0100
|
||||
Subject: [PATCH] user32: Avoid unnecessary wineserver calls in
|
||||
@ -10,10 +10,10 @@ Subject: [PATCH] user32: Avoid unnecessary wineserver calls in
|
||||
2 files changed, 19 insertions(+)
|
||||
|
||||
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
|
||||
index dcfb251..92cfd25 100644
|
||||
index cbe9920384f..cdb8f4047a1 100644
|
||||
--- a/dlls/user32/message.c
|
||||
+++ b/dlls/user32/message.c
|
||||
@@ -2755,6 +2755,18 @@ static BOOL peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags
|
||||
@@ -2756,6 +2756,18 @@ static int peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags,
|
||||
unsigned int hw_id = 0; /* id of previous hardware message */
|
||||
void *buffer;
|
||||
size_t buffer_size = 256;
|
||||
@ -30,9 +30,9 @@ index dcfb251..92cfd25 100644
|
||||
+ if (!(shm->queue_bits & filter)) return FALSE;
|
||||
+ }
|
||||
|
||||
if (!(buffer = HeapAlloc( GetProcessHeap(), 0, buffer_size ))) return FALSE;
|
||||
if (!(buffer = HeapAlloc( GetProcessHeap(), 0, buffer_size ))) return -1;
|
||||
|
||||
@@ -2769,6 +2781,8 @@ static BOOL peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags
|
||||
@@ -2770,6 +2782,8 @@ static int peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags,
|
||||
|
||||
thread_info->msg_source = prev_source;
|
||||
|
||||
@ -42,10 +42,10 @@ index dcfb251..92cfd25 100644
|
||||
{
|
||||
req->flags = flags;
|
||||
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
|
||||
index bf02ee5..fdbd77b 100644
|
||||
index c11aae707c9..74f56925211 100644
|
||||
--- a/dlls/user32/user_private.h
|
||||
+++ b/dlls/user32/user_private.h
|
||||
@@ -165,6 +165,8 @@ struct wm_char_mapping_data
|
||||
@@ -169,6 +169,8 @@ struct wm_char_mapping_data
|
||||
MSG get_msg;
|
||||
};
|
||||
|
||||
@ -54,7 +54,7 @@ index bf02ee5..fdbd77b 100644
|
||||
/* this is the structure stored in TEB->Win32ClientInfo */
|
||||
/* no attempt is made to keep the layout compatible with the Windows one */
|
||||
struct user_thread_info
|
||||
@@ -185,6 +187,7 @@ struct user_thread_info
|
||||
@@ -189,6 +191,7 @@ struct user_thread_info
|
||||
DWORD GetMessageTimeVal; /* Value for GetMessageTime */
|
||||
DWORD GetMessagePosVal; /* Value for GetMessagePos */
|
||||
ULONG_PTR GetMessageExtraInfoVal; /* Value for GetMessageExtraInfo */
|
||||
@ -62,7 +62,7 @@ index bf02ee5..fdbd77b 100644
|
||||
struct user_key_state_info *key_state; /* Cache of global key state */
|
||||
HWND top_window; /* Desktop window */
|
||||
HWND msg_window; /* HWND_MESSAGE parent window */
|
||||
@@ -193,6 +196,8 @@ struct user_thread_info
|
||||
@@ -197,6 +200,8 @@ struct user_thread_info
|
||||
|
||||
C_ASSERT( sizeof(struct user_thread_info) <= sizeof(((TEB *)0)->Win32ClientInfo) );
|
||||
|
||||
@ -72,5 +72,5 @@ index bf02ee5..fdbd77b 100644
|
||||
extern BOOL (WINAPI *imm_register_window)(HWND) DECLSPEC_HIDDEN;
|
||||
extern void (WINAPI *imm_unregister_window)(HWND) DECLSPEC_HIDDEN;
|
||||
--
|
||||
1.9.1
|
||||
2.17.1
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
From 1a841fb1e6ab0e8fffa743bb287bb6422614f69a Mon Sep 17 00:00:00 2001
|
||||
From 1b4774a6a67f8ff97838bf330b809d2a8aabf00e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 7 Sep 2017 00:38:09 +0200
|
||||
Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/loader.c | 7 +-
|
||||
dlls/ntdll/signal_x86_64.c | 3 +
|
||||
dlls/ntdll/signal_x86_64.c | 2 +
|
||||
dlls/ntdll/thread.c | 10 ++
|
||||
libs/wine/loader.c | 4 +
|
||||
tools/winebuild/parser.c | 2 +-
|
||||
tools/winebuild/spec32.c | 230 ++++++++++++++++++++++++++++++++++-
|
||||
6 files changed, 248 insertions(+), 8 deletions(-)
|
||||
6 files changed, 247 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
|
||||
index b4abbc0f59a..32b050850d2 100644
|
||||
@ -40,19 +40,18 @@ index b4abbc0f59a..32b050850d2 100644
|
||||
todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name);
|
||||
continue;
|
||||
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
|
||||
index 2c26bd5604a..c6f16e5fae8 100644
|
||||
index fbb2daff904..1579a94af2c 100644
|
||||
--- a/dlls/ntdll/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/signal_x86_64.c
|
||||
@@ -305,6 +305,8 @@ static inline struct amd64_thread_data *amd64_thread_data(void)
|
||||
return (struct amd64_thread_data *)NtCurrentTeb()->SystemReserved2;
|
||||
@@ -355,6 +355,7 @@ static inline void set_sigcontext( const CONTEXT *context, ucontext_t *sigcontex
|
||||
#endif
|
||||
}
|
||||
|
||||
+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
|
||||
+
|
||||
|
||||
/***********************************************************************
|
||||
* Definitions for Win32 unwind tables
|
||||
*/
|
||||
@@ -3172,6 +3174,7 @@ NTSTATUS signal_alloc_thread( TEB **teb )
|
||||
@@ -3118,6 +3119,7 @@ NTSTATUS signal_alloc_thread( TEB **teb )
|
||||
{
|
||||
(*teb)->Tib.Self = &(*teb)->Tib;
|
||||
(*teb)->Tib.ExceptionList = (void *)~0UL;
|
||||
@ -118,7 +117,7 @@ index f440881a0ec..6e1a613ae45 100644
|
||||
if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER))
|
||||
return 0;
|
||||
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
|
||||
index 942645b5080..45503987094 100644
|
||||
index 800cb230231..880a99c1e9a 100644
|
||||
--- a/tools/winebuild/spec32.c
|
||||
+++ b/tools/winebuild/spec32.c
|
||||
@@ -372,11 +372,11 @@ static void output_relay_debug( DLLSPEC *spec )
|
||||
|
Loading…
Reference in New Issue
Block a user