void * ForkJoinNursery::moveObjectToTospace(JSObject *src) { AllocKind dstKind = getObjectAllocKind(src); JSObject *dst = static_cast<JSObject *>(allocateInTospace(dstKind)); if (!dst) CrashAtUnhandlableOOM("Failed to allocate object while moving object."); movedSize_ += copyObjectToTospace(dst, src, dstKind); RelocationOverlay *overlay = reinterpret_cast<RelocationOverlay *>(src); overlay->forwardTo(dst); insertIntoFixupList(overlay); return static_cast<void *>(dst); }
void * js::Nursery::moveToTenured(MinorCollectionTracer *trc, JSObject *src) { Zone *zone = src->zone(); AllocKind dstKind = GetObjectAllocKindForCopy(trc->runtime(), src); JSObject *dst = static_cast<JSObject *>(allocateFromTenured(zone, dstKind)); if (!dst) CrashAtUnhandlableOOM("Failed to allocate object while tenuring."); trc->tenuredSize += moveObjectToTenured(dst, src, dstKind); RelocationOverlay *overlay = reinterpret_cast<RelocationOverlay *>(src); overlay->forwardTo(dst); trc->insertIntoFixupList(overlay); return static_cast<void *>(dst); }
void * js::Nursery::moveToTenured(MinorCollectionTracer *trc, JSObject *src) { Zone *zone = src->zone(); AllocKind dstKind = GetObjectAllocKindForCopy(src); JSObject *dst = static_cast<JSObject *>(allocateFromTenured(zone, dstKind)); if (!dst) MOZ_CRASH(); moveObjectToTenured(dst, src, dstKind); RelocationOverlay *overlay = reinterpret_cast<RelocationOverlay *>(src); overlay->forwardTo(dst); trc->insertIntoFixupList(overlay); return static_cast<void *>(dst); }