summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO
diff options
context:
space:
mode:
authorShawn Hoffman <godisgovernment@gmail.com>2021-08-14 03:57:53 -0700
committerShawn Hoffman <godisgovernment@gmail.com>2021-08-14 03:57:53 -0700
commit4ef87194a4f8843903ea6961ec95df788aefaa10 (patch)
tree6ef7bf28860a71f2efc7eb1b76330f361f288452 /Source/Core/DiscIO
parentf3031e2be2bc7184cb44399a27b5a0a54ff47f40 (diff)
revert workaround for msvc arm64 ICE in WIABlob
Diffstat (limited to 'Source/Core/DiscIO')
-rw-r--r--Source/Core/DiscIO/WIABlob.h31
1 files changed, 15 insertions, 16 deletions
diff --git a/Source/Core/DiscIO/WIABlob.h b/Source/Core/DiscIO/WIABlob.h
index cb27b5d711..88db70a210 100644
--- a/Source/Core/DiscIO/WIABlob.h
+++ b/Source/Core/DiscIO/WIABlob.h
@@ -240,27 +240,26 @@ private:
struct ReuseID
{
- // This code is a workaround for an ICE in Visual Studio 16.10.0 when making an ARM64 Release
- // build. Once a fixed version of Visual Studio is released, we can use std::tie instead.
-#define COMPARE_REUSE_ID_INNER(op, f, next) ((f != other.f) ? (f op other.f) : (next))
-#define COMPARE_REUSE_ID(op, equal_result) \
- COMPARE_REUSE_ID_INNER( \
- op, partition_key, \
- COMPARE_REUSE_ID_INNER( \
- op, data_size, \
- COMPARE_REUSE_ID_INNER(op, encrypted, COMPARE_REUSE_ID_INNER(op, value, equal_result))))
-
- bool operator==(const ReuseID& other) const { return COMPARE_REUSE_ID(==, true); }
- bool operator<(const ReuseID& other) const { return COMPARE_REUSE_ID(<, false); }
- bool operator>(const ReuseID& other) const { return COMPARE_REUSE_ID(>, false); }
+ bool operator==(const ReuseID& other) const
+ {
+ return std::tie(partition_key, data_size, encrypted, value) ==
+ std::tie(other.partition_key, other.data_size, other.encrypted, other.value);
+ }
+ bool operator<(const ReuseID& other) const
+ {
+ return std::tie(partition_key, data_size, encrypted, value) <
+ std::tie(other.partition_key, other.data_size, other.encrypted, other.value);
+ }
+ bool operator>(const ReuseID& other) const
+ {
+ return std::tie(partition_key, data_size, encrypted, value) >
+ std::tie(other.partition_key, other.data_size, other.encrypted, other.value);
+ }
bool operator!=(const ReuseID& other) const { return !operator==(other); }
bool operator>=(const ReuseID& other) const { return !operator<(other); }
bool operator<=(const ReuseID& other) const { return !operator>(other); }
-#undef COMPARE_REUSE_ID_INNER
-#undef COMPARE_REUSE_ID
-
WiiKey partition_key;
u64 data_size;
bool encrypted;