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