diff options
author | Nicolas Pena <npm@chromium.org> | 2018-08-24 17:55:00 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-08-24 17:55:00 +0000 |
commit | 1cb4d6b14cc9375dc04f57d3f2149eccb9e327a8 (patch) | |
tree | 09da0a3718ee821e22df75b0c55906f339979933 /core/fpdftext/cpdf_textpage.cpp | |
parent | ce26d7d03d6c80f7dd1db0f650cac6f93fd53fee (diff) | |
download | pdfium-1cb4d6b14cc9375dc04f57d3f2149eccb9e327a8.tar.xz |
Cleanup CalculateBaseSpace in CPDF_TextPage
Change-Id: Iaa3e8d88083d7ac15762ff2d5d74a378f626483c
Reviewed-on: https://pdfium-review.googlesource.com/41350
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Diffstat (limited to 'core/fpdftext/cpdf_textpage.cpp')
-rw-r--r-- | core/fpdftext/cpdf_textpage.cpp | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp index 8375d1f8cc..7ddf6d9282 100644 --- a/core/fpdftext/cpdf_textpage.cpp +++ b/core/fpdftext/cpdf_textpage.cpp @@ -48,26 +48,27 @@ float NormalizeThreshold(float threshold, int t1, int t2, int t3) { float CalculateBaseSpace(const CPDF_TextObject* pTextObj, const CFX_Matrix& matrix) { - float baseSpace = 0.0; const size_t nItems = pTextObj->CountItems(); - if (pTextObj->m_TextState.GetCharSpace() && nItems >= 3) { - bool bAllChar = true; - float spacing = - matrix.TransformDistance(pTextObj->m_TextState.GetCharSpace()); - baseSpace = spacing; - for (size_t i = 0; i < nItems; ++i) { - CPDF_TextObjectItem item; - pTextObj->GetItemInfo(i, &item); - if (item.m_CharCode == static_cast<uint32_t>(-1)) { - float fontsize_h = pTextObj->m_TextState.GetFontSizeH(); - float kerning = -fontsize_h * item.m_Origin.x / 1000; - baseSpace = std::min(baseSpace, kerning + spacing); - bAllChar = false; - } + if (!pTextObj->m_TextState.GetCharSpace() || nItems < 3) + return 0.0f; + + bool bAllChar = true; + float spacing = + matrix.TransformDistance(pTextObj->m_TextState.GetCharSpace()); + float baseSpace = spacing; + for (size_t i = 0; i < nItems; ++i) { + CPDF_TextObjectItem item; + pTextObj->GetItemInfo(i, &item); + if (item.m_CharCode == static_cast<uint32_t>(-1)) { + float fontsize_h = pTextObj->m_TextState.GetFontSizeH(); + float kerning = -fontsize_h * item.m_Origin.x / 1000; + baseSpace = std::min(baseSpace, kerning + spacing); + bAllChar = false; } - if (baseSpace < 0.0 || (nItems == 3 && !bAllChar)) - baseSpace = 0.0; } + if (baseSpace < 0.0 || (nItems == 3 && !bAllChar)) + return 0.0f; + return baseSpace; } @@ -90,7 +91,7 @@ size_t Unicode_GetNormalization(wchar_t wch, wchar_t* pDst) { wFind >>= 12; const uint16_t* pMap = g_UnicodeData_Normalization_Maps[wFind - 2] + wch; if (wFind == 4) - wFind = (wchar_t)(*pMap++); + wFind = static_cast<wchar_t>(*pMap++); if (pDst) { wchar_t n = wFind; |