Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2179)

Unified Diff: Source/platform/fonts/harfbuzz/HarfBuzzShaper.cpp

Issue 140933004: Break HarfBuzz run creation into separate function (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/platform/fonts/harfbuzz/HarfBuzzShaper.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/fonts/harfbuzz/HarfBuzzShaper.cpp
diff --git a/Source/platform/fonts/harfbuzz/HarfBuzzShaper.cpp b/Source/platform/fonts/harfbuzz/HarfBuzzShaper.cpp
index 13ac6f80ffa7ef644d2849f29d95ca0854a8bf42..88f72cc92609829557deff6f3ce150c890ed33cf 100644
--- a/Source/platform/fonts/harfbuzz/HarfBuzzShaper.cpp
+++ b/Source/platform/fonts/harfbuzz/HarfBuzzShaper.cpp
@@ -627,9 +627,7 @@ bool HarfBuzzShaper::collectHarfBuzzRuns()
nextScript = currentScript;
currentCharacterPosition = iterator.characters();
}
- unsigned numCharactersOfCurrentRun = iterator.currentCharacter() - startIndexOfCurrentRun;
- hb_script_t script = hb_icu_script_to_script(currentScript);
- m_harfBuzzRuns.append(HarfBuzzRun::create(currentFontData, startIndexOfCurrentRun, numCharactersOfCurrentRun, m_run.direction(), script));
+ addHarfBuzzRun(startIndexOfCurrentRun, iterator.currentCharacter(), currentFontData, currentScript);
currentFontData = nextFontData;
startIndexOfCurrentRun = iterator.currentCharacter();
} while (iterator.consume(character, clusterLength));
@@ -637,6 +635,17 @@ bool HarfBuzzShaper::collectHarfBuzzRuns()
return !m_harfBuzzRuns.isEmpty();
}
+void HarfBuzzShaper::addHarfBuzzRun(unsigned startCharacter,
+ unsigned endCharacter, const SimpleFontData* fontData,
+ UScriptCode script)
+{
+ ASSERT(endCharacter > startCharacter);
+ ASSERT(script != USCRIPT_INVALID_CODE);
+ return m_harfBuzzRuns.append(HarfBuzzRun::create(fontData,
+ startCharacter, endCharacter - startCharacter,
+ m_run.direction(), hb_icu_script_to_script(script)));
+}
+
static const uint16_t* toUint16(const UChar* src)
{
// FIXME: This relies on undefined behavior however it works on the
« no previous file with comments | « Source/platform/fonts/harfbuzz/HarfBuzzShaper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698