[KERNEL32]: Get rid of RestoreLastError, it's a forward.

[KERNEL32]: SetLastError should only set the error code if it's different from the one already set. This is not about optimization: it's compatibility with hardware data breakpoint behavior.

svn path=/trunk/; revision=52816
This commit is contained in:
Alex Ionescu 2011-07-23 18:48:32 +00:00
parent a2ed7524c7
commit 3f6d71af42

View file

@ -660,20 +660,13 @@ IsBadStringPtrA(IN LPCSTR lpsz,
*/ */
VOID VOID
WINAPI WINAPI
SetLastError( SetLastError(IN DWORD dwErrCode)
IN DWORD dwErrCode)
{ {
if (g_dwLastErrorToBreakOn) /* Break if a debugger requested checking for this error code */
{ if ((g_dwLastErrorToBreakOn) && (g_dwLastErrorToBreakOn == dwErrCode)) DbgBreakPoint();
/* If we have error to break on and if current matches, break */
if (g_dwLastErrorToBreakOn == dwErrCode)
{
DbgBreakPoint();
}
}
/* Set last error */ /* Set last error if it's a new error */
NtCurrentTeb()->LastErrorValue = dwErrCode; if (NtCurrentTeb()->LastErrorValue != dwErrCode) NtCurrentTeb()->LastErrorValue = dwErrCode;
} }
/* /*
@ -681,9 +674,9 @@ SetLastError(
*/ */
VOID VOID
WINAPI WINAPI
BaseSetLastNTError( BaseSetLastNTError(IN NTSTATUS Status)
IN NTSTATUS Status)
{ {
/* Convert from NT to Win32, then set */
SetLastError(RtlNtStatusToDosError(Status)); SetLastError(RtlNtStatusToDosError(Status));
} }
@ -692,22 +685,10 @@ BaseSetLastNTError(
*/ */
DWORD DWORD
WINAPI WINAPI
GetLastError() GetLastError(VOID)
{ {
/* Return the current value */
return NtCurrentTeb()->LastErrorValue; return NtCurrentTeb()->LastErrorValue;
} }
/*
* @unimplemented
*/
VOID
WINAPI
RestoreLastError(
DWORD dwErrCode
)
{
STUB;
}
/* EOF */ /* EOF */