Kaydet (Commit) 997d1387 authored tarafından Caolán McNamara's avatar Caolán McNamara

Revert "fdo#81272 Speed up break iterators"

hmm, make CppunitTest_i18npool_test_breakiterator fails after all

This reverts commit 693f72384e081429cddb29415276cc4d07b05645.
üst 019632c6
...@@ -76,8 +76,6 @@ public: ...@@ -76,8 +76,6 @@ public:
private: private:
WordBreakCache cache[CACHE_MAX]; WordBreakCache cache[CACHE_MAX];
OUString segmentCachedString;
Boundary segmentCachedBoundary;
bool seekSegment(const OUString& rText, sal_Int32 pos, Boundary& boundary); bool seekSegment(const OUString& rText, sal_Int32 pos, Boundary& boundary);
WordBreakCache& getCache(const sal_Unicode *text, Boundary& boundary); WordBreakCache& getCache(const sal_Unicode *text, Boundary& boundary);
......
...@@ -185,7 +185,7 @@ void SAL_CALL BreakIterator_Unicode::loadICUBreakIterator(const com::sun::star:: ...@@ -185,7 +185,7 @@ void SAL_CALL BreakIterator_Unicode::loadICUBreakIterator(const com::sun::star::
} }
} }
if (newBreak || icuBI->aICUText.pData != rText.pData) if (newBreak || !icuBI->aICUText.equals(rText))
{ {
// UChar != sal_Unicode in MinGW // UChar != sal_Unicode in MinGW
const UChar *pText = reinterpret_cast<const UChar *>(rText.getStr()); const UChar *pText = reinterpret_cast<const UChar *>(rText.getStr());
......
...@@ -271,21 +271,6 @@ bool xdictionary::seekSegment(const OUString &rText, sal_Int32 pos, ...@@ -271,21 +271,6 @@ bool xdictionary::seekSegment(const OUString &rText, sal_Int32 pos,
Boundary& segBoundary) Boundary& segBoundary)
{ {
sal_Int32 indexUtf16; sal_Int32 indexUtf16;
if (segmentCachedString.pData != rText.pData) {
// Cache the passed text so we can avoid regenerating the segment if it's the same
// (pData is refcounted and assigning the OUString references it, which ensures that
// the object is the same if we get the same pointer back later)
segmentCachedString = rText;
} else {
// If pos is within the cached boundary, use that boundary
if (pos >= segmentCachedBoundary.startPos && pos <= segmentCachedBoundary.endPos) {
indexUtf16 = segmentCachedBoundary.startPos;
rText.iterateCodePoints(&indexUtf16, 1);
return segmentCachedBoundary.endPos > indexUtf16;
}
}
segBoundary.endPos = segBoundary.startPos = pos; segBoundary.endPos = segBoundary.startPos = pos;
indexUtf16 = pos; indexUtf16 = pos;
...@@ -308,10 +293,6 @@ bool xdictionary::seekSegment(const OUString &rText, sal_Int32 pos, ...@@ -308,10 +293,6 @@ bool xdictionary::seekSegment(const OUString &rText, sal_Int32 pos,
break; break;
} }
// Cache the calculated boundary
segmentCachedBoundary.startPos = segBoundary.startPos;
segmentCachedBoundary.endPos = segBoundary.endPos;
indexUtf16 = segBoundary.startPos; indexUtf16 = segBoundary.startPos;
rText.iterateCodePoints(&indexUtf16, 1); rText.iterateCodePoints(&indexUtf16, 1);
return segBoundary.endPos > indexUtf16; return segBoundary.endPos > indexUtf16;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment