Bug 1487082 - Resolve potential for build bustage regarding bad implicit conversion constructors

* Part 1: make conversion CTORs explicit.
  Minor tweaks to conform with new(ish) static analysis rule which flags up implicit single-argument conversion constructors.
* Part 2: fix a couple of double-mRefCnt declaration errors.
* Part 3: Fix unsafe use of NS_ConvertASCIItoUTF16().

Tag #1273
This commit is contained in:
Matt A. Tobin 2019-11-10 19:11:03 -05:00 committed by Roy Tam
commit eaac1c967d
57 changed files with 71 additions and 69 deletions

View file

@ -27,7 +27,7 @@ class SendOperationListener : public nsIMsgSendListener,
public nsIMsgCopyServiceListener
{
public:
SendOperationListener(nsMsgSendLater *aSendLater);
explicit SendOperationListener(nsMsgSendLater *aSendLater);
NS_DECL_ISUPPORTS
NS_DECL_NSIMSGSENDLISTENER

View file

@ -22,7 +22,7 @@ typedef int (*MSG_SendPartWriteFunc)(const char* line, int32_t size,
class nsMsgSendPart {
typedef mozilla::mailnews::MimeEncoder MimeEncoder;
public:
nsMsgSendPart(nsIMsgSend* state, const char *part_charset = NULL);
explicit nsMsgSendPart(nsIMsgSend* state, const char *part_charset = NULL);
virtual ~nsMsgSendPart(); // Note that the destructor also destroys
// any children that were added.

View file

@ -2261,10 +2261,12 @@ nsSmtpProtocol::GetUsernamePassword(nsACString &aUsername,
nsCString hostname;
rv = smtpServer->GetHostname(hostname);
NS_ENSURE_SUCCESS(rv, rv);
nsAutoString hostnameUTF16;
CopyASCIItoUTF16(hostname, hostnameUTF16);
const char16_t *formatStrings[] =
{
NS_ConvertASCIItoUTF16(hostname).get(),
hostnameUTF16.get(),
nullptr
};

View file

@ -109,7 +109,7 @@ public:
#endif
// Creating a protocol instance requires the URL which needs to be run.
nsSmtpProtocol(nsIURI * aURL);
explicit nsSmtpProtocol(nsIURI * aURL);
virtual nsresult LoadUrl(nsIURI * aURL, nsISupports * aConsumer = nullptr) override;
virtual nsresult SendData(const char * dataBuffer, bool aSuppressLogging = false) override;

View file

@ -85,7 +85,7 @@ private:
class nsURLFetcherStreamConsumer : public nsIStreamListener
{
public:
nsURLFetcherStreamConsumer(nsURLFetcher* urlFetcher);
explicit nsURLFetcherStreamConsumer(nsURLFetcher* urlFetcher);
/* additional members */
NS_DECL_ISUPPORTS