aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/PdfViewer/SkPdfFont.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/PdfViewer/SkPdfFont.cpp')
-rw-r--r--experimental/PdfViewer/SkPdfFont.cpp8
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];