diff options
Diffstat (limited to 'experimental/PdfViewer/SkPdfFont.cpp')
-rw-r--r-- | experimental/PdfViewer/SkPdfFont.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/experimental/PdfViewer/SkPdfFont.cpp b/experimental/PdfViewer/SkPdfFont.cpp index 2574ce4165..0fec460bf5 100644 --- a/experimental/PdfViewer/SkPdfFont.cpp +++ b/experimental/PdfViewer/SkPdfFont.cpp @@ -164,12 +164,12 @@ SkPdfFont* SkPdfFont::fontFromFontDescriptor(SkNativeParsedPDF* doc, SkPdfFontDe } } - unsigned char* uncompressedStream = NULL; + const unsigned char* uncompressedStream = NULL; size_t uncompressedStreamLength = 0; // TODO(edisonn): report warning to be used in testing. if (!pdfStream || - !pdfStream->GetFilteredStreamRef(&uncompressedStream, &uncompressedStreamLength, doc->allocator()) || + !pdfStream->GetFilteredStreamRef(&uncompressedStream, &uncompressedStreamLength) || !uncompressedStream || !uncompressedStreamLength) { return NULL; @@ -321,7 +321,9 @@ SkPdfToUnicode::SkPdfToUnicode(SkNativeParsedPDF* parsed, SkPdfStream* stream) : fCMapEncodingFlag = NULL; if (stream) { - SkPdfNativeTokenizer* tokenizer = fParsed->tokenizerOfStream(stream); + // Since font will be cached, the font has to sit in the per doc allocator, not to be + // freed after the page is done drawing. + SkPdfNativeTokenizer* tokenizer = fParsed->tokenizerOfStream(stream, parsed->allocator()); PdfToken token; fCMapEncoding = new unsigned short[256 * 256]; |