flag to convert to SkTextEncoding

Bug: skia:
Change-Id: I9628bcabc5c6f902b79009e4f21badff3e8cca94
Reviewed-on: https://skia-review.googlesource.com/c/173980
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/src/atlastext/SkAtlasTextTarget.cpp b/src/atlastext/SkAtlasTextTarget.cpp
index a61d647..68b19ed 100644
--- a/src/atlastext/SkAtlasTextTarget.cpp
+++ b/src/atlastext/SkAtlasTextTarget.cpp
@@ -151,7 +151,7 @@
     paint.setTypeface(font.refTypeface());
     paint.setTextSize(font.size());
     paint.setStyle(SkPaint::kFill_Style);
-    paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+    paint.setTextEncoding(kGlyphID_SkTextEncoding);
 
     // The atlas text context does munging of the paint color. We store the client's color here
     // and then overwrite the generated op's color when addDrawOp() is called.
diff --git a/src/core/SkFindAndPlaceGlyph.h b/src/core/SkFindAndPlaceGlyph.h
index 76fd9ba..8aa3da9 100644
--- a/src/core/SkFindAndPlaceGlyph.h
+++ b/src/core/SkFindAndPlaceGlyph.h
@@ -37,7 +37,7 @@
     // This routine handles all of them using inline polymorphic variable (no heap allocation).
     template<typename ProcessOneGlyph>
     static void ProcessPosText(
-        SkPaint::TextEncoding, const char text[], size_t byteLength,
+        SkTextEncoding, const char text[], size_t byteLength,
         SkPoint offset, const SkMatrix& matrix, const SkScalar pos[], int scalarsPerPosition,
         SkGlyphCache* cache, ProcessOneGlyph&& processOneGlyph);
 
@@ -205,15 +205,15 @@
     };
 
     static GlyphFinderInterface* getGlyphFinder(
-        SkArenaAlloc* arena, SkPaint::TextEncoding encoding, SkGlyphCache* cache) {
+        SkArenaAlloc* arena, SkTextEncoding encoding, SkGlyphCache* cache) {
         switch(encoding) {
-            case SkPaint::kUTF8_TextEncoding:
+            case kUTF8_SkTextEncoding:
                 return arena->make<Utf8GlyphFinder>(cache);
-            case SkPaint::kUTF16_TextEncoding:
+            case kUTF16_SkTextEncoding:
                 return arena->make<Utf16GlyphFinder>(cache);
-            case SkPaint::kUTF32_TextEncoding:
+            case kUTF32_SkTextEncoding:
                 return arena->make<Utf32GlyphFinder>(cache);
-            case SkPaint::kGlyphID_TextEncoding:
+            case kGlyphID_SkTextEncoding:
                 return arena->make<GlyphIdGlyphFinder>(cache);
         }
         SK_ABORT("Should not get here.");
@@ -428,7 +428,7 @@
 
 template<typename ProcessOneGlyph>
 inline void SkFindAndPlaceGlyph::ProcessPosText(
-    SkPaint::TextEncoding textEncoding, const char text[], size_t byteLength,
+    SkTextEncoding textEncoding, const char text[], size_t byteLength,
     SkPoint offset, const SkMatrix& matrix, const SkScalar pos[], int scalarsPerPosition,
     SkGlyphCache* cache, ProcessOneGlyph&& processOneGlyph) {
 
@@ -436,7 +436,7 @@
     uint32_t mtype = matrix.getType();
 
     // Specialized code for handling the most common case for blink.
-    if (textEncoding == SkPaint::kGlyphID_TextEncoding
+    if (textEncoding == kGlyphID_SkTextEncoding
         && axisAlignment == kX_SkAxisAlignment
         && cache->isSubpixel()
         && mtype <= SkMatrix::kTranslate_Mask)
diff --git a/src/core/SkGlyphRun.cpp b/src/core/SkGlyphRun.cpp
index 5415719..1e487e3 100644
--- a/src/core/SkGlyphRun.cpp
+++ b/src/core/SkGlyphRun.cpp
@@ -17,11 +17,11 @@
 #include "SkUtils.h"
 
 namespace {
-static SkTypeface::Encoding convert_encoding(SkPaint::TextEncoding encoding) {
+static SkTypeface::Encoding convert_encoding(SkTextEncoding encoding) {
     switch (encoding) {
-        case  SkPaint::kUTF8_TextEncoding: return SkTypeface::kUTF8_Encoding;
-        case SkPaint::kUTF16_TextEncoding: return SkTypeface::kUTF16_Encoding;
-        case SkPaint::kUTF32_TextEncoding: return SkTypeface::kUTF32_Encoding;
+        case  kUTF8_SkTextEncoding: return SkTypeface::kUTF8_Encoding;
+        case kUTF16_SkTextEncoding: return SkTypeface::kUTF16_Encoding;
+        case kUTF32_SkTextEncoding: return SkTypeface::kUTF32_Encoding;
         default: return SkTypeface::kUTF32_Encoding;
     }
 }
@@ -309,8 +309,8 @@
 
 SkSpan<const SkGlyphID> SkGlyphRunBuilder::textToGlyphIDs(
         const SkPaint& paint, const void* bytes, size_t byteLength) {
-    auto encoding = paint.getTextEncoding();
-    if (encoding != SkPaint::kGlyphID_TextEncoding) {
+    SkTextEncoding encoding = (SkTextEncoding)paint.getTextEncoding();
+    if (encoding != kGlyphID_SkTextEncoding) {
         auto tfEncoding = convert_encoding(encoding);
         int utfSize = SkUTFN_CountUnichars(tfEncoding, bytes, byteLength);
         if (utfSize > 0) {
diff --git a/src/core/SkOverdrawCanvas.cpp b/src/core/SkOverdrawCanvas.cpp
index 9c1f38f..0d3596e 100644
--- a/src/core/SkOverdrawCanvas.cpp
+++ b/src/core/SkOverdrawCanvas.cpp
@@ -75,7 +75,8 @@
     auto cache = SkStrikeCache::FindOrCreateStrikeExclusive(
                                 SkFont::LEGACY_ExtractFromPaint(paint), paint, props,
                                 SkScalerContextFlags::kNone, this->getTotalMatrix());
-    SkFindAndPlaceGlyph::ProcessPosText(paint.getTextEncoding(), (const char*) text, byteLength,
+    SkFindAndPlaceGlyph::ProcessPosText((SkTextEncoding)paint.getTextEncoding(),
+                                        (const char*)text, byteLength,
                                         SkPoint::Make(0, 0), SkMatrix(), (const SkScalar*) pos, 2,
                                         cache.get(), processBounds);
 }
@@ -109,17 +110,17 @@
                                          const SkPaint& paint) {
     const char* stop = (const char*)text + byteLength;
     CountTextProc proc = nullptr;
-    switch (paint.getTextEncoding()) {
-        case SkPaint::kUTF8_TextEncoding:
+    switch ((SkTextEncoding)paint.getTextEncoding()) {
+        case kUTF8_SkTextEncoding:
             proc = count_utf8;
             break;
-        case SkPaint::kUTF16_TextEncoding:
+        case kUTF16_SkTextEncoding:
             proc = count_utf16;
             break;
-        case SkPaint::kUTF32_TextEncoding:
+        case kUTF32_SkTextEncoding:
             proc = return_4;
             break;
-        case SkPaint::kGlyphID_TextEncoding:
+        case kGlyphID_SkTextEncoding:
             proc = return_2;
             break;
     }
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index e7ed230..2b39c38 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -58,7 +58,7 @@
     fBitfields.fCapType      = kDefault_Cap;
     fBitfields.fJoinType     = kDefault_Join;
     fBitfields.fStyle        = kFill_Style;
-    fBitfields.fTextEncoding = kUTF8_TextEncoding;
+    fBitfields.fTextEncoding = static_cast<unsigned>(kUTF8_SkTextEncoding);
     fBitfields.fHinting      = static_cast<unsigned>(SkPaintDefaults_Hinting);
 }
 
@@ -326,9 +326,9 @@
     fTextSkewX = skewX;
 }
 
-void SkPaint::setTextEncoding(TextEncoding encoding) {
-    if ((unsigned)encoding <= kGlyphID_TextEncoding) {
-        fBitfields.fTextEncoding = encoding;
+void SkPaint::setTextEncoding(SkTextEncoding encoding) {
+    if ((unsigned)encoding <= (unsigned)kGlyphID_SkTextEncoding) {
+        fBitfields.fTextEncoding = (unsigned)encoding;
     } else {
 #ifdef SK_REPORT_API_RANGE_CHECK
         SkDebugf("SkPaint::setTextEncoding(%d) out of range\n", encoding);
@@ -445,7 +445,7 @@
     buffer.writeUInt(pack_paint_flags(paint.getFlags(), static_cast<unsigned>(paint.getHinting()),
                                       paint.getFilterQuality(), flatFlags));
     buffer.writeUInt(pack_4(paint.getStrokeCap(), paint.getStrokeJoin(),
-                            (paint.getStyle() << 4) | paint.getTextEncoding(),
+                            (paint.getStyle() << 4) | (unsigned)paint.getTextEncoding(),
                             paint.fBlendMode));
 
     buffer.writeTypeface(tf);
@@ -483,7 +483,7 @@
     paint->setStrokeCap(safe.checkLE((tmp >> 24) & 0xFF, SkPaint::kLast_Cap));
     paint->setStrokeJoin(safe.checkLE((tmp >> 16) & 0xFF, SkPaint::kLast_Join));
     paint->setStyle(safe.checkLE((tmp >> 12) & 0xF, SkPaint::kStrokeAndFill_Style));
-    paint->setTextEncoding(safe.checkLE((tmp >> 8) & 0xF, SkPaint::kGlyphID_TextEncoding));
+    paint->setTextEncoding(safe.checkLE((tmp >> 8) & 0xF, kGlyphID_SkTextEncoding));
     paint->setBlendMode(safe.checkLE(tmp & 0xFF, SkBlendMode::kLastMode));
 
     if (flatFlags & kHasTypeface_FlatFlag) {
diff --git a/src/core/SkPaintPriv.cpp b/src/core/SkPaintPriv.cpp
index 8718cf1..12e49bb 100644
--- a/src/core/SkPaintPriv.cpp
+++ b/src/core/SkPaintPriv.cpp
@@ -90,12 +90,12 @@
         || !p.getShader() || !as_SB(p.getShader())->isConstant();
 }
 
-int SkPaintPriv::ValidCountText(const void* text, size_t length, SkPaint::TextEncoding encoding) {
+int SkPaintPriv::ValidCountText(const void* text, size_t length, SkTextEncoding encoding) {
     switch (encoding) {
-        case SkPaint::kUTF8_TextEncoding: return SkUTF::CountUTF8((const char*)text, length);
-        case SkPaint::kUTF16_TextEncoding: return SkUTF::CountUTF16((const uint16_t*)text, length);
-        case SkPaint::kUTF32_TextEncoding: return SkUTF::CountUTF32((const int32_t*)text, length);
-        case SkPaint::kGlyphID_TextEncoding:
+        case kUTF8_SkTextEncoding: return SkUTF::CountUTF8((const char*)text, length);
+        case kUTF16_SkTextEncoding: return SkUTF::CountUTF16((const uint16_t*)text, length);
+        case kUTF32_SkTextEncoding: return SkUTF::CountUTF32((const int32_t*)text, length);
+        case kGlyphID_SkTextEncoding:
             if (!SkIsAlign2(intptr_t(text)) || !SkIsAlign2(length)) {
                 return -1;
             }
diff --git a/src/core/SkPaintPriv.h b/src/core/SkPaintPriv.h
index 9181e35..d3a0c35 100644
--- a/src/core/SkPaintPriv.h
+++ b/src/core/SkPaintPriv.h
@@ -69,7 +69,7 @@
     static bool ShouldDither(const SkPaint&, SkColorType);
 
     // returns -1 if buffer is invalid for specified encoding
-    static int ValidCountText(const void* text, size_t length, SkPaint::TextEncoding);
+    static int ValidCountText(const void* text, size_t length, SkTextEncoding);
 
     static SkTypeface* GetTypefaceOrDefault(const SkPaint& paint) {
         return paint.getTypeface() ? paint.getTypeface() : SkTypeface::GetDefaultTypeface();
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp
index 260ea90..c204b5d 100644
--- a/src/core/SkPicturePlayback.cpp
+++ b/src/core/SkPicturePlayback.cpp
@@ -77,7 +77,8 @@
                 if (fByteLength == 0) {
                     fCount = 0;
                 } else {
-                    fCount = SkPaintPriv::ValidCountText(fText, fByteLength, paint->getTextEncoding());
+                    fCount = SkPaintPriv::ValidCountText(fText, fByteLength,
+                                                         (SkTextEncoding)paint->getTextEncoding());
                     reader->validate(fCount > 0);
                 }
             }
diff --git a/src/core/SkTextBlob.cpp b/src/core/SkTextBlob.cpp
index eadb07c..4fa9f69 100644
--- a/src/core/SkTextBlob.cpp
+++ b/src/core/SkTextBlob.cpp
@@ -31,7 +31,7 @@
         , fFlags(paint.getFlags() & kFlagsMask) { }
 
 void SkRunFont::applyToPaint(SkPaint* paint) const {
-    paint->setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+    paint->setTextEncoding(kGlyphID_SkTextEncoding);
     paint->setTypeface(fTypeface);
     paint->setTextSize(fSize);
     paint->setTextScaleX(fScaleX);
@@ -478,7 +478,9 @@
                                       SkTextBlob::GlyphPositioning positioning,
                                       int count, int textSize, SkPoint offset,
                                       const SkRect* bounds) {
-    if (count <= 0 || textSize < 0 || font.getTextEncoding() != SkPaint::kGlyphID_TextEncoding) {
+    if (count <= 0 || textSize < 0 ||
+        (SkTextEncoding)font.getTextEncoding() != kGlyphID_SkTextEncoding)
+    {
         fCurrentRunBuffer = { nullptr, nullptr, nullptr, nullptr };
         return;
     }
@@ -530,7 +532,7 @@
                                                                 const SkRect* bounds) {
     SkPaint legacyPaint;
     font.LEGACY_applyToPaint(&legacyPaint);
-    legacyPaint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+    legacyPaint.setTextEncoding(kGlyphID_SkTextEncoding);
 
     return this->allocRunText(legacyPaint, count, x, y, 0, SkString(), bounds);
 }
@@ -540,7 +542,7 @@
                                                                     const SkRect* bounds) {
     SkPaint legacyPaint;
     font.LEGACY_applyToPaint(&legacyPaint);
-    legacyPaint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+    legacyPaint.setTextEncoding(kGlyphID_SkTextEncoding);
 
     return this->allocRunTextPosH(legacyPaint, count, y, 0, SkString(), bounds);
 }
@@ -549,7 +551,7 @@
                                                                    const SkRect* bounds) {
     SkPaint legacyPaint;
     font.LEGACY_applyToPaint(&legacyPaint);
-    legacyPaint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+    legacyPaint.setTextEncoding(kGlyphID_SkTextEncoding);
 
     return this->allocRunTextPos(legacyPaint, count, 0, SkString(), bounds);
 }
@@ -756,7 +758,7 @@
 }
 
 sk_sp<SkTextBlob> SkTextBlob::MakeFromText(const void* text, size_t byteLength, const SkFont& font,
-                                           SkPaint::TextEncoding encoding) {
+                                           SkTextEncoding encoding) {
     SkPaint legacyPaint;
     font.LEGACY_applyToPaint(&legacyPaint);
     legacyPaint.setTextEncoding(encoding);
diff --git a/src/core/SkTextBlobPriv.h b/src/core/SkTextBlobPriv.h
index 149e652..582c301 100644
--- a/src/core/SkTextBlobPriv.h
+++ b/src/core/SkTextBlobPriv.h
@@ -237,7 +237,7 @@
         , fMiterLimit{basePaint.fMiterLimit}
         , fBlendMode{basePaint.fBlendMode}
         , fBitfieldsUInt{(basePaint.fBitfieldsUInt & ~SkRunFont::kFlagsMask) | runFont.fFlags} {
-    fBitfields.fTextEncoding = kGlyphID_TextEncoding;
+    fBitfields.fTextEncoding = (unsigned)kGlyphID_SkTextEncoding;
     fBitfields.fHinting = runFont.fHinting;
 }
 
diff --git a/src/effects/SkLayerDrawLooper.cpp b/src/effects/SkLayerDrawLooper.cpp
index ce22a66..c9c60cc 100644
--- a/src/effects/SkLayerDrawLooper.cpp
+++ b/src/effects/SkLayerDrawLooper.cpp
@@ -79,7 +79,7 @@
                     sk_srgb_singleton());
 
     BitFlags bits = info.fPaintBits;
-    SkPaint::TextEncoding encoding = dst->getTextEncoding();
+    SkTextEncoding encoding = (SkTextEncoding)dst->getTextEncoding();
 
     if (0 == bits) {
         return;
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index 41503af..d5fff5d 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -1033,9 +1033,8 @@
 
 void SkPDFDevice::drawGlyphRunAsPath(const SkGlyphRun& glyphRun, SkPoint offset) {
     SkPaint paint{glyphRun.paint()};
-    paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+    paint.setTextEncoding(kGlyphID_SkTextEncoding);
     SkPath path;
-    SkASSERT(paint.getTextEncoding() == SkPaint::kGlyphID_TextEncoding);
 
     paint.getPosTextPath(glyphRun.glyphsIDs().data(),
                          glyphRun.glyphsIDs().size() * sizeof(SkGlyphID),
@@ -1047,7 +1046,7 @@
     SkPaint transparent;
     transparent.setTypeface(paint.getTypeface() ? paint.refTypeface()
                                                 : SkTypeface::MakeDefault());
-    transparent.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+    transparent.setTextEncoding(kGlyphID_SkTextEncoding);
     transparent.setColor(SK_ColorTRANSPARENT);
     transparent.setTextSize(paint.getTextSize());
     transparent.setTextScaleX(paint.getTextScaleX());
@@ -1087,7 +1086,7 @@
     const SkGlyphID* glyphs = glyphRun.glyphsIDs().data();
     uint32_t glyphCount = SkToU32(glyphRun.glyphsIDs().size());
     SkPaint srcPaint{glyphRun.paint()};
-    srcPaint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+    srcPaint.setTextEncoding(kGlyphID_SkTextEncoding);
 
     if (!glyphCount || !glyphs || srcPaint.getTextSize() <= 0 || this->hasEmptyClip()) {
         return;
diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp
index 6e3425e..b6cb6c4 100644
--- a/src/ports/SkFontMgr_android.cpp
+++ b/src/ports/SkFontMgr_android.cpp
@@ -399,7 +399,7 @@
 
             SkPaint paint;
             paint.setTypeface(face);
-            paint.setTextEncoding(SkPaint::kUTF32_TextEncoding);
+            paint.setTextEncoding(kUTF32_SkTextEncoding);
 
             uint16_t glyphID;
             paint.textToGlyphs(&character, sizeof(character), &glyphID);
diff --git a/src/utils/SkLua.cpp b/src/utils/SkLua.cpp
index 074493c..4ff6c6e 100644
--- a/src/utils/SkLua.cpp
+++ b/src/utils/SkLua.cpp
@@ -869,7 +869,7 @@
 }
 
 static int lpaint_getTextEncoding(lua_State* L) {
-    SkLua(L).pushU32(get_obj<SkPaint>(L, 1)->getTextEncoding());
+    SkLua(L).pushU32((unsigned)get_obj<SkPaint>(L, 1)->getTextEncoding());
     return 1;
 }
 
diff --git a/src/utils/SkLuaCanvas.cpp b/src/utils/SkLuaCanvas.cpp
index a9b3c0e..7f279ca 100644
--- a/src/utils/SkLuaCanvas.cpp
+++ b/src/utils/SkLuaCanvas.cpp
@@ -37,7 +37,12 @@
         lua_settop(L, -1);
     }
 
-    void pushEncodedText(SkPaint::TextEncoding, const void*, size_t);
+#ifdef SK_SUPPORT_LEGACY_TEXTENCODINGENUM
+    void pushEncodedText(SkPaint::TextEncoding enc, const void* text, size_t length) {
+        this->pushEncodedText((SkTextEncoding)enc, text, length);
+    }
+#endif
+    void pushEncodedText(SkTextEncoding, const void*, size_t);
 
 private:
     typedef SkLua INHERITED;
@@ -48,20 +53,19 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-void AutoCallLua::pushEncodedText(SkPaint::TextEncoding enc, const void* text,
-                                  size_t length) {
+void AutoCallLua::pushEncodedText(SkTextEncoding enc, const void* text, size_t length) {
     switch (enc) {
-        case SkPaint::kUTF8_TextEncoding:
+        case kUTF8_SkTextEncoding:
             this->pushString((const char*)text, length, "text");
             break;
-        case SkPaint::kUTF16_TextEncoding:
+        case kUTF16_SkTextEncoding:
             this->pushString(SkStringFromUTF16((const uint16_t*)text, length), "text");
             break;
-        case SkPaint::kGlyphID_TextEncoding:
+        case kGlyphID_SkTextEncoding:
             this->pushArrayU16((const uint16_t*)text, SkToInt(length >> 1),
                                "glyphs");
             break;
-        case SkPaint::kUTF32_TextEncoding:
+        case kUTF32_SkTextEncoding:
             break;
     }
 }
diff --git a/src/utils/SkTextUtils.cpp b/src/utils/SkTextUtils.cpp
index cc1b48e..f33058e 100644
--- a/src/utils/SkTextUtils.cpp
+++ b/src/utils/SkTextUtils.cpp
@@ -18,11 +18,11 @@
     SkAutoSTArray<32, uint16_t> glyphStorage;
     const uint16_t* glyphs;
 
-    if (paint.getTextEncoding() != SkPaint::kGlyphID_TextEncoding) {
+    if ((SkTextEncoding)paint.getTextEncoding() != kGlyphID_SkTextEncoding) {
         glyphStorage.reset(count);
         paint.textToGlyphs(text, size, glyphStorage.get());
         glyphs = glyphStorage.get();
-        paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+        paint.setTextEncoding(kGlyphID_SkTextEncoding);
     } else {
         glyphs = static_cast<const uint16_t*>(text);
     }
diff --git a/src/xps/SkXPSDevice.cpp b/src/xps/SkXPSDevice.cpp
index b067c4f..63e7ca6 100644
--- a/src/xps/SkXPSDevice.cpp
+++ b/src/xps/SkXPSDevice.cpp
@@ -1975,11 +1975,11 @@
     return S_OK;
 }
 
-static int num_glyph_guess(SkPaint::TextEncoding encoding, const void* text, size_t byteLength) {
-    static_assert((int)SkTypeface::kUTF8_Encoding  == (int)SkPaint::kUTF8_TextEncoding,  "");
-    static_assert((int)SkTypeface::kUTF16_Encoding == (int)SkPaint::kUTF16_TextEncoding, "");
-    static_assert((int)SkTypeface::kUTF32_Encoding == (int)SkPaint::kUTF32_TextEncoding, "");
-    if (encoding == SkPaint::kGlyphID_TextEncoding) {
+static int num_glyph_guess(SkTextEncoding encoding, const void* text, size_t byteLength) {
+    static_assert((int)SkTypeface::kUTF8_Encoding  == (int)kUTF8_SkTextEncoding,  "");
+    static_assert((int)SkTypeface::kUTF16_Encoding == (int)kUTF16_SkTextEncoding, "");
+    static_assert((int)SkTypeface::kUTF32_Encoding == (int)kUTF32_SkTextEncoding, "");
+    if (encoding == kGlyphID_SkTextEncoding) {
         return SkToInt(byteLength / 2);
     }
     return SkUTFN_CountUnichars((SkTypeface::Encoding)encoding, text, byteLength);