Jinoh Kang : ntdll: Use ActivationContextStackPointer instead of referencing ActivationContextStack directly.
Module: wine Branch: master Commit: 41a193c41813eb393662f319f24722ad9b8c59ff URL: https://gitlab.winehq.org/wine/wine/-/commit/41a193c41813eb393662f319f24722a... Author: Jinoh Kang <jinoh.kang.kr(a)gmail.com> Date: Sat Mar 18 19:03:50 2023 +0900 ntdll: Use ActivationContextStackPointer instead of referencing ActivationContextStack directly. This allows changing the location of activation context stack if it should be put somewhere else (e.g. inside the fiber structure). --- dlls/ntdll/actctx.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c index 432648d129d..ba2a628a1af 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -3386,7 +3386,7 @@ static NTSTATUS parse_depend_manifests(struct actctx_loader* acl) static HANDLE get_current_actctx_no_addref(void) { - ACTIVATION_CONTEXT_STACK *actctx_stack = &NtCurrentTeb()->ActivationContextStack; + ACTIVATION_CONTEXT_STACK *actctx_stack = NtCurrentTeb()->ActivationContextStackPointer; if (actctx_stack->ActiveFrame) return actctx_stack->ActiveFrame->ActivationContext; @@ -5397,7 +5397,7 @@ NTSTATUS WINAPI RtlActivateActivationContext( ULONG unknown, HANDLE handle, PULO */ NTSTATUS WINAPI RtlActivateActivationContextEx( ULONG flags, TEB *teb, HANDLE handle, ULONG_PTR *cookie ) { - ACTIVATION_CONTEXT_STACK *actctx_stack = &teb->ActivationContextStack; + ACTIVATION_CONTEXT_STACK *actctx_stack = teb->ActivationContextStackPointer; RTL_ACTIVATION_CONTEXT_STACK_FRAME *frame; if (!(frame = RtlAllocateHeap( GetProcessHeap(), 0, sizeof(*frame) ))) @@ -5420,7 +5420,7 @@ NTSTATUS WINAPI RtlActivateActivationContextEx( ULONG flags, TEB *teb, HANDLE ha */ void WINAPI RtlDeactivateActivationContext( ULONG flags, ULONG_PTR cookie ) { - ACTIVATION_CONTEXT_STACK *actctx_stack = &NtCurrentTeb()->ActivationContextStack; + ACTIVATION_CONTEXT_STACK *actctx_stack = NtCurrentTeb()->ActivationContextStackPointer; RTL_ACTIVATION_CONTEXT_STACK_FRAME *frame, *top; TRACE( "%lx cookie=%Ix\n", flags, cookie ); @@ -5454,7 +5454,7 @@ void WINAPI RtlDeactivateActivationContext( ULONG flags, ULONG_PTR cookie ) */ void WINAPI RtlFreeThreadActivationContextStack(void) { - ACTIVATION_CONTEXT_STACK *actctx_stack = &NtCurrentTeb()->ActivationContextStack; + ACTIVATION_CONTEXT_STACK *actctx_stack = NtCurrentTeb()->ActivationContextStackPointer; RTL_ACTIVATION_CONTEXT_STACK_FRAME *frame; frame = actctx_stack->ActiveFrame; @@ -5484,7 +5484,7 @@ NTSTATUS WINAPI RtlGetActiveActivationContext( HANDLE *handle ) */ BOOLEAN WINAPI RtlIsActivationContextActive( HANDLE handle ) { - ACTIVATION_CONTEXT_STACK *actctx_stack = &NtCurrentTeb()->ActivationContextStack; + ACTIVATION_CONTEXT_STACK *actctx_stack = NtCurrentTeb()->ActivationContextStackPointer; RTL_ACTIVATION_CONTEXT_STACK_FRAME *frame; for (frame = actctx_stack->ActiveFrame; frame; frame = frame->Previous)
participants (1)
-
Alexandre Julliard