| Index: core/src/fpdfapi/fpdf_page/fpdf_page.cpp
|
| diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page.cpp
|
| index c4a26e992119e3d7e105bd432e170642c28b894c..1a81e1b90106a18ab3734615cb1a9e5a41fceb2a 100644
|
| --- a/core/src/fpdfapi/fpdf_page/fpdf_page.cpp
|
| +++ b/core/src/fpdfapi/fpdf_page/fpdf_page.cpp
|
| @@ -670,7 +670,7 @@ void CPDF_FormObject::CalcBoundingBox() {
|
| m_Right = form_rect.right;
|
| m_Top = form_rect.top;
|
| }
|
| -CPDF_PageObjectList::CPDF_PageObjectList()
|
| +CPDF_PageObjectHolder::CPDF_PageObjectHolder()
|
| : m_pFormDict(nullptr),
|
| m_pFormStream(nullptr),
|
| m_pDocument(nullptr),
|
| @@ -680,14 +680,15 @@ CPDF_PageObjectList::CPDF_PageObjectList()
|
| m_bBackgroundAlphaNeeded(FALSE),
|
| m_bHasImageMask(FALSE),
|
| m_ParseState(CONTENT_NOT_PARSED),
|
| - m_ObjectList(128) {}
|
| -CPDF_PageObjectList::~CPDF_PageObjectList() {
|
| - FX_POSITION pos = m_ObjectList.GetHeadPosition();
|
| + m_PageObjectList(128) {}
|
| +
|
| +CPDF_PageObjectHolder::~CPDF_PageObjectHolder() {
|
| + FX_POSITION pos = m_PageObjectList.GetHeadPosition();
|
| while (pos) {
|
| - delete (CPDF_PageObject*)m_ObjectList.GetNext(pos);
|
| + delete m_PageObjectList.GetNextObject(pos);
|
| }
|
| }
|
| -void CPDF_PageObjectList::ContinueParse(IFX_Pause* pPause) {
|
| +void CPDF_PageObjectHolder::ContinueParse(IFX_Pause* pPause) {
|
| if (!m_pParser) {
|
| return;
|
| }
|
| @@ -700,43 +701,30 @@ void CPDF_PageObjectList::ContinueParse(IFX_Pause* pPause) {
|
| FX_POSITION CPDF_PageObjectList::InsertObject(FX_POSITION posInsertAfter,
|
| CPDF_PageObject* pNewObject) {
|
| if (!posInsertAfter) {
|
| - return m_ObjectList.AddHead(pNewObject);
|
| - }
|
| - return m_ObjectList.InsertAfter(posInsertAfter, pNewObject);
|
| -}
|
| -int CPDF_PageObjectList::GetObjectIndex(CPDF_PageObject* pObj) const {
|
| - int index = 0;
|
| - FX_POSITION pos = m_ObjectList.GetHeadPosition();
|
| - while (pos) {
|
| - CPDF_PageObject* pThisObj = (CPDF_PageObject*)m_ObjectList.GetNext(pos);
|
| - if (pThisObj == pObj) {
|
| - return index;
|
| - }
|
| - index++;
|
| + return AddHead(pNewObject);
|
| }
|
| - return -1;
|
| + return InsertAfter(posInsertAfter, pNewObject);
|
| }
|
| CPDF_PageObject* CPDF_PageObjectList::GetObjectByIndex(int index) const {
|
| - FX_POSITION pos = m_ObjectList.FindIndex(index);
|
| - return pos ? static_cast<CPDF_PageObject*>(m_ObjectList.GetAt(pos)) : nullptr;
|
| + FX_POSITION pos = FindIndex(index);
|
| + return pos ? GetObjectAt(pos) : nullptr;
|
| }
|
| -void CPDF_PageObjectList::Transform(const CFX_Matrix& matrix) {
|
| - FX_POSITION pos = m_ObjectList.GetHeadPosition();
|
| +void CPDF_PageObjectHolder::Transform(const CFX_Matrix& matrix) {
|
| + FX_POSITION pos = m_PageObjectList.GetHeadPosition();
|
| while (pos) {
|
| - CPDF_PageObject* pObj = (CPDF_PageObject*)m_ObjectList.GetNext(pos);
|
| - pObj->Transform(matrix);
|
| + m_PageObjectList.GetNextObject(pos)->Transform(matrix);
|
| }
|
| }
|
| -CFX_FloatRect CPDF_PageObjectList::CalcBoundingBox() const {
|
| - if (m_ObjectList.GetCount() == 0) {
|
| +CFX_FloatRect CPDF_PageObjectHolder::CalcBoundingBox() const {
|
| + if (m_PageObjectList.GetCount() == 0) {
|
| return CFX_FloatRect(0, 0, 0, 0);
|
| }
|
| FX_FLOAT left, right, top, bottom;
|
| left = bottom = 1000000 * 1.0f;
|
| right = top = -1000000 * 1.0f;
|
| - FX_POSITION pos = m_ObjectList.GetHeadPosition();
|
| + FX_POSITION pos = m_PageObjectList.GetHeadPosition();
|
| while (pos) {
|
| - CPDF_PageObject* pObj = (CPDF_PageObject*)m_ObjectList.GetNext(pos);
|
| + CPDF_PageObject* pObj = (CPDF_PageObject*)m_PageObjectList.GetNext(pos);
|
| if (left > pObj->m_Left) {
|
| left = pObj->m_Left;
|
| }
|
| @@ -752,7 +740,7 @@ CFX_FloatRect CPDF_PageObjectList::CalcBoundingBox() const {
|
| }
|
| return CFX_FloatRect(left, bottom, right, top);
|
| }
|
| -void CPDF_PageObjectList::LoadTransInfo() {
|
| +void CPDF_PageObjectHolder::LoadTransInfo() {
|
| if (!m_pFormDict) {
|
| return;
|
| }
|
| @@ -926,10 +914,10 @@ void CPDF_Form::ParseContent(CPDF_AllStates* pGraphicStates,
|
| CPDF_Form* CPDF_Form::Clone() const {
|
| CPDF_Form* pClone =
|
| new CPDF_Form(m_pDocument, m_pPageResources, m_pFormStream, m_pResources);
|
| - FX_POSITION pos = m_ObjectList.GetHeadPosition();
|
| + FX_POSITION pos = m_PageObjectList.GetHeadPosition();
|
| while (pos) {
|
| - CPDF_PageObject* pObj = (CPDF_PageObject*)m_ObjectList.GetNext(pos);
|
| - pClone->m_ObjectList.AddTail(pObj->Clone());
|
| + CPDF_PageObject* pObj = (CPDF_PageObject*)m_PageObjectList.GetNext(pos);
|
| + pClone->m_PageObjectList.AddTail(pObj->Clone());
|
| }
|
| return pClone;
|
| }
|
|
|