From 1c2bcd8b14e029a70e88b1e81acd29553cab0d1c Mon Sep 17 00:00:00 2001 From: Hal Canary Date: Tue, 10 Apr 2018 11:27:48 -0400 Subject: SkAdvancedTypefaceMetrics: factor out GlyphToUnicode Change-Id: Iedce8c1ea2c405d5ab64ccac353970d5cd2b9d63 Reviewed-on: https://skia-review.googlesource.com/126507 Commit-Queue: Hal Canary Reviewed-by: Ben Wagner --- tests/PDFGlyphsToUnicodeTest.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'tests/PDFGlyphsToUnicodeTest.cpp') diff --git a/tests/PDFGlyphsToUnicodeTest.cpp b/tests/PDFGlyphsToUnicodeTest.cpp index 332520bfb0..2aeedf0330 100644 --- a/tests/PDFGlyphsToUnicodeTest.cpp +++ b/tests/PDFGlyphsToUnicodeTest.cpp @@ -74,9 +74,12 @@ DEF_TEST(SkPDF_ToUnicode, reporter) { glyphsInSubset.push(0x101); glyphToUnicode.push(0x1013); + SkGlyphID lastGlyphID = SkToU16(glyphToUnicode.count() - 1); + SkDynamicMemoryWStream buffer; subset.setAll(glyphsInSubset.begin(), glyphsInSubset.count()); - SkPDFAppendCmapSections(glyphToUnicode, &subset, &buffer, true, 0, 0xFFFF); + SkPDFAppendCmapSections(&glyphToUnicode[0], &subset, &buffer, true, 0, + SkTMin(0xFFFF, lastGlyphID)); char expectedResult[] = "4 beginbfchar\n\ @@ -98,7 +101,8 @@ endbfrange\n"; // Remove characters and ranges. buffer.reset(); - SkPDFAppendCmapSections(glyphToUnicode, &subset, &buffer, true, 8, 0x00FF); + SkPDFAppendCmapSections(&glyphToUnicode[0], &subset, &buffer, true, 8, + SkTMin(0x00FF, lastGlyphID)); char expectedResultChop1[] = "2 beginbfchar\n\ @@ -116,7 +120,8 @@ endbfrange\n"; // Remove characters from range to downdrade it to one char. buffer.reset(); - SkPDFAppendCmapSections(glyphToUnicode, &subset, &buffer, true, 0x00D, 0x00FE); + SkPDFAppendCmapSections(&glyphToUnicode[0], &subset, &buffer, true, 0x00D, + SkTMin(0x00FE, lastGlyphID)); char expectedResultChop2[] = "2 beginbfchar\n\ @@ -129,7 +134,8 @@ endbfchar\n"; buffer.reset(); - SkPDFAppendCmapSections(glyphToUnicode, nullptr, &buffer, false, 0xFC, 0x110); + SkPDFAppendCmapSections(&glyphToUnicode[0], nullptr, &buffer, false, 0xFC, + SkTMin(0x110, lastGlyphID)); char expectedResultSingleBytes[] = "2 beginbfchar\n\ @@ -155,6 +161,7 @@ endbfrange\n"; for (SkUnichar i = 0; i < 100; ++i) { glyphToUnicode.push(i + 29); } + lastGlyphID = SkToU16(glyphToUnicode.count() - 1); glyphsInSubset.push(0x2C); glyphsInSubset.push(0x44); @@ -165,7 +172,8 @@ endbfrange\n"; SkDynamicMemoryWStream buffer2; subset2.setAll(glyphsInSubset.begin(), glyphsInSubset.count()); - SkPDFAppendCmapSections(glyphToUnicode, &subset2, &buffer2, true, 0, 0xffff); + SkPDFAppendCmapSections(&glyphToUnicode[0], &subset2, &buffer2, true, 0, + SkTMin(0xFFFF, lastGlyphID)); char expectedResult2[] = "4 beginbfchar\n\ -- cgit v1.2.3