Prune some more cross-component fpdfapi/parser -> page includes.
Theoretically, someday we could have render >> page >> font >> parser.
Move a small amount of work from CPDF_Document into its callers and
fix IWYU cascade.
Change-Id: I52218e8d7492685ffced025580f32ecbb6a10c1c
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/55550
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
index 7659413..87e27ca 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
@@ -9,6 +9,7 @@
#include <vector>
#include "core/fpdfapi/page/cpdf_pageobject.h"
+#include "core/fpdfapi/page/cpdf_pageobjectholder.h"
#include "core/fpdfapi/parser/cpdf_array.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_document.h"
diff --git a/core/fpdfapi/page/cpdf_colorspace.cpp b/core/fpdfapi/page/cpdf_colorspace.cpp
index 70bef78..dcfd59d 100644
--- a/core/fpdfapi/page/cpdf_colorspace.cpp
+++ b/core/fpdfapi/page/cpdf_colorspace.cpp
@@ -876,7 +876,7 @@
return 0;
uint32_t nComponents = static_cast<uint32_t>(nDictComponents);
- m_pProfile = pDoc->LoadIccProfile(pStream);
+ m_pProfile = pDoc->GetPageData()->GetIccProfile(pStream);
if (!m_pProfile)
return 0;
diff --git a/core/fpdfapi/page/cpdf_imageobject.h b/core/fpdfapi/page/cpdf_imageobject.h
index 41611b8..b28e733 100644
--- a/core/fpdfapi/page/cpdf_imageobject.h
+++ b/core/fpdfapi/page/cpdf_imageobject.h
@@ -7,11 +7,10 @@
#ifndef CORE_FPDFAPI_PAGE_CPDF_IMAGEOBJECT_H_
#define CORE_FPDFAPI_PAGE_CPDF_IMAGEOBJECT_H_
+#include "core/fpdfapi/page/cpdf_image.h"
#include "core/fpdfapi/page/cpdf_pageobject.h"
#include "core/fxcrt/fx_coordinates.h"
-class CPDF_Image;
-
class CPDF_ImageObject final : public CPDF_PageObject {
public:
explicit CPDF_ImageObject(int32_t content_stream);
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 8b5b10c..96dc904 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -813,7 +813,7 @@
CPDF_ImageObject* CPDF_StreamContentParser::AddImage(uint32_t streamObjNum) {
auto pImageObj =
pdfium::MakeUnique<CPDF_ImageObject>(GetCurrentStreamIndex());
- pImageObj->SetImage(m_pDocument->LoadImageFromPageData(streamObjNum));
+ pImageObj->SetImage(m_pDocument->GetPageData()->GetImage(streamObjNum));
return AddImageObject(std::move(pImageObj));
}
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp
index 9b8cc0b..629a73b 100644
--- a/core/fpdfapi/parser/cpdf_document.cpp
+++ b/core/fpdfapi/parser/cpdf_document.cpp
@@ -13,7 +13,6 @@
#include "build/build_config.h"
#include "core/fpdfapi/page/cpdf_docpagedata.h"
-#include "core/fpdfapi/page/cpdf_iccprofile.h"
#include "core/fpdfapi/page/cpdf_pagemodule.h"
#include "core/fpdfapi/parser/cpdf_array.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
@@ -26,7 +25,6 @@
#include "core/fpdfapi/parser/cpdf_stream.h"
#include "core/fpdfapi/parser/cpdf_stream_acc.h"
#include "core/fpdfapi/parser/cpdf_string.h"
-#include "core/fpdfapi/render/cpdf_dibbase.h"
#include "core/fpdfapi/render/cpdf_docrenderdata.h"
#include "core/fxcodec/JBig2_DocumentContext.h"
#include "core/fxcrt/fx_codepage.h"
@@ -487,17 +485,6 @@
return m_pDocPage->GetPattern(pPatternObj, bShading, matrix);
}
-RetainPtr<CPDF_IccProfile> CPDF_Document::LoadIccProfile(
- const CPDF_Stream* pStream) {
- return m_pDocPage->GetIccProfile(pStream);
-}
-
-RetainPtr<CPDF_Image> CPDF_Document::LoadImageFromPageData(
- uint32_t dwStreamObjNum) {
- ASSERT(dwStreamObjNum);
- return m_pDocPage->GetImage(dwStreamObjNum);
-}
-
void CPDF_Document::CreateNewDoc() {
ASSERT(!m_pRootDict);
ASSERT(!m_pInfoDict);
diff --git a/core/fpdfapi/parser/cpdf_document.h b/core/fpdfapi/parser/cpdf_document.h
index 172e991..fa80747 100644
--- a/core/fpdfapi/parser/cpdf_document.h
+++ b/core/fpdfapi/parser/cpdf_document.h
@@ -14,8 +14,6 @@
#include <vector>
#include "build/build_config.h"
-#include "core/fpdfapi/page/cpdf_image.h"
-#include "core/fpdfapi/page/cpdf_page.h"
#include "core/fpdfapi/parser/cpdf_object.h"
#include "core/fpdfapi/parser/cpdf_parser.h"
#include "core/fxcrt/observable.h"
@@ -28,7 +26,6 @@
class CPDF_DocRenderData;
class CPDF_Font;
class CPDF_FontEncoding;
-class CPDF_IccProfile;
class CPDF_LinearizedHeader;
class CPDF_Object;
class CPDF_Pattern;
@@ -106,9 +103,7 @@
bool bShading,
const CFX_Matrix& matrix);
- RetainPtr<CPDF_Image> LoadImageFromPageData(uint32_t dwStreamObjNum);
RetainPtr<CPDF_StreamAcc> LoadFontFile(const CPDF_Stream* pStream);
- RetainPtr<CPDF_IccProfile> LoadIccProfile(const CPDF_Stream* pStream);
// CPDF_Parser::ParsedObjectsHolder overrides:
bool TryInit() override;
diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.cpp b/core/fpdfapi/render/cpdf_imagecacheentry.cpp
index 9691937..134f023 100644
--- a/core/fpdfapi/render/cpdf_imagecacheentry.cpp
+++ b/core/fpdfapi/render/cpdf_imagecacheentry.cpp
@@ -9,6 +9,7 @@
#include <memory>
#include <utility>
+#include "core/fpdfapi/page/cpdf_image.h"
#include "core/fpdfapi/page/cpdf_page.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_document.h"