Skip to content

Commit 5a1292c

Browse files
committed
build: Don't fail for 32 bit builds because of static_assert check (AcademySoftwareFoundation#4006)
A static_assert was added recently as part of PR AcademySoftwareFoundation#3898, which assures that the size of a TileID is a multiple of 8 bytes. But on architectures with 32 bit pointers, this assertion fails. Which is not quite what we want, because the code isn't wrong if the struct isn't a multiple of 8 bytes; it's just less efficient. And we don't want to fail for 32 bit arch. Bottom line: only do this check to ensure we're in the most efficient case if we're 64 bits. Nobody's expecting highest performance on a 32 bit machine anyway. Fixes AcademySoftwareFoundation#4001 Signed-off-by: Larry Gritz <[email protected]>
1 parent 82a4f9a commit 5a1292c

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

src/libtexture/imagecache_pvt.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,9 +567,11 @@ struct TileID {
567567
static_assert(
568568
sizeof(*this) == member_size,
569569
"All TileID members must be accounted for so we can hash the entire class.");
570+
#ifdef __LP64__
570571
static_assert(
571572
sizeof(*this) % sizeof(uint64_t) == 0,
572573
"FastHash uses the fewest instructions when data size is a multiple of 8 bytes.");
574+
#endif
573575
return fasthash::fasthash64(this, sizeof(*this));
574576
}
575577

0 commit comments

Comments
 (0)