icecat: update to upstream version 128.0.14-1gnu1

This commit is contained in:
Ark74 2025-08-20 11:58:34 -06:00
parent 0cdda4f34e
commit 56c3deff60
77 changed files with 8997 additions and 3862 deletions

View file

@ -453,7 +453,7 @@ class gfxFontEntry::FontTableBlobData {
private:
// The font table data block
nsTArray<uint8_t> mTableData;
const nsTArray<uint8_t> mTableData;
// The blob destroy function needs to know the owning font entry
// so that it can take the font-entry's lock while modifying the
@ -555,11 +555,17 @@ hb_blob_t* gfxFontEntry::ShareFontTableAndGetBlob(uint32_t aTag,
MOZ_POP_THREAD_SAFETY
AutoWriteLock lock(mLock);
FontTableHashEntry* entry = cache->PutEntry(aTag);
if (MOZ_UNLIKELY(!entry)) { // OOM
return nullptr;
FontTableHashEntry* entry;
if (MOZ_UNLIKELY(entry = cache->GetEntry(aTag))) {
// We must have been racing with another GetFontTable for the same table,
// and it won the race and filled in the entry before we took the lock.
// Ignore `aBuffer` and return a reference to the existing blob.
return entry->GetBlob();
}
entry = cache->PutEntry(aTag);
if (!aBuffer) {
// ensure the entry is null
entry->Clear();

View file

@ -408,7 +408,7 @@ class gfxFontEntry {
// unregisters the table from the font entry.
//
// Pass nullptr for aBuffer to indicate that the table is not present and
// nullptr will be returned. Also returns nullptr on OOM.
// nullptr will be returned.
hb_blob_t* ShareFontTableAndGetBlob(uint32_t aTag, nsTArray<uint8_t>* aTable);
// Get the font's unitsPerEm from the 'head' table, in the case of an