diff options
author | 2012-09-20 18:19:26 +0000 | |
---|---|---|
committer | 2012-09-20 18:19:26 +0000 | |
commit | af777278c508b2f2d5b469bef3b0d46e90e019c4 (patch) | |
tree | 220dba46f412c65f1521aea5fa2bd252662555a8 /src/pdf/SkPDFDocument.cpp | |
parent | 52657c75b5d4c0e72d64ecaec504b26d0d215a33 (diff) |
remove use of SkRefPtr in public header (SkPDFDocument.h)
Review URL: https://codereview.appspot.com/6546048
git-svn-id: http://skia.googlecode.com/svn/trunk@5612 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/pdf/SkPDFDocument.cpp')
-rw-r--r-- | src/pdf/SkPDFDocument.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/pdf/SkPDFDocument.cpp b/src/pdf/SkPDFDocument.cpp index 00c445e195..d47f1f3560 100644 --- a/src/pdf/SkPDFDocument.cpp +++ b/src/pdf/SkPDFDocument.cpp @@ -57,11 +57,11 @@ static void perform_font_subsetting(SkPDFCatalog* catalog, SkPDFDocument::SkPDFDocument(Flags flags) : fXRefFileOffset(0), - fSecondPageFirstResourceIndex(0) { + fSecondPageFirstResourceIndex(0), + fTrailerDict(NULL) { fCatalog.reset(new SkPDFCatalog(flags)); - fDocCatalog = new SkPDFDict("Catalog"); - fDocCatalog->unref(); // SkRefPtr and new both took a reference. - fCatalog->addObject(fDocCatalog.get(), true); + fDocCatalog = SkNEW_ARGS(SkPDFDict, ("Catalog")); + fCatalog->addObject(fDocCatalog, true); } SkPDFDocument::~SkPDFDocument() { @@ -75,6 +75,9 @@ SkPDFDocument::~SkPDFDocument() { fPageTree.safeUnrefAll(); fPageResources.safeUnrefAll(); fSubstitutes.safeUnrefAll(); + + fDocCatalog->unref(); + SkSafeUnref(fTrailerDict); } bool SkPDFDocument::emitPDF(SkWStream* stream) { @@ -123,7 +126,7 @@ bool SkPDFDocument::emitPDF(SkWStream* stream) { // Figure out the size of things and inform the catalog of file offsets. off_t fileOffset = headerSize(); - fileOffset += fCatalog->setFileOffset(fDocCatalog.get(), fileOffset); + fileOffset += fCatalog->setFileOffset(fDocCatalog, fileOffset); fileOffset += fCatalog->setFileOffset(fPages[0], fileOffset); fileOffset += fPages[0]->getPageSize(fCatalog.get(), (size_t) fileOffset); @@ -258,15 +261,13 @@ size_t SkPDFDocument::headerSize() { } void SkPDFDocument::emitFooter(SkWStream* stream, int64_t objCount) { - if (fTrailerDict.get() == NULL) { - fTrailerDict = new SkPDFDict(); - fTrailerDict->unref(); // SkRefPtr and new both took a reference. + if (NULL == fTrailerDict) { + fTrailerDict = SkNEW(SkPDFDict); // TODO(vandebo): Linearized format will take a Prev entry too. // TODO(vandebo): PDF/A requires an ID entry. fTrailerDict->insertInt("Size", int(objCount)); - fTrailerDict->insert("Root", - new SkPDFObjRef(fDocCatalog.get()))->unref(); + fTrailerDict->insert("Root", new SkPDFObjRef(fDocCatalog))->unref(); } stream->writeText("trailer\n"); |