Bug 1299384 - Use MOZ_MUST_USE with NS_warn_if_impl(). r=erahm.
This change avoids lots of false positives for Coverity's CHECKED_RETURN warning, caused by NS_WARN_IF's current use in both statement-style and expression-style. In the case where the code within the NS_WARN_IF has side-effects, I made the following change. > NS_WARN_IF(NS_FAILED(FunctionWithSideEffects())); > --> > Unused << NS_WARN_IF(NS_FAILED(FunctionWithSideEffects())); In the case where the code within the NS_WARN_IF lacks side-effects, I made the following change. > NS_WARN_IF(!condWithoutSideEffects); > --> > NS_WARNING_ASSERTION(condWithoutSideEffects, "msg"); This has two improvements. - The condition is not evaluated in non-debug builds. - The sense of the condition is inverted to the familiar "this condition should be true" sense used in assertions. A common variation on the side-effect-free case is the following. > nsresult rv = Fn(); > NS_WARN_IF_(NS_FAILED(rv)); > --> > DebugOnly<nsresult rv> = Fn(); > NS_WARNING_ASSERTION(NS_SUCCEEDED(rv), "Fn failed");
This commit is contained in:
@@ -64,6 +64,7 @@
|
||||
#include "mozilla/Telemetry.h"
|
||||
#include "mozilla/TimelineConsumers.h"
|
||||
#include "mozilla/TimelineMarker.h"
|
||||
#include "mozilla/Unused.h"
|
||||
#include "mozilla/DebuggerOnGCRunnable.h"
|
||||
#include "mozilla/dom/DOMJSClass.h"
|
||||
#include "mozilla/dom/ProfileTimelineMarkerBinding.h"
|
||||
@@ -817,10 +818,11 @@ CycleCollectedJSRuntime::GCSliceCallback(JSContext* aContext,
|
||||
|
||||
if (aProgress == JS::GC_CYCLE_END) {
|
||||
JS::gcreason::Reason reason = aDesc.reason_;
|
||||
NS_WARN_IF(NS_FAILED(DebuggerOnGCRunnable::Enqueue(aContext, aDesc)) &&
|
||||
reason != JS::gcreason::SHUTDOWN_CC &&
|
||||
reason != JS::gcreason::DESTROY_RUNTIME &&
|
||||
reason != JS::gcreason::XPCONNECT_SHUTDOWN);
|
||||
Unused <<
|
||||
NS_WARN_IF(NS_FAILED(DebuggerOnGCRunnable::Enqueue(aContext, aDesc)) &&
|
||||
reason != JS::gcreason::SHUTDOWN_CC &&
|
||||
reason != JS::gcreason::DESTROY_RUNTIME &&
|
||||
reason != JS::gcreason::XPCONNECT_SHUTDOWN);
|
||||
}
|
||||
|
||||
if (self->mPrevGCSliceCallback) {
|
||||
|
||||
Reference in New Issue
Block a user