Browse Source

Hopefully fixing the 32bit pointer address issue for x64 builds

Marko Pintera 13 years ago
parent
commit
cb0ff2efce

+ 1 - 1
CamelotUtility/Include/CmBinarySerializer.h

@@ -85,7 +85,7 @@ namespace CamelotEngine
 			UINT32 typeId;
 			UINT32 typeId;
 		};
 		};
 
 
-		std::unordered_map<UINT32, UINT32> mObjectAddrToId;
+		std::unordered_map<void*, UINT32> mObjectAddrToId;
 		UINT32 mLastUsedObjectId;
 		UINT32 mLastUsedObjectId;
 		std::vector<ObjectToEncode> mObjectsToEncode;
 		std::vector<ObjectToEncode> mObjectsToEncode;
 		int mTotalBytesWritten;
 		int mTotalBytesWritten;

+ 2 - 2
CamelotUtility/Source/CmBinarySerializer.cpp

@@ -1018,7 +1018,7 @@ namespace CamelotEngine
 
 
 	UINT32 BinarySerializer::findOrCreatePersistentId(IReflectable* object)
 	UINT32 BinarySerializer::findOrCreatePersistentId(IReflectable* object)
 	{
 	{
-		UINT32 ptrAddress = (UINT32)object;
+		void* ptrAddress = (void*)object;
 
 
 		auto findIter = mObjectAddrToId.find(ptrAddress);
 		auto findIter = mObjectAddrToId.find(ptrAddress);
 		if(findIter != mObjectAddrToId.end())
 		if(findIter != mObjectAddrToId.end())
@@ -1035,7 +1035,7 @@ namespace CamelotEngine
 		if(object == nullptr)
 		if(object == nullptr)
 			return 0;
 			return 0;
 
 
-		UINT32 ptrAddress = (UINT32)object.get();
+		void* ptrAddress = (void*)object.get();
 
 
 		auto iterFind = mObjectAddrToId.find(ptrAddress);
 		auto iterFind = mObjectAddrToId.find(ptrAddress);
 		if(iterFind == mObjectAddrToId.end())
 		if(iterFind == mObjectAddrToId.end())