summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorMarkus Wick <markus@selfnet.de>2015-08-28 20:45:15 +0200
committerMarkus Wick <markus@selfnet.de>2015-08-28 20:45:15 +0200
commitb11de5bddb81a580438da14c82086d5ae4fbace2 (patch)
treee9ebf9b1916fbcad9595dc00a177a330551168ba /Source/Core
parentd86d5fae9f0bb5c0b588f58e1e45a5e025796903 (diff)
parent4fb3a8b78d7711519629b19f5da664ea605a636b (diff)
Merge pull request #2918 from lioncash/memcpy
DataReader: Get rid of pointer casts
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/VideoCommon/DataReader.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/Source/Core/VideoCommon/DataReader.h b/Source/Core/VideoCommon/DataReader.h
index 0737a9bf1d..bb4914db8c 100644
--- a/Source/Core/VideoCommon/DataReader.h
+++ b/Source/Core/VideoCommon/DataReader.h
@@ -4,7 +4,9 @@
#pragma once
-#include "Common/Common.h"
+#include <cstring>
+#include "Common/CommonFuncs.h"
+#include "Common/CommonTypes.h"
class DataReader
{
@@ -33,9 +35,12 @@ public:
template <typename T, bool swapped = true> __forceinline T Peek(int offset = 0)
{
- T data = *(T*)(buffer + offset);
+ T data;
+ std::memcpy(&data, &buffer[offset], sizeof(T));
+
if (swapped)
data = Common::FromBigEndian(data);
+
return data;
}
@@ -50,7 +55,8 @@ public:
{
if (swapped)
data = Common::FromBigEndian(data);
- *(T*)(buffer) = data;
+
+ std::memcpy(buffer, &data, sizeof(T));
buffer += sizeof(T);
}