aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFPage.cpp
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2015-03-25 11:29:18 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-03-25 11:29:18 -0700
commitf41061cc8dc717b63efe75d2357a3176f04153ec (patch)
tree62b6e16dd3ea56e5bb0bd2eb8c58e74565974c40 /src/pdf/SkPDFPage.cpp
parent05245900bf6d49068b1668da1b38890a41e09bc5 (diff)
SKPDF: refactor pdfcatalog and pdfdocument
SkPDFCatalog: - remove first-page-specific code (no longer needed, never used) (e.g. addObject()). - Make use of SkHashMap for lookups (simplifies code). - inline all small methods - emitXrefTable moved to SkPDFDocument.cpp - no longer store offsets in this data structure (moved to SkPDFDocument.cpp) - setFileOffset gone. - own substitute refs directly. SkPDFDocument::EmitPDF() - All sites that call into SkPDFCatalog modified. - catalog.addObject only called in a single place, after the resouceSet is built - offsets moved to local array. SkPDFPage: - finalizePage no longer deals with SkPDFCatalog or resource sets. - GeneratePageTree no longer deals with SkPDFCatalog SkPDFObjRef - emitObject respects the substitution map Unit Tests: - respect SkPDFCatalog::addObject signature change. SkTHash: - #include SkChecksum for SkGoodHash - Copyright notice added Review URL: https://codereview.chromium.org/1033543002
Diffstat (limited to 'src/pdf/SkPDFPage.cpp')
-rw-r--r--src/pdf/SkPDFPage.cpp9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/pdf/SkPDFPage.cpp b/src/pdf/SkPDFPage.cpp
index f86b252105..13a7ffe4ed 100644
--- a/src/pdf/SkPDFPage.cpp
+++ b/src/pdf/SkPDFPage.cpp
@@ -21,9 +21,7 @@ SkPDFPage::SkPDFPage(const SkPDFDevice* content)
SkPDFPage::~SkPDFPage() {}
-void SkPDFPage::finalizePage(SkPDFCatalog* catalog, bool firstPage,
- const SkTSet<SkPDFObject*>& knownResourceObjects,
- SkTSet<SkPDFObject*>* newResourceObjects) {
+void SkPDFPage::finalizePage() {
if (fContentStream.get() == NULL) {
SkAutoTUnref<SkPDFResourceDict> deviceResourceDict(
fDevice->createResourceDict());
@@ -38,12 +36,10 @@ void SkPDFPage::finalizePage(SkPDFCatalog* catalog, bool firstPage,
fContentStream.reset(new SkPDFStream(content.get()));
insert("Contents", new SkPDFObjRef(fContentStream.get()))->unref();
}
- catalog->addObject(fContentStream.get(), firstPage);
}
// static
void SkPDFPage::GeneratePageTree(const SkTDArray<SkPDFPage*>& pages,
- SkPDFCatalog* catalog,
SkTDArray<SkPDFDict*>* pageTree,
SkPDFDict** rootNode) {
// PDF wants a tree describing all the pages in the document. We arbitrary
@@ -94,10 +90,8 @@ void SkPDFPage::GeneratePageTree(const SkTDArray<SkPDFPage*>& pages,
// Probably doesn't matter because they are so small.
if (curNodes[i] != pages[0]) {
pageTree->push(curNodes[i]); // Transfer reference.
- catalog->addObject(curNodes[i], false);
} else {
SkSafeUnref(curNodes[i]);
- catalog->addObject(curNodes[i], true);
}
}
@@ -123,7 +117,6 @@ void SkPDFPage::GeneratePageTree(const SkTDArray<SkPDFPage*>& pages,
} while (curNodes.count() > 1);
pageTree->push(curNodes[0]); // Transfer reference.
- catalog->addObject(curNodes[0], false);
if (rootNode) {
*rootNode = curNodes[0];
}