Avoid overloading CPDF_StreamContentParser::AddImage()
Give the 3 AddImage() methods unique names, to make it clearer what they
do. Simplify one version, where the in-param is always the same and
never null.
Change-Id: I0c474c92e3d92e1b6edc89616c5580b3a1ea318f
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/105250
Reviewed-by: Nigi <nigi@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 457e75b..c7c2911 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -650,7 +650,7 @@
if (m_pSyntax->GetWord() == "EI")
break;
}
- CPDF_ImageObject* pObj = AddImage(std::move(pStream));
+ CPDF_ImageObject* pObj = AddImageFromStream(std::move(pStream));
// Record the bounding box of this image, so rendering code can draw it
// properly.
if (pObj && pObj->GetImage()->IsMask())
@@ -725,7 +725,7 @@
ByteString name = GetString(0);
if (name == m_LastImageName && m_pLastImage && m_pLastImage->GetStream() &&
m_pLastImage->GetStream()->GetObjNum()) {
- CPDF_ImageObject* pObj = AddImage(m_pLastImage);
+ CPDF_ImageObject* pObj = AddLastImage();
// Record the bounding box of this image, so rendering code can draw it
// properly.
if (pObj && pObj->GetImage()->IsMask())
@@ -747,9 +747,9 @@
}
if (type == "Image") {
- CPDF_ImageObject* pObj = pXObject->IsInline()
- ? AddImage(ToStream(pXObject->Clone()))
- : AddImage(pXObject->GetObjNum());
+ CPDF_ImageObject* pObj =
+ pXObject->IsInline() ? AddImageFromStream(ToStream(pXObject->Clone()))
+ : AddImageFromStreamObjNum(pXObject->GetObjNum());
m_LastImageName = std::move(name);
if (pObj) {
@@ -782,7 +782,7 @@
m_pObjectHolder->AppendPageObject(std::move(pFormObj));
}
-CPDF_ImageObject* CPDF_StreamContentParser::AddImage(
+CPDF_ImageObject* CPDF_StreamContentParser::AddImageFromStream(
RetainPtr<CPDF_Stream> pStream) {
if (!pStream)
return nullptr;
@@ -794,22 +794,21 @@
return AddImageObject(std::move(pImageObj));
}
-CPDF_ImageObject* CPDF_StreamContentParser::AddImage(uint32_t streamObjNum) {
+CPDF_ImageObject* CPDF_StreamContentParser::AddImageFromStreamObjNum(
+ uint32_t stream_obj_num) {
auto pImageObj = std::make_unique<CPDF_ImageObject>(GetCurrentStreamIndex());
pImageObj->SetImage(
- CPDF_DocPageData::FromDocument(m_pDocument)->GetImage(streamObjNum));
+ CPDF_DocPageData::FromDocument(m_pDocument)->GetImage(stream_obj_num));
return AddImageObject(std::move(pImageObj));
}
-CPDF_ImageObject* CPDF_StreamContentParser::AddImage(
- const RetainPtr<CPDF_Image>& pImage) {
- if (!pImage)
- return nullptr;
+CPDF_ImageObject* CPDF_StreamContentParser::AddLastImage() {
+ DCHECK(m_pLastImage);
auto pImageObj = std::make_unique<CPDF_ImageObject>(GetCurrentStreamIndex());
pImageObj->SetImage(CPDF_DocPageData::FromDocument(m_pDocument)
- ->GetImage(pImage->GetStream()->GetObjNum()));
+ ->GetImage(m_pLastImage->GetStream()->GetObjNum()));
return AddImageObject(std::move(pImageObj));
}
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.h b/core/fpdfapi/page/cpdf_streamcontentparser.h
index d8abdc1..86da47d 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.h
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.h
@@ -119,9 +119,9 @@
void AddPathRect(float x, float y, float w, float h);
void AddPathObject(CFX_FillRenderOptions::FillType fill_type,
RenderType render_type);
- CPDF_ImageObject* AddImage(RetainPtr<CPDF_Stream> pStream);
- CPDF_ImageObject* AddImage(uint32_t streamObjNum);
- CPDF_ImageObject* AddImage(const RetainPtr<CPDF_Image>& pImage);
+ CPDF_ImageObject* AddImageFromStream(RetainPtr<CPDF_Stream> pStream);
+ CPDF_ImageObject* AddImageFromStreamObjNum(uint32_t stream_obj_num);
+ CPDF_ImageObject* AddLastImage();
void AddForm(RetainPtr<CPDF_Stream> pStream);
void SetGraphicStates(CPDF_PageObject* pObj,