Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Unified Diff: core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp

Issue 1701073002: Split CPDF_PageObjectHolder off from CPDF_PageObjectList (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: m_pPage can never be null, remove checks. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
index 7f242fdb0efdec76a33909df2a28812e1628c88a..6e02cb11b4aeb73ce6b470b890b30384a877d241 100644
--- a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
+++ b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
@@ -114,7 +114,7 @@ CPDF_StreamContentParser::CPDF_StreamContentParser(
CPDF_Dictionary* pPageResources,
CPDF_Dictionary* pParentResources,
CFX_Matrix* pmtContentToUser,
- CPDF_PageObjectList* pObjList,
+ CPDF_PageObjectHolder* pObjHolder,
CPDF_Dictionary* pResources,
CPDF_Rect* pBBox,
CPDF_ParseOptions* pOptions,
@@ -124,7 +124,7 @@ CPDF_StreamContentParser::CPDF_StreamContentParser(
m_pPageResources(pPageResources),
m_pParentResources(pParentResources),
m_pResources(pResources),
- m_pObjectList(pObjList),
+ m_pObjectHolder(pObjHolder),
m_Level(level),
m_ParamStartPos(0),
m_ParamCount(0),
@@ -738,8 +738,8 @@ void CPDF_StreamContentParser::Handle_ExecuteXObject() {
CPDF_ImageObject* pObj = AddImage(pXObject, NULL, FALSE);
m_LastImageName = name;
m_pLastImage = pObj->m_pImage;
- if (!m_pObjectList->HasImageMask())
- m_pObjectList->SetHasImageMask(m_pLastImage->IsMask());
+ if (!m_pObjectHolder->HasImageMask())
+ m_pObjectHolder->SetHasImageMask(m_pLastImage->IsMask());
} else if (type == "Form") {
AddForm(pXObject);
} else {
@@ -764,7 +764,7 @@ void CPDF_StreamContentParser::AddForm(CPDF_Stream* pStream) {
form_bbox.Transform(&form_matrix);
}
CPDF_StreamContentParser parser(m_pDocument, m_pPageResources, m_pResources,
- &m_mtContentToUser, m_pObjectList,
+ &m_mtContentToUser, m_pObjectHolder,
pResources, &form_bbox, &m_Options,
m_pCurStates.get(), m_Level + 1);
parser.m_pCurStates->m_CTM = form_matrix;
@@ -791,13 +791,13 @@ void CPDF_StreamContentParser::AddForm(CPDF_Stream* pStream) {
status.m_ColorState = m_pCurStates->m_ColorState;
status.m_TextState = m_pCurStates->m_TextState;
pFormObj->m_pForm->ParseContent(&status, NULL, NULL, &m_Options, m_Level + 1);
- if (!m_pObjectList->BackgroundAlphaNeeded() &&
+ if (!m_pObjectHolder->BackgroundAlphaNeeded() &&
pFormObj->m_pForm->BackgroundAlphaNeeded()) {
- m_pObjectList->SetBackgroundAlphaNeeded(TRUE);
+ m_pObjectHolder->SetBackgroundAlphaNeeded(TRUE);
}
pFormObj->CalcBoundingBox();
SetGraphicStates(pFormObj, TRUE, TRUE, TRUE);
- m_pObjectList->AddTail(pFormObj);
+ m_pObjectHolder->GetPageObjectList()->AddTail(pFormObj);
}
CPDF_ImageObject* CPDF_StreamContentParser::AddImage(CPDF_Stream* pStream,
@@ -822,7 +822,7 @@ CPDF_ImageObject* CPDF_StreamContentParser::AddImage(CPDF_Stream* pStream,
SetGraphicStates(pImageObj, pImageObj->m_pImage->IsMask(), FALSE, FALSE);
pImageObj->m_Matrix = ImageMatrix;
pImageObj->CalcBoundingBox();
- m_pObjectList->AddTail(pImageObj);
+ m_pObjectHolder->GetPageObjectList()->AddTail(pImageObj);
return pImageObj;
}
@@ -1211,7 +1211,7 @@ void CPDF_StreamContentParser::Handle_ShadeFill() {
pObj->m_Right = bbox.right;
pObj->m_Top = bbox.top;
pObj->m_Bottom = bbox.bottom;
- m_pObjectList->AddTail(pObj);
+ m_pObjectHolder->GetPageObjectList()->AddTail(pObj);
}
void CPDF_StreamContentParser::Handle_SetCharSpace() {
@@ -1389,7 +1389,7 @@ void CPDF_StreamContentParser::AddTextObject(CFX_ByteString* pStrs,
pCopy->Copy(pText);
m_ClipTextList.Add(pCopy);
}
- m_pObjectList->AddTail(pText);
+ m_pObjectHolder->GetPageObjectList()->AddTail(pText);
if (pKerning && pKerning[nsegs - 1] != 0) {
if (!pFont->IsVertWriting()) {
m_pCurStates->m_TextX -=
@@ -1624,7 +1624,7 @@ void CPDF_StreamContentParser::AddPathObject(int FillType, FX_BOOL bStroke) {
pPathObj->m_Matrix = matrix;
SetGraphicStates(pPathObj, TRUE, FALSE, TRUE);
pPathObj->CalcBoundingBox();
- m_pObjectList->AddTail(pPathObj);
+ m_pObjectHolder->GetPageObjectList()->AddTail(pPathObj);
}
if (PathClipType) {
if (!matrix.IsIdentity()) {
@@ -1641,12 +1641,13 @@ FX_DWORD CPDF_StreamContentParser::Parse(const uint8_t* pData,
if (m_Level > _FPDF_MAX_FORM_LEVEL_) {
return dwSize;
}
- FX_DWORD InitObjCount = m_pObjectList->CountObjects();
+ FX_DWORD InitObjCount = m_pObjectHolder->GetPageObjectList()->GetCount();
CPDF_StreamParser syntax(pData, dwSize);
CPDF_StreamParserAutoClearer auto_clearer(&m_pSyntax, &syntax);
m_CompatCount = 0;
while (1) {
- FX_DWORD cost = m_pObjectList->CountObjects() - InitObjCount;
+ FX_DWORD cost =
+ m_pObjectHolder->GetPageObjectList()->GetCount() - InitObjCount;
if (max_cost && cost >= max_cost) {
break;
}
« no previous file with comments | « core/src/fpdfapi/fpdf_page/fpdf_page_graph_state.cpp ('k') | core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698