Bug 1080059: Explicitly QueryInterface to nsIIccInfo rather than downcasting, because the canonical nsIIccInfo pointer is not the same as the canonical subclass pointer. r=edgar
--- a/dom/icc/IccInfo.cpp
+++ b/dom/icc/IccInfo.cpp
@@ -148,17 +148,20 @@ NS_IMPL_RELEASE_INHERITED(GsmIccInfo, Ic
GsmIccInfo::GsmIccInfo(nsPIDOMWindow* aWindow)
: IccInfo(aWindow)
{
}
void
GsmIccInfo::Update(nsIGsmIccInfo* aInfo)
{
- IccInfo::Update(aInfo);
+ nsCOMPtr<nsIIccInfo> iccInfo = do_QueryInterface(aInfo);
+ MOZ_ASSERT(iccInfo);
+
+ IccInfo::Update(iccInfo);
mGsmIccInfo = aInfo;
}
JSObject*
GsmIccInfo::WrapObject(JSContext* aCx)
{
return MozGsmIccInfoBinding::Wrap(aCx, this);
}
@@ -187,17 +190,20 @@ NS_IMPL_RELEASE_INHERITED(CdmaIccInfo, I
CdmaIccInfo::CdmaIccInfo(nsPIDOMWindow* aWindow)
: IccInfo(aWindow)
{
}
void
CdmaIccInfo::Update(nsICdmaIccInfo* aInfo)
{
- IccInfo::Update(aInfo);
+ nsCOMPtr<nsIIccInfo> iccInfo = do_QueryInterface(aInfo);
+ MOZ_ASSERT(iccInfo);
+
+ IccInfo::Update(iccInfo);
mCdmaIccInfo = aInfo;
}
JSObject*
CdmaIccInfo::WrapObject(JSContext* aCx)
{
return MozCdmaIccInfoBinding::Wrap(aCx, this);
}