diff --git a/libs/hwui/TextDropShadowCache.cpp b/libs/hwui/TextDropShadowCache.cpp
index 4d80f73..9c7a5ab 100644
--- a/libs/hwui/TextDropShadowCache.cpp
+++ b/libs/hwui/TextDropShadowCache.cpp
@@ -30,7 +30,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 hash_t ShadowText::hash() const {
-    uint32_t charCount = len * sizeof(char16_t);
+    uint32_t charCount = len / sizeof(char16_t);
     uint32_t hash = JenkinsHashMix(0, len);
     hash = JenkinsHashMix(hash, android::hash_type(radius));
     hash = JenkinsHashMix(hash, android::hash_type(textSize));
@@ -38,9 +38,13 @@
     hash = JenkinsHashMix(hash, flags);
     hash = JenkinsHashMix(hash, android::hash_type(italicStyle));
     hash = JenkinsHashMix(hash, android::hash_type(scaleX));
-    hash = JenkinsHashMixShorts(hash, text, charCount);
-    for (uint32_t i = 0; i < charCount * 2; i++) {
-        hash = JenkinsHashMix(hash, android::hash_type(positions[i]));
+    if (text) {
+        hash = JenkinsHashMixShorts(hash, text, charCount);
+    }
+    if (positions) {
+        for (uint32_t i = 0; i < charCount * 2; i++) {
+            hash = JenkinsHashMix(hash, android::hash_type(positions[i]));
+        }
     }
     return JenkinsHashWhiten(hash);
 }
diff --git a/libs/hwui/TextDropShadowCache.h b/libs/hwui/TextDropShadowCache.h
index 38bf05a..0bed72b6 100644
--- a/libs/hwui/TextDropShadowCache.h
+++ b/libs/hwui/TextDropShadowCache.h
@@ -35,6 +35,7 @@
             flags(0), italicStyle(0.0f), scaleX(0), text(NULL), positions(NULL) {
     }
 
+    // len is the number of bytes in text
     ShadowText(SkPaint* paint, float radius, uint32_t len, const char* srcText,
             const float* positions):
             len(len), radius(radius), positions(positions) {
@@ -69,11 +70,12 @@
     }
 
     void copyTextLocally() {
-        str.setTo((const char16_t*) text, len * sizeof(char16_t));
+        uint32_t charCount = len / sizeof(char16_t);
+        str.setTo((const char16_t*) text, charCount);
         text = str.string();
         if (positions != NULL) {
             positionsCopy.clear();
-            positionsCopy.appendArray(positions, len);
+            positionsCopy.appendArray(positions, charCount * 2);
             positions = positionsCopy.array();
         }
     }
