From 53894390dba2ec571bab75157ebe60d11171ed07 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Mon, 9 Apr 2018 18:30:24 +0000 Subject: 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 Reviewed-by: dsinclair --- core/fpdfapi/font/cpdf_cidfont.cpp | 2 +- core/fpdfapi/font/cpdf_cmap.cpp | 2 +- core/fpdfapi/font/cpdf_cmap.h | 3 ++- core/fpdfapi/font/cpdf_tounicodemap.cpp | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) (limited to 'core/fpdfapi/font') 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(pStream); pAcc->LoadAllDataFiltered(); m_pCMap = pdfium::MakeRetain(); - 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 data) { m_DirectCharcodeToCIDTable = std::vector(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 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(pStream); pAcc->LoadAllDataFiltered(); - CPDF_SimpleParser parser(pAcc->GetDataView()); + CPDF_SimpleParser parser(pAcc->GetSpan()); while (1) { ByteStringView word = parser.GetWord(); if (word.IsEmpty()) { -- cgit v1.2.3