Nikolay Sivov (@nsivov) commented about dlls/ntdll/actctx.c:
+/******************************************************************
RtlDeactivateActivationContextUnsafeFast (NTDLL.@)
- FIXME: function prototype might be wrong
- */
+VOID FASTCALL RtlDeactivateActivationContextUnsafeFast( RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED *frame_extended ) +{
- ACTIVATION_CONTEXT_STACK *actctx_stack = NtCurrentTeb()->ActivationContextStackPointer;
- ACTIVATION_CONTEXT *actctx;
- TRACE( "%p\n", frame_extended );
- actctx = actctx_stack->ActiveFrame->ActivationContext;
- actctx_stack->ActiveFrame = frame_extended->Frame.Previous;
- RtlReleaseActivationContext( actctx );
+}
Should we check anything here? For example ActiveFrame could be null or it could be that ActiveFrame != &frame_extended->Frame.