Bug 783523 - Fix platform-specific nsresult misuse; r=ehsan,tbsaunde,smaug

This commit is contained in:
Aryeh Gregor 2012-08-16 14:58:11 +03:00
Родитель baacf2d48f
Коммит 291bfa222b
22 изменённых файлов: 60 добавлений и 47 удалений

Просмотреть файл

@ -137,9 +137,9 @@ __try {
if (IsDefunct()) if (IsDefunct())
return E_FAIL; return E_FAIL;
if (NS_FAILED(GetCharacterExtents(aStartIndex, aEndIndex, if (FAILED(GetCharacterExtents(aStartIndex, aEndIndex,
aX, aY, aWidth, aHeight))) { aX, aY, aWidth, aHeight))) {
return NS_ERROR_FAILURE; return E_FAIL;
} }
} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } } __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { }
@ -191,7 +191,7 @@ TextLeafAccessibleWrap::GetPointFromOffset(nsIFrame* aContainingFrame,
/* /*
* Given an offset, the x, y, width, and height values are filled appropriately. * Given an offset, the x, y, width, and height values are filled appropriately.
*/ */
nsresult HRESULT
TextLeafAccessibleWrap::GetCharacterExtents(int32_t aStartOffset, TextLeafAccessibleWrap::GetCharacterExtents(int32_t aStartOffset,
int32_t aEndOffset, int32_t aEndOffset,
int32_t* aX, int32_t* aX,
@ -207,7 +207,7 @@ TextLeafAccessibleWrap::GetCharacterExtents(int32_t aStartOffset,
nsPresContext* presContext = mDoc->PresContext(); nsPresContext* presContext = mDoc->PresContext();
nsIFrame *frame = GetFrame(); nsIFrame *frame = GetFrame();
NS_ENSURE_TRUE(frame, NS_ERROR_FAILURE); NS_ENSURE_TRUE(frame, E_FAIL);
nsPoint startPoint, endPoint; nsPoint startPoint, endPoint;
nsIFrame *startFrame = GetPointFromOffset(frame, aStartOffset, true, startPoint); nsIFrame *startFrame = GetPointFromOffset(frame, aStartOffset, true, startPoint);
@ -234,7 +234,7 @@ TextLeafAccessibleWrap::GetCharacterExtents(int32_t aStartOffset,
*aWidth = sum.width; *aWidth = sum.width;
*aHeight = sum.height; *aHeight = sum.height;
return NS_OK; return S_OK;
} }
STDMETHODIMP STDMETHODIMP

Просмотреть файл

@ -55,9 +55,9 @@ public:
/* [retval][out] */ BSTR __RPC_FAR *fontFamily); /* [retval][out] */ BSTR __RPC_FAR *fontFamily);
protected: protected:
nsresult GetCharacterExtents(int32_t aStartOffset, int32_t aEndOffset, HRESULT GetCharacterExtents(int32_t aStartOffset, int32_t aEndOffset,
int32_t* aX, int32_t* aY, int32_t* aX, int32_t* aY,
int32_t* aWidth, int32_t* aHeight); int32_t* aWidth, int32_t* aHeight);
// Return child frame containing offset on success // Return child frame containing offset on success
nsIFrame* GetPointFromOffset(nsIFrame *aContainingFrame, nsIFrame* GetPointFromOffset(nsIFrame *aContainingFrame,

Просмотреть файл

@ -56,7 +56,8 @@ NS_IMPL_ISUPPORTS_INHERITED1(nsAccessNodeWrap, nsAccessNode, nsIWinAccessNode);
NS_IMETHODIMP NS_IMETHODIMP
nsAccessNodeWrap::QueryNativeInterface(REFIID aIID, void** aInstancePtr) nsAccessNodeWrap::QueryNativeInterface(REFIID aIID, void** aInstancePtr)
{ {
return QueryInterface(aIID, aInstancePtr); // XXX Wrong for E_NOINTERFACE
return static_cast<nsresult>(QueryInterface(aIID, aInstancePtr));
} }
//----------------------------------------------------- //-----------------------------------------------------

Просмотреть файл

@ -613,7 +613,7 @@ nsWindowsShellService::SetDefaultBrowser(bool aClaimAllTypes, bool aForAllUsers)
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
bool isDefaultBrowser = false; bool isDefaultBrowser = false;
rv = NS_SUCCEEDED(IsDefaultBrowser(&isDefaultBrowser)) && rv = NS_SUCCEEDED(IsDefaultBrowser(&isDefaultBrowser)) &&
isDefaultBrowser ? S_OK : NS_ERROR_FAILURE; isDefaultBrowser ? NS_OK : NS_ERROR_FAILURE;
} }
return rv; return rv;
} }

Просмотреть файл

@ -27,7 +27,7 @@ nsPrintProgress::nsPrintProgress()
m_closeProgress = false; m_closeProgress = false;
m_processCanceled = false; m_processCanceled = false;
m_pendingStateFlags = -1; m_pendingStateFlags = -1;
m_pendingStateValue = 0; m_pendingStateValue = NS_OK;
} }
nsPrintProgress::~nsPrintProgress() nsPrintProgress::~nsPrintProgress()
@ -88,7 +88,9 @@ NS_IMETHODIMP nsPrintProgress::OpenProgressDialog(nsIDOMWindow *parent,
NS_IMETHODIMP nsPrintProgress::CloseProgressDialog(bool forceClose) NS_IMETHODIMP nsPrintProgress::CloseProgressDialog(bool forceClose)
{ {
m_closeProgress = true; m_closeProgress = true;
return OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, forceClose); // XXX Casting bool to nsresult
return OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP,
static_cast<nsresult>(forceClose));
} }
/* nsIPrompt GetPrompter (); */ /* nsIPrompt GetPrompter (); */
@ -113,7 +115,7 @@ NS_IMETHODIMP nsPrintProgress::GetProcessCanceledByUser(bool *aProcessCanceledBy
NS_IMETHODIMP nsPrintProgress::SetProcessCanceledByUser(bool aProcessCanceledByUser) NS_IMETHODIMP nsPrintProgress::SetProcessCanceledByUser(bool aProcessCanceledByUser)
{ {
m_processCanceled = aProcessCanceledByUser; m_processCanceled = aProcessCanceledByUser;
OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, false); OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, NS_OK);
return NS_OK; return NS_OK;
} }
@ -132,10 +134,11 @@ NS_IMETHODIMP nsPrintProgress::RegisterListener(nsIWebProgressListener * listene
{ {
m_listenerList->AppendElement(listener); m_listenerList->AppendElement(listener);
if (m_closeProgress || m_processCanceled) if (m_closeProgress || m_processCanceled)
listener->OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, 0); listener->OnStateChange(nullptr, nullptr,
nsIWebProgressListener::STATE_STOP, NS_OK);
else else
{ {
listener->OnStatusChange(nullptr, nullptr, 0, m_pendingStatus.get()); listener->OnStatusChange(nullptr, nullptr, NS_OK, m_pendingStatus.get());
if (m_pendingStateFlags != -1) if (m_pendingStateFlags != -1)
listener->OnStateChange(nullptr, nullptr, m_pendingStateFlags, m_pendingStateValue); listener->OnStateChange(nullptr, nullptr, m_pendingStateFlags, m_pendingStateValue);
} }

Просмотреть файл

@ -33,7 +33,7 @@ private:
bool m_processCanceled; bool m_processCanceled;
nsString m_pendingStatus; nsString m_pendingStatus;
int32_t m_pendingStateFlags; int32_t m_pendingStateFlags;
int32_t m_pendingStateValue; nsresult m_pendingStateValue;
nsCOMPtr<nsIDOMWindow> m_dialog; nsCOMPtr<nsIDOMWindow> m_dialog;
nsCOMPtr<nsISupportsArray> m_listenerList; nsCOMPtr<nsISupportsArray> m_listenerList;
nsCOMPtr<nsIObserver> m_observer; nsCOMPtr<nsIObserver> m_observer;

Просмотреть файл

@ -57,7 +57,7 @@ nsPrintProgress::nsPrintProgress()
m_closeProgress = false; m_closeProgress = false;
m_processCanceled = false; m_processCanceled = false;
m_pendingStateFlags = -1; m_pendingStateFlags = -1;
m_pendingStateValue = 0; m_pendingStateValue = NS_OK;
} }
nsPrintProgress::~nsPrintProgress() nsPrintProgress::~nsPrintProgress()
@ -116,7 +116,9 @@ NS_IMETHODIMP nsPrintProgress::OpenProgressDialog(nsIDOMWindow *parent,
NS_IMETHODIMP nsPrintProgress::CloseProgressDialog(bool forceClose) NS_IMETHODIMP nsPrintProgress::CloseProgressDialog(bool forceClose)
{ {
m_closeProgress = true; m_closeProgress = true;
return OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, forceClose); // XXX Casting from bool to nsresult
return OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP,
static_cast<nsresult>(forceClose));
} }
/* nsIPrompt GetPrompter (); */ /* nsIPrompt GetPrompter (); */
@ -141,7 +143,7 @@ NS_IMETHODIMP nsPrintProgress::GetProcessCanceledByUser(bool *aProcessCanceledBy
NS_IMETHODIMP nsPrintProgress::SetProcessCanceledByUser(bool aProcessCanceledByUser) NS_IMETHODIMP nsPrintProgress::SetProcessCanceledByUser(bool aProcessCanceledByUser)
{ {
m_processCanceled = aProcessCanceledByUser; m_processCanceled = aProcessCanceledByUser;
OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, false); OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, NS_OK);
return NS_OK; return NS_OK;
} }
@ -160,10 +162,11 @@ NS_IMETHODIMP nsPrintProgress::RegisterListener(nsIWebProgressListener * listene
{ {
m_listenerList->AppendElement(listener); m_listenerList->AppendElement(listener);
if (m_closeProgress || m_processCanceled) if (m_closeProgress || m_processCanceled)
listener->OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, 0); listener->OnStateChange(nullptr, nullptr,
nsIWebProgressListener::STATE_STOP, NS_OK);
else else
{ {
listener->OnStatusChange(nullptr, nullptr, 0, m_pendingStatus.get()); listener->OnStatusChange(nullptr, nullptr, NS_OK, m_pendingStatus.get());
if (m_pendingStateFlags != -1) if (m_pendingStateFlags != -1)
listener->OnStateChange(nullptr, nullptr, m_pendingStateFlags, m_pendingStateValue); listener->OnStateChange(nullptr, nullptr, m_pendingStateFlags, m_pendingStateValue);
} }

Просмотреть файл

@ -34,7 +34,7 @@ private:
bool m_processCanceled; bool m_processCanceled;
nsString m_pendingStatus; nsString m_pendingStatus;
int32_t m_pendingStateFlags; int32_t m_pendingStateFlags;
int32_t m_pendingStateValue; nsresult m_pendingStateValue;
nsCOMPtr<nsIDOMWindow> m_dialog; nsCOMPtr<nsIDOMWindow> m_dialog;
nsCOMPtr<nsISupportsArray> m_listenerList; nsCOMPtr<nsISupportsArray> m_listenerList;
nsCOMPtr<nsIObserver> m_observer; nsCOMPtr<nsIObserver> m_observer;

Просмотреть файл

@ -1214,7 +1214,7 @@ gfxDWriteFontList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf,
SizeOfExcludingThis(aMallocSizeOf, aSizes); SizeOfExcludingThis(aMallocSizeOf, aSizes);
} }
static nsresult GetFamilyName(IDWriteFont *aFont, nsString& aFamilyName) static HRESULT GetFamilyName(IDWriteFont *aFont, nsString& aFamilyName)
{ {
HRESULT hr; HRESULT hr;
nsRefPtr<IDWriteFontFamily> family; nsRefPtr<IDWriteFontFamily> family;
@ -1256,7 +1256,7 @@ static nsresult GetFamilyName(IDWriteFont *aFont, nsString& aFamilyName)
} }
if (!name.SetLength(length + 1)) { if (!name.SetLength(length + 1)) {
return NS_ERROR_FAILURE; return E_FAIL;
} }
hr = familyNames->GetString(index, name.Elements(), length + 1); hr = familyNames->GetString(index, name.Elements(), length + 1);
if (FAILED(hr)) { if (FAILED(hr)) {
@ -1264,7 +1264,7 @@ static nsresult GetFamilyName(IDWriteFont *aFont, nsString& aFamilyName)
} }
aFamilyName.Assign(name.Elements()); aFamilyName.Assign(name.Elements());
return NS_OK; return S_OK;
} }
// bug 705594 - the method below doesn't actually do any "drawing", it's only // bug 705594 - the method below doesn't actually do any "drawing", it's only

Просмотреть файл

@ -1282,7 +1282,10 @@ XPCConvert::JSValToXPCException(XPCCallContext& ccx,
if (number > 0.0 && if (number > 0.0 &&
number < (double)0xffffffff && number < (double)0xffffffff &&
0.0 == fmod(number,1)) { 0.0 == fmod(number,1)) {
rv = (nsresult) number; // Visual Studio 9 doesn't allow casting directly from a
// double to an enumeration type, contrary to 5.2.9(10) of
// C++11, so add an intermediate cast.
rv = (nsresult)(uint32_t) number;
if (NS_FAILED(rv)) if (NS_FAILED(rv))
isResult = true; isResult = true;
} }

Просмотреть файл

@ -294,7 +294,10 @@ nsXPCWrappedJSClass::CallQueryInterfaceOnJSObject(XPCCallContext& ccx,
} else if (JSVAL_IS_NUMBER(jsexception)) { } else if (JSVAL_IS_NUMBER(jsexception)) {
// JS often throws an nsresult. // JS often throws an nsresult.
if (JSVAL_IS_DOUBLE(jsexception)) if (JSVAL_IS_DOUBLE(jsexception))
rv = (nsresult)(JSVAL_TO_DOUBLE(jsexception)); // Visual Studio 9 doesn't allow casting directly from
// a double to an enumeration type, contrary to
// 5.2.9(10) of C++11, so add an intermediate cast.
rv = (nsresult)(uint32_t)(JSVAL_TO_DOUBLE(jsexception));
else else
rv = (nsresult)(JSVAL_TO_INT(jsexception)); rv = (nsresult)(JSVAL_TO_INT(jsexception));

Просмотреть файл

@ -245,7 +245,7 @@ NS_IMETHODIMP AndroidCameraInputStream::AsyncWait(nsIInputStreamCallback *aCallb
} }
NS_IMETHODIMP AndroidCameraInputStream::CloseWithStatus(uint32_t status) NS_IMETHODIMP AndroidCameraInputStream::CloseWithStatus(nsresult status)
{ {
AndroidCameraInputStream::doClose(); AndroidCameraInputStream::doClose();
return NS_OK; return NS_OK;

Просмотреть файл

@ -537,7 +537,7 @@ NS_IMETHODIMP GonkCameraInputStream::AsyncWait(nsIInputStreamCallback *aCallback
} }
NS_IMETHODIMP GonkCameraInputStream::CloseWithStatus(uint32_t status) NS_IMETHODIMP GonkCameraInputStream::CloseWithStatus(nsresult status)
{ {
GonkCameraInputStream::doClose(); GonkCameraInputStream::doClose();
return NS_OK; return NS_OK;

Просмотреть файл

@ -95,7 +95,7 @@ NS_IMETHODIMP nsNativeAppSupportCocoa::Start(bool *_retval)
#endif #endif
if ((err != noErr) || response < minimumOS) { if ((err != noErr) || response < minimumOS) {
NSLog(@"Minimum OS version requirement not met!"); NSLog(@"Minimum OS version requirement not met!");
return false; return NS_OK;
} }
*_retval = true; *_retval = true;

Просмотреть файл

@ -329,9 +329,12 @@ CopyUpdaterIntoUpdateDir(nsIFile *greDir, nsIFile *appDir, nsIFile *updateDir,
return false; return false;
#if defined(XP_MACOSX) #if defined(XP_MACOSX)
rv = updater->AppendNative(NS_LITERAL_CSTRING(kUpdaterApp)); rv = updater->AppendNative(NS_LITERAL_CSTRING(kUpdaterApp));
rv |= updater->AppendNative(NS_LITERAL_CSTRING("Contents")); nsresult tmp = updater->AppendNative(NS_LITERAL_CSTRING("Contents"));
rv |= updater->AppendNative(NS_LITERAL_CSTRING("MacOS")); if (NS_FAILED(tmp)) {
if (NS_FAILED(rv)) rv = tmp;
}
tmp = updater->AppendNative(NS_LITERAL_CSTRING("MacOS"));
if (NS_FAILED(tmp) || NS_FAILED(rv))
return false; return false;
#endif #endif
rv = updater->AppendNative(NS_LITERAL_CSTRING(kUpdaterBin)); rv = updater->AppendNative(NS_LITERAL_CSTRING(kUpdaterBin));

Просмотреть файл

@ -1565,8 +1565,8 @@ HRESULT nsDataObj::DropTempFile(FORMATETC& aFE, STGMEDIUM& aSTG)
ULONG readCount = 0; ULONG readCount = 0;
uint32_t writeCount = 0; uint32_t writeCount = 0;
while (1) { while (1) {
rv = pStream->Read(buffer, sizeof(buffer), &readCount); HRESULT hres = pStream->Read(buffer, sizeof(buffer), &readCount);
if (NS_FAILED(rv)) if (FAILED(hres))
return E_FAIL; return E_FAIL;
if (readCount == 0) if (readCount == 0)
break; break;

Просмотреть файл

@ -2197,7 +2197,7 @@ nsWindow::SetNonClientMargins(nsIntMargin &margins)
mCustomNonClient = true; mCustomNonClient = true;
if (!UpdateNonClientMargins()) { if (!UpdateNonClientMargins()) {
NS_WARNING("UpdateNonClientMargins failed!"); NS_WARNING("UpdateNonClientMargins failed!");
return false; return NS_OK;
} }
return NS_OK; return NS_OK;

Просмотреть файл

@ -456,7 +456,7 @@ NS_StackWalk(NS_WalkStackCallback aCallback, uint32_t aSkipFrames,
struct WalkStackData data; struct WalkStackData data;
if (!EnsureImageHlpInitialized()) if (!EnsureImageHlpInitialized())
return false; return NS_OK;
HANDLE targetThread = ::GetCurrentThread(); HANDLE targetThread = ::GetCurrentThread();
data.walkCallingThread = true; data.walkCallingThread = true;

Просмотреть файл

@ -100,7 +100,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
#if defined(XP_WIN) #if defined(XP_WIN)
HRESULT hr = CoCreateGuid((GUID*)id); HRESULT hr = CoCreateGuid((GUID*)id);
if (NS_FAILED(hr)) if (FAILED(hr))
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
#elif defined(XP_MACOSX) #elif defined(XP_MACOSX)
CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault); CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);

Просмотреть файл

@ -108,7 +108,7 @@ invoke_copy_to_stack(uint32_t* stk, uint32_t *end,
} }
} }
typedef uint32_t (*vtable_func)(nsISupports *, uint32_t, uint32_t, uint32_t); typedef nsresult (*vtable_func)(nsISupports *, uint32_t, uint32_t, uint32_t);
EXPORT_XPCOM_API(nsresult) EXPORT_XPCOM_API(nsresult)
NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,

Просмотреть файл

@ -156,10 +156,10 @@ NS_InvokeByIndex_P(nsISupports * that, uint32_t methodIndex,
methodAddress += 8 * methodIndex; methodAddress += 8 * methodIndex;
methodAddress = *((uint64_t *)methodAddress); methodAddress = *((uint64_t *)methodAddress);
typedef uint32_t (*Method)(uint64_t, uint64_t, uint64_t, uint64_t, typedef nsresult (*Method)(uint64_t, uint64_t, uint64_t, uint64_t,
uint64_t, uint64_t, double, double, double, uint64_t, uint64_t, double, double, double,
double, double, double, double, double); double, double, double, double, double);
uint32_t result = ((Method)methodAddress)(a0, a1, a2, a3, a4, a5, nsresult result = ((Method)methodAddress)(a0, a1, a2, a3, a4, a5,
d0, d1, d2, d3, d4, d5, d0, d1, d2, d3, d4, d5,
d6, d7); d6, d7);
return result; return result;

Просмотреть файл

@ -83,7 +83,7 @@ public:
printf("nsTestComFactory: "); printf("nsTestComFactory: ");
printf("%s", (aLock ? "Locking server" : "Unlocking server")); printf("%s", (aLock ? "Locking server" : "Unlocking server"));
printf("\n"); printf("\n");
return S_OK; return NS_OK;
} }
}; };
@ -127,11 +127,8 @@ int main(int argc, char *argv[])
IUnknown *iUnknown; IUnknown *iUnknown;
nsITestCom *iTestCom; nsITestCom *iTestCom;
nsresult res;
iFactory->LockServer(TRUE); iFactory->LockServer(TRUE);
res = iFactory->CreateInstance(NULL, iFactory->CreateInstance(NULL, IID_IUnknown, (void **) &iUnknown);
IID_IUnknown,
(void **) &iUnknown);
iFactory->LockServer(FALSE); iFactory->LockServer(FALSE);
GUID testGUID = NS_ITEST_COM_IID; GUID testGUID = NS_ITEST_COM_IID;