aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFTypes.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/SkPDFTypes.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/SkPDFTypes.cpp')
-rw-r--r--src/pdf/SkPDFTypes.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/pdf/SkPDFTypes.cpp b/src/pdf/SkPDFTypes.cpp
index 43cd68450f..8bb19360e1 100644
--- a/src/pdf/SkPDFTypes.cpp
+++ b/src/pdf/SkPDFTypes.cpp
@@ -26,7 +26,8 @@ SkPDFObjRef::SkPDFObjRef(SkPDFObject* obj) : fObj(obj) {
SkPDFObjRef::~SkPDFObjRef() {}
void SkPDFObjRef::emitObject(SkWStream* stream, SkPDFCatalog* catalog) {
- stream->writeDecAsText(catalog->getObjectNumber(fObj.get()));
+ SkPDFObject* obj = catalog->getSubstituteObject(fObj);
+ stream->writeDecAsText(catalog->getObjectNumber(obj));
stream->writeText(" 0 R"); // Generation number is always 0.
}