[PDF] Only output the Dests dictionary if it isn't epmpty
R=edisonn@google.com
Review URL: https://codereview.chromium.org/15028012
git-svn-id: http://skia.googlecode.com/svn/trunk@9100 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/pdf/SkPDFDocument.cpp b/src/pdf/SkPDFDocument.cpp
index 062263d..0633d30 100644
--- a/src/pdf/SkPDFDocument.cpp
+++ b/src/pdf/SkPDFDocument.cpp
@@ -112,9 +112,7 @@
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 @@
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);