Use inline versions of APIs only internally in Wine

Dmitry Timoshkov dmitry at baikal.ru
Wed Jul 9 08:59:44 CDT 2003


Hello,

if the Wine headers are used to compile tests on Windows using gcc,
GetLastError() returns wrong values due to differencies in the TEB
layout between Wine and Windows.

Changelog:
    Use inline versions of APIs only internally in Wine.

--- cvs/hq/wine/include/winbase.h	Wed Jul  9 16:12:05 2003
+++ wine/include/winbase.h	Wed Jul  9 22:29:32 2003
@@ -1856,6 +1856,7 @@ BOOL        WINAPI wine_get_unix_file_na
 
 /* a few optimizations for i386/gcc */
 
+#ifdef __WINESRC__
 #if defined(__i386__) && defined(__GNUC__)
 
 extern inline LONG WINAPI InterlockedCompareExchange( PLONG dest, LONG xchg, LONG compare );
@@ -2005,7 +2006,8 @@ DWORD       WINAPI GetCurrentProcessId(v
 DWORD       WINAPI GetCurrentThreadId(void);
 void        WINAPI SetLastError( DWORD err );
 HANDLE	    WINAPI GetProcessHeap(void);
-#else  /* __i386__ && __GNUC__ */
+#endif /* __i386__ && __GNUC__ */
+#else  /* __WINESRC__ */
 DWORD       WINAPI GetCurrentProcessId(void);
 DWORD       WINAPI GetCurrentThreadId(void);
 DWORD       WINAPI GetLastError(void);
@@ -2016,7 +2018,7 @@ LONG        WINAPI InterlockedExchange(P
 LONG        WINAPI InterlockedExchangeAdd(PLONG,LONG);
 LONG        WINAPI InterlockedIncrement(PLONG);
 VOID        WINAPI SetLastError(DWORD);
-#endif  /* __i386__ && __GNUC__ */
+#endif  /* __WINESRC__ */
 
 /* FIXME: should handle platforms where sizeof(void*) != sizeof(long) */
 static inline PVOID WINAPI InterlockedCompareExchangePointer( PVOID *dest, PVOID xchg, PVOID compare )






More information about the wine-patches mailing list