ntdll: Return from snoop tracing helpers earlier if tracing is disabled.
Dmitry Timoshkov
dmitry at baikal.ru
Sun Oct 18 21:28:31 CDT 2015
This allows turning off and on snooping from task manager.
Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
dlls/ntdll/relay.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/dlls/ntdll/relay.c b/dlls/ntdll/relay.c
index ef0af0f..449a25a 100644
--- a/dlls/ntdll/relay.c
+++ b/dlls/ntdll/relay.c
@@ -978,6 +978,8 @@ static void SNOOP_PrintArg(DWORD x)
{
int i,nostring;
+ if (!TRACE_ON(snoop)) return;
+
DPRINTF("%08x",x);
if (IS_INTARG(x) || TRACE_ON(seh)) return; /* trivial reject to avoid faults */
__TRY
@@ -1085,6 +1087,8 @@ void WINAPI __regs_SNOOP_Entry( CONTEXT *context )
context->Eip = (DWORD)fun->origfun;
+ if (!TRACE_ON(snoop)) return;
+
if (TRACE_ON(timestamp))
print_timestamp();
if (fun->name) DPRINTF("%04x:CALL %s.%s(",GetCurrentThreadId(),dll->name,fun->name);
@@ -1121,6 +1125,12 @@ void WINAPI __regs_SNOOP_Return( CONTEXT *context )
if (ret->dll->funs[ret->ordinal].nrofargs<0)
ret->dll->funs[ret->ordinal].nrofargs=(context->Esp - ret->origESP-4)/4;
context->Eip = (DWORD)ret->origreturn;
+
+ if (!TRACE_ON(snoop)) {
+ ret->origreturn = NULL; /* mark as empty */
+ return;
+ }
+
if (TRACE_ON(timestamp))
print_timestamp();
if (ret->args) {
--
2.6.1
More information about the wine-patches
mailing list