Author: fireball Date: Sun Aug 9 14:54:45 2015 New Revision: 68654
URL: http://svn.reactos.org/svn/reactos?rev=68654&view=rev Log: [LDR] - Use newer implementation of RtlActivateActivationContextUnsafeFast(): its time finally has come (see r52615 and r52612). It returns proper return value instead of pushing STATUS_SUCCESS into PRTL_ACTIVATION_CONTEXT_STACK_FRAME type and its "Trying to activate improper activation context" warning pops up all the time (its disabled in trunk to prevent debug log spam).
Modified: trunk/reactos/lib/rtl/actctx.c
Modified: trunk/reactos/lib/rtl/actctx.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/actctx.c?rev=68654&... ============================================================================== --- trunk/reactos/lib/rtl/actctx.c [iso-8859-1] (original) +++ trunk/reactos/lib/rtl/actctx.c [iso-8859-1] Sun Aug 9 14:54:45 2015 @@ -5404,13 +5404,14 @@ RtlActivateActivationContextUnsafeFast(IN PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED Frame, IN PVOID Context) { -#if NEW_NTDLL_LOADER RTL_ACTIVATION_CONTEXT_STACK_FRAME *ActiveFrame;
/* Get the curren active frame */ ActiveFrame = NtCurrentTeb()->ActivationContextStackPointer->ActiveFrame;
- DPRINT1("ActiveFrame %p, &Frame->Frame %p, Context %p\n", ActiveFrame, &Frame->Frame, Context); + DPRINT("ActiveSP %p, ActiveFrame %p, &Frame->Frame %p, Context %p\n", + NtCurrentTeb()->ActivationContextStackPointer, ActiveFrame, + &Frame->Frame, Context);
/* Actually activate it */ Frame->Frame.Previous = ActiveFrame; @@ -5427,7 +5428,7 @@ }
/* We can get here only one way: it was already activated */ - DPRINT1("Trying to activate improper activation context\n"); + DPRINT("Trying to activate improper activation context\n");
/* Activate only if we are allowing multiple activation */ if (!RtlpNotAllowingMultipleActivation) @@ -5442,22 +5443,6 @@
/* Return pointer to the activation frame */ return &Frame->Frame; -#else - - RTL_ACTIVATION_CONTEXT_STACK_FRAME *frame = &Frame->Frame; - - frame->Previous = NtCurrentTeb()->ActivationContextStackPointer->ActiveFrame; - frame->ActivationContext = Context; - frame->Flags = 0; - - NtCurrentTeb()->ActivationContextStackPointer->ActiveFrame = frame; - //RtlAddRefActivationContext( handle ); - - DPRINT("Activated actctx sp %p, active frame %p\n", NtCurrentTeb()->ActivationContextStackPointer, frame); - - return STATUS_SUCCESS; - -#endif }
PRTL_ACTIVATION_CONTEXT_STACK_FRAME