浏览代码

Merge pull request #1161 from BeamNG/fix_x64_2

More x64 fixes - 2
Luis Anton Rebollo 10 年之前
父节点
当前提交
514579c39b

+ 1 - 1
Engine/source/console/engineTypes.h

@@ -571,7 +571,7 @@ namespace _Private {
 
 
 ///
 ///
 #define FIELD_AS( type, fieldName, exportName, numElements, doc ) \
 #define FIELD_AS( type, fieldName, exportName, numElements, doc ) \
-   { #exportName, doc, numElements, TYPE( *( ( type* ) &( ( ThisType* ) 16 )->fieldName ) ), FIELDOFFSET( fieldName ) }, // Artificial offset to avoid compiler warnings.
+   { #exportName, doc, numElements, TYPE( *( ( type* ) &( ( ThisType* ) 16 )->fieldName ) ), (U32)FIELDOFFSET( fieldName ) }, // Artificial offset to avoid compiler warnings.
    
    
 ///
 ///
 #define FIELDOFFSET( fieldName ) \
 #define FIELDOFFSET( fieldName ) \

+ 1 - 1
Engine/source/platform/platformIntrinsics.h

@@ -40,7 +40,7 @@
 template< typename T >
 template< typename T >
 inline bool dCompareAndSwap( T* volatile& refPtr, T* oldPtr, T* newPtr )
 inline bool dCompareAndSwap( T* volatile& refPtr, T* oldPtr, T* newPtr )
 {
 {
-   return dCompareAndSwap( *reinterpret_cast< volatile size_t* >( &refPtr ), ( size_t ) oldPtr, ( size_t ) newPtr );
+   return dCompareAndSwap( *reinterpret_cast< volatile uintptr_t* >( &refPtr ), ( uintptr_t ) oldPtr, ( uintptr_t ) newPtr );
 }
 }
 
 
 // Test-And-Set
 // Test-And-Set

+ 3 - 3
Engine/source/platform/typetraits.h

@@ -222,11 +222,11 @@ struct _TypeTraits< T* >
    typedef _DestructPtr Destruct;
    typedef _DestructPtr Destruct;
 
 
    template< typename A >
    template< typename A >
-   static bool isTaggedPtr( A* ptr ) { return ( size_t( ptr ) & 0x1 ); } //TODO: 64bits
+   static bool isTaggedPtr( A* ptr ) { return ( uintptr_t( ptr ) & 0x1 ); }
    template< typename A >
    template< typename A >
-   static A* getTaggedPtr( A* ptr ) { return ( A* ) ( size_t( ptr ) | 0x1 ); } //TODO: 64bits
+   static A* getTaggedPtr( A* ptr ) { return ( A* ) ( uintptr_t( ptr ) | 0x1 ); }
    template< typename A >
    template< typename A >
-   static A* getUntaggedPtr( A* ptr ) { return ( A* ) ( size_t( ptr ) & (~0x1) ); } //TODO: 64bit
+   static A* getUntaggedPtr( A* ptr ) { return ( A* ) ( uintptr_t( ptr ) & (~0x1) ); }
 };
 };
 
 
 template< typename T >
 template< typename T >

+ 1 - 1
Engine/source/windowManager/win32/win32WindowMgr.cpp

@@ -138,7 +138,7 @@ void Win32WindowManager::buildMonitorsList()
    mMonitors.clear();
    mMonitors.clear();
 
 
    // Enumerate all monitors
    // Enumerate all monitors
-   EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, (size_t)(void*)&mMonitors);
+   EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, (uintptr_t)&mMonitors);
 }
 }
 
 
 S32 Win32WindowManager::findFirstMatchingMonitor(const char* name)
 S32 Win32WindowManager::findFirstMatchingMonitor(const char* name)