Bug 1019191 part 17. Make some of the remaining quickstub unwrap methods static. r=peterv

Note that we know that we always call UnwrapArg with an object, so
xpc_qsUnwrapArgImpl knows v is always an object.
This commit is contained in:
Boris Zbarsky 2014-10-22 11:40:50 -04:00
Родитель 6c525b5027
Коммит c26753b139
2 изменённых файлов: 5 добавлений и 45 удалений

Просмотреть файл

@ -48,7 +48,7 @@ getNativeFromWrapper(JSContext *cx,
} }
nsresult static nsresult
getWrapper(JSContext *cx, getWrapper(JSContext *cx,
JSObject *obj, JSObject *obj,
XPCWrappedNative **wrapper, XPCWrappedNative **wrapper,
@ -106,7 +106,7 @@ getWrapper(JSContext *cx,
return NS_OK; return NS_OK;
} }
nsresult static nsresult
castNative(JSContext *cx, castNative(JSContext *cx,
XPCWrappedNative *wrapper, XPCWrappedNative *wrapper,
JSObject *curArg, JSObject *curArg,
@ -147,18 +147,13 @@ xpc_qsUnwrapArgImpl(JSContext *cx,
nsISupports **ppArgRef, nsISupports **ppArgRef,
MutableHandleValue vp) MutableHandleValue vp)
{ {
nsresult rv; MOZ_ASSERT(v.isObject());
RootedObject src(cx, xpc_qsUnwrapObj(v, ppArgRef, &rv)); RootedObject src(cx, &v.toObject());
if (!src) {
*ppArg = nullptr;
return rv;
}
XPCWrappedNative *wrapper; XPCWrappedNative *wrapper;
XPCWrappedNativeTearOff *tearoff; XPCWrappedNativeTearOff *tearoff;
JSObject *obj2; JSObject *obj2;
rv = getWrapper(cx, src, &wrapper, &obj2, &tearoff); nsresult rv = getWrapper(cx, src, &wrapper, &obj2, &tearoff);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
if (wrapper || obj2) { if (wrapper || obj2) {

Просмотреть файл

@ -11,41 +11,6 @@
/* XPCQuickStubs.h - Support functions used only by Web IDL bindings, for now. */ /* XPCQuickStubs.h - Support functions used only by Web IDL bindings, for now. */
nsresult
getWrapper(JSContext *cx,
JSObject *obj,
XPCWrappedNative **wrapper,
JSObject **cur,
XPCWrappedNativeTearOff **tearoff);
nsresult
castNative(JSContext *cx,
XPCWrappedNative *wrapper,
JSObject *cur,
XPCWrappedNativeTearOff *tearoff,
const nsIID &iid,
void **ppThis,
nsISupports **ppThisRef,
JS::MutableHandleValue vp);
MOZ_ALWAYS_INLINE JSObject*
xpc_qsUnwrapObj(jsval v, nsISupports **ppArgRef, nsresult *rv)
{
*rv = NS_OK;
if (v.isObject()) {
return &v.toObject();
}
if (!v.isNullOrUndefined()) {
*rv = ((v.isInt32() && v.toInt32() == 0)
? NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL
: NS_ERROR_XPC_BAD_CONVERT_JS);
}
*ppArgRef = nullptr;
return nullptr;
}
nsresult nsresult
xpc_qsUnwrapArgImpl(JSContext *cx, JS::HandleValue v, const nsIID &iid, void **ppArg, xpc_qsUnwrapArgImpl(JSContext *cx, JS::HandleValue v, const nsIID &iid, void **ppArg,
nsISupports **ppArgRef, JS::MutableHandleValue vp); nsISupports **ppArgRef, JS::MutableHandleValue vp);