Author: ion
Date: Sat Jul 23 18:43:49 2011
New Revision: 52814
URL:
http://svn.reactos.org/svn/reactos?rev=52814&view=rev
Log:
[KERNEL32]: Fix RemoveHandles, CloseAllProcessHandles...again.
Modified:
trunk/reactos/dll/win32/kernel32/client/debugger.c
Modified: trunk/reactos/dll/win32/kernel32/client/debugger.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/client/debugger.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/client/debugger.c [iso-8859-1] Sat Jul 23 18:43:49
2011
@@ -300,11 +300,12 @@
RemoveHandles(IN DWORD dwProcessId,
IN DWORD dwThreadId)
{
- PDBGSS_THREAD_DATA ThreadData, ThisData;
+ PDBGSS_THREAD_DATA *ThreadData;
+ PDBGSS_THREAD_DATA ThisData;
/* Loop all thread data events */
- ThreadData = DbgSsGetThreadData();
- for (ThisData = ThreadData; ThisData; ThisData = ThisData->Next)
+ ThreadData = (PDBGSS_THREAD_DATA*)NtCurrentTeb()->DbgSsReserved;
+ for (ThisData = *ThreadData; ThisData; ThisData = ThisData->Next)
{
/* Check if this one matches */
if ((ThisData->HandleMarked) &&
@@ -315,7 +316,7 @@
if (ThisData->ProcessHandle) CloseHandle(ThisData->ProcessHandle);
/* Unlink the thread data */
- ThreadData->Next = ThisData->Next;
+ *ThreadData = ThisData->Next;
/* Free it*/
RtlFreeHeap(RtlGetProcessHeap(), 0, ThisData);
@@ -323,7 +324,7 @@
else
{
/* Move to the next one */
- ThreadData = ThisData;
+ ThreadData = &ThisData->Next;
}
}
}
@@ -332,11 +333,12 @@
WINAPI
CloseAllProcessHandles(IN DWORD dwProcessId)
{
- PDBGSS_THREAD_DATA ThreadData, ThisData;
+ PDBGSS_THREAD_DATA *ThreadData;
+ PDBGSS_THREAD_DATA ThisData;
/* Loop all thread data events */
- ThreadData = DbgSsGetThreadData();
- for (ThisData = ThreadData; ThisData; ThisData = ThisData->Next)
+ ThreadData = (PDBGSS_THREAD_DATA*)NtCurrentTeb()->DbgSsReserved;
+ for (ThisData = *ThreadData; ThisData; ThisData = ThisData->Next)
{
/* Check if this one matches */
if (ThisData->ProcessId == dwProcessId)
@@ -346,7 +348,7 @@
if (ThisData->ProcessHandle) CloseHandle(ThisData->ProcessHandle);
/* Unlink the thread data */
- ThreadData->Next = ThisData->Next;
+ *ThreadData = ThisData->Next;
/* Free it*/
RtlFreeHeap(RtlGetProcessHeap(), 0, ThisData);
@@ -354,7 +356,7 @@
else
{
/* Move to the next one */
- ThreadData = ThisData;
+ ThreadData = &ThisData->Next;
}
}
}