diff --git a/dom/base/nsDOMClassInfo.cpp b/dom/base/nsDOMClassInfo.cpp index ab917796b90..514de67ecc6 100644 --- a/dom/base/nsDOMClassInfo.cpp +++ b/dom/base/nsDOMClassInfo.cpp @@ -1776,17 +1776,17 @@ GetXPCProto(nsIXPConnect *aXPConnect, JSContext *cx, nsGlobalWindow *aWin, } NS_ENSURE_TRUE(ci, NS_ERROR_UNEXPECTED); + nsCOMPtr proto_holder; nsresult rv = aXPConnect->GetWrappedNativePrototype(cx, aWin->GetGlobalJSObject(), ci, - aProto); + getter_AddRefs(proto_holder)); NS_ENSURE_SUCCESS(rv, rv); - JS::Rooted proto_obj(cx, (*aProto)->GetJSObject()); + JS::Rooted proto_obj(cx, proto_holder->GetJSObject()); if (!JS_WrapObject(cx, &proto_obj)) { return NS_ERROR_FAILURE; } - NS_IF_RELEASE(*aProto); return aXPConnect->HoldObject(cx, proto_obj, aProto); }