mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 15:23:51 +00:00
Bug 692342 - Move some things below Do datum_type resolution in ConvertDependentParam. r=mrbkap
This commit is contained in:
parent
1c570b90b8
commit
cfa9352217
@ -2732,25 +2732,25 @@ CallMethodHelper::ConvertDependentParam(uint8 i)
|
||||
nsXPTCVariant* dp = GetDispatchParam(i);
|
||||
dp->type = type;
|
||||
|
||||
// Specify the correct storage/calling semantics.
|
||||
if (paramInfo.IsIndirect())
|
||||
dp->SetIndirect();
|
||||
|
||||
if (isArray) {
|
||||
if (NS_FAILED(mIFaceInfo->GetTypeForParam(mVTableIndex, ¶mInfo, 1,
|
||||
&datum_type))) {
|
||||
Throw(NS_ERROR_XPC_CANT_GET_ARRAY_INFO, mCallContext);
|
||||
return JS_FALSE;
|
||||
}
|
||||
if (datum_type.IsPointer())
|
||||
dp->SetValNeedsCleanup();
|
||||
} else {
|
||||
datum_type = type;
|
||||
}
|
||||
|
||||
if (datum_type.IsInterfacePointer()) {
|
||||
// Specify the correct storage/calling semantics.
|
||||
if (paramInfo.IsIndirect())
|
||||
dp->SetIndirect();
|
||||
|
||||
if (isArray && datum_type.IsPointer())
|
||||
dp->SetValNeedsCleanup();
|
||||
|
||||
if (datum_type.IsInterfacePointer())
|
||||
dp->SetValNeedsCleanup();
|
||||
}
|
||||
|
||||
// Even if there's nothing to convert, we still need to examine the
|
||||
// JSObject container for out-params. If it's null or otherwise invalid,
|
||||
|
Loading…
Reference in New Issue
Block a user