0
0
mirror of https://github.com/termux/termux-packages.git synced 2025-05-31 12:52:11 +00:00
Files
termux-packages/x11-packages/thunderbird/0027-fix-tagged-pointer.patch
Robert Kirkman 0c687b97ed bump(x11/thunderbird): 137.0.1
- Fixes #24070

- makes the `mozconfig.cfg`, `build.sh` and patches of `thunderbird` very similar to `firefox`, except for places where `thunderbird` is different

- `disable-systray-x86_64.patch`: fixes the build of `thunderbird` 136.0.1 for x86_64 Termux specifically. has been tested at runtime on a bare metal 64-bit Android-x86 device, and behaves as expected (uniform behavior with other architectures of Termux `thunderbird` 136.0.1)

- `toolbar-based-custom-compose-window-width-for-ralfwerner.patch`: hardcoded custom dimensions of the edit window formatting toolbar to provide a workaround for edit window minimum text wrapping width high-dpi-scaling low-resolution situations in HTML mode while preserving the formatting toolbar functionality

- `icu-22132.patch`: fixes a bug in `libicu` that has been happening for a long time, which causes these features of `thunderbird` to begin functioning:
  - Search Bar
  - Address Book
  - Customize Toolbars
  - Calendar
  - Tasks
  - Chat
  - Settings Button
  - Hamburger Button
2025-04-05 11:14:51 -05:00

66 lines
1.7 KiB
Diff

https://github.com/termux/termux-packages/issues/22907
--- a/layout/generic/IntrinsicISizesCache.h
+++ b/layout/generic/IntrinsicISizesCache.h
@@ -131,25 +131,14 @@
};
// If the high bit of mOutOfLine is 1, then it points to an OutOfLineCache.
+ bool mIsOutOfLine = false;
union {
InlineCache mInline;
- struct {
-#ifndef HAVE_64BIT_BUILD
- uintptr_t mPadding = 0;
-#endif
- uintptr_t mOutOfLine = 0;
- };
+ uintptr_t mOutOfLine = 0;
};
- static constexpr uintptr_t kHighBit = uintptr_t(1)
- << (sizeof(void*) * CHAR_BIT - 1);
-
bool IsOutOfLine() const {
-#ifdef HAVE_64BIT_BUILD
- return mOutOfLine & kHighBit;
-#else
- return mPadding & kHighBit;
-#endif
+ return mIsOutOfLine;
}
bool IsInline() const { return !IsOutOfLine(); }
OutOfLineCache* EnsureOutOfLine() {
@@ -159,13 +148,8 @@
auto inlineCache = mInline;
auto* ool = new OutOfLineCache();
ool->mCacheWithoutPercentageBasis = inlineCache;
-#ifdef HAVE_64BIT_BUILD
- MOZ_ASSERT((reinterpret_cast<uintptr_t>(ool) & kHighBit) == 0);
- mOutOfLine = reinterpret_cast<uintptr_t>(ool) | kHighBit;
-#else
mOutOfLine = reinterpret_cast<uintptr_t>(ool);
- mPadding = kHighBit;
-#endif
+ mIsOutOfLine = true;
MOZ_ASSERT(IsOutOfLine());
return ool;
}
@@ -174,16 +158,10 @@
if (!IsOutOfLine()) {
return nullptr;
}
-#ifdef HAVE_64BIT_BUILD
- return reinterpret_cast<OutOfLineCache*>(mOutOfLine & ~kHighBit);
-#else
return reinterpret_cast<OutOfLineCache*>(mOutOfLine);
-#endif
}
};
-static_assert(sizeof(IntrinsicISizesCache) == 8, "Unexpected cache size");
-
} // namespace mozilla
#endif