diff --git a/mozilla/mailnews/absync/src/nsAbSync.cpp b/mozilla/mailnews/absync/src/nsAbSync.cpp index fe9ce28fa7d..6c9ffd3fe5c 100644 --- a/mozilla/mailnews/absync/src/nsAbSync.cpp +++ b/mozilla/mailnews/absync/src/nsAbSync.cpp @@ -2822,7 +2822,7 @@ nsAbSync::AddValueToNewCard(nsIAbCard *aCard, nsString *aTagName, nsString *aTag tValue = aTagValue->ToNewCString(); if (tValue) { - rv = nsMsgI18NConvertToUnicode(nsCString("UTF-8"), nsCString(tValue), outValue); + rv = nsMsgI18NConvertToUnicode(nsCAutoString("UTF-8"), nsCAutoString(tValue), outValue); if (NS_SUCCEEDED(rv)) aTagValue->Assign(outValue); PR_FREEIF(tValue); diff --git a/mozilla/mailnews/import/src/nsImportFieldMap.cpp b/mozilla/mailnews/import/src/nsImportFieldMap.cpp index 22902a15c2c..6186872d6ad 100644 --- a/mozilla/mailnews/import/src/nsImportFieldMap.cpp +++ b/mozilla/mailnews/import/src/nsImportFieldMap.cpp @@ -241,7 +241,7 @@ NS_IMETHODIMP nsImportFieldMap::SetFieldValue(nsIAddrDatabase *database, nsIMdbR // UGGG!!!!! lot's of typing here! nsresult rv; - nsString str = value; + nsString str(value); char *pVal = str.ToNewUTF8String(); switch( fieldNum) { diff --git a/mozilla/mailnews/import/src/nsImportService.cpp b/mozilla/mailnews/import/src/nsImportService.cpp index be6d7675d0c..a848aac28a4 100644 --- a/mozilla/mailnews/import/src/nsImportService.cpp +++ b/mozilla/mailnews/import/src/nsImportService.cpp @@ -656,7 +656,7 @@ PRBool ImportModuleDesc::SupportsThings( const char *pThings) if (!(*pThings)) return( PR_TRUE); - nsCString thing = pThings; + nsCString thing(pThings); nsCString item; PRInt32 idx; diff --git a/mozilla/mailnews/news/src/nsNntpIncomingServer.cpp b/mozilla/mailnews/news/src/nsNntpIncomingServer.cpp index c4c73312a56..24e567c4073 100644 --- a/mozilla/mailnews/news/src/nsNntpIncomingServer.cpp +++ b/mozilla/mailnews/news/src/nsNntpIncomingServer.cpp @@ -1235,6 +1235,6 @@ NS_IMETHODIMP nsNntpIncomingServer::RemoveNewsgroup(const char *name) { // handle duplicates? - mSubscribedNewsgroups.RemoveCString(nsCString(name)); + mSubscribedNewsgroups.RemoveCString(nsCAutoString(name)); return NS_OK; } diff --git a/mozilla/netwerk/mime/src/nsMIMEInfoImpl.cpp b/mozilla/netwerk/mime/src/nsMIMEInfoImpl.cpp index 8804d804020..3e5c7a7bb41 100644 --- a/mozilla/netwerk/mime/src/nsMIMEInfoImpl.cpp +++ b/mozilla/netwerk/mime/src/nsMIMEInfoImpl.cpp @@ -96,7 +96,7 @@ nsMIMEInfoImpl::FirstExtension(char **_retval) { NS_IMETHODIMP nsMIMEInfoImpl::AppendExtension(const char *aExtension) { - mExtensions.AppendCString( nsCString(aExtension) ); + mExtensions.AppendCString( nsCAutoString(aExtension) ); return NS_OK; } diff --git a/mozilla/netwerk/mime/src/nsXMLMIMEDataSource.cpp b/mozilla/netwerk/mime/src/nsXMLMIMEDataSource.cpp index cc588aebc5e..ad25216c266 100644 --- a/mozilla/netwerk/mime/src/nsXMLMIMEDataSource.cpp +++ b/mozilla/netwerk/mime/src/nsXMLMIMEDataSource.cpp @@ -116,7 +116,7 @@ nsXMLMIMEDataSource::AddMapping(const char* mimeType, nsMIMEInfoImpl* anInfo = new nsMIMEInfoImpl(mimeType); if (!anInfo) return NS_ERROR_OUT_OF_MEMORY; - anInfo->mExtensions.AppendCString(nsCString(extension)); + anInfo->mExtensions.AppendCString(nsCAutoString(extension)); anInfo->mDescription.AssignWithConversion(description); anInfo->mURI = dataURI; @@ -233,7 +233,7 @@ nsXMLMIMEDataSource::AppendExtension(const char* mimeType, const char* extension nsMIMEInfoImpl* info = (nsMIMEInfoImpl*)mInfoObjects->Get(&key); if (!info) return NS_ERROR_FAILURE; - info->mExtensions.AppendCString(nsCString(extension)); + info->mExtensions.AppendCString(nsCAutoString(extension)); // Add another file extension mapping. key = extension; @@ -255,7 +255,7 @@ nsXMLMIMEDataSource::RemoveExtension(const char* aExtension) { // Next remove the root MIME mapping from the array and hash // IFF this was the only file extension mapping left. - PRBool removed = info->mExtensions.RemoveCString(nsCString(aExtension)); + PRBool removed = info->mExtensions.RemoveCString(nsCAutoString(aExtension)); NS_ASSERTION(removed, "mapping problem"); if (info->GetExtCount() == 0) { diff --git a/mozilla/netwerk/protocol/about/src/nsAboutBlank.cpp b/mozilla/netwerk/protocol/about/src/nsAboutBlank.cpp index 6196258979b..b59574aebd6 100644 --- a/mozilla/netwerk/protocol/about/src/nsAboutBlank.cpp +++ b/mozilla/netwerk/protocol/about/src/nsAboutBlank.cpp @@ -38,7 +38,7 @@ nsAboutBlank::NewChannel(nsIURI *aURI, nsIChannel **result) nsresult rv; nsIChannel* channel; nsISupports* s; - rv = NS_NewCStringInputStream(&s, nsCString(kBlankPage)); + rv = NS_NewCStringInputStream(&s, nsCAutoString(kBlankPage)); if (NS_FAILED(rv)) return rv; nsIInputStream* in; diff --git a/mozilla/netwerk/protocol/about/src/nsAboutBloat.cpp b/mozilla/netwerk/protocol/about/src/nsAboutBloat.cpp index 2437fe5d383..0366192b191 100644 --- a/mozilla/netwerk/protocol/about/src/nsAboutBloat.cpp +++ b/mozilla/netwerk/protocol/about/src/nsAboutBloat.cpp @@ -74,7 +74,7 @@ nsAboutBloat::NewChannel(nsIURI *aURI, nsIChannel **result) nsCOMPtr s; const char* msg = "Bloat statistics cleared."; - rv = NS_NewCStringInputStream(getter_AddRefs(s), nsCString(msg)); + rv = NS_NewCStringInputStream(getter_AddRefs(s), nsCAutoString(msg)); if (NS_FAILED(rv)) return rv; size = nsCRT::strlen(msg); @@ -88,7 +88,7 @@ nsAboutBloat::NewChannel(nsIURI *aURI, nsIChannel **result) nsCOMPtr s; const char* msg = "Memory leaks dumped."; - rv = NS_NewCStringInputStream(getter_AddRefs(s), nsCString(msg)); + rv = NS_NewCStringInputStream(getter_AddRefs(s), nsCAutoString(msg)); if (NS_FAILED(rv)) return rv; size = nsCRT::strlen(msg); diff --git a/mozilla/netwerk/protocol/http/src/nsHTTPHandler.cpp b/mozilla/netwerk/protocol/http/src/nsHTTPHandler.cpp index b371342ed9d..12dd9cc72c6 100644 --- a/mozilla/netwerk/protocol/http/src/nsHTTPHandler.cpp +++ b/mozilla/netwerk/protocol/http/src/nsHTTPHandler.cpp @@ -314,7 +314,7 @@ nsHTTPHandler::NewPostDataStream(PRBool isFile, } else { nsCOMPtr in; - rv = NS_NewCStringInputStream(getter_AddRefs(in), nsCString(data)); + rv = NS_NewCStringInputStream(getter_AddRefs(in), nsCAutoString(data)); if (NS_FAILED(rv)) return rv; rv = in->QueryInterface(NS_GET_IID(nsIInputStream),(void**)result); diff --git a/mozilla/string/obsolete/nsString.h b/mozilla/string/obsolete/nsString.h index 62f1f10c94d..1385e13411e 100644 --- a/mozilla/string/obsolete/nsString.h +++ b/mozilla/string/obsolete/nsString.h @@ -110,9 +110,9 @@ public: nsCString(const nsCString& aString); #ifdef NEW_STRING_APIS - nsCString( const nsAReadableCString& ); + explicit nsCString( const nsAReadableCString& ); - nsCString(const char*); + explicit nsCString(const char*); nsCString(const char*, PRInt32); #else /** @@ -833,10 +833,11 @@ public: virtual ~nsCAutoString(); nsCAutoString(); - nsCAutoString(const nsCString& ); - nsCAutoString(const char* aString); + // why does this class have no copy constructor? nsCAutoString( const nsCAutoString& ); + explicit nsCAutoString(const nsCString& ); + explicit nsCAutoString(const char* aString); nsCAutoString(const char* aString,PRInt32 aLength); - nsCAutoString(const CBufDescriptor& aBuffer); + explicit nsCAutoString(const CBufDescriptor& aBuffer); #ifndef NEW_STRING_APIS // nsCAutoString(const PRUnichar* aString,PRInt32 aLength=-1); @@ -895,6 +896,7 @@ class NS_COM NS_ConvertUCS2toUTF8 */ { public: + explicit NS_ConvertUCS2toUTF8( const PRUnichar* aString ) { Init( aString, ~PRUint32(0) /* MAXINT */); @@ -905,6 +907,7 @@ class NS_COM NS_ConvertUCS2toUTF8 Init( aString, aLength ); } + explicit NS_ConvertUCS2toUTF8( PRUnichar aChar ) { Init( &aChar, 1 ); @@ -939,7 +942,7 @@ class NS_COM NS_ConvertUCS2toUTF8 ***************************************************************/ class NS_COM nsSubsumeCStr : public nsCString { public: - nsSubsumeCStr(nsStr& aString); + explicit nsSubsumeCStr(nsStr& aString); nsSubsumeCStr(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeCStr(char* aString,PRBool assumeOwnership,PRInt32 aLength=-1); diff --git a/mozilla/string/obsolete/nsString2.h b/mozilla/string/obsolete/nsString2.h index cec472b57ec..e4c5750a165 100644 --- a/mozilla/string/obsolete/nsString2.h +++ b/mozilla/string/obsolete/nsString2.h @@ -104,9 +104,9 @@ public: nsString(const nsString& aString); #ifdef NEW_STRING_APIS - nsString(const nsAReadableString&); + explicit nsString(const nsAReadableString&); - nsString(const PRUnichar*); + explicit nsString(const PRUnichar*); nsString(const PRUnichar*, PRInt32); #else /** @@ -924,11 +924,11 @@ public: virtual ~nsAutoString(); nsAutoString(); nsAutoString(const nsAutoString& aString); - nsAutoString(const nsString& aString); - nsAutoString(const PRUnichar* aString); + explicit nsAutoString(const nsString& aString); + explicit nsAutoString(const PRUnichar* aString); nsAutoString(const PRUnichar* aString,PRInt32 aLength); - nsAutoString(PRUnichar aChar); - nsAutoString(const CBufDescriptor& aBuffer); + explicit nsAutoString(PRUnichar aChar); + explicit nsAutoString(const CBufDescriptor& aBuffer); #ifndef NEW_STRING_APIS // nsAutoString(const char* aCString,PRInt32 aLength=-1); @@ -979,15 +979,15 @@ class NS_COM NS_ConvertASCIItoUCS2 */ { public: - NS_ConvertASCIItoUCS2( const char* ); + explicit NS_ConvertASCIItoUCS2( const char* ); NS_ConvertASCIItoUCS2( const char*, PRUint32 ); - NS_ConvertASCIItoUCS2( char ); + explicit NS_ConvertASCIItoUCS2( char ); #if 0 #ifdef NEW_STRING_APIS - NS_ConvertASCIItoUCS2( const nsAReadableCString& ); + explicit NS_ConvertASCIItoUCS2( const nsAReadableCString& ); #else class nsCString; - NS_ConvertASCIItoUCS2( const nsCString& ); + explicit NS_ConvertASCIItoUCS2( const nsCString& ); #endif #endif @@ -997,6 +997,7 @@ class NS_COM NS_ConvertASCIItoUCS2 return GetUnicode(); } + // is this really a good idea? I'm getting very paranoid about automatic conversions operator nsLiteralString() const { return nsLiteralString(mUStr, mLength); @@ -1035,6 +1036,7 @@ class NS_COM NS_ConvertUTF8toUCS2 : public nsAutoString { public: + explicit NS_ConvertUTF8toUCS2( const char* aCString ) { Init( aCString, ~PRUint32(0) /* MAXINT */ ); @@ -1045,6 +1047,7 @@ class NS_COM NS_ConvertUTF8toUCS2 Init( aCString, aLength ); } + explicit NS_ConvertUTF8toUCS2( char aChar ) { Init( &aChar, 1 ); @@ -1078,7 +1081,7 @@ class NS_COM NS_ConvertUTF8toUCS2 class NS_COM nsSubsumeStr : public nsString { public: nsSubsumeStr(); - nsSubsumeStr(nsStr& aString); + explicit nsSubsumeStr(nsStr& aString); nsSubsumeStr(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeStr(char* aString,PRBool assumeOwnership,PRInt32 aLength=-1); int Subsume(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); diff --git a/mozilla/uriloader/exthandler/nsMIMEInfoImpl.cpp b/mozilla/uriloader/exthandler/nsMIMEInfoImpl.cpp index 8804d804020..3e5c7a7bb41 100644 --- a/mozilla/uriloader/exthandler/nsMIMEInfoImpl.cpp +++ b/mozilla/uriloader/exthandler/nsMIMEInfoImpl.cpp @@ -96,7 +96,7 @@ nsMIMEInfoImpl::FirstExtension(char **_retval) { NS_IMETHODIMP nsMIMEInfoImpl::AppendExtension(const char *aExtension) { - mExtensions.AppendCString( nsCString(aExtension) ); + mExtensions.AppendCString( nsCAutoString(aExtension) ); return NS_OK; } diff --git a/mozilla/xpcom/ds/nsString.h b/mozilla/xpcom/ds/nsString.h index 62f1f10c94d..1385e13411e 100644 --- a/mozilla/xpcom/ds/nsString.h +++ b/mozilla/xpcom/ds/nsString.h @@ -110,9 +110,9 @@ public: nsCString(const nsCString& aString); #ifdef NEW_STRING_APIS - nsCString( const nsAReadableCString& ); + explicit nsCString( const nsAReadableCString& ); - nsCString(const char*); + explicit nsCString(const char*); nsCString(const char*, PRInt32); #else /** @@ -833,10 +833,11 @@ public: virtual ~nsCAutoString(); nsCAutoString(); - nsCAutoString(const nsCString& ); - nsCAutoString(const char* aString); + // why does this class have no copy constructor? nsCAutoString( const nsCAutoString& ); + explicit nsCAutoString(const nsCString& ); + explicit nsCAutoString(const char* aString); nsCAutoString(const char* aString,PRInt32 aLength); - nsCAutoString(const CBufDescriptor& aBuffer); + explicit nsCAutoString(const CBufDescriptor& aBuffer); #ifndef NEW_STRING_APIS // nsCAutoString(const PRUnichar* aString,PRInt32 aLength=-1); @@ -895,6 +896,7 @@ class NS_COM NS_ConvertUCS2toUTF8 */ { public: + explicit NS_ConvertUCS2toUTF8( const PRUnichar* aString ) { Init( aString, ~PRUint32(0) /* MAXINT */); @@ -905,6 +907,7 @@ class NS_COM NS_ConvertUCS2toUTF8 Init( aString, aLength ); } + explicit NS_ConvertUCS2toUTF8( PRUnichar aChar ) { Init( &aChar, 1 ); @@ -939,7 +942,7 @@ class NS_COM NS_ConvertUCS2toUTF8 ***************************************************************/ class NS_COM nsSubsumeCStr : public nsCString { public: - nsSubsumeCStr(nsStr& aString); + explicit nsSubsumeCStr(nsStr& aString); nsSubsumeCStr(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeCStr(char* aString,PRBool assumeOwnership,PRInt32 aLength=-1); diff --git a/mozilla/xpcom/ds/nsString2.h b/mozilla/xpcom/ds/nsString2.h index cec472b57ec..e4c5750a165 100644 --- a/mozilla/xpcom/ds/nsString2.h +++ b/mozilla/xpcom/ds/nsString2.h @@ -104,9 +104,9 @@ public: nsString(const nsString& aString); #ifdef NEW_STRING_APIS - nsString(const nsAReadableString&); + explicit nsString(const nsAReadableString&); - nsString(const PRUnichar*); + explicit nsString(const PRUnichar*); nsString(const PRUnichar*, PRInt32); #else /** @@ -924,11 +924,11 @@ public: virtual ~nsAutoString(); nsAutoString(); nsAutoString(const nsAutoString& aString); - nsAutoString(const nsString& aString); - nsAutoString(const PRUnichar* aString); + explicit nsAutoString(const nsString& aString); + explicit nsAutoString(const PRUnichar* aString); nsAutoString(const PRUnichar* aString,PRInt32 aLength); - nsAutoString(PRUnichar aChar); - nsAutoString(const CBufDescriptor& aBuffer); + explicit nsAutoString(PRUnichar aChar); + explicit nsAutoString(const CBufDescriptor& aBuffer); #ifndef NEW_STRING_APIS // nsAutoString(const char* aCString,PRInt32 aLength=-1); @@ -979,15 +979,15 @@ class NS_COM NS_ConvertASCIItoUCS2 */ { public: - NS_ConvertASCIItoUCS2( const char* ); + explicit NS_ConvertASCIItoUCS2( const char* ); NS_ConvertASCIItoUCS2( const char*, PRUint32 ); - NS_ConvertASCIItoUCS2( char ); + explicit NS_ConvertASCIItoUCS2( char ); #if 0 #ifdef NEW_STRING_APIS - NS_ConvertASCIItoUCS2( const nsAReadableCString& ); + explicit NS_ConvertASCIItoUCS2( const nsAReadableCString& ); #else class nsCString; - NS_ConvertASCIItoUCS2( const nsCString& ); + explicit NS_ConvertASCIItoUCS2( const nsCString& ); #endif #endif @@ -997,6 +997,7 @@ class NS_COM NS_ConvertASCIItoUCS2 return GetUnicode(); } + // is this really a good idea? I'm getting very paranoid about automatic conversions operator nsLiteralString() const { return nsLiteralString(mUStr, mLength); @@ -1035,6 +1036,7 @@ class NS_COM NS_ConvertUTF8toUCS2 : public nsAutoString { public: + explicit NS_ConvertUTF8toUCS2( const char* aCString ) { Init( aCString, ~PRUint32(0) /* MAXINT */ ); @@ -1045,6 +1047,7 @@ class NS_COM NS_ConvertUTF8toUCS2 Init( aCString, aLength ); } + explicit NS_ConvertUTF8toUCS2( char aChar ) { Init( &aChar, 1 ); @@ -1078,7 +1081,7 @@ class NS_COM NS_ConvertUTF8toUCS2 class NS_COM nsSubsumeStr : public nsString { public: nsSubsumeStr(); - nsSubsumeStr(nsStr& aString); + explicit nsSubsumeStr(nsStr& aString); nsSubsumeStr(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeStr(char* aString,PRBool assumeOwnership,PRInt32 aLength=-1); int Subsume(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); diff --git a/mozilla/xpcom/string/obsolete/nsString.h b/mozilla/xpcom/string/obsolete/nsString.h index 62f1f10c94d..1385e13411e 100644 --- a/mozilla/xpcom/string/obsolete/nsString.h +++ b/mozilla/xpcom/string/obsolete/nsString.h @@ -110,9 +110,9 @@ public: nsCString(const nsCString& aString); #ifdef NEW_STRING_APIS - nsCString( const nsAReadableCString& ); + explicit nsCString( const nsAReadableCString& ); - nsCString(const char*); + explicit nsCString(const char*); nsCString(const char*, PRInt32); #else /** @@ -833,10 +833,11 @@ public: virtual ~nsCAutoString(); nsCAutoString(); - nsCAutoString(const nsCString& ); - nsCAutoString(const char* aString); + // why does this class have no copy constructor? nsCAutoString( const nsCAutoString& ); + explicit nsCAutoString(const nsCString& ); + explicit nsCAutoString(const char* aString); nsCAutoString(const char* aString,PRInt32 aLength); - nsCAutoString(const CBufDescriptor& aBuffer); + explicit nsCAutoString(const CBufDescriptor& aBuffer); #ifndef NEW_STRING_APIS // nsCAutoString(const PRUnichar* aString,PRInt32 aLength=-1); @@ -895,6 +896,7 @@ class NS_COM NS_ConvertUCS2toUTF8 */ { public: + explicit NS_ConvertUCS2toUTF8( const PRUnichar* aString ) { Init( aString, ~PRUint32(0) /* MAXINT */); @@ -905,6 +907,7 @@ class NS_COM NS_ConvertUCS2toUTF8 Init( aString, aLength ); } + explicit NS_ConvertUCS2toUTF8( PRUnichar aChar ) { Init( &aChar, 1 ); @@ -939,7 +942,7 @@ class NS_COM NS_ConvertUCS2toUTF8 ***************************************************************/ class NS_COM nsSubsumeCStr : public nsCString { public: - nsSubsumeCStr(nsStr& aString); + explicit nsSubsumeCStr(nsStr& aString); nsSubsumeCStr(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeCStr(char* aString,PRBool assumeOwnership,PRInt32 aLength=-1); diff --git a/mozilla/xpcom/string/obsolete/nsString2.h b/mozilla/xpcom/string/obsolete/nsString2.h index cec472b57ec..e4c5750a165 100644 --- a/mozilla/xpcom/string/obsolete/nsString2.h +++ b/mozilla/xpcom/string/obsolete/nsString2.h @@ -104,9 +104,9 @@ public: nsString(const nsString& aString); #ifdef NEW_STRING_APIS - nsString(const nsAReadableString&); + explicit nsString(const nsAReadableString&); - nsString(const PRUnichar*); + explicit nsString(const PRUnichar*); nsString(const PRUnichar*, PRInt32); #else /** @@ -924,11 +924,11 @@ public: virtual ~nsAutoString(); nsAutoString(); nsAutoString(const nsAutoString& aString); - nsAutoString(const nsString& aString); - nsAutoString(const PRUnichar* aString); + explicit nsAutoString(const nsString& aString); + explicit nsAutoString(const PRUnichar* aString); nsAutoString(const PRUnichar* aString,PRInt32 aLength); - nsAutoString(PRUnichar aChar); - nsAutoString(const CBufDescriptor& aBuffer); + explicit nsAutoString(PRUnichar aChar); + explicit nsAutoString(const CBufDescriptor& aBuffer); #ifndef NEW_STRING_APIS // nsAutoString(const char* aCString,PRInt32 aLength=-1); @@ -979,15 +979,15 @@ class NS_COM NS_ConvertASCIItoUCS2 */ { public: - NS_ConvertASCIItoUCS2( const char* ); + explicit NS_ConvertASCIItoUCS2( const char* ); NS_ConvertASCIItoUCS2( const char*, PRUint32 ); - NS_ConvertASCIItoUCS2( char ); + explicit NS_ConvertASCIItoUCS2( char ); #if 0 #ifdef NEW_STRING_APIS - NS_ConvertASCIItoUCS2( const nsAReadableCString& ); + explicit NS_ConvertASCIItoUCS2( const nsAReadableCString& ); #else class nsCString; - NS_ConvertASCIItoUCS2( const nsCString& ); + explicit NS_ConvertASCIItoUCS2( const nsCString& ); #endif #endif @@ -997,6 +997,7 @@ class NS_COM NS_ConvertASCIItoUCS2 return GetUnicode(); } + // is this really a good idea? I'm getting very paranoid about automatic conversions operator nsLiteralString() const { return nsLiteralString(mUStr, mLength); @@ -1035,6 +1036,7 @@ class NS_COM NS_ConvertUTF8toUCS2 : public nsAutoString { public: + explicit NS_ConvertUTF8toUCS2( const char* aCString ) { Init( aCString, ~PRUint32(0) /* MAXINT */ ); @@ -1045,6 +1047,7 @@ class NS_COM NS_ConvertUTF8toUCS2 Init( aCString, aLength ); } + explicit NS_ConvertUTF8toUCS2( char aChar ) { Init( &aChar, 1 ); @@ -1078,7 +1081,7 @@ class NS_COM NS_ConvertUTF8toUCS2 class NS_COM nsSubsumeStr : public nsString { public: nsSubsumeStr(); - nsSubsumeStr(nsStr& aString); + explicit nsSubsumeStr(nsStr& aString); nsSubsumeStr(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeStr(char* aString,PRBool assumeOwnership,PRInt32 aLength=-1); int Subsume(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1);