本文整理汇总了C++中XPCPerThreadData::GetJSContextStack方法的典型用法代码示例。如果您正苦于以下问题:C++ XPCPerThreadData::GetJSContextStack方法的具体用法?C++ XPCPerThreadData::GetJSContextStack怎么用?C++ XPCPerThreadData::GetJSContextStack使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XPCPerThreadData
的用法示例。
在下文中一共展示了XPCPerThreadData::GetJSContextStack方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
// static
void
XPCLazyCallContext::AssertContextIsTopOfStack(JSContext* cx)
{
XPCPerThreadData* tls = XPCPerThreadData::GetData(cx);
XPCJSContextStack* stack = tls->GetJSContextStack();
JSContext* topJSContext;
nsresult rv = stack->Peek(&topJSContext);
NS_ASSERTION(NS_SUCCEEDED(rv), "XPCJSContextStack::Peek failed");
NS_ASSERTION(cx == topJSContext, "wrong context on XPCJSContextStack!");
}
示例2:
NS_IMETHODIMP
nsXPCJSContextStackIterator::Reset(nsIJSContextStack *aStack)
{
NS_ASSERTION(aStack == nsXPConnect::GetXPConnect(),
"aStack must be implemented by XPConnect singleton");
XPCPerThreadData* data = XPCPerThreadData::GetData(nsnull);
if(!data)
return NS_ERROR_FAILURE;
mStack = data->GetJSContextStack()->GetStack();
if(mStack->IsEmpty())
mStack = nsnull;
else
mPosition = mStack->Length() - 1;
return NS_OK;
}
示例3:
void
xpc_qsAssertContextOK(JSContext *cx)
{
XPCPerThreadData *thread = XPCPerThreadData::GetData(cx);
XPCJSContextStack* stack = thread->GetJSContextStack();
JSContext* topJSContext = nsnull;
nsresult rv = stack->Peek(&topJSContext);
NS_ASSERTION(NS_SUCCEEDED(rv), "XPCJSContextStack::Peek failed");
// This is what we're actually trying to assert here.
NS_ASSERTION(cx == topJSContext, "wrong context on XPCJSContextStack!");
NS_ASSERTION(XPCPerThreadData::IsMainThread(cx),
"XPConnect quick stub called on non-main thread");
}