本文整理汇总了C++中map::Ptr类的典型用法代码示例。如果您正苦于以下问题:C++ Ptr类的具体用法?C++ Ptr怎么用?C++ Ptr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Ptr类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: holder
bool
WatchpointMap::triggerWatchpoint(JSContext* cx, HandleObject obj, HandleId id, MutableHandleValue vp)
{
Map::Ptr p = map.lookup(WatchKey(obj, id));
if (!p || p->value().held)
return true;
AutoEntryHolder holder(cx, map, p);
/* Copy the entry, since GC would invalidate p. */
JSWatchPointHandler handler = p->value().handler;
RootedObject closure(cx, p->value().closure);
/* Determine the property's old value. */
Value old;
old.setUndefined();
if (obj->isNative()) {
NativeObject* nobj = &obj->as<NativeObject>();
if (Shape* shape = nobj->lookup(cx, id)) {
if (shape->hasSlot())
old = nobj->getSlot(shape->slot());
}
}
// Read barrier to prevent an incorrectly gray closure from escaping the
// watchpoint. See the comment before UnmarkGrayChildren in gc/Marking.cpp
JS::ExposeObjectToActiveJS(closure);
/* Call the handler. */
return handler(cx, obj, id, old, vp.address(), closure);
}
开发者ID:Wafflespeanut,项目名称:gecko-dev,代码行数:31,代码来源:jswatchpoint.cpp
示例2: sweep
void
InnerViewTable::sweepAfterMinorGC(JSRuntime* rt)
{
MOZ_ASSERT(needsSweepAfterMinorGC());
if (nurseryKeysValid) {
for (size_t i = 0; i < nurseryKeys.length(); i++) {
JSObject* key = nurseryKeys[i];
Map::Ptr p = map.lookup(key);
if (!p)
continue;
if (sweepEntry(&key, p->value()))
map.remove(nurseryKeys[i]);
else
map.rekeyIfMoved(nurseryKeys[i], key);
}
nurseryKeys.clear();
} else {
// Do the required sweeping by looking at every map entry.
nurseryKeys.clear();
sweep(rt);
nurseryKeysValid = true;
}
}
开发者ID:logicoftekk,项目名称:cyberfox,代码行数:26,代码来源:ArrayBufferObject.cpp
示例3:
TEST(GTestMap, TestClear) {
Map::Ptr m = Map::create();
String::CPtr x = String::create("x");
String::CPtr y = String::create("y");
m->put(x, 123);
m->put(y, 456);
m->put(String::null(), UNDEFINED);
m->clear();
ASSERT_TRUE(m->isEmpty());
}
开发者ID:k8king,项目名称:libj,代码行数:10,代码来源:gtest_map.cpp
示例4:
InnerViewTable::ViewVector*
InnerViewTable::maybeViewsUnbarriered(ArrayBufferObject* buffer)
{
if (!map.initialized())
return nullptr;
Map::Ptr p = map.lookup(buffer);
if (p)
return &p->value();
return nullptr;
}
开发者ID:bslassey,项目名称:spidernode,代码行数:11,代码来源:ArrayBufferObject.cpp
示例5: MaybeForwarded
void
InnerViewTable::sweepAfterMinorGC()
{
MOZ_ASSERT(needsSweepAfterMinorGC());
if (nurseryKeysValid) {
for (size_t i = 0; i < nurseryKeys.length(); i++) {
JSObject* buffer = MaybeForwarded(nurseryKeys[i]);
Map::Ptr p = map.lookup(buffer);
if (!p)
continue;
if (sweepEntry(&p->mutableKey(), p->value()))
map.remove(buffer);
}
nurseryKeys.clear();
} else {
// Do the required sweeping by looking at every map entry.
nurseryKeys.clear();
sweep();
nurseryKeysValid = true;
}
}
开发者ID:bslassey,项目名称:spidernode,代码行数:24,代码来源:ArrayBufferObject.cpp
示例6: deallocateSigId
void deallocateSigId(const Sig& sig, const void* sigId) {
Map::Ptr p = map_.lookup(sig);
MOZ_RELEASE_ASSERT(p && p->key() == sigId && p->value() > 0);
p->value()--;
if (!p->value()) {
js_delete(p->key());
map_.remove(p);
}
}
开发者ID:cstipkovic,项目名称:gecko-dev,代码行数:10,代码来源:WasmInstance.cpp
注:本文中的map::Ptr类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论