本文整理汇总了C++中XPCWrappedNative::GetScriptableCallback方法的典型用法代码示例。如果您正苦于以下问题:C++ XPCWrappedNative::GetScriptableCallback方法的具体用法?C++ XPCWrappedNative::GetScriptableCallback怎么用?C++ XPCWrappedNative::GetScriptableCallback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XPCWrappedNative
的用法示例。
在下文中一共展示了XPCWrappedNative::GetScriptableCallback方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindWrapper
static JSBool
holder_set(JSContext *cx, JSObject *wrapper, jsid id, JSBool strict, jsval *vp)
{
wrapper = FindWrapper(wrapper);
JSObject *holder = GetHolder(wrapper);
if (IsResolving(holder, id)) {
return true;
}
XPCWrappedNative *wn = GetWrappedNativeFromHolder(holder);
if (NATIVE_HAS_FLAG(wn, WantSetProperty)) {
JSAutoEnterCompartment ac;
if (!ac.enter(cx, holder))
return false;
PRBool retval = true;
nsresult rv = wn->GetScriptableCallback()->SetProperty(wn, cx, wrapper, id, vp, &retval);
if (NS_FAILED(rv) || !retval) {
if (retval)
XPCThrower::Throw(rv, cx);
return false;
}
}
return true;
}
示例2:
static void
WrappedNativeFinalize(js::FreeOp* fop, JSObject* obj, WNHelperType helperType)
{
const js::Class* clazz = js::GetObjectClass(obj);
if (clazz->flags & JSCLASS_DOM_GLOBAL) {
mozilla::dom::DestroyProtoAndIfaceCache(obj);
}
nsISupports* p = static_cast<nsISupports*>(xpc_GetJSPrivate(obj));
if (!p)
return;
XPCWrappedNative* wrapper = static_cast<XPCWrappedNative*>(p);
if (helperType == WN_HELPER)
wrapper->GetScriptableCallback()->Finalize(wrapper, js::CastToJSFreeOp(fop), obj);
wrapper->FlatJSObjectFinalized();
}