revert workaround for msvc arm64 ICE in WIABlob
This commit is contained in:
parent
f3031e2be2
commit
4ef87194a4
|
@ -240,27 +240,26 @@ private:
|
||||||
|
|
||||||
struct ReuseID
|
struct ReuseID
|
||||||
{
|
{
|
||||||
// This code is a workaround for an ICE in Visual Studio 16.10.0 when making an ARM64 Release
|
bool operator==(const ReuseID& other) const
|
||||||
// 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))
|
return std::tie(partition_key, data_size, encrypted, value) ==
|
||||||
#define COMPARE_REUSE_ID(op, equal_result) \
|
std::tie(other.partition_key, other.data_size, other.encrypted, other.value);
|
||||||
COMPARE_REUSE_ID_INNER( \
|
}
|
||||||
op, partition_key, \
|
bool operator<(const ReuseID& other) const
|
||||||
COMPARE_REUSE_ID_INNER( \
|
{
|
||||||
op, data_size, \
|
return std::tie(partition_key, data_size, encrypted, value) <
|
||||||
COMPARE_REUSE_ID_INNER(op, encrypted, COMPARE_REUSE_ID_INNER(op, value, equal_result))))
|
std::tie(other.partition_key, other.data_size, other.encrypted, other.value);
|
||||||
|
}
|
||||||
bool operator==(const ReuseID& other) const { return COMPARE_REUSE_ID(==, true); }
|
bool operator>(const ReuseID& other) const
|
||||||
bool operator<(const ReuseID& other) const { return COMPARE_REUSE_ID(<, false); }
|
{
|
||||||
bool operator>(const ReuseID& other) const { return COMPARE_REUSE_ID(>, false); }
|
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); }
|
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;
|
WiiKey partition_key;
|
||||||
u64 data_size;
|
u64 data_size;
|
||||||
bool encrypted;
|
bool encrypted;
|
||||||
|
|
Loading…
Reference in New Issue