Commit 94f7f52d authored by Martin Storsjö's avatar Martin Storsjö Committed by Alexandre Julliard

ntdll: Take ControlPcIsUnwound into account on arm64 too.

This is the same modification as the previous patch, applied on arm64. It doesn't change the outcome for any of my tests though. Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent d007c91d
......@@ -165,6 +165,7 @@ static NTSTATUS virtual_unwind( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEX
{
LDR_DATA_TABLE_ENTRY *module;
NTSTATUS status;
DWORD64 pc;
dispatch->ImageBase = 0;
dispatch->ScopeIndex = 0;
......@@ -175,14 +176,14 @@ static NTSTATUS virtual_unwind( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEX
* signal frame.
*/
dispatch->ControlPcIsUnwound = (context->ContextFlags & CONTEXT_UNWOUND_TO_CALL) != 0;
pc = context->Pc - (dispatch->ControlPcIsUnwound ? 4 : 0);
/* first look for PE exception information */
if ((dispatch->FunctionEntry = lookup_function_info(
context->Pc - (dispatch->ControlPcIsUnwound ? 4 : 0),
if ((dispatch->FunctionEntry = lookup_function_info(pc,
&dispatch->ImageBase, &module )))
{
dispatch->LanguageHandler = RtlVirtualUnwind( type, dispatch->ImageBase, context->Pc,
dispatch->LanguageHandler = RtlVirtualUnwind( type, dispatch->ImageBase, pc,
dispatch->FunctionEntry, context,
&dispatch->HandlerData, &dispatch->EstablisherFrame,
NULL );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment