summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2015-08-24 08:58:31 -0400
committerLioncash <mathew1800@gmail.com>2015-08-24 09:07:09 -0400
commitabd3b124bea3d491bc009990dd1bec74efd012bf (patch)
tree31fb045ff466bb81f1779498774e1cee7dbf4378 /Source
parent8bc311ab3c0ecbd5fbb6d4850e8eadb3b576ba42 (diff)
Memmap: Remove pointer casts
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/HW/Memmap.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/Source/Core/Core/HW/Memmap.cpp b/Source/Core/Core/HW/Memmap.cpp
index 011205d577..b464051569 100644
--- a/Source/Core/Core/HW/Memmap.cpp
+++ b/Source/Core/Core/HW/Memmap.cpp
@@ -8,6 +8,8 @@
// However, if a JITed instruction (for example lwz) wants to access a bad memory area that call
// may be redirected here (for example to Read_U32()).
+#include <cstring>
+
#include "Common/ChunkFile.h"
#include "Common/CommonTypes.h"
#include "Common/MemArena.h"
@@ -341,27 +343,30 @@ void Write_U8(u8 value, u32 address)
void Write_U16(u16 value, u32 address)
{
- *(u16*)GetPointer(address) = Common::swap16(value);
+ u16 swapped_value = Common::swap16(value);
+ std::memcpy(GetPointer(address), &swapped_value, sizeof(u16));
}
void Write_U32(u32 value, u32 address)
{
- *(u32*)GetPointer(address) = Common::swap32(value);
+ u32 swapped_value = Common::swap32(value);
+ std::memcpy(GetPointer(address), &swapped_value, sizeof(u32));
}
void Write_U64(u64 value, u32 address)
{
- *(u64*)GetPointer(address) = Common::swap64(value);
+ u64 swapped_value = Common::swap64(value);
+ std::memcpy(GetPointer(address), &swapped_value, sizeof(u64));
}
void Write_U32_Swap(u32 value, u32 address)
{
- *(u32*)GetPointer(address) = value;
+ std::memcpy(GetPointer(address), &value, sizeof(u32));
}
void Write_U64_Swap(u64 value, u32 address)
{
- *(u64*)GetPointer(address) = value;
+ std::memcpy(GetPointer(address), &value, sizeof(u64));
}
} // namespace