Fix crash when nsJavaXPTCStub represents a non-Mozilla class object. Not part of default build.

Original committer: pedemont%us.ibm.com
Original revision: 1.9
Original date: 2004/10/01 23:08:34


git-svn-id: svn://10.0.0.236/trunk@212470 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
pedemont%us.ibm.com
2006-09-27 15:06:25 +00:00
parent 05f82e167e
commit 2242f6576c

View File

@@ -200,18 +200,22 @@ nsJavaXPTCStub::QueryInterface(const nsID &aIID, void **aInstancePtr)
PRBool
nsJavaXPTCStub::SupportsIID(const nsID &iid)
{
PRBool match;
nsCOMPtr<nsIInterfaceInfo> iter = mIInfo;
do
{
if (NS_SUCCEEDED(iter->IsIID(&iid, &match)) && match)
return PR_TRUE;
// Sometimes mIInfo will be null, particularly when nsJavaXPTCStub represents
// a custom (non-Mozilla) interface.
if (mIInfo) {
PRBool match;
nsCOMPtr<nsIInterfaceInfo> iter = mIInfo;
do
{
if (NS_SUCCEEDED(iter->IsIID(&iid, &match)) && match)
return PR_TRUE;
nsCOMPtr<nsIInterfaceInfo> parent;
iter->GetParent(getter_AddRefs(parent));
iter = parent;
nsCOMPtr<nsIInterfaceInfo> parent;
iter->GetParent(getter_AddRefs(parent));
iter = parent;
}
while (iter != nsnull);
}
while (iter != nsnull);
return PR_FALSE;
}