Summary: | REGRESSION(274077@main): failure to build on i586 (and likely other 32bit arches): static assertion failed: Timer should stay small | ||
---|---|---|---|
Product: | WebKit | Reporter: | Dominique Leuenberger <dimstar> |
Component: | WebKitGTK | Assignee: | Michael Catanzaro <mcatanzaro> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | berto, bugs-noreply, mcatanzaro, rniwa |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Linux | ||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=268703 |
Description
Dominique Leuenberger
2024-03-16 03:22:59 PDT
Version 2.43.4 was the last I tested and that still built successfylly I think SameSizeAsTimer is missing the size of the bitfields, which don't get compacted on 32-bit architectures. Let me test it... Hey Ryosuke, are you OK with this? I will create a pull request soon. (Alternatively, we could put the uint8_t at the bottom of the struct by reordering the Timer data members.) diff --git a/Source/WebCore/platform/Timer.cpp b/Source/WebCore/platform/Timer.cpp index 4f7c0f5c39ca..0f3734cca247 100644 --- a/Source/WebCore/platform/Timer.cpp +++ b/Source/WebCore/platform/Timer.cpp @@ -263,7 +263,11 @@ struct SameSizeAsTimer { WeakPtr<TimerAlignment> timerAlignment; double times[2]; - void* pointers[3]; + void* pointers[2]; +#if CPU(ADDRESS32) + uint8_t bitfields; +#endif + void* pointer; }; static_assert(sizeof(Timer) == sizeof(SameSizeAsTimer), "Timer should stay small"); Pull request: https://github.com/WebKit/WebKit/pull/26053 Committed 276282@main (2922af379dc7): <https://commits.webkit.org/276282@main> Reviewed commits have been landed. Closing PR #26053 and removing active labels. |