From 193e6ca5e48ee99e620f0e7546f1407ba1a20323 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 14 Mar 2017 15:53:36 -0700 Subject: Add IndexInBounds() convenience routine. Avoid writing |Type| in CollectionSize() so that index type can change without rewriting conditions. Change-Id: I40c94ca39148b379908760ba9b861114b88af7bb Reviewed-on: https://pdfium-review.googlesource.com/3056 Reviewed-by: Lei Zhang Commit-Queue: Tom Sepez --- core/fpdfapi/font/cpdf_font.cpp | 5 ++--- core/fpdfapi/font/ttgsubtable.cpp | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) (limited to 'core/fpdfapi/font') diff --git a/core/fpdfapi/font/cpdf_font.cpp b/core/fpdfapi/font/cpdf_font.cpp index 7988ec7124..f0b5ac16b7 100644 --- a/core/fpdfapi/font/cpdf_font.cpp +++ b/core/fpdfapi/font/cpdf_font.cpp @@ -458,10 +458,9 @@ uint32_t CPDF_Font::FallbackFontFromCharcode(uint32_t charcode) { } int CPDF_Font::FallbackGlyphFromCharcode(int fallbackFont, uint32_t charcode) { - if (fallbackFont < 0 || - fallbackFont >= pdfium::CollectionSize(m_FontFallbacks)) { + if (!pdfium::IndexInBounds(m_FontFallbacks, fallbackFont)) return -1; - } + int glyph = FXFT_Get_Char_Index(m_FontFallbacks[fallbackFont]->GetFace(), charcode); if (glyph == 0 || glyph == 0xffff) diff --git a/core/fpdfapi/font/ttgsubtable.cpp b/core/fpdfapi/font/ttgsubtable.cpp index 946ccd7abe..4fae5d41d2 100644 --- a/core/fpdfapi/font/ttgsubtable.cpp +++ b/core/fpdfapi/font/ttgsubtable.cpp @@ -127,9 +127,8 @@ bool CFX_CTTGSUBTable::GetVerticalGlyphSub(uint32_t glyphnum, uint32_t* vglyphnum, TFeature* Feature) { for (int index : Feature->LookupListIndices) { - if (index < 0 || index >= pdfium::CollectionSize(LookupList.Lookups)) + if (!pdfium::IndexInBounds(LookupList.Lookups, index)) continue; - if (LookupList.Lookups[index].LookupType == 1 && GetVerticalGlyphSub2(glyphnum, vglyphnum, &LookupList.Lookups[index])) { return true; @@ -154,8 +153,7 @@ bool CFX_CTTGSUBTable::GetVerticalGlyphSub2(uint32_t glyphnum, case 2: { auto* tbl2 = static_cast(subTable.get()); int index = GetCoverageIndex(tbl2->Coverage.get(), glyphnum); - if (index >= 0 && - index < pdfium::CollectionSize(tbl2->Substitutes)) { + if (pdfium::IndexInBounds(tbl2->Substitutes, index)) { *vglyphnum = tbl2->Substitutes[index]; return true; } -- cgit v1.2.3