Created attachment 651713 [details] [diff] [review]
Treating an nsresult as a bool is incorrect, because there are success codes other than NS_OK (although they're rarely used!). Without this patch, the file will fail to compile when nsresult becomes an enum class, because enum classes don't implicitly convert to other types.
This patch will only change behavior if something was using some value in the range 0 < x < 0x80000000 as an nsresult, and expecting it to be treated as an error. This is probably not the case here, but I didn't check every usage of this macro in the file -- there are a lot. Generally this only happens with things that grossly abuse nsresult, like some nsISupportsArray methods that return a boolean when they're declared to return an nsresult.
> but I didn't check every usage of this macro in the file -- there are a lot.
All the uses look fine to me, although I didn't go and check that the functions involved return what they seem to return.
This will likely burn a test if someone does something wrong, so I'm OK with it.
Green try: https://tbpl.mozilla.org/?tree=Try&rev=da4047717ef7