author | Jonathan Kew <jfkthame@gmail.com> |
Fri, 24 Feb 2012 10:15:46 +0000 | |
changeset 87616 | 3a290c39b72a46444f638a425432500e54b89913 |
parent 87615 | 8be318596af5f276606d669deb5ba67f4d5b8731 |
child 87617 | 83b7b3240e1933d0fcb86688de4712f086222300 |
push id | 6429 |
push user | jkew@mozilla.com |
push date | Fri, 24 Feb 2012 10:16:33 +0000 |
treeherder | mozilla-inbound@83b7b3240e19 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | smontagu |
bugs | 724826 |
milestone | 13.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/content/base/public/nsContentUtils.h +++ b/content/base/public/nsContentUtils.h @@ -126,17 +126,16 @@ class nsIWordBreaker; class nsIJSRuntimeService; class nsEventListenerManager; class nsIScriptContext; class nsIRunnable; class nsIInterfaceRequestor; template<class E> class nsCOMArray; template<class K, class V> class nsRefPtrHashtable; struct JSRuntime; -class nsIUGenCategory; class nsIWidget; class nsIDragSession; class nsIPresShell; class nsIXPConnectJSObjectHolder; #ifdef MOZ_XTF class nsIXTFService; #endif #ifdef IBMBIDI @@ -620,21 +619,16 @@ public: return sLineBreaker; } static nsIWordBreaker* WordBreaker() { return sWordBreaker; } - static nsIUGenCategory* GetGenCat() - { - return sGenCat; - } - /** * Regster aObserver as a shutdown observer. A strong reference is held * to aObserver until UnregisterShutdownObserver is called. */ static void RegisterShutdownObserver(nsIObserver* aObserver); static void UnregisterShutdownObserver(nsIObserver* aObserver); /** @@ -2012,17 +2006,16 @@ private: static nsIStringBundleService* sStringBundleService; static nsIStringBundle* sStringBundles[PropertiesFile_COUNT]; static nsIContentPolicy* sContentPolicyService; static bool sTriedToGetContentPolicy; static nsILineBreaker* sLineBreaker; static nsIWordBreaker* sWordBreaker; - static nsIUGenCategory* sGenCat; static nsIScriptRuntime* sScriptRuntimes[NS_STID_ARRAY_UBOUND]; static PRInt32 sScriptRootCount[NS_STID_ARRAY_UBOUND]; static PRUint32 sJSGCThingRootCount; #ifdef IBMBIDI static nsIBidiKeyboard* sBidiKeyboard; #endif
--- a/content/base/src/nsContentUtils.cpp +++ b/content/base/src/nsContentUtils.cpp @@ -117,16 +117,17 @@ #ifdef MOZ_XTF #include "nsIXTFService.h" static NS_DEFINE_CID(kXTFServiceCID, NS_XTFSERVICE_CID); #endif #include "nsIMIMEService.h" #include "nsLWBrkCIID.h" #include "nsILineBreaker.h" #include "nsIWordBreaker.h" +#include "nsUnicodeProperties.h" #include "jsdbgapi.h" #include "nsIJSRuntimeService.h" #include "nsIDOMDocumentXBL.h" #include "nsBindingManager.h" #include "nsIURI.h" #include "nsIURL.h" #include "nsXBLBinding.h" #include "nsXBLPrototypeBinding.h" @@ -149,17 +150,16 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_ #include "nsIPermissionManager.h" #include "nsIContentPrefService.h" #include "nsIScriptObjectPrincipal.h" #include "nsIRunnable.h" #include "nsDOMJSUtils.h" #include "nsGenericHTMLElement.h" #include "nsAttrValue.h" #include "nsReferencedElement.h" -#include "nsIUGenCategory.h" #include "nsIDragService.h" #include "nsIChannelEventSink.h" #include "nsIAsyncVerifyRedirectCallback.h" #include "nsIInterfaceRequestor.h" #include "nsIOfflineCacheUpdate.h" #include "nsCPrefetchService.h" #include "nsIChromeRegistry.h" #include "nsEventDispatcher.h" @@ -255,17 +255,16 @@ nsDataHashtable<nsISupportsHashKey, Even nsDataHashtable<nsStringHashKey, EventNameMapping>* nsContentUtils::sStringEventTable = nsnull; nsCOMArray<nsIAtom>* nsContentUtils::sUserDefinedEvents = nsnull; nsIStringBundleService *nsContentUtils::sStringBundleService; nsIStringBundle *nsContentUtils::sStringBundles[PropertiesFile_COUNT]; nsIContentPolicy *nsContentUtils::sContentPolicyService; bool nsContentUtils::sTriedToGetContentPolicy = false; nsILineBreaker *nsContentUtils::sLineBreaker; nsIWordBreaker *nsContentUtils::sWordBreaker; -nsIUGenCategory *nsContentUtils::sGenCat; nsIScriptRuntime *nsContentUtils::sScriptRuntimes[NS_STID_ARRAY_UBOUND]; PRInt32 nsContentUtils::sScriptRootCount[NS_STID_ARRAY_UBOUND]; PRUint32 nsContentUtils::sJSGCThingRootCount; #ifdef IBMBIDI nsIBidiKeyboard *nsContentUtils::sBidiKeyboard = nsnull; #endif PRUint32 nsContentUtils::sScriptBlockerCount = 0; #ifdef DEBUG @@ -384,19 +383,16 @@ nsContentUtils::Init() } rv = CallGetService(NS_LBRK_CONTRACTID, &sLineBreaker); NS_ENSURE_SUCCESS(rv, rv); rv = CallGetService(NS_WBRK_CONTRACTID, &sWordBreaker); NS_ENSURE_SUCCESS(rv, rv); - rv = CallGetService(NS_UNICHARCATEGORY_CONTRACTID, &sGenCat); - NS_ENSURE_SUCCESS(rv, rv); - if (!InitializeEventTable()) return NS_ERROR_FAILURE; if (!sEventListenerManagersHash.ops) { static PLDHashTableOps hash_table_ops = { PL_DHashAllocTable, PL_DHashFreeTable, @@ -972,17 +968,17 @@ nsContentUtils::IsPunctuationMarkAt(cons } } return false; } // static bool nsContentUtils::IsAlphanumeric(PRUint32 aChar) { - nsIUGenCategory::nsUGenCategory cat = sGenCat->Get(aChar); + nsIUGenCategory::nsUGenCategory cat = mozilla::unicode::GetGenCategory(aChar); return (cat == nsIUGenCategory::kLetter || cat == nsIUGenCategory::kNumber); } // static bool nsContentUtils::IsAlphanumericAt(const nsTextFragment* aFrag, PRUint32 aOffset) { PRUnichar h = aFrag->CharAt(aOffset); @@ -1133,17 +1129,16 @@ nsContentUtils::Shutdown() sXPConnect = nsnull; sThreadJSContextStack = nsnull; NS_IF_RELEASE(sSecurityManager); NS_IF_RELEASE(sNameSpaceManager); NS_IF_RELEASE(sParserService); NS_IF_RELEASE(sIOService); NS_IF_RELEASE(sLineBreaker); NS_IF_RELEASE(sWordBreaker); - NS_IF_RELEASE(sGenCat); #ifdef MOZ_XTF NS_IF_RELEASE(sXTFService); #endif NS_IF_RELEASE(sImgLoader); NS_IF_RELEASE(sImgCache); #ifdef IBMBIDI NS_IF_RELEASE(sBidiKeyboard); #endif
--- a/extensions/spellcheck/src/mozEnglishWordUtils.cpp +++ b/extensions/spellcheck/src/mozEnglishWordUtils.cpp @@ -36,38 +36,37 @@ * ***** END LICENSE BLOCK ***** */ #include "mozEnglishWordUtils.h" #include "nsICharsetAlias.h" #include "nsReadableUtils.h" #include "nsIServiceManager.h" #include "nsUnicharUtils.h" #include "nsUnicharUtilCIID.h" +#include "nsUnicodeProperties.h" #include "nsCRT.h" NS_IMPL_CYCLE_COLLECTING_ADDREF(mozEnglishWordUtils) NS_IMPL_CYCLE_COLLECTING_RELEASE(mozEnglishWordUtils) NS_INTERFACE_MAP_BEGIN(mozEnglishWordUtils) NS_INTERFACE_MAP_ENTRY(mozISpellI18NUtil) NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, mozISpellI18NUtil) NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(mozEnglishWordUtils) NS_INTERFACE_MAP_END -NS_IMPL_CYCLE_COLLECTION_2(mozEnglishWordUtils, - mCategories, +NS_IMPL_CYCLE_COLLECTION_1(mozEnglishWordUtils, mURLDetector) mozEnglishWordUtils::mozEnglishWordUtils() { mLanguage.AssignLiteral("en"); nsresult rv; mURLDetector = do_CreateInstance(MOZ_TXTTOHTMLCONV_CONTRACTID, &rv); - mCategories = do_GetService(NS_UNICHARCATEGORY_CONTRACTID); } mozEnglishWordUtils::~mozEnglishWordUtils() { } /* attribute wstring language; */ NS_IMETHODIMP mozEnglishWordUtils::GetLanguage(PRUnichar * *aLanguage) @@ -163,17 +162,17 @@ NS_IMETHODIMP mozEnglishWordUtils::GetRo } return NS_OK; } // This needs vast improvement bool mozEnglishWordUtils::ucIsAlpha(PRUnichar aChar) { // XXX we have to fix callers to handle the full Unicode range - return nsIUGenCategory::kLetter == mCategories->Get(PRUint32(aChar)); + return nsIUGenCategory::kLetter == mozilla::unicode::GetGenCategory(aChar); } /* void FindNextWord (in wstring word, in PRUint32 length, in PRUint32 offset, out PRUint32 begin, out PRUint32 end); */ NS_IMETHODIMP mozEnglishWordUtils::FindNextWord(const PRUnichar *word, PRUint32 length, PRUint32 offset, PRInt32 *begin, PRInt32 *end) { const PRUnichar *p = word + offset; const PRUnichar *endbuf = word + length; const PRUnichar *startWord=p;
--- a/extensions/spellcheck/src/mozEnglishWordUtils.h +++ b/extensions/spellcheck/src/mozEnglishWordUtils.h @@ -38,17 +38,16 @@ #ifndef mozEnglishWordUtils_h__ #define mozEnglishWordUtils_h__ #include "nsCOMPtr.h" #include "mozISpellI18NUtil.h" #include "nsIUnicodeEncoder.h" #include "nsIUnicodeDecoder.h" #include "nsString.h" -#include "nsIUGenCategory.h" #include "mozITXTToHTMLConv.h" #include "nsCycleCollectionParticipant.h" class mozEnglishWordUtils : public mozISpellI18NUtil { public: NS_DECL_CYCLE_COLLECTING_ISUPPORTS @@ -63,13 +62,12 @@ public: }; protected: mozEnglishWordUtils::myspCapitalization captype(const nsString &word); bool ucIsAlpha(PRUnichar aChar); nsString mLanguage; nsString mCharset; - nsCOMPtr<nsIUGenCategory> mCategories; nsCOMPtr<mozITXTToHTMLConv> mURLDetector; // used to detect urls so the spell checker can skip them. }; #endif
--- a/extensions/spellcheck/src/mozInlineSpellWordUtil.cpp +++ b/extensions/spellcheck/src/mozInlineSpellWordUtil.cpp @@ -43,16 +43,17 @@ #include "nsComponentManagerUtils.h" #include "nsIDOMCSSStyleDeclaration.h" #include "nsIDOMElement.h" #include "nsIDOMRange.h" #include "nsIEditor.h" #include "nsIDOMNode.h" #include "nsIDOMHTMLBRElement.h" #include "nsUnicharUtilCIID.h" +#include "nsUnicodeProperties.h" #include "nsServiceManagerUtils.h" #include "nsIContent.h" #include "nsTextFragment.h" #include "mozilla/dom/Element.h" #include "nsIFrame.h" #include "nsRange.h" #include "nsContentUtils.h" @@ -82,20 +83,16 @@ inline bool IsConditionalPunctuation(PRU // mozInlineSpellWordUtil::Init nsresult mozInlineSpellWordUtil::Init(nsWeakPtr aWeakEditor) { nsresult rv; - mCategories = do_GetService(NS_UNICHARCATEGORY_CONTRACTID, &rv); - if (NS_FAILED(rv)) - return rv; - // getting the editor can fail commonly because the editor was detached, so // don't assert nsCOMPtr<nsIEditor> editor = do_QueryReferent(aWeakEditor, &rv); if (NS_FAILED(rv)) return rv; nsCOMPtr<nsIDOMDocument> domDoc; rv = editor->GetDocument(getter_AddRefs(domDoc)); @@ -801,17 +798,17 @@ WordSplitState::ClassifyCharacter(PRInt3 NS_ASSERTION(aIndex >= 0 && aIndex <= PRInt32(mDOMWordText.Length()), "Index out of range"); if (aIndex == PRInt32(mDOMWordText.Length())) return CHAR_CLASS_SEPARATOR; // this will classify the character, we want to treat "ignorable" characters // such as soft hyphens as word characters. nsIUGenCategory::nsUGenCategory - charCategory = mWordUtil->GetCategories()->Get(PRUint32(mDOMWordText[aIndex])); + charCategory = mozilla::unicode::GetGenCategory(mDOMWordText[aIndex]); if (charCategory == nsIUGenCategory::kLetter || IsIgnorableCharacter(mDOMWordText[aIndex])) return CHAR_CLASS_WORD; // If conditional punctuation is surrounded immediately on both sides by word // characters it also counts as a word character. if (IsConditionalPunctuation(mDOMWordText[aIndex])) { if (!aRecurse) {
--- a/extensions/spellcheck/src/mozInlineSpellWordUtil.h +++ b/extensions/spellcheck/src/mozInlineSpellWordUtil.h @@ -35,17 +35,16 @@ * * ***** END LICENSE BLOCK ***** */ #include "nsCOMPtr.h" #include "nsIDOMDocument.h" #include "nsIDocument.h" #include "nsString.h" #include "nsTArray.h" -#include "nsIUGenCategory.h" //#define DEBUG_SPELLCHECK class nsRange; class nsINode; /** * This class extracts text from the DOM and builds it into a single string. @@ -112,24 +111,22 @@ public: // Call to normalize some punctuation. This function takes an autostring // so we can access characters directly. static void NormalizeWord(nsSubstring& aWord); nsIDOMDocument* GetDOMDocument() const { return mDOMDocument; } nsIDocument* GetDocument() const { return mDocument; } nsINode* GetRootNode() { return mRootNode; } - nsIUGenCategory* GetCategories() { return mCategories; } private: // cached stuff for the editor, set by Init nsCOMPtr<nsIDOMDocument> mDOMDocument; nsCOMPtr<nsIDocument> mDocument; - nsCOMPtr<nsIUGenCategory> mCategories; // range to check, see SetPosition and SetEnd nsINode* mRootNode; NodeOffset mSoftBegin; NodeOffset mSoftEnd; // DOM text covering the soft range, with newlines added at block boundaries nsString mSoftText;
--- a/gfx/thebes/gfxPlatform.cpp +++ b/gfx/thebes/gfxPlatform.cpp @@ -66,17 +66,16 @@ #include "harfbuzz/hb-unicode.h" #ifdef MOZ_GRAPHITE #include "gfxGraphiteShaper.h" #endif #include "nsUnicodeRange.h" #include "nsServiceManagerUtils.h" #include "nsTArray.h" -#include "nsIUGenCategory.h" #include "nsUnicharUtilCIID.h" #include "nsILocaleService.h" #include "nsWeakReference.h" #include "cairo.h" #include "qcms.h"
--- a/intl/hyphenation/public/nsHyphenator.h +++ b/intl/hyphenation/public/nsHyphenator.h @@ -38,17 +38,16 @@ #ifndef nsHyphenator_h__ #define nsHyphenator_h__ #include "nsCOMPtr.h" #include "nsString.h" #include "nsTArray.h" class nsIURI; -class nsIUGenCategory; class nsHyphenator { public: nsHyphenator(nsIURI *aURI); NS_INLINE_DECL_REFCOUNTING(nsHyphenator) @@ -56,12 +55,11 @@ public: nsresult Hyphenate(const nsAString& aText, nsTArray<bool>& aHyphens); private: ~nsHyphenator(); protected: void *mDict; - nsCOMPtr<nsIUGenCategory> mCategories; }; #endif // nsHyphenator_h__
--- a/intl/hyphenation/src/nsHyphenator.cpp +++ b/intl/hyphenation/src/nsHyphenator.cpp @@ -33,17 +33,17 @@ * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsHyphenator.h" #include "nsIFile.h" #include "nsUTF8Utils.h" -#include "nsIUGenCategory.h" +#include "nsUnicodeProperties.h" #include "nsUnicharUtilCIID.h" #include "nsIURI.h" #include "hyphen.h" nsHyphenator::nsHyphenator(nsIURI *aURI) : mDict(nsnull) { @@ -53,32 +53,30 @@ nsHyphenator::nsHyphenator(nsIURI *aURI) return; } mDict = hnj_hyphen_load(uriSpec.get()); #ifdef DEBUG if (mDict) { printf("loaded hyphenation patterns from %s\n", uriSpec.get()); } #endif - mCategories = do_GetService(NS_UNICHARCATEGORY_CONTRACTID, &rv); - NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get category service"); } nsHyphenator::~nsHyphenator() { if (mDict != nsnull) { hnj_hyphen_free((HyphenDict*)mDict); mDict = nsnull; } } bool nsHyphenator::IsValid() { - return (mDict != nsnull) && (mCategories != nsnull); + return (mDict != nsnull); } nsresult nsHyphenator::Hyphenate(const nsAString& aString, nsTArray<bool>& aHyphens) { if (!aHyphens.SetLength(aString.Length())) { return NS_ERROR_OUT_OF_MEMORY; @@ -96,17 +94,17 @@ nsHyphenator::Hyphenate(const nsAString& if (i + 1 < aString.Length() && NS_IS_LOW_SURROGATE(aString[i+1])) { ch = SURROGATE_TO_UCS4(ch, aString[i+1]); chLen = 2; } else { NS_WARNING("unpaired surrogate found during hyphenation"); } } - nsIUGenCategory::nsUGenCategory cat = mCategories->Get(ch); + nsIUGenCategory::nsUGenCategory cat = mozilla::unicode::GetGenCategory(ch); if (cat == nsIUGenCategory::kLetter || cat == nsIUGenCategory::kMark) { if (!inWord) { inWord = true; wordStart = i; } wordLimit = i + chLen; if (i + chLen < aString.Length()) { continue;
--- a/layout/generic/nsTextFrameThebes.cpp +++ b/layout/generic/nsTextFrameThebes.cpp @@ -79,17 +79,17 @@ #include "nsFrame.h" #include "nsPlaceholderFrame.h" #include "nsTextFrameUtils.h" #include "nsTextRunTransformations.h" #include "nsFrameManager.h" #include "nsTextFrameTextRunCache.h" #include "nsExpirationTracker.h" #include "nsTextFrame.h" -#include "nsIUGenCategory.h" +#include "nsUnicodeProperties.h" #include "nsUnicharUtilCIID.h" #include "nsTextFragment.h" #include "nsGkAtoms.h" #include "nsFrameSelection.h" #include "nsISelection.h" #include "nsIDOMRange.h" #include "nsRange.h" @@ -6132,17 +6132,16 @@ public: bool NextCluster(); bool IsWhitespace(); bool IsPunctuation(); bool HaveWordBreakBefore() { return mHaveWordBreak; } PRInt32 GetAfterOffset(); PRInt32 GetBeforeOffset(); private: - nsCOMPtr<nsIUGenCategory> mCategories; gfxSkipCharsIterator mIterator; const nsTextFragment* mFrag; nsTextFrame* mTextFrame; PRInt32 mDirection; PRInt32 mCharIndex; nsTextFrame::TrimmedOffsets mTrimmed; nsTArray<bool> mWordBreaks; bool mHaveWordBreak; @@ -6234,19 +6233,18 @@ ClusterIterator::IsWhitespace() NS_ASSERTION(mCharIndex >= 0, "No cluster selected"); return IsSelectionSpace(mFrag, mCharIndex); } bool ClusterIterator::IsPunctuation() { NS_ASSERTION(mCharIndex >= 0, "No cluster selected"); - if (!mCategories) - return false; - nsIUGenCategory::nsUGenCategory c = mCategories->Get(mFrag->CharAt(mCharIndex)); + nsIUGenCategory::nsUGenCategory c = + mozilla::unicode::GetGenCategory(mFrag->CharAt(mCharIndex)); return c == nsIUGenCategory::kPunctuation || c == nsIUGenCategory::kSymbol; } PRInt32 ClusterIterator::GetBeforeOffset() { NS_ASSERTION(mCharIndex >= 0, "No cluster selected"); return mCharIndex + (mDirection > 0 ? 0 : 1); @@ -6301,18 +6299,16 @@ ClusterIterator::ClusterIterator(nsTextF { mIterator = aTextFrame->EnsureTextRun(nsTextFrame::eInflated); if (!aTextFrame->GetTextRun(nsTextFrame::eInflated)) { mDirection = 0; // signal failure return; } mIterator.SetOriginalOffset(aPosition); - mCategories = do_GetService(NS_UNICHARCATEGORY_CONTRACTID); - mFrag = aTextFrame->GetContent()->GetText(); mTrimmed = aTextFrame->GetTrimmedOffsets(mFrag, true); PRInt32 textOffset = aTextFrame->GetContentOffset(); PRInt32 textLen = aTextFrame->GetContentLength(); if (!mWordBreaks.AppendElements(textLen + 1)) { mDirection = 0; // signal failure return;