Merge remote-tracking branch 'origin/tracking' into custom

This commit is contained in:
roytam1 2025-01-10 22:32:18 +08:00
commit 44f397bea2
7 changed files with 93 additions and 36 deletions

View file

@ -1343,7 +1343,6 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx,
static_cast<OffscreenCanvasCloneData*>(aContent);
nsCOMPtr<nsIGlobalObject> parent = do_QueryInterface(mParent);
RefPtr<OffscreenCanvas> canvas = OffscreenCanvas::CreateFromCloneData(parent, data);
delete data;
JS::Rooted<JS::Value> value(aCx);
if (!GetOrCreateDOMReflector(aCx, canvas, &value)) {
@ -1351,6 +1350,7 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx,
return false;
}
delete data;
aReturnObject.set(&value.toObject());
return true;
}
@ -1363,7 +1363,6 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx,
static_cast<ImageBitmapCloneData*>(aContent);
nsCOMPtr<nsIGlobalObject> parent = do_QueryInterface(mParent);
RefPtr<ImageBitmap> bitmap = ImageBitmap::CreateFromCloneData(parent, data);
delete data;
JS::Rooted<JS::Value> value(aCx);
if (!GetOrCreateDOMReflector(aCx, bitmap, &value)) {
@ -1371,6 +1370,7 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx,
return false;
}
delete data;
aReturnObject.set(&value.toObject());
return true;
}

View file

@ -10,6 +10,7 @@
#include "nsHyphenationManager.h"
#include "nsHyphenator.h"
#include "mozilla/gfx/2D.h"
#include "mozilla/ScopeExit.h"
nsLineBreaker::nsLineBreaker()
: mCurrentWordLanguage(nullptr),
@ -57,6 +58,14 @@ SetupCapitalization(const char16_t* aWord, uint32_t aLength,
nsresult
nsLineBreaker::FlushCurrentWord()
{
auto cleanup = mozilla::MakeScopeExit([&] {
mCurrentWord.Clear();
mTextItems.Clear();
mCurrentWordContainsComplexChar = false;
mCurrentWordContainsMixedLang = false;
mCurrentWordLanguage = nullptr;
});
uint32_t length = mCurrentWord.Length();
AutoTArray<uint8_t,4000> breakState;
if (!breakState.AppendElements(length))
@ -137,11 +146,6 @@ nsLineBreaker::FlushCurrentWord()
offset += ti->mLength;
}
mCurrentWord.Clear();
mTextItems.Clear();
mCurrentWordContainsComplexChar = false;
mCurrentWordContainsMixedLang = false;
mCurrentWordLanguage = nullptr;
return NS_OK;
}