Revert "libutils/Unicode.cpp: Correct length computation and add checks for utf16->utf8"

This reverts commit 53473c160713b8605e262bf212b0cf5e9a19a4d6.

Change-Id: I27379317e08ecbd5e3b95b7ece58194838ab6c21
diff --git a/libutils/String8.cpp b/libutils/String8.cpp
index cad401f..bb06825 100644
--- a/libutils/String8.cpp
+++ b/libutils/String8.cpp
@@ -102,21 +102,20 @@
 {
     if (len == 0) return getEmptyString();
 
-     // Allow for closing '\0'
-    const ssize_t resultStrLen = utf16_to_utf8_length(in, len) + 1;
-    if (resultStrLen < 1) {
+    const ssize_t bytes = utf16_to_utf8_length(in, len);
+    if (bytes < 0) {
         return getEmptyString();
     }
 
-    SharedBuffer* buf = SharedBuffer::alloc(resultStrLen);
+    SharedBuffer* buf = SharedBuffer::alloc(bytes+1);
     ALOG_ASSERT(buf, "Unable to allocate shared buffer");
     if (!buf) {
         return getEmptyString();
     }
 
-    char* resultStr = (char*)buf->data();
-    utf16_to_utf8(in, len, resultStr, resultStrLen);
-    return resultStr;
+    char* str = (char*)buf->data();
+    utf16_to_utf8(in, len, str);
+    return str;
 }
 
 static char* allocFromUTF32(const char32_t* in, size_t len)
@@ -125,21 +124,21 @@
         return getEmptyString();
     }
 
-    const ssize_t resultStrLen = utf32_to_utf8_length(in, len) + 1;
-    if (resultStrLen < 1) {
+    const ssize_t bytes = utf32_to_utf8_length(in, len);
+    if (bytes < 0) {
         return getEmptyString();
     }
 
-    SharedBuffer* buf = SharedBuffer::alloc(resultStrLen);
+    SharedBuffer* buf = SharedBuffer::alloc(bytes+1);
     ALOG_ASSERT(buf, "Unable to allocate shared buffer");
     if (!buf) {
         return getEmptyString();
     }
 
-    char* resultStr = (char*) buf->data();
-    utf32_to_utf8(in, len, resultStr, resultStrLen);
+    char* str = (char*) buf->data();
+    utf32_to_utf8(in, len, str);
 
-    return resultStr;
+    return str;
 }
 
 // ---------------------------------------------------------------------------