本文整理汇总了C++中HeapSlot类的典型用法代码示例。如果您正苦于以下问题:C++ HeapSlot类的具体用法?C++ HeapSlot怎么用?C++ HeapSlot使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HeapSlot类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getSlotRange
void
js::ObjectImpl::initSlotRange(uint32_t start, const Value *vector, uint32_t length)
{
HeapSlot *fixedStart, *fixedEnd, *slotsStart, *slotsEnd;
getSlotRange(start, length, &fixedStart, &fixedEnd, &slotsStart, &slotsEnd);
for (HeapSlot *sp = fixedStart; sp < fixedEnd; sp++)
sp->init(this->asObjectPtr(), HeapSlot::Slot, start++, *vector++);
for (HeapSlot *sp = slotsStart; sp < slotsEnd; sp++)
sp->init(this->asObjectPtr(), HeapSlot::Slot, start++, *vector++);
}
示例2: getSlotRange
void
js::ObjectImpl::copySlotRange(uint32_t start, const Value *vector, uint32_t length)
{
JS::Zone *zone = this->zone();
HeapSlot *fixedStart, *fixedEnd, *slotsStart, *slotsEnd;
getSlotRange(start, length, &fixedStart, &fixedEnd, &slotsStart, &slotsEnd);
for (HeapSlot *sp = fixedStart; sp < fixedEnd; sp++)
sp->set(zone, this->asObjectPtr(), HeapSlot::Slot, start++, *vector++);
for (HeapSlot *sp = slotsStart; sp < slotsEnd; sp++)
sp->set(zone, this->asObjectPtr(), HeapSlot::Slot, start++, *vector++);
}
示例3: compartment
void
js::ObjectImpl::copySlotRange(uint32_t start, const Value *vector, uint32_t length)
{
JSCompartment *comp = compartment();
HeapSlot *fixedStart, *fixedEnd, *slotsStart, *slotsEnd;
getSlotRange(start, length, &fixedStart, &fixedEnd, &slotsStart, &slotsEnd);
for (HeapSlot *sp = fixedStart; sp < fixedEnd; sp++)
sp->set(comp, this->asObjectPtr(), start++, *vector++);
for (HeapSlot *sp = slotsStart; sp < slotsEnd; sp++)
sp->set(comp, this->asObjectPtr(), start++, *vector++);
}
示例4: getSlotRangeUnchecked
void
js::ObjectImpl::initializeSlotRange(uint32_t start, uint32_t length)
{
/*
* No bounds check, as this is used when the object's shape does not
* reflect its allocated slots (updateSlotsForSpan).
*/
HeapSlot *fixedStart, *fixedEnd, *slotsStart, *slotsEnd;
getSlotRangeUnchecked(start, length, &fixedStart, &fixedEnd, &slotsStart, &slotsEnd);
uint32_t offset = start;
for (HeapSlot *sp = fixedStart; sp < fixedEnd; sp++)
sp->init(this->asObjectPtr(), HeapSlot::Slot, offset++, UndefinedValue());
for (HeapSlot *sp = slotsStart; sp < slotsEnd; sp++)
sp->init(this->asObjectPtr(), HeapSlot::Slot, offset++, UndefinedValue());
}
示例5: slotLocation
MOZ_ALWAYS_INLINE void *
StoreBuffer::SlotEdge::deref() const
{
HeapSlot *loc = slotLocation();
return (loc && loc->isGCThing()) ? loc->toGCThing() : nullptr;
}