aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFDocument.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-09-20 18:19:26 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-09-20 18:19:26 +0000
commitaf777278c508b2f2d5b469bef3b0d46e90e019c4 (patch)
tree220dba46f412c65f1521aea5fa2bd252662555a8 /src/pdf/SkPDFDocument.cpp
parent52657c75b5d4c0e72d64ecaec504b26d0d215a33 (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.cpp21
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");