diff options
| author | Markus Wick <markus@selfnet.de> | 2015-08-28 20:45:15 +0200 |
|---|---|---|
| committer | Markus Wick <markus@selfnet.de> | 2015-08-28 20:45:15 +0200 |
| commit | b11de5bddb81a580438da14c82086d5ae4fbace2 (patch) | |
| tree | e9ebf9b1916fbcad9595dc00a177a330551168ba /Source/Core | |
| parent | d86d5fae9f0bb5c0b588f58e1e45a5e025796903 (diff) | |
| parent | 4fb3a8b78d7711519629b19f5da664ea605a636b (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.h | 12 |
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); } |
