diff options
Diffstat (limited to 'src/pdf/SkPDFDocument.cpp')
-rw-r--r-- | src/pdf/SkPDFDocument.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/pdf/SkPDFDocument.cpp b/src/pdf/SkPDFDocument.cpp index c56d1ca9d4..221f240ba0 100644 --- a/src/pdf/SkPDFDocument.cpp +++ b/src/pdf/SkPDFDocument.cpp @@ -270,7 +270,6 @@ void SkPDFDocument::onEndPage() { fCanvas->flush(); fCanvas.reset(nullptr); SkASSERT(fPageDevice); - fGlyphUsage.merge(fPageDevice->getFontGlyphUsage()); auto page = sk_make_sp<SkPDFDict>("Page"); page->insertObject("Resources", fPageDevice->makeResourceDict()); page->insertObject("MediaBox", fPageDevice->copyMediaBox()); @@ -293,6 +292,7 @@ void SkPDFDocument::onAbort() { fPages.reset(); fCanon.reset(); renew(&fObjectSerializer); + renew(&fGlyphUsage); } #ifdef SK_SUPPORT_LEGACY_DOCUMENT_API @@ -356,6 +356,7 @@ bool SkPDFDocument::onClose(SkWStream* stream) { fPages.reset(); fCanon.reset(); renew(&fObjectSerializer); + renew(&fGlyphUsage); return false; } auto docCatalog = sk_make_sp<SkPDFDict>("Catalog"); @@ -377,7 +378,7 @@ bool SkPDFDocument::onClose(SkWStream* stream) { // Build font subsetting info before calling addObjectRecursively(). for (const auto& entry : fGlyphUsage) { sk_sp<SkPDFFont> subsetFont( - entry.fFont->getFontSubset(entry.fGlyphSet)); + entry.fFont->getFontSubset(&entry.fGlyphSet)); if (subsetFont) { fObjectSerializer.fSubstituteMap.setSubstitute( entry.fFont, subsetFont.get()); @@ -389,6 +390,7 @@ bool SkPDFDocument::onClose(SkWStream* stream) { fObjectSerializer.serializeFooter(this->getStream(), docCatalog, fID); fCanon.reset(); renew(&fObjectSerializer); + renew(&fGlyphUsage); return true; } |