mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1147588 - Replace slots marking functions with TraceEdge; r=jonco
This commit is contained in:
parent
2e8bed2812
commit
20916f0bed
@ -1309,22 +1309,6 @@ gc::IsSlotMarked(HeapSlot* s)
|
||||
return IsMarked(s);
|
||||
}
|
||||
|
||||
void
|
||||
gc::MarkSlot(JSTracer* trc, HeapSlot* s, const char* name)
|
||||
{
|
||||
trc->setTracingName(name);
|
||||
MarkValueInternal(trc, s->unsafeGet());
|
||||
}
|
||||
|
||||
void
|
||||
gc::MarkArraySlots(JSTracer* trc, size_t len, HeapSlot* vec, const char* name)
|
||||
{
|
||||
for (size_t i = 0; i < len; ++i) {
|
||||
trc->setTracingIndex(name, i);
|
||||
MarkValueInternal(trc, vec[i].unsafeGet());
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gc::MarkObjectSlots(JSTracer* trc, NativeObject* obj, uint32_t start, uint32_t nslots)
|
||||
{
|
||||
|
@ -269,12 +269,6 @@ IsValueAboutToBeFinalizedFromAnyThread(Value* v);
|
||||
bool
|
||||
IsSlotMarked(HeapSlot* s);
|
||||
|
||||
void
|
||||
MarkSlot(JSTracer* trc, HeapSlot* s, const char* name);
|
||||
|
||||
void
|
||||
MarkArraySlots(JSTracer* trc, size_t len, HeapSlot* vec, const char* name);
|
||||
|
||||
void
|
||||
MarkObjectSlots(JSTracer* trc, NativeObject* obj, uint32_t start, uint32_t nslots);
|
||||
|
||||
|
@ -36,8 +36,8 @@ StoreBuffer::SlotsEdge::mark(JSTracer* trc) const
|
||||
int32_t initLen = obj->getDenseInitializedLength();
|
||||
int32_t clampedStart = Min(start_, initLen);
|
||||
int32_t clampedEnd = Min(start_ + count_, initLen);
|
||||
gc::MarkArraySlots(trc, clampedEnd - clampedStart,
|
||||
obj->getDenseElements() + clampedStart, "element");
|
||||
TraceRange(trc, clampedEnd - clampedStart,
|
||||
static_cast<HeapSlot*>(obj->getDenseElements() + clampedStart), "element");
|
||||
} else {
|
||||
int32_t start = Min(uint32_t(start_), obj->slotSpan());
|
||||
int32_t end = Min(uint32_t(start_) + count_, obj->slotSpan());
|
||||
|
@ -4094,10 +4094,10 @@ JSObject::markChildren(JSTracer* trc)
|
||||
}
|
||||
}
|
||||
|
||||
gc::MarkArraySlots(trc,
|
||||
nobj->getDenseInitializedLength(),
|
||||
nobj->getDenseElementsAllowCopyOnWrite(),
|
||||
"objectElements");
|
||||
TraceRange(trc,
|
||||
nobj->getDenseInitializedLength(),
|
||||
static_cast<HeapSlot*>(nobj->getDenseElementsAllowCopyOnWrite()),
|
||||
"objectElements");
|
||||
} while (false);
|
||||
}
|
||||
}
|
||||
|
@ -1177,7 +1177,7 @@ ArrayBufferViewObject::trace(JSTracer* trc, JSObject* objArg)
|
||||
{
|
||||
NativeObject* obj = &objArg->as<NativeObject>();
|
||||
HeapSlot& bufSlot = obj->getReservedSlotRef(TypedArrayLayout::BUFFER_SLOT);
|
||||
MarkSlot(trc, &bufSlot, "typedarray.buffer");
|
||||
TraceEdge(trc, &bufSlot, "typedarray.buffer");
|
||||
|
||||
// Update obj's data pointer if it moved.
|
||||
if (bufSlot.isObject()) {
|
||||
|
Loading…
Reference in New Issue
Block a user