Index: runtime/vm/object.h |
diff --git a/runtime/vm/object.h b/runtime/vm/object.h |
index d5062633402b9c66a7b4e20c46a5eb4e109c01be..894b59bdcb4579a654871a345dcd4c7f2cc62a98 100644 |
--- a/runtime/vm/object.h |
+++ b/runtime/vm/object.h |
@@ -7961,29 +7961,15 @@ class TypedData : public Instance { |
virtual bool CanonicalizeEquals(const Instance& other) const; |
virtual uword ComputeCanonicalTableHash() const; |
-#if defined(HOST_ARCH_IA32) || defined(HOST_ARCH_X64) |
#define TYPED_GETTER_SETTER(name, type) \ |
type Get##name(intptr_t byte_offset) const { \ |
NoSafepointScope no_safepoint; \ |
- return *reinterpret_cast<type*>(DataAddr(byte_offset)); \ |
- } \ |
- void Set##name(intptr_t byte_offset, type value) const { \ |
- NoSafepointScope no_safepoint; \ |
- *reinterpret_cast<type*>(DataAddr(byte_offset)) = value; \ |
- } |
-#else // defined(HOST_ARCH_IA32) || defined(HOST_ARCH_X64) |
-#define TYPED_GETTER_SETTER(name, type) \ |
- type Get##name(intptr_t byte_offset) const { \ |
- NoSafepointScope no_safepoint; \ |
- type result; \ |
- memmove(&result, DataAddr(byte_offset), sizeof(type)); \ |
- return result; \ |
+ return ReadUnaligned(reinterpret_cast<type*>(DataAddr(byte_offset))); \ |
} \ |
void Set##name(intptr_t byte_offset, type value) const { \ |
NoSafepointScope no_safepoint; \ |
- memmove(DataAddr(byte_offset), &value, sizeof(type)); \ |
+ StoreUnaligned(reinterpret_cast<type*>(DataAddr(byte_offset)), value); \ |
} |
-#endif // defined(HOST_ARCH_IA32) || defined(HOST_ARCH_X64) |
TYPED_GETTER_SETTER(Int8, int8_t) |
TYPED_GETTER_SETTER(Uint8, uint8_t) |