Fixes.
This commit is contained in:
win7-7 2026-01-10 20:18:01 +02:00 committed by wuggy
commit 2cfdd80caf
5 changed files with 2209 additions and 9 deletions

View file

@ -2603,10 +2603,10 @@ OffsetToChunkEnd(void* p)
/* Insert the given relocation entry into the list of things to visit. */
inline void
js::TenuringTracer::insertIntoFixupList(RelocationOverlay* entry) {
*tail = entry;
tail = &entry->nextRef();
*tail = nullptr;
js::TenuringTracer::insertIntoObjectFixupList(RelocationOverlay* entry) {
*objTail = entry;
objTail = &entry->nextRef();
*objTail = nullptr;
}
template <typename T>
@ -2706,7 +2706,7 @@ js::TenuringTracer::moveToTenuredSlow(JSObject* src)
RelocationOverlay* overlay = RelocationOverlay::fromCell(src);
overlay->forwardTo(dst);
insertIntoFixupList(overlay);
insertIntoObjectFixupList(overlay);
MemProfiler::MoveNurseryToTenured(src, dst);
TracePromoteToTenured(src, dst);
@ -2739,7 +2739,7 @@ js::TenuringTracer::movePlainObjectToTenured(PlainObject* src)
RelocationOverlay* overlay = RelocationOverlay::fromCell(src);
overlay->forwardTo(dst);
insertIntoFixupList(overlay);
insertIntoObjectFixupList(overlay);
MemProfiler::MoveNurseryToTenured(src, dst);
TracePromoteToTenured(src, dst);

View file

@ -822,7 +822,7 @@ js::Nursery::doCollection(JS::gcreason::Reason reason,
endProfile(ProfileKey::MarkDebugger);
maybeStartProfile(ProfileKey::SweepCaches);
rt->contextFromMainThread()->gc.purgeRuntimeForMinorGC();
rt->gc.purgeRuntimeForMinorGC();
maybeEndProfile(ProfileKey::SweepCaches);
// Most of the work is done here. This loop iterates over objects that have

File diff suppressed because it is too large Load diff

View file

@ -685,7 +685,7 @@ IonCacheIRCompiler::emitGuardSpecificAtom()
// The pointers are not equal, so if the input string is also an atom it
// must be a different string.
masm.branchTest32(Assembler::NonZero, Address(str, JSString::offsetOfFlags()),
Imm32(JSString::ATOM_BIT), failure->label());
Imm32(JSString::NON_ATOM_BIT), failure->label());
// Check the length.
masm.branch32(Assembler::NotEqual, Address(str, JSString::offsetOfLength()),

View file

@ -413,7 +413,7 @@ void
MacroAssembler::branchIfNotRope(Register str, Label* label)
{
Address flags(str, JSString::offsetOfFlags());
static_assert(JSString::ROPE_FLAGS == 0, "Rope type flags must be 0");
static_assert(JSString::ROPE_FLAGS == JSString::NON_ATOM_BIT, "Rope type flags must be 0");
branchTest32(Assembler::NonZero, flags, Imm32(JSString::TYPE_FLAGS_MASK), label);
}