Bug 671185 - Incorrect return of NS_ERROR_* codes in functions returning PRBool, r=mak,ehsan,taras,biesi,pike,khuey,dholbert,josh,bjacob,bsmith

This commit is contained in:
Michael Wu 2011-07-25 21:57:58 -07:00
parent 6b6e48aa8d
commit b34f351453
14 changed files with 47 additions and 32 deletions

View File

@ -282,11 +282,11 @@ nsProfileMigrator::ImportRegistryProfiles(const nsACString& aAppName)
nsCOMPtr<nsIToolkitProfileService> profileSvc
(do_GetService(NS_PROFILESERVICE_CONTRACTID));
NS_ENSURE_TRUE(profileSvc, NS_ERROR_FAILURE);
NS_ENSURE_TRUE(profileSvc, PR_FALSE);
nsCOMPtr<nsIProperties> dirService
(do_GetService("@mozilla.org/file/directory_service;1"));
NS_ENSURE_TRUE(dirService, NS_ERROR_FAILURE);
NS_ENSURE_TRUE(dirService, PR_FALSE);
nsCOMPtr<nsILocalFile> regFile;
#ifdef XP_WIN

View File

@ -599,7 +599,7 @@ WebGLContext::InitAndValidateGL()
}
// Check the shader validator pref
NS_ENSURE_TRUE(Preferences::GetRootBranch(), NS_ERROR_FAILURE);
NS_ENSURE_TRUE(Preferences::GetRootBranch(), PR_FALSE);
mShaderValidation =
Preferences::GetBool("webgl.shader_validator", mShaderValidation);

View File

@ -891,8 +891,7 @@ nsresult nsPluginStreamListenerPeer::ServeStreamAsFile(nsIRequest *request,
PRBool
nsPluginStreamListenerPeer::UseExistingPluginCacheFile(nsPluginStreamListenerPeer* psi)
{
NS_ENSURE_ARG_POINTER(psi);
NS_ENSURE_TRUE(psi, PR_FALSE);
if (psi->mLength == mLength &&
psi->mModified == mModified &&

View File

@ -148,7 +148,7 @@ nsSelectionState::IsCollapsed()
PRBool
nsSelectionState::IsEqual(nsSelectionState *aSelState)
{
NS_ENSURE_TRUE(aSelState, NS_ERROR_NULL_POINTER);
NS_ENSURE_TRUE(aSelState, PR_FALSE);
PRUint32 i, myCount = mArray.Length(), itsCount = aSelState->mArray.Length();
if (myCount != itsCount) return PR_FALSE;
if (myCount < 1) return PR_FALSE;

View File

@ -189,7 +189,7 @@ PRBool CapturePickerAcceptCallback(const nsAString& aAccept, void* aClosure)
NS_LITERAL_STRING("image/"))) {
rv = closure->picker->ModeMayBeAvailable(nsICapturePicker::MODE_STILL,
&captureEnabled);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_SUCCESS(rv, PR_TRUE);
if (captureEnabled) {
*closure->mode = nsICapturePicker::MODE_STILL;
return PR_FALSE;
@ -198,7 +198,7 @@ PRBool CapturePickerAcceptCallback(const nsAString& aAccept, void* aClosure)
NS_LITERAL_STRING("audio/"))) {
rv = closure->picker->ModeMayBeAvailable(nsICapturePicker::MODE_AUDIO_CLIP,
&captureEnabled);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_SUCCESS(rv, PR_TRUE);
if (captureEnabled) {
*closure->mode = nsICapturePicker::MODE_AUDIO_CLIP;
return PR_FALSE;
@ -207,17 +207,17 @@ PRBool CapturePickerAcceptCallback(const nsAString& aAccept, void* aClosure)
NS_LITERAL_STRING("video/"))) {
rv = closure->picker->ModeMayBeAvailable(nsICapturePicker::MODE_VIDEO_CLIP,
&captureEnabled);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_SUCCESS(rv, PR_TRUE);
if (captureEnabled) {
*closure->mode = nsICapturePicker::MODE_VIDEO_CLIP;
return PR_FALSE;
}
rv = closure->picker->ModeMayBeAvailable(nsICapturePicker::MODE_VIDEO_NO_SOUND_CLIP,
&captureEnabled);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_SUCCESS(rv, PR_TRUE);
if (captureEnabled) {
*closure->mode = nsICapturePicker::MODE_VIDEO_NO_SOUND_CLIP;
return PR_FALSE;;
return PR_FALSE;
}
}
return PR_TRUE;

View File

@ -157,7 +157,7 @@ SVGDrawingCallback::operator()(gfxContext* aContext,
nsCOMPtr<nsIPresShell> presShell;
if (NS_FAILED(mSVGDocumentWrapper->GetPresShell(getter_AddRefs(presShell)))) {
NS_WARNING("Unable to draw -- presShell lookup failed");
return NS_ERROR_FAILURE;
return PR_FALSE;
}
NS_ABORT_IF_FALSE(presShell, "GetPresShell succeeded but returned null");

View File

@ -1118,7 +1118,8 @@ nsHttpChannelAuthProvider::ConfirmAuth(const nsString &bundleKey,
PRUint32 loadFlags;
nsresult rv = mAuthChannel->GetLoadFlags(&loadFlags);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv))
return PR_TRUE;
if (mSuppressDefensiveAuth ||
!(loadFlags & nsIChannel::LOAD_INITIAL_DOCUMENT_URI))
@ -1164,11 +1165,13 @@ nsHttpChannelAuthProvider::ConfirmAuth(const nsString &bundleKey,
nsCOMPtr<nsIInterfaceRequestor> callbacks;
rv = mAuthChannel->GetNotificationCallbacks(getter_AddRefs(callbacks));
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv))
return PR_TRUE;
nsCOMPtr<nsILoadGroup> loadGroup;
rv = mAuthChannel->GetLoadGroup(getter_AddRefs(loadGroup));
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv))
return PR_TRUE;
nsCOMPtr<nsIPrompt> prompt;
NS_QueryNotificationCallbacks(callbacks, loadGroup, NS_GET_IID(nsIPrompt),

View File

@ -462,14 +462,17 @@ RDFContainerUtilsImpl::MakeContainer(nsIRDFDataSource* aDataSource, nsIRDFResour
PRBool
RDFContainerUtilsImpl::IsA(nsIRDFDataSource* aDataSource, nsIRDFResource* aResource, nsIRDFResource* aType)
{
if (!aDataSource || !aResource || !aType)
return NS_ERROR_NULL_POINTER;
if (!aDataSource || !aResource || !aType) {
NS_WARNING("Unexpected null argument");
return PR_FALSE;
}
nsresult rv;
PRBool result;
rv = aDataSource->HasAssertion(aResource, kRDF_instanceOf, aType, PR_TRUE, &result);
if (NS_FAILED(rv)) return PR_FALSE;
if (NS_FAILED(rv))
return PR_FALSE;
return result;
}

View File

@ -106,7 +106,7 @@ toHexString(const unsigned char * str, unsigned len, nsACString & out)
{
static const char digits[] = "0123456789ABCDEF";
if (!out.SetCapacity(2 * len))
return NS_ERROR_OUT_OF_MEMORY;
return PR_FALSE;
out.SetLength(0);
for (unsigned i = 0; i < len; ++i) {
out.Append(digits[str[i] >> 4]);

View File

@ -110,13 +110,19 @@ protected:
// Async statements don't need to be scoped, they are reset when done.
// So use this version for statements used async, scoped version for statements
// used sync.
#define DECLARE_AND_ASSIGN_LAZY_STMT(_localStmt, _globalStmt) \
#define DECLARE_AND_ASSIGN_LAZY_STMT_RET(_localStmt, _globalStmt, _ret) \
mozIStorageStatement* _localStmt = GetStatement(_globalStmt); \
NS_ENSURE_STATE(_localStmt)
NS_ENSURE_TRUE(_localStmt, _ret)
#define DECLARE_AND_ASSIGN_LAZY_STMT(_localStmt, _globalStmt) \
DECLARE_AND_ASSIGN_LAZY_STMT_RET(_localStmt, _globalStmt, NS_ERROR_UNEXPECTED)
#define DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT_RET(_localStmt, _globalStmt, _ret) \
DECLARE_AND_ASSIGN_LAZY_STMT_RET(_localStmt, _globalStmt, _ret); \
mozStorageStatementScoper scoper(_localStmt)
#define DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(_localStmt, _globalStmt) \
DECLARE_AND_ASSIGN_LAZY_STMT(_localStmt, _globalStmt); \
mozStorageStatementScoper scoper(_localStmt)
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT_RET(_localStmt, _globalStmt, NS_ERROR_UNEXPECTED)
/**

View File

@ -750,7 +750,7 @@ nsNavBookmarks::CreateRoot(const nsCString& name,
PRBool
nsNavBookmarks::IsRealBookmark(PRInt64 aPlaceId)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBIsRealBookmark);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT_RET(stmt, mDBIsRealBookmark, PR_FALSE);
nsresult rv = stmt->BindInt64ByName(NS_LITERAL_CSTRING("page_id"), aPlaceId);
NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "Binding failed");
rv = stmt->BindInt32ByName(NS_LITERAL_CSTRING("item_type"), TYPE_BOOKMARK);

View File

@ -1893,7 +1893,7 @@ nsNavHistory::FindLastVisit(nsIURI* aURI,
PRTime* aTime,
PRInt64* aSessionID)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBRecentVisitOfURL);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT_RET(stmt, mDBRecentVisitOfURL, PR_FALSE);
nsresult rv = URIBinder::Bind(stmt, NS_LITERAL_CSTRING("page_url"), aURI);
NS_ENSURE_SUCCESS(rv, PR_FALSE);
@ -1921,7 +1921,7 @@ nsNavHistory::FindLastVisit(nsIURI* aURI,
PRBool nsNavHistory::IsURIStringVisited(const nsACString& aURIString)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBIsPageVisited);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT_RET(stmt, mDBIsPageVisited, PR_FALSE);
nsresult rv = URIBinder::Bind(stmt, 0, aURIString);
NS_ENSURE_SUCCESS(rv, PR_FALSE);

View File

@ -68,15 +68,18 @@
#define TO_CONTAINER(_node) \
static_cast<nsNavHistoryContainerResultNode*>(_node)
#define NOTIFY_RESULT_OBSERVERS(_result, _method) \
#define NOTIFY_RESULT_OBSERVERS_RET(_result, _method, _ret) \
PR_BEGIN_MACRO \
NS_ENSURE_STATE(_result); \
NS_ENSURE_TRUE(_result, _ret); \
if (!_result->mSuppressNotifications) { \
ENUMERATE_WEAKARRAY(_result->mObservers, nsINavHistoryResultObserver, \
_method) \
} \
PR_END_MACRO
#define NOTIFY_RESULT_OBSERVERS(_result, _method) \
NOTIFY_RESULT_OBSERVERS_RET(_result, _method, NS_ERROR_UNEXPECTED)
// What we want is: NS_INTERFACE_MAP_ENTRY(self) for static IID accessors,
// but some of our classes (like nsNavHistoryResult) have an ambiguous base
// class of nsISupports which prevents this from working (the default macro
@ -1643,8 +1646,9 @@ nsNavHistoryContainerResultNode::EnsureItemPosition(PRUint32 aIndex) {
if (AreChildrenVisible()) {
nsNavHistoryResult* result = GetResult();
NOTIFY_RESULT_OBSERVERS(result,
NodeMoved(node, this, aIndex, this, newIndex));
NOTIFY_RESULT_OBSERVERS_RET(result,
NodeMoved(node, this, aIndex, this, newIndex),
PR_FALSE);
}
return PR_TRUE;
@ -3925,7 +3929,7 @@ nsNavHistoryFolderResultNode::StartIncrementalUpdate()
return PR_TRUE;
nsNavHistoryResult* result = GetResult();
NS_ENSURE_STATE(result);
NS_ENSURE_TRUE(result, PR_FALSE);
// When any observers are attached also do incremental updates if our
// parent is visible, so that twisties are drawn correctly.

View File

@ -233,7 +233,7 @@ JSHistogram_Snapshot(JSContext *cx, uintN argc, jsval *vp)
Histogram *h = static_cast<Histogram*>(JS_GetPrivate(cx, obj));
JSObject *snapshot = JS_NewObject(cx, NULL, NULL, NULL);
if (!snapshot)
return NS_ERROR_FAILURE;
return JS_FALSE;
JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(snapshot));
return ReflectHistogramSnapshot(cx, snapshot, h);
}