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

Side by Side Diff: core/src/fpdfapi/fpdf_edit/fpdf_edit_content.cpp

Issue 1700183002: Remove CFX_PtrList from renderer main loop. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Nits. 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 unified diff | Download patch
« no previous file with comments | « core/include/fpdfapi/fpdf_render.h ('k') | core/src/fpdfapi/fpdf_font/fpdf_font.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "core/include/fpdfapi/fpdf_module.h" 7 #include "core/include/fpdfapi/fpdf_module.h"
8 #include "core/include/fpdfapi/fpdf_page.h" 8 #include "core/include/fpdfapi/fpdf_page.h"
9 #include "core/include/fpdfapi/fpdf_serial.h" 9 #include "core/include/fpdfapi/fpdf_serial.h"
10 #include "core/src/fpdfapi/fpdf_page/pageint.h" 10 #include "core/src/fpdfapi/fpdf_page/pageint.h"
11 11
12 CFX_ByteTextBuf& operator<<(CFX_ByteTextBuf& ar, CFX_Matrix& matrix) { 12 CFX_ByteTextBuf& operator<<(CFX_ByteTextBuf& ar, CFX_Matrix& matrix) {
13 ar << matrix.a << " " << matrix.b << " " << matrix.c << " " << matrix.d << " " 13 ar << matrix.a << " " << matrix.b << " " << matrix.c << " " << matrix.d << " "
14 << matrix.e << " " << matrix.f; 14 << matrix.e << " " << matrix.f;
15 return ar; 15 return ar;
16 } 16 }
17
17 CPDF_PageContentGenerator::CPDF_PageContentGenerator(CPDF_Page* pPage) 18 CPDF_PageContentGenerator::CPDF_PageContentGenerator(CPDF_Page* pPage)
18 : m_pPage(pPage) { 19 : m_pPage(pPage), m_pDocument(m_pPage->m_pDocument) {
19 m_pDocument = NULL; 20 for (const auto& pObj : *pPage->GetPageObjectList())
20 if (m_pPage) { 21 InsertPageObject(pObj.get());
21 m_pDocument = m_pPage->m_pDocument;
22 }
23 FX_POSITION pos = pPage->GetPageObjectList()->GetHeadPosition();
24 while (pos) {
25 InsertPageObject(pPage->GetPageObjectList()->GetNextObject(pos));
26 }
27 } 22 }
28 CPDF_PageContentGenerator::~CPDF_PageContentGenerator() {} 23
29 FX_BOOL CPDF_PageContentGenerator::InsertPageObject( 24 FX_BOOL CPDF_PageContentGenerator::InsertPageObject(
30 CPDF_PageObject* pPageObject) { 25 CPDF_PageObject* pPageObject) {
31 if (!pPageObject) { 26 return pPageObject && m_pageObjects.Add(pPageObject);
32 return FALSE;
33 }
34 return m_pageObjects.Add(pPageObject);
35 } 27 }
28
36 void CPDF_PageContentGenerator::GenerateContent() { 29 void CPDF_PageContentGenerator::GenerateContent() {
37 CFX_ByteTextBuf buf; 30 CFX_ByteTextBuf buf;
38 CPDF_Dictionary* pPageDict = m_pPage->m_pFormDict; 31 CPDF_Dictionary* pPageDict = m_pPage->m_pFormDict;
39 for (int i = 0; i < m_pageObjects.GetSize(); ++i) { 32 for (int i = 0; i < m_pageObjects.GetSize(); ++i) {
40 CPDF_PageObject* pPageObj = m_pageObjects[i]; 33 CPDF_PageObject* pPageObj = m_pageObjects[i];
41 if (!pPageObj || pPageObj->m_Type != CPDF_PageObject::IMAGE) { 34 if (!pPageObj || pPageObj->m_Type != CPDF_PageObject::IMAGE) {
42 continue; 35 continue;
43 } 36 }
44 ProcessImage(buf, (CPDF_ImageObject*)pPageObj); 37 ProcessImage(buf, (CPDF_ImageObject*)pPageObj);
45 } 38 }
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 CPDF_StreamAcc contentStream; 149 CPDF_StreamAcc contentStream;
157 contentStream.LoadAllData(pStream); 150 contentStream.LoadAllData(pStream);
158 ProcessForm(buf, contentStream.GetData(), contentStream.GetSize(), matrix); 151 ProcessForm(buf, contentStream.GetData(), contentStream.GetSize(), matrix);
159 } 152 }
160 CPDF_Stream* pStream = new CPDF_Stream(NULL, 0, NULL); 153 CPDF_Stream* pStream = new CPDF_Stream(NULL, 0, NULL);
161 pStream->SetData(buf.GetBuffer(), buf.GetLength(), FALSE, FALSE); 154 pStream->SetData(buf.GetBuffer(), buf.GetLength(), FALSE, FALSE);
162 m_pDocument->AddIndirectObject(pStream); 155 m_pDocument->AddIndirectObject(pStream);
163 m_pPage->m_pFormDict->SetAtReference("Contents", m_pDocument, 156 m_pPage->m_pFormDict->SetAtReference("Contents", m_pDocument,
164 pStream->GetObjNum()); 157 pStream->GetObjNum());
165 } 158 }
OLDNEW
« no previous file with comments | « core/include/fpdfapi/fpdf_render.h ('k') | core/src/fpdfapi/fpdf_font/fpdf_font.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698