Index: src/pdf/SkPDFDocument.cpp |
diff --git a/src/pdf/SkPDFDocument.cpp b/src/pdf/SkPDFDocument.cpp |
index 062263dce33436e7cf54a86368988242089cb236..0633d308285d116ef121e5bd754927639aaf2337 100644 |
--- a/src/pdf/SkPDFDocument.cpp |
+++ b/src/pdf/SkPDFDocument.cpp |
@@ -112,9 +112,7 @@ bool SkPDFDocument::emitPDF(SkWStream* stream) { |
fDocCatalog->insert("OutputIntent", intentArray.get()); |
*/ |
- SkPDFDict* dests = SkNEW(SkPDFDict); // fPageResources owns reference |
- fCatalog->addObject(dests, true /* onFirstPage */); |
- fFirstPageResources->add(dests); |
+ SkAutoTUnref<SkPDFDict> dests(SkNEW(SkPDFDict)); |
bool firstPage = true; |
/* The references returned in newResources are transfered to |
@@ -151,7 +149,12 @@ bool SkPDFDocument::emitPDF(SkWStream* stream) { |
fPages[i]->appendDestinations(dests); |
} |
- fDocCatalog->insert("Dests", SkNEW_ARGS(SkPDFObjRef, (dests)))->unref(); |
+ if (dests->size() > 0) { |
+ SkPDFDict* raw_dests = dests.get(); |
+ fFirstPageResources->add(dests.detach()); // Transfer ownership. |
+ fCatalog->addObject(raw_dests, true /* onFirstPage */); |
+ fDocCatalog->insert("Dests", SkNEW_ARGS(SkPDFObjRef, (raw_dests)))->unref(); |
+ } |
// Build font subsetting info before proceeding. |
perform_font_subsetting(fCatalog.get(), fPages, &fSubstitutes); |