mirror of
https://github.com/reactos/reactos.git
synced 2024-11-23 11:33:31 +08:00
[WIN32K] Workaround for broken/retarded (on non-x86) FLOATOBJ_GetFloat
The official definition in winddi.h always returns the result in an ULONG. This works to assign to a FLOATL on x86, which is also an ULONG, but it doesn't work on any other architecture, where FLOATL is actually a FLOAT, so the assignment would convert the ULONG encoding of the FLOAT to an actual float, which gives broken results. Work around this by simply replacing the definition with a sane one in win32k.
This commit is contained in:
parent
a206b55838
commit
9762ef9480
@ -74,6 +74,12 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
|
||||
/* SEH support with PSEH */
|
||||
#include <pseh/pseh2.h>
|
||||
|
||||
/* The native x64 definition of FLOATOBJ_GetFloat in winddi.h is retarded. Use this instead. */
|
||||
#ifndef _M_IX86
|
||||
#undef FLOATOBJ_GetFloat
|
||||
#define FLOATOBJ_GetFloat(pf) (*(pf))
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user