Bug 290247: fix 3 long-standing do_CreateInstanceFromCategory bugs:
- initialize mOuter so we don't always try to aggregate against a random stack pointer; - don't try to store through the oft-null mErrorPtr - set rv so that we actually check CreateInstanceByContractID's return r=bsmedberg, sr=darin, a=brendan git-svn-id: svn://10.0.0.236/trunk@172105 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
8623cdaea5
commit
c6fb08a2e1
@ -53,6 +53,7 @@ public:
|
||||
nsISupports *aOuter, nsresult *aErrorPtr)
|
||||
: mCategory(aCategory),
|
||||
mEntry(aEntry),
|
||||
mOuter(aOuter),
|
||||
mErrorPtr(aErrorPtr)
|
||||
{
|
||||
// nothing else to do;
|
||||
|
||||
@ -197,16 +197,14 @@ nsCreateInstanceFromCategory::operator()(const nsIID& aIID, void** aInstancePtr)
|
||||
NS_GetComponentManager(getter_AddRefs(compMgr));
|
||||
if (!compMgr)
|
||||
return NS_ERROR_FAILURE;
|
||||
compMgr->CreateInstanceByContractID(value,
|
||||
mOuter,
|
||||
aIID,
|
||||
aInstancePtr);
|
||||
rv = compMgr->CreateInstanceByContractID(value, mOuter, aIID, aInstancePtr);
|
||||
if (NS_FAILED(rv)) {
|
||||
error:
|
||||
*aInstancePtr = 0;
|
||||
}
|
||||
|
||||
*mErrorPtr = rv;
|
||||
if (mErrorPtr)
|
||||
*mErrorPtr = rv;
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user