diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-04-09 18:30:24 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-04-09 18:30:24 +0000 |
commit | 53894390dba2ec571bab75157ebe60d11171ed07 (patch) | |
tree | a2187a69fdc5167be060c621370a6c7c84ebf2e3 /core/fpdfapi/font | |
parent | d45f9980995af5c6e4c68e32df89d3cccb0231ef (diff) | |
download | pdfium-53894390dba2ec571bab75157ebe60d11171ed07.tar.xz |
Use pdfium::span<> in CFX_BitStream, CPDF_SimpleParser.
Get bounds checks in parsers automatically when using spans.
Change-Id: I71fbe7b838435d455376db2f89817d807a9cdcfd
Reviewed-on: https://pdfium-review.googlesource.com/29830
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fpdfapi/font')
-rw-r--r-- | core/fpdfapi/font/cpdf_cidfont.cpp | 2 | ||||
-rw-r--r-- | core/fpdfapi/font/cpdf_cmap.cpp | 2 | ||||
-rw-r--r-- | core/fpdfapi/font/cpdf_cmap.h | 3 | ||||
-rw-r--r-- | core/fpdfapi/font/cpdf_tounicodemap.cpp | 2 |
4 files changed, 5 insertions, 4 deletions
diff --git a/core/fpdfapi/font/cpdf_cidfont.cpp b/core/fpdfapi/font/cpdf_cidfont.cpp index 4a96b0abcb..7de4d7cd82 100644 --- a/core/fpdfapi/font/cpdf_cidfont.cpp +++ b/core/fpdfapi/font/cpdf_cidfont.cpp @@ -376,7 +376,7 @@ bool CPDF_CIDFont::Load() { auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(pStream); pAcc->LoadAllDataFiltered(); m_pCMap = pdfium::MakeRetain<CPDF_CMap>(); - m_pCMap->LoadEmbedded(pAcc->GetDataView()); + m_pCMap->LoadEmbedded(pAcc->GetSpan()); } else { return false; } diff --git a/core/fpdfapi/font/cpdf_cmap.cpp b/core/fpdfapi/font/cpdf_cmap.cpp index e82e86b474..81ad63344c 100644 --- a/core/fpdfapi/font/cpdf_cmap.cpp +++ b/core/fpdfapi/font/cpdf_cmap.cpp @@ -290,7 +290,7 @@ void CPDF_CMap::LoadPredefined(CPDF_CMapManager* pMgr, m_bLoaded = true; } -void CPDF_CMap::LoadEmbedded(const ByteStringView& data) { +void CPDF_CMap::LoadEmbedded(pdfium::span<const uint8_t> data) { m_DirectCharcodeToCIDTable = std::vector<uint16_t>(65536); CPDF_CMapParser parser(this); CPDF_SimpleParser syntax(data); diff --git a/core/fpdfapi/font/cpdf_cmap.h b/core/fpdfapi/font/cpdf_cmap.h index 3ad74ca187..c6fdcae17b 100644 --- a/core/fpdfapi/font/cpdf_cmap.h +++ b/core/fpdfapi/font/cpdf_cmap.h @@ -11,6 +11,7 @@ #include "core/fpdfapi/font/cpdf_cidfont.h" #include "core/fxcrt/retain_ptr.h" +#include "third_party/base/span.h" class CPDF_CMapManager; struct FXCMAP_CMap; @@ -53,7 +54,7 @@ class CPDF_CMap : public Retainable { void LoadPredefined(CPDF_CMapManager* pMgr, const ByteString& name, bool bPromptCJK); - void LoadEmbedded(const ByteStringView& data); + void LoadEmbedded(pdfium::span<const uint8_t> data); bool IsLoaded() const { return m_bLoaded; } bool IsVertWriting() const { return m_bVertical; } diff --git a/core/fpdfapi/font/cpdf_tounicodemap.cpp b/core/fpdfapi/font/cpdf_tounicodemap.cpp index 88904f27f5..f21c4a31f4 100644 --- a/core/fpdfapi/font/cpdf_tounicodemap.cpp +++ b/core/fpdfapi/font/cpdf_tounicodemap.cpp @@ -126,7 +126,7 @@ void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) { CIDSet cid_set = CIDSET_UNKNOWN; auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(pStream); pAcc->LoadAllDataFiltered(); - CPDF_SimpleParser parser(pAcc->GetDataView()); + CPDF_SimpleParser parser(pAcc->GetSpan()); while (1) { ByteStringView word = parser.GetWord(); if (word.IsEmpty()) { |