本文整理汇总了C++中ZoneSet::has方法的典型用法代码示例。如果您正苦于以下问题:C++ ZoneSet::has方法的具体用法?C++ ZoneSet::has怎么用?C++ ZoneSet::has使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ZoneSet
的用法示例。
在下文中一共展示了ZoneSet::has方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: allRootEdges
bool
RootList::init(ZoneSet &debuggees)
{
SimpleEdgeVector allRootEdges(cx);
SimpleEdgeVectorTracer tracer(cx, &allRootEdges, wantNames);
JS_TraceRuntime(&tracer);
if (!tracer.okay)
return false;
JS_TraceIncomingCCWs(&tracer, debuggees);
if (!tracer.okay)
return false;
for (SimpleEdgeVector::Range r = allRootEdges.all(); !r.empty(); r.popFront()) {
SimpleEdge &edge = r.front();
Zone *zone = edge.referent.zone();
if (zone && !debuggees.has(zone))
continue;
if (!edges.append(mozilla::Move(edge)))
return false;
}
noGC.emplace(cx->runtime());
return true;
}
示例2: tracer
bool
RootList::init(CompartmentSet& debuggees)
{
EdgeVector allRootEdges;
EdgeVectorTracer tracer(rt, &allRootEdges, wantNames);
ZoneSet debuggeeZones;
if (!debuggeeZones.init())
return false;
for (auto range = debuggees.all(); !range.empty(); range.popFront()) {
if (!debuggeeZones.put(range.front()->zone()))
return false;
}
js::TraceRuntime(&tracer);
if (!tracer.okay)
return false;
TraceIncomingCCWs(&tracer, debuggees);
if (!tracer.okay)
return false;
for (EdgeVector::Range r = allRootEdges.all(); !r.empty(); r.popFront()) {
Edge& edge = r.front();
JSCompartment* compartment = edge.referent.compartment();
if (compartment && !debuggees.has(compartment))
continue;
Zone* zone = edge.referent.zone();
if (zone && !debuggeeZones.has(zone))
continue;
if (!edges.append(mozilla::Move(edge)))
return false;
}
noGC.emplace(rt);
return true;
}