Move CFX_SeekableMultiStream to CPDF_SeekableMultiStream.
Although it implements a fxcrt interface, it does so via fpdfapi/parser
objects, so it must live above fxcrt, since fxcrt shouldn't be allowed
to include fpdfapi. Make it a part of fpdfapi/parser itself under XFA
builds. In turn, this gets rid of a small component
":seekablemultistream" in the middle of the module dependency chart.
Change-Id: Iff47c8329e142359ba921653056470244b911f32
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/55610
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/parser/BUILD.gn b/core/fpdfapi/parser/BUILD.gn
index 6bfac18..af141a8 100644
--- a/core/fpdfapi/parser/BUILD.gn
+++ b/core/fpdfapi/parser/BUILD.gn
@@ -86,6 +86,12 @@
allow_circular_includes_from = []
visibility = [ "../../../*" ]
+ if (pdf_enable_xfa) {
+ sources += [
+ "cpdf_seekablemultistream.cpp",
+ "cpdf_seekablemultistream.h",
+ ]
+ }
if (pdf_use_skia || pdf_use_skia_paths) {
allow_circular_includes_from += [ "../../fxge" ]
}
@@ -117,6 +123,9 @@
]
pdfium_root_dir = "../../../"
+ if (pdf_enable_xfa) {
+ sources += [ "cpdf_seekablemultistream_unittest.cpp" ]
+ }
if (is_clang) {
# Suppress no override warning for overridden functions.
cflags = [ "-Wno-inconsistent-missing-override" ]
diff --git a/core/fxcrt/cfx_seekablemultistream.cpp b/core/fpdfapi/parser/cpdf_seekablemultistream.cpp
similarity index 70%
rename from core/fxcrt/cfx_seekablemultistream.cpp
rename to core/fpdfapi/parser/cpdf_seekablemultistream.cpp
index f600854..d2a0417 100644
--- a/core/fxcrt/cfx_seekablemultistream.cpp
+++ b/core/fpdfapi/parser/cpdf_seekablemultistream.cpp
@@ -4,7 +4,7 @@
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-#include "core/fxcrt/cfx_seekablemultistream.h"
+#include "core/fpdfapi/parser/cpdf_seekablemultistream.h"
#include <algorithm>
@@ -12,7 +12,7 @@
#include "third_party/base/logging.h"
#include "third_party/base/stl_util.h"
-CFX_SeekableMultiStream::CFX_SeekableMultiStream(
+CPDF_SeekableMultiStream::CPDF_SeekableMultiStream(
const std::vector<const CPDF_Stream*>& streams) {
for (const CPDF_Stream* pStream : streams) {
m_Data.push_back(pdfium::MakeRetain<CPDF_StreamAcc>(pStream));
@@ -20,18 +20,18 @@
}
}
-CFX_SeekableMultiStream::~CFX_SeekableMultiStream() {}
+CPDF_SeekableMultiStream::~CPDF_SeekableMultiStream() {}
-FX_FILESIZE CFX_SeekableMultiStream::GetSize() {
+FX_FILESIZE CPDF_SeekableMultiStream::GetSize() {
uint32_t dwSize = 0;
for (const auto& acc : m_Data)
dwSize += acc->GetSize();
return dwSize;
}
-bool CFX_SeekableMultiStream::ReadBlockAtOffset(void* buffer,
- FX_FILESIZE offset,
- size_t size) {
+bool CPDF_SeekableMultiStream::ReadBlockAtOffset(void* buffer,
+ FX_FILESIZE offset,
+ size_t size) {
int32_t iCount = pdfium::CollectionSize<int32_t>(m_Data);
int32_t index = 0;
while (index < iCount) {
@@ -59,27 +59,27 @@
return false;
}
-size_t CFX_SeekableMultiStream::ReadBlock(void* buffer, size_t size) {
+size_t CPDF_SeekableMultiStream::ReadBlock(void* buffer, size_t size) {
NOTREACHED();
return 0;
}
-FX_FILESIZE CFX_SeekableMultiStream::GetPosition() {
+FX_FILESIZE CPDF_SeekableMultiStream::GetPosition() {
return 0;
}
-bool CFX_SeekableMultiStream::IsEOF() {
+bool CPDF_SeekableMultiStream::IsEOF() {
return false;
}
-bool CFX_SeekableMultiStream::Flush() {
+bool CPDF_SeekableMultiStream::Flush() {
NOTREACHED();
return false;
}
-bool CFX_SeekableMultiStream::WriteBlockAtOffset(const void* pData,
- FX_FILESIZE offset,
- size_t size) {
+bool CPDF_SeekableMultiStream::WriteBlockAtOffset(const void* pData,
+ FX_FILESIZE offset,
+ size_t size) {
NOTREACHED();
return false;
}
diff --git a/core/fxcrt/cfx_seekablemultistream.h b/core/fpdfapi/parser/cpdf_seekablemultistream.h
similarity index 75%
rename from core/fxcrt/cfx_seekablemultistream.h
rename to core/fpdfapi/parser/cpdf_seekablemultistream.h
index 2f8b874..30a8479 100644
--- a/core/fxcrt/cfx_seekablemultistream.h
+++ b/core/fpdfapi/parser/cpdf_seekablemultistream.h
@@ -4,8 +4,8 @@
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-#ifndef CORE_FXCRT_CFX_SEEKABLEMULTISTREAM_H_
-#define CORE_FXCRT_CFX_SEEKABLEMULTISTREAM_H_
+#ifndef CORE_FPDFAPI_PARSER_CPDF_SEEKABLEMULTISTREAM_H_
+#define CORE_FPDFAPI_PARSER_CPDF_SEEKABLEMULTISTREAM_H_
#include <vector>
@@ -15,11 +15,11 @@
class CPDF_Stream;
class CPDF_StreamAcc;
-class CFX_SeekableMultiStream final : public IFX_SeekableStream {
+class CPDF_SeekableMultiStream final : public IFX_SeekableStream {
public:
- explicit CFX_SeekableMultiStream(
+ explicit CPDF_SeekableMultiStream(
const std::vector<const CPDF_Stream*>& streams);
- ~CFX_SeekableMultiStream() override;
+ ~CPDF_SeekableMultiStream() override;
// IFX_SeekableReadStream
FX_FILESIZE GetPosition() override;
@@ -38,4 +38,4 @@
std::vector<RetainPtr<CPDF_StreamAcc>> m_Data;
};
-#endif // CORE_FXCRT_CFX_SEEKABLEMULTISTREAM_H_
+#endif // CORE_FPDFAPI_PARSER_CPDF_SEEKABLEMULTISTREAM_H_
diff --git a/core/fxcrt/cfx_seekablemultistream_unittest.cpp b/core/fpdfapi/parser/cpdf_seekablemultistream_unittest.cpp
similarity index 89%
rename from core/fxcrt/cfx_seekablemultistream_unittest.cpp
rename to core/fpdfapi/parser/cpdf_seekablemultistream_unittest.cpp
index ad6fa2f..4f806fa 100644
--- a/core/fxcrt/cfx_seekablemultistream_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_seekablemultistream_unittest.cpp
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "core/fxcrt/cfx_seekablemultistream.h"
+#include "core/fpdfapi/parser/cpdf_seekablemultistream.h"
#include <memory>
#include <vector>
@@ -12,9 +12,9 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/base/ptr_util.h"
-TEST(CFX_SeekableMultiStreamTest, NoStreams) {
+TEST(CPDFSeekableMultiStreamTest, NoStreams) {
std::vector<const CPDF_Stream*> streams;
- auto fileread = pdfium::MakeRetain<CFX_SeekableMultiStream>(streams);
+ auto fileread = pdfium::MakeRetain<CPDF_SeekableMultiStream>(streams);
uint8_t output_buffer[16];
memset(output_buffer, 0xbd, sizeof(output_buffer));
@@ -26,7 +26,7 @@
std::vector<const CPDF_Stream*> streams;
auto stream1 = pdfium::MakeRetain<CPDF_Stream>();
streams.push_back(stream1.Get());
- auto fileread = pdfium::MakeRetain<CFX_SeekableMultiStream>(streams);
+ auto fileread = pdfium::MakeRetain<CPDF_SeekableMultiStream>(streams);
uint8_t output_buffer[16];
memset(output_buffer, 0xbd, sizeof(output_buffer));
@@ -51,7 +51,7 @@
streams.push_back(stream1.Get());
streams.push_back(stream2.Get());
streams.push_back(stream3.Get());
- auto fileread = pdfium::MakeRetain<CFX_SeekableMultiStream>(streams);
+ auto fileread = pdfium::MakeRetain<CPDF_SeekableMultiStream>(streams);
uint8_t output_buffer[16];
memset(output_buffer, 0xbd, sizeof(output_buffer));
diff --git a/core/fxcrt/BUILD.gn b/core/fxcrt/BUILD.gn
index e4b1154..0b31e16 100644
--- a/core/fxcrt/BUILD.gn
+++ b/core/fxcrt/BUILD.gn
@@ -126,21 +126,6 @@
}
}
-if (pdf_enable_xfa) {
- jumbo_source_set("seekablemultistream") {
- sources = [
- "cfx_seekablemultistream.cpp",
- "cfx_seekablemultistream.h",
- ]
- deps = [
- ":fxcrt",
- "../fpdfapi/parser",
- ]
- configs += [ "../../:pdfium_core_config" ]
- visibility = [ "../../*" ]
- }
-}
-
pdfium_unittest_source_set("unittests") {
sources = [
"autorestorer_unittest.cpp",
@@ -181,13 +166,11 @@
if (pdf_enable_xfa) {
sources += [
"cfx_memorystream_unittest.cpp",
- "cfx_seekablemultistream_unittest.cpp",
"css/cfx_cssdeclaration_unittest.cpp",
"css/cfx_cssstylesheet_unittest.cpp",
"css/cfx_cssvaluelistparser_unittest.cpp",
]
deps += [
- ":seekablemultistream",
"../fpdfapi/parser",
"css",
]
diff --git a/xfa/fxfa/BUILD.gn b/xfa/fxfa/BUILD.gn
index 24aa711..f3c132d 100644
--- a/xfa/fxfa/BUILD.gn
+++ b/xfa/fxfa/BUILD.gn
@@ -101,7 +101,6 @@
"../../core/fpdfdoc",
"../../core/fxcodec",
"../../core/fxcrt",
- "../../core/fxcrt:seekablemultistream",
"../../core/fxcrt/css",
"../../core/fxge",
"../../fxbarcode",
diff --git a/xfa/fxfa/cxfa_ffdoc.cpp b/xfa/fxfa/cxfa_ffdoc.cpp
index ebc3356..a71d7ec 100644
--- a/xfa/fxfa/cxfa_ffdoc.cpp
+++ b/xfa/fxfa/cxfa_ffdoc.cpp
@@ -13,11 +13,11 @@
#include "core/fpdfapi/parser/cpdf_array.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_document.h"
+#include "core/fpdfapi/parser/cpdf_seekablemultistream.h"
#include "core/fpdfapi/parser/cpdf_stream.h"
#include "core/fpdfapi/parser/cpdf_stream_acc.h"
#include "core/fpdfdoc/cpdf_nametree.h"
#include "core/fxcrt/cfx_readonlymemorystream.h"
-#include "core/fxcrt/cfx_seekablemultistream.h"
#include "core/fxcrt/fx_extension.h"
#include "core/fxcrt/xml/cfx_xmldocument.h"
#include "core/fxcrt/xml/cfx_xmlelement.h"
@@ -120,7 +120,7 @@
if (xfaStreams.empty())
return false;
- auto stream = pdfium::MakeRetain<CFX_SeekableMultiStream>(xfaStreams);
+ auto stream = pdfium::MakeRetain<CPDF_SeekableMultiStream>(xfaStreams);
CXFA_DocumentParser parser(m_pDocument.get());
bool parsed = parser.Parse(stream, XFA_PacketType::Xdp);