Change CFDF_Document::ParseMemory() to use pdfium::span.
Change-Id: I1e9b02f0cb2628d41bc1c6bdcfcfa09c36faf97e
Reviewed-on: https://pdfium-review.googlesource.com/39990
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/parser/cfdf_document.cpp b/core/fpdfapi/parser/cfdf_document.cpp
index cfed11b..d37c8d5 100644
--- a/core/fpdfapi/parser/cfdf_document.cpp
+++ b/core/fpdfapi/parser/cfdf_document.cpp
@@ -16,6 +16,7 @@
#include "core/fpdfapi/parser/fpdf_parser_utility.h"
#include "core/fxcrt/cfx_readonlymemorystream.h"
#include "third_party/base/ptr_util.h"
+#include "third_party/base/span.h"
CFDF_Document::CFDF_Document() = default;
@@ -28,10 +29,11 @@
return pDoc;
}
-std::unique_ptr<CFDF_Document> CFDF_Document::ParseMemory(const uint8_t* pData,
- uint32_t size) {
+std::unique_ptr<CFDF_Document> CFDF_Document::ParseMemory(
+ pdfium::span<const uint8_t> span) {
auto pDoc = pdfium::MakeUnique<CFDF_Document>();
- pDoc->ParseStream(pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(pData, size));
+ pDoc->ParseStream(
+ pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(span.data(), span.size()));
return pDoc->m_pRootDict ? std::move(pDoc) : nullptr;
}
diff --git a/core/fpdfapi/parser/cfdf_document.h b/core/fpdfapi/parser/cfdf_document.h
index c1c1b79..6efaa4c 100644
--- a/core/fpdfapi/parser/cfdf_document.h
+++ b/core/fpdfapi/parser/cfdf_document.h
@@ -12,6 +12,7 @@
#include "core/fpdfapi/parser/cpdf_indirect_object_holder.h"
#include "core/fpdfapi/parser/cpdf_object.h"
#include "core/fxcrt/unowned_ptr.h"
+#include "third_party/base/span.h"
class CPDF_Dictionary;
class IFX_SeekableReadStream;
@@ -19,8 +20,8 @@
class CFDF_Document : public CPDF_IndirectObjectHolder {
public:
static std::unique_ptr<CFDF_Document> CreateNewDoc();
- static std::unique_ptr<CFDF_Document> ParseMemory(const uint8_t* pData,
- uint32_t size);
+ static std::unique_ptr<CFDF_Document> ParseMemory(
+ pdfium::span<const uint8_t> span);
CFDF_Document();
~CFDF_Document() override;
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index 55b9f7c..b9256aa 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -79,8 +79,7 @@
#endif // PDF_ENABLE_XFA
bool FDFToURLEncodedData(std::vector<uint8_t>* pBuffer) {
- std::unique_ptr<CFDF_Document> pFDF =
- CFDF_Document::ParseMemory(pBuffer->data(), pBuffer->size());
+ std::unique_ptr<CFDF_Document> pFDF = CFDF_Document::ParseMemory(*pBuffer);
if (!pFDF)
return true;