diff options
author | Matt A. Tobin <email@mattatobin.com> | 2019-11-10 23:06:51 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2019-11-10 23:06:51 -0500 |
commit | 66c5b11050b8aee2b467b896173279f3a35cdc3a (patch) | |
tree | e8410db8984f6070f08c525fd365de1ea5fdcd1b /mailnews/intl/nsCharsetConverterManager.cpp | |
parent | c5a0af05260c22ee72cef8e51d358fe8e8fda850 (diff) | |
download | UXP-66c5b11050b8aee2b467b896173279f3a35cdc3a.tar UXP-66c5b11050b8aee2b467b896173279f3a35cdc3a.tar.gz UXP-66c5b11050b8aee2b467b896173279f3a35cdc3a.tar.lz UXP-66c5b11050b8aee2b467b896173279f3a35cdc3a.tar.xz UXP-66c5b11050b8aee2b467b896173279f3a35cdc3a.zip |
Bugs 1512557 and 1470716 - Convert nsIStringBundle pointers to nsCOMPtrs and release them when shutting down.
Tag #1273
Diffstat (limited to 'mailnews/intl/nsCharsetConverterManager.cpp')
-rw-r--r-- | mailnews/intl/nsCharsetConverterManager.cpp | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/mailnews/intl/nsCharsetConverterManager.cpp b/mailnews/intl/nsCharsetConverterManager.cpp index e434ecd41..3d668fbf1 100644 --- a/mailnews/intl/nsCharsetConverterManager.cpp +++ b/mailnews/intl/nsCharsetConverterManager.cpp @@ -22,8 +22,8 @@ // just for CONTRACTIDs #include "nsCharsetConverterManager.h" -static nsIStringBundle * sDataBundle; -static nsIStringBundle * sTitleBundle; +static nsCOMPtr<nsIStringBundle> sDataBundle; +static nsCOMPtr<nsIStringBundle> sTitleBundle; // Class nsCharsetConverterManager [implementation] @@ -35,25 +35,19 @@ nsCharsetConverterManager::nsCharsetConverterManager() nsCharsetConverterManager::~nsCharsetConverterManager() { -} - -//static -void nsCharsetConverterManager::Shutdown() -{ - NS_IF_RELEASE(sDataBundle); - NS_IF_RELEASE(sTitleBundle); + sDataBundle = nullptr; + sTitleBundle = nullptr; } static -nsresult LoadExtensibleBundle(const char* aCategory, - nsIStringBundle ** aResult) +nsresult LoadBundle(const char* aBundleURLSpec, nsIStringBundle ** aResult) { nsCOMPtr<nsIStringBundleService> sbServ = mozilla::services::GetStringBundleService(); if (!sbServ) return NS_ERROR_FAILURE; - return sbServ->CreateExtensibleBundle(aCategory, aResult); + return sbServ->CreateBundle(aBundleURLSpec, aResult); } static @@ -97,7 +91,8 @@ nsresult GetCharsetDataImpl(const char * aCharset, const char16_t * aProp, // aProp can be nullptr if (!sDataBundle) { - nsresult rv = LoadExtensibleBundle(NS_DATA_BUNDLE_CATEGORY, &sDataBundle); + nsresult rv = LoadBundle("resource://gre-resources/charsetData.properties", + getter_AddRefs(sDataBundle)); if (NS_FAILED(rv)) return rv; } @@ -306,7 +301,8 @@ nsCharsetConverterManager::GetCharsetTitle(const char * aCharset, NS_ENSURE_ARG_POINTER(aCharset); if (!sTitleBundle) { - nsresult rv = LoadExtensibleBundle(NS_TITLE_BUNDLE_CATEGORY, &sTitleBundle); + nsresult rv = LoadBundle("chrome://messenger/locale/charsetTitles.properties", + getter_AddRefs(sTitleBundle)); NS_ENSURE_SUCCESS(rv, rv); } |