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;