diff --git a/htmlparser/src/nsHTMLContentSinkStream.cpp b/htmlparser/src/nsHTMLContentSinkStream.cpp index 25656c43dd15..de3dc281ba91 100644 --- a/htmlparser/src/nsHTMLContentSinkStream.cpp +++ b/htmlparser/src/nsHTMLContentSinkStream.cpp @@ -48,6 +48,8 @@ static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kIContentSinkIID, NS_ICONTENT_SINK_IID); static NS_DEFINE_IID(kIHTMLContentSinkIID, NS_IHTML_CONTENT_SINK_IID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); + static char* gHeaderComment = ""; static char* gDocTypeHeader = ""; const int gTabSize=2; @@ -323,7 +325,7 @@ nsresult nsHTMLContentSinkStream::InitEncoder(const nsString& aCharset) nsICharsetConverterManager * ccm = nsnull; res = nsServiceManager::GetService(kCharsetConverterManagerCID, - kICharsetConverterManagerIID, + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if(NS_SUCCEEDED(res) && (nsnull != ccm)) { diff --git a/htmlparser/src/nsHTMLToTXTSinkStream.cpp b/htmlparser/src/nsHTMLToTXTSinkStream.cpp index bbc36e3ca281..e09a7d1bd1f8 100644 --- a/htmlparser/src/nsHTMLToTXTSinkStream.cpp +++ b/htmlparser/src/nsHTMLToTXTSinkStream.cpp @@ -46,6 +46,8 @@ static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kIContentSinkIID, NS_ICONTENT_SINK_IID); static NS_DEFINE_IID(kIHTMLContentSinkIID, NS_IHTML_CONTENT_SINK_IID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); + const int gTabSize=2; static PRBool IsInline(eHTMLTags aTag); @@ -92,7 +94,7 @@ nsresult nsHTMLToTXTSinkStream::InitEncoder(const nsString& aCharset) nsICharsetConverterManager * ccm = nsnull; res = nsServiceManager::GetService(kCharsetConverterManagerCID, - kICharsetConverterManagerIID, + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if(NS_SUCCEEDED(res) && (nsnull != ccm)) { diff --git a/htmlparser/src/nsScanner.cpp b/htmlparser/src/nsScanner.cpp index daa37c264646..c8dea76dba78 100644 --- a/htmlparser/src/nsScanner.cpp +++ b/htmlparser/src/nsScanner.cpp @@ -26,6 +26,7 @@ #include "nsICharsetAlias.h" #include "nsFileSpec.h" +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); const char* kBadHTMLText="

Oops...

You just tried to read a non-existent document:
"; const char* kUnorderedStringError = "String argument must be ordered. Don't you read API's?"; @@ -150,7 +151,7 @@ nsresult nsScanner::SetDocumentCharset(const nsString& aCharset , nsCharsetSourc nsICharsetConverterManager * ccm = nsnull; res = nsServiceManager::GetService(kCharsetConverterManagerCID, - kICharsetConverterManagerIID, + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if(NS_SUCCEEDED(res) && (nsnull != ccm)) { diff --git a/intl/locale/src/mac/nsDateTimeFormatMac.cpp b/intl/locale/src/mac/nsDateTimeFormatMac.cpp index 0c65474f3729..b64cb0faa133 100644 --- a/intl/locale/src/mac/nsDateTimeFormatMac.cpp +++ b/intl/locale/src/mac/nsDateTimeFormatMac.cpp @@ -32,6 +32,8 @@ static NS_DEFINE_IID(kIDateTimeFormatIID, NS_IDATETIMEFORMAT_IID); static NS_DEFINE_IID(kMacLocaleFactoryCID, NS_MACLOCALEFACTORY_CID); static NS_DEFINE_IID(kIMacLocaleIID, NS_IMACLOCALE_IID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); + //////////////////////////////////////////////////////////////////////////////// @@ -333,7 +335,7 @@ nsresult nsDateTimeFormatMac::FormatTMTime(nsILocale* locale, nsICharsetConverterManager * ccm = nsnull; res = nsServiceManager::GetService(kCharsetConverterManagerCID, - kICharsetConverterManagerIID, + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if(NS_SUCCEEDED(res) && (nsnull != ccm)) { nsIUnicodeDecoder * decoder = nsnull; diff --git a/intl/locale/src/nsCollation.cpp b/intl/locale/src/nsCollation.cpp index a29040bb8736..6fad9ae5b741 100644 --- a/intl/locale/src/nsCollation.cpp +++ b/intl/locale/src/nsCollation.cpp @@ -29,6 +29,7 @@ NS_DEFINE_IID(kICollationFactoryIID, NS_ICOLLATIONFACTORY_IID); NS_DEFINE_CID(kCollationCID, NS_COLLATION_CID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); NS_IMPL_ISUPPORTS(nsCollationFactory, kICollationFactoryIID); @@ -197,7 +198,7 @@ nsresult nsCollation::UnicodeToChar(const nsString& src, char** dst, const nsStr nsresult res; res = nsServiceManager::GetService(kCharsetConverterManagerCID, - kICharsetConverterManagerIID, + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if(NS_SUCCEEDED(res) && (nsnull != ccm)) { nsIUnicodeEncoder* encoder = nsnull; diff --git a/intl/uconv/public/nsICharsetConverterManager.h b/intl/uconv/public/nsICharsetConverterManager.h index 8689ddb50108..d0521e2cbcfa 100644 --- a/intl/uconv/public/nsICharsetConverterManager.h +++ b/intl/uconv/public/nsICharsetConverterManager.h @@ -28,13 +28,29 @@ // Interface ID for our ConverterManager interface // {1E3F79F0-6B6B-11d2-8A86-00600811A836} -NS_DECLARE_ID(kICharsetConverterManagerIID, - 0x1e3f79f0, 0x6b6b, 0x11d2, 0x8a, 0x86, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36); +// NS_DECLARE_ID(kICharsetConverterManagerIID, +// 0x1e3f79f0, 0x6b6b, 0x11d2, 0x8a, 0x86, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36); + +#define NS_ICHARSETCONVERTERMANAGER_IID \ +{ /* 1E3F79F0-6B6B-11d2-8A86-00600811A836 */ \ + 0x1e3f79f0, \ + 0x6b6b, \ + 0x11d2, \ + {0x8a, 0x86, 0x00, 0x60, 0x08, 0x11, 0xa8, 0x36} \ +} // Class ID for our ConverterManager implementation // {1E3F79F1-6B6B-11d2-8A86-00600811A836} -NS_DECLARE_ID(kCharsetConverterManagerCID, - 0x1e3f79f1, 0x6b6b, 0x11d2, 0x8a, 0x86, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36); +// NS_DECLARE_ID(kCharsetConverterManagerCID, +// 0x1e3f79f1, 0x6b6b, 0x11d2, 0x8a, 0x86, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36); + +#define NS_ICHARSETCONVERTERMANAGER_CID \ +{ /* 1E3F79F1-6B6B-11d2-8A86-00600811A836 */ \ + 0x1e3f79f1, \ + 0x6b6b, \ + 0x11d2, \ + {0x8a, 0x86, 0x00, 0x60, 0x08, 0x11, 0xa8, 0x36} \ +} #define NS_CHARSETCONVERTERMANAGER_PROGID "componment://netscape/intl/charsetconvertermanager" @@ -63,7 +79,7 @@ class nsICharsetConverterManager : public nsISupports { public: - static const nsIID& GetIID() { static nsIID iid = kICharsetConverterManagerIID; return iid; } + static const nsIID& GetIID() { static nsIID iid = NS_ICHARSETCONVERTERMANAGER_IID; return iid; } /** * Find and instantiate a Converter able to encode from Unicode into the * destination charset. diff --git a/intl/uconv/src/nsCharsetConverterManager.cpp b/intl/uconv/src/nsCharsetConverterManager.cpp index ece5945155a9..c5200e0b7822 100644 --- a/intl/uconv/src/nsCharsetConverterManager.cpp +++ b/intl/uconv/src/nsCharsetConverterManager.cpp @@ -171,7 +171,7 @@ public: //---------------------------------------------------------------------- // Class nsCharsetConverterManager [implementation] -NS_IMPL_ISUPPORTS(nsCharsetConverterManager, kICharsetConverterManagerIID); +NS_IMPL_ISUPPORTS(nsCharsetConverterManager, nsCOMTypeInfo::GetIID()); nsICharsetConverterManager * nsCharsetConverterManager::mInstance = NULL; @@ -548,7 +548,7 @@ NS_IMETHODIMP nsManagerFactory::CreateInstance(nsISupports *aDelegate, nsresult res = NS_OK; - if (aIID.Equals(kICharsetConverterManagerIID)) + if (aIID.Equals(nsCOMTypeInfo::GetIID())) { nsICharsetConverterManager * t = nsCharsetConverterManager::GetInstance(); if (t == NULL) return NS_ERROR_OUT_OF_MEMORY; diff --git a/intl/uconv/src/nsUConvDll.cpp b/intl/uconv/src/nsUConvDll.cpp index bd4bfa08a52e..7ed87c0ca48f 100644 --- a/intl/uconv/src/nsUConvDll.cpp +++ b/intl/uconv/src/nsUConvDll.cpp @@ -33,6 +33,7 @@ #include "nsUConvDll.h" static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); //---------------------------------------------------------------------- // Global functions and data [declaration] @@ -61,7 +62,7 @@ extern "C" NS_EXPORT nsresult NSGetFactory(nsISupports* aServMgr, *aFactory = NULL; // the converter manager - if (aClass.Equals(kCharsetConverterManagerCID)) { + if (aClass.Equals(nsCOMTypeInfo::GetIID())) { nsManagerFactory *factory = new nsManagerFactory(); if(nsnull == factory) diff --git a/intl/uconv/ucvlatin/ns1ByteToUnicodeBase.cpp b/intl/uconv/ucvlatin/ns1ByteToUnicodeBase.cpp index 8e599512bacf..67df7fce9447 100644 --- a/intl/uconv/ucvlatin/ns1ByteToUnicodeBase.cpp +++ b/intl/uconv/ucvlatin/ns1ByteToUnicodeBase.cpp @@ -25,6 +25,8 @@ #include "nsICharsetConverterManager.h" #include "ns1ByteToUnicodeBase.h" +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); + ns1ByteToUnicodeBase::ns1ByteToUnicodeBase() { mUtil = nsnull; diff --git a/layout/html/forms/src/nsFormFrame.cpp b/layout/html/forms/src/nsFormFrame.cpp index e1845f589264..cbda8cc7d3bc 100644 --- a/layout/html/forms/src/nsFormFrame.cpp +++ b/layout/html/forms/src/nsFormFrame.cpp @@ -98,6 +98,8 @@ static NS_DEFINE_IID(kIWebshellIID, NS_IWEB_SHELL_IID); static NS_DEFINE_IID(kIContentViewerContainerIID, NS_ICONTENT_VIEWER_CONTAINER_IID); static NS_DEFINE_IID(kIDocumentViewerIID, NS_IDOCUMENT_VIEWER_IID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); + #ifdef SingleSignon #define FORM_TYPE_TEXT 1 #define FORM_TYPE_PASSWORD 7 @@ -726,7 +728,7 @@ NS_IMETHODIMP nsFormFrame::GetEncoder(nsIUnicodeEncoder** encoder) // Get Charset, get the encoder. nsICharsetConverterManager * ccm = nsnull; rv = nsServiceManager::GetService(kCharsetConverterManagerCID , - kICharsetConverterManagerIID, + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if(NS_SUCCEEDED(rv) && (nsnull != ccm)) { rv = ccm->GetUnicodeEncoder(&charset, encoder); diff --git a/mailnews/compose/src/nsMsgI18N.cpp b/mailnews/compose/src/nsMsgI18N.cpp index bfbeda34ba7a..d09157c999a4 100644 --- a/mailnews/compose/src/nsMsgI18N.cpp +++ b/mailnews/compose/src/nsMsgI18N.cpp @@ -32,6 +32,7 @@ static NS_DEFINE_CID(kPrefCID, NS_PREF_CID); static NS_DEFINE_CID(kCMimeConverterCID, NS_MIME_CONVERTER_CID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); // // International functions necessary for composition diff --git a/mailnews/imap/src/nsImapProtocol.cpp b/mailnews/imap/src/nsImapProtocol.cpp index 795c7f2fa785..47c95d15e2ed 100644 --- a/mailnews/imap/src/nsImapProtocol.cpp +++ b/mailnews/imap/src/nsImapProtocol.cpp @@ -78,6 +78,7 @@ static NS_DEFINE_CID(kNetServiceCID, NS_NETSERVICE_CID); static NS_DEFINE_IID(kIWebShell, NS_IWEB_SHELL_IID); static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID); static NS_DEFINE_CID(kCImapService, NS_IMAPSERVICE_CID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); #define OUTPUT_BUFFER_SIZE (4096*2) // mscott - i should be able to remove this if I can use nsMsgLineBuffer??? diff --git a/mailnews/mime/cthandlers/vcard/mimevcrd.cpp b/mailnews/mime/cthandlers/vcard/mimevcrd.cpp index 4aa97b498730..648e2ef6e7e0 100644 --- a/mailnews/mime/cthandlers/vcard/mimevcrd.cpp +++ b/mailnews/mime/cthandlers/vcard/mimevcrd.cpp @@ -43,6 +43,7 @@ //#include "vobject.h" +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); static int MimeInlineTextVCard_parse_line (char *, PRInt32, MimeObject *); static int MimeInlineTextVCard_parse_eof (MimeObject *, PRBool); diff --git a/mailnews/mime/src/comi18n.cpp b/mailnews/mime/src/comi18n.cpp index 7a55f929d9f9..014a3bba4145 100644 --- a/mailnews/mime/src/comi18n.cpp +++ b/mailnews/mime/src/comi18n.cpp @@ -34,6 +34,7 @@ #include "nsIPref.h" static NS_DEFINE_CID(kPrefCID, NS_PREF_CID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); // BEGIN EXTERNAL DEPENDANCY diff --git a/parser/htmlparser/src/nsHTMLContentSinkStream.cpp b/parser/htmlparser/src/nsHTMLContentSinkStream.cpp index 25656c43dd15..de3dc281ba91 100644 --- a/parser/htmlparser/src/nsHTMLContentSinkStream.cpp +++ b/parser/htmlparser/src/nsHTMLContentSinkStream.cpp @@ -48,6 +48,8 @@ static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kIContentSinkIID, NS_ICONTENT_SINK_IID); static NS_DEFINE_IID(kIHTMLContentSinkIID, NS_IHTML_CONTENT_SINK_IID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); + static char* gHeaderComment = ""; static char* gDocTypeHeader = ""; const int gTabSize=2; @@ -323,7 +325,7 @@ nsresult nsHTMLContentSinkStream::InitEncoder(const nsString& aCharset) nsICharsetConverterManager * ccm = nsnull; res = nsServiceManager::GetService(kCharsetConverterManagerCID, - kICharsetConverterManagerIID, + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if(NS_SUCCEEDED(res) && (nsnull != ccm)) { diff --git a/parser/htmlparser/src/nsHTMLToTXTSinkStream.cpp b/parser/htmlparser/src/nsHTMLToTXTSinkStream.cpp index bbc36e3ca281..e09a7d1bd1f8 100644 --- a/parser/htmlparser/src/nsHTMLToTXTSinkStream.cpp +++ b/parser/htmlparser/src/nsHTMLToTXTSinkStream.cpp @@ -46,6 +46,8 @@ static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kIContentSinkIID, NS_ICONTENT_SINK_IID); static NS_DEFINE_IID(kIHTMLContentSinkIID, NS_IHTML_CONTENT_SINK_IID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); + const int gTabSize=2; static PRBool IsInline(eHTMLTags aTag); @@ -92,7 +94,7 @@ nsresult nsHTMLToTXTSinkStream::InitEncoder(const nsString& aCharset) nsICharsetConverterManager * ccm = nsnull; res = nsServiceManager::GetService(kCharsetConverterManagerCID, - kICharsetConverterManagerIID, + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if(NS_SUCCEEDED(res) && (nsnull != ccm)) { diff --git a/parser/htmlparser/src/nsScanner.cpp b/parser/htmlparser/src/nsScanner.cpp index daa37c264646..c8dea76dba78 100644 --- a/parser/htmlparser/src/nsScanner.cpp +++ b/parser/htmlparser/src/nsScanner.cpp @@ -26,6 +26,7 @@ #include "nsICharsetAlias.h" #include "nsFileSpec.h" +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); const char* kBadHTMLText="

Oops...

You just tried to read a non-existent document:
"; const char* kUnorderedStringError = "String argument must be ordered. Don't you read API's?"; @@ -150,7 +151,7 @@ nsresult nsScanner::SetDocumentCharset(const nsString& aCharset , nsCharsetSourc nsICharsetConverterManager * ccm = nsnull; res = nsServiceManager::GetService(kCharsetConverterManagerCID, - kICharsetConverterManagerIID, + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if(NS_SUCCEEDED(res) && (nsnull != ccm)) { diff --git a/xpcom/ds/nsCRT.h b/xpcom/ds/nsCRT.h index c44a5665f83f..d2bf380aec85 100644 --- a/xpcom/ds/nsCRT.h +++ b/xpcom/ds/nsCRT.h @@ -23,6 +23,7 @@ #include "plstr.h" #include "nscore.h" #include "prtypes.h" +#include "nsCppSharedAllocator.h" #define CR '\015' #define LF '\012' @@ -196,12 +197,15 @@ public: static PRInt32 strncasecmp(const PRUnichar* s1, const char* s2, PRUint32 aMaxLen); - // Note: uses new[] to allocate memory, so you must use delete[] to - // free the memory + // Note: uses the global shared allocator |nsAllocator| through the C++ + // |nsCppSharedAllocator| interface (matches C++ standard allocators). + // So must the corresponding |free|, as below, must do the same. static PRUnichar* strdup(const PRUnichar* str); static void free(PRUnichar* str) { - delete[] str; + nsCppSharedAllocator shared_allocator; + shared_allocator.deallocate(str, 0 /*we never new or kept the size*/); + // delete[] str; } /// Compute a hashcode for a C string diff --git a/xpcom/io/nsUnicharInputStream.cpp b/xpcom/io/nsUnicharInputStream.cpp index 242f77666417..1cccd427654b 100644 --- a/xpcom/io/nsUnicharInputStream.cpp +++ b/xpcom/io/nsUnicharInputStream.cpp @@ -33,6 +33,7 @@ #endif static NS_DEFINE_IID(kIUnicharInputStreamIID, NS_IUNICHAR_INPUT_STREAM_IID); +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); class StringUnicharInputStream : public nsIUnicharInputStream { public: @@ -142,8 +143,8 @@ NS_NewB2UConverter(nsIUnicodeDecoder** aInstancePtrResult, nsAutoString defaultCharset("ISO-8859-1"); if (aCharSet == nsnull) aCharSet = &defaultCharset; - res = nsServiceManager::GetService(kCharsetConverterManagerCID, - kICharsetConverterManagerIID, (nsISupports**)&ccm); + res = nsServiceManager::GetService(nsCOMTypeInfo::GetIID(), + nsCOMTypeInfo::GetIID(), (nsISupports**)&ccm); if (NS_FAILED(res)) return res; res = ccm->GetUnicodeDecoder(aCharSet, aInstancePtrResult);