From 7cfdadd394f43405107a95ace24994e6966b0cfc Mon Sep 17 00:00:00 2001 From: Ruben Dashyan Date: Wed, 29 Jan 2020 14:54:30 +0100 Subject: [PATCH] [kandinsky/font] Define IndexForReplacementCharacterCodePoint --- kandinsky/include/kandinsky/font.h | 1 + kandinsky/src/font.cpp | 6 ++---- kandinsky/test/font.cpp | 20 +++++++++----------- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/kandinsky/include/kandinsky/font.h b/kandinsky/include/kandinsky/font.h index 10ec5ae67..8c5d668a7 100644 --- a/kandinsky/include/kandinsky/font.h +++ b/kandinsky/include/kandinsky/font.h @@ -59,6 +59,7 @@ public: CodePoint m_codePoint; GlyphIndex m_glyphIndex; }; + static constexpr GlyphIndex IndexForReplacementCharacterCodePoint = 132; GlyphIndex indexForCodePoint(CodePoint c) const; void setGlyphGreyscalesForCodePoint(CodePoint codePoint, GlyphBuffer * glyphBuffer) const; diff --git a/kandinsky/src/font.cpp b/kandinsky/src/font.cpp index c7d4a33b7..abc44e7cf 100644 --- a/kandinsky/src/font.cpp +++ b/kandinsky/src/font.cpp @@ -83,9 +83,6 @@ void KDFont::colorizeGlyphBuffer(const RenderPalette * renderPalette, GlyphBuffe } KDFont::GlyphIndex KDFont::indexForCodePoint(CodePoint c) const { - int defaultIndex = NumberOfCodePoints - 2; - assert(defaultIndex == 132); // If not, change kandinsky/test/font.cpp - assert(CodePoints[defaultIndex] == 0xFFFD); #define USE_BINARY_SEARCH 0 #if USE_BINARY_SEARCH int lowerBound = 0; @@ -157,6 +154,7 @@ KDFont::GlyphIndex KDFont::indexForCodePoint(CodePoint c) const { return endPair->glyphIndex(); } NoMatchingGlyph: - return defaultIndex; + assert(CodePoints[IndexForReplacementCharacterCodePoint] == 0xFFFD); + return IndexForReplacementCharacterCodePoint; #endif } diff --git a/kandinsky/test/font.cpp b/kandinsky/test/font.cpp index 422df5c75..41f1bdbc3 100644 --- a/kandinsky/test/font.cpp +++ b/kandinsky/test/font.cpp @@ -11,26 +11,24 @@ static constexpr KDFont::CodePointIndexPair table[] = { constexpr KDFont testFont(4, table, 10, 10, nullptr, nullptr); -constexpr int defaultIndex = 132; // Taken from KDFont::indexForCodePoint - constexpr int numberOfTests = 16; const KDFont::GlyphIndex index_for_code_point[numberOfTests] = { - static_cast(defaultIndex), - static_cast(defaultIndex), - static_cast(defaultIndex), + KDFont::IndexForReplacementCharacterCodePoint, + KDFont::IndexForReplacementCharacterCodePoint, + KDFont::IndexForReplacementCharacterCodePoint, 1, 2, 3, - static_cast(defaultIndex), - static_cast(defaultIndex), - static_cast(defaultIndex), + KDFont::IndexForReplacementCharacterCodePoint, + KDFont::IndexForReplacementCharacterCodePoint, + KDFont::IndexForReplacementCharacterCodePoint, 4, - static_cast(defaultIndex), - static_cast(defaultIndex), + KDFont::IndexForReplacementCharacterCodePoint, + KDFont::IndexForReplacementCharacterCodePoint, 5, 6, 7, - static_cast(defaultIndex), + KDFont::IndexForReplacementCharacterCodePoint, }; QUIZ_CASE(kandinsky_font_index_for_code_point) {