本文整理汇总了C++中WrapperMap::lookup方法的典型用法代码示例。如果您正苦于以下问题:C++ WrapperMap::lookup方法的具体用法?C++ WrapperMap::lookup怎么用?C++ WrapperMap::lookup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WrapperMap
的用法示例。
在下文中一共展示了WrapperMap::lookup方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: trace
void trace(JSTracer* trc) override {
CrossCompartmentKey prior = key;
if (key.debugger)
TraceManuallyBarrieredEdge(trc, &key.debugger, "CCW debugger");
if (key.kind == CrossCompartmentKey::ObjectWrapper ||
key.kind == CrossCompartmentKey::DebuggerObject ||
key.kind == CrossCompartmentKey::DebuggerEnvironment ||
key.kind == CrossCompartmentKey::DebuggerSource)
{
MOZ_ASSERT(IsInsideNursery(key.wrapped) ||
key.wrapped->asTenured().getTraceKind() == JS::TraceKind::Object);
TraceManuallyBarrieredEdge(trc, reinterpret_cast<JSObject**>(&key.wrapped),
"CCW wrapped object");
}
if (key.debugger == prior.debugger && key.wrapped == prior.wrapped)
return;
/* Look for the original entry, which might have been removed. */
WrapperMap::Ptr p = map->lookup(prior);
if (!p)
return;
/* Rekey the entry. */
map->rekeyAs(prior, key, key);
}
示例2: trace
void trace(JSTracer* trc) override {
CrossCompartmentKey prior = key;
key.applyToWrapped(TraceFunctor(trc, "ccw wrapped"));
key.applyToDebugger(TraceFunctor(trc, "ccw debugger"));
if (key == prior)
return;
/* Look for the original entry, which might have been removed. */
WrapperMap::Ptr p = map->lookup(prior);
if (!p)
return;
/* Rekey the entry. */
map->rekeyAs(prior, key, key);
}