Index: src/pdf/SkPDFDevice.cpp |
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp |
index 246f30ded11461366d2142d911429ad29473f52f..52fc2d28a13923b853243a95f5b6789b79c0363d 100644 |
--- a/src/pdf/SkPDFDevice.cpp |
+++ b/src/pdf/SkPDFDevice.cpp |
@@ -131,12 +131,12 @@ static int max_glyphid_for_typeface(SkTypeface* typeface) { |
typedef SkAutoSTMalloc<128, uint16_t> SkGlyphStorage; |
-static size_t force_glyph_encoding(const SkPaint& paint, const void* text, |
- size_t len, SkGlyphStorage* storage, |
- uint16_t** glyphIDs) { |
+static int force_glyph_encoding(const SkPaint& paint, const void* text, |
+ size_t len, SkGlyphStorage* storage, |
+ uint16_t** glyphIDs) { |
// Make sure we have a glyph id encoding. |
if (paint.getTextEncoding() != SkPaint::kGlyphID_TextEncoding) { |
- size_t numGlyphs = paint.textToGlyphs(text, len, NULL); |
+ int numGlyphs = paint.textToGlyphs(text, len, NULL); |
storage->reset(numGlyphs); |
paint.textToGlyphs(text, len, storage->get()); |
*glyphIDs = storage->get(); |
@@ -145,12 +145,12 @@ static size_t force_glyph_encoding(const SkPaint& paint, const void* text, |
// For user supplied glyph ids we need to validate them. |
SkASSERT((len & 1) == 0); |
- size_t numGlyphs = len / 2; |
+ int numGlyphs = SkToInt(len / 2); |
const uint16_t* input = |
reinterpret_cast<uint16_t*>(const_cast<void*>((text))); |
int maxGlyphID = max_glyphid_for_typeface(paint.getTypeface()); |
- size_t validated; |
+ int validated; |
for (validated = 0; validated < numGlyphs; ++validated) { |
if (input[validated] > maxGlyphID) { |
break; |
@@ -167,7 +167,7 @@ static size_t force_glyph_encoding(const SkPaint& paint, const void* text, |
memcpy(storage->get(), input, validated * sizeof(uint16_t)); |
} |
- for (size_t i = validated; i < numGlyphs; ++i) { |
+ for (int i = validated; i < numGlyphs; ++i) { |
storage->get()[i] = input[i]; |
if (input[i] > maxGlyphID) { |
storage->get()[i] = 0; |
@@ -1126,8 +1126,7 @@ void SkPDFDevice::drawText(const SkDraw& d, const void* text, size_t len, |
SkGlyphStorage storage(0); |
uint16_t* glyphIDs = NULL; |
- size_t numGlyphs = force_glyph_encoding(paint, text, len, &storage, |
- &glyphIDs); |
+ int numGlyphs = force_glyph_encoding(paint, text, len, &storage, &glyphIDs); |
textPaint.setTextEncoding(SkPaint::kGlyphID_TextEncoding); |
SkDrawCacheProc glyphCacheProc = textPaint.getDrawCacheProc(); |
@@ -1135,11 +1134,11 @@ void SkPDFDevice::drawText(const SkDraw& d, const void* text, size_t len, |
content.entry()->fContent.writeText("BT\n"); |
set_text_transform(x, y, textPaint.getTextSkewX(), |
&content.entry()->fContent); |
- size_t consumedGlyphCount = 0; |
+ int consumedGlyphCount = 0; |
while (numGlyphs > consumedGlyphCount) { |
updateFont(textPaint, glyphIDs[consumedGlyphCount], content.entry()); |
SkPDFFont* font = content.entry()->fState.fFont; |
- size_t availableGlyphs = |
+ int availableGlyphs = |
font->glyphsToPDFFontEncoding(glyphIDs + consumedGlyphCount, |
numGlyphs - consumedGlyphCount); |
fFontGlyphUsage->noteGlyphUsage(font, glyphIDs + consumedGlyphCount, |