diff options
author | halcanary <halcanary@google.com> | 2015-03-25 11:29:18 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-25 11:29:18 -0700 |
commit | f41061cc8dc717b63efe75d2357a3176f04153ec (patch) | |
tree | 62b6e16dd3ea56e5bb0bd2eb8c58e74565974c40 /src/pdf/SkPDFTypes.cpp | |
parent | 05245900bf6d49068b1668da1b38890a41e09bc5 (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.cpp | 3 |
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. } |