mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-02 14:19:02 +00:00
DataReader: Get rid of pointer casts
This commit is contained in:
parent
d9b18862f3
commit
4fb3a8b78d
1 changed files with 9 additions and 3 deletions
|
@ -4,7 +4,9 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "Common/Common.h"
|
#include <cstring>
|
||||||
|
#include "Common/CommonFuncs.h"
|
||||||
|
#include "Common/CommonTypes.h"
|
||||||
|
|
||||||
class DataReader
|
class DataReader
|
||||||
{
|
{
|
||||||
|
@ -33,9 +35,12 @@ public:
|
||||||
|
|
||||||
template <typename T, bool swapped = true> __forceinline T Peek(int offset = 0)
|
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)
|
if (swapped)
|
||||||
data = Common::FromBigEndian(data);
|
data = Common::FromBigEndian(data);
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +55,8 @@ public:
|
||||||
{
|
{
|
||||||
if (swapped)
|
if (swapped)
|
||||||
data = Common::FromBigEndian(data);
|
data = Common::FromBigEndian(data);
|
||||||
*(T*)(buffer) = data;
|
|
||||||
|
std::memcpy(buffer, &data, sizeof(T));
|
||||||
buffer += sizeof(T);
|
buffer += sizeof(T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue