Revert "Fix regression in CursorWindow.copyStingToBuffer."

This reverts commit d0ff68da6a.
This commit is contained in:
The Android Automerger
2011-10-27 17:41:26 -07:00
parent 095b0981d4
commit 8f2eb43b4f
3 changed files with 7 additions and 15 deletions

View File

@@ -267,7 +267,7 @@ static void fillCharArrayBufferUTF(JNIEnv* env, jobject bufferObj,
if (dataObj) {
if (size) {
jchar* data = static_cast<jchar*>(env->GetPrimitiveArrayCritical(dataObj, NULL));
utf8_to_utf16_no_null_terminator(reinterpret_cast<const uint8_t*>(str), len,
utf8_to_utf16(reinterpret_cast<const uint8_t*>(str), len,
reinterpret_cast<char16_t*>(data));
env->ReleasePrimitiveArrayCritical(dataObj, data, 0);
}

View File

@@ -149,13 +149,6 @@ void utf8_to_utf32(const char* src, size_t src_len, char32_t* dst);
*/
ssize_t utf8_to_utf16_length(const uint8_t* src, size_t srcLen);
/**
* Convert UTF-8 to UTF-16 including surrogate pairs.
* Returns a pointer to the end of the string (where a null terminator might go
* if you wanted to add one).
*/
char16_t* utf8_to_utf16_no_null_terminator(const uint8_t* src, size_t srcLen, char16_t* dst);
/**
* Convert UTF-8 to UTF-16 including surrogate pairs. The destination buffer
* must be large enough to hold the result as measured by utf8_to_utf16_length

View File

@@ -542,7 +542,11 @@ ssize_t utf8_to_utf16_length(const uint8_t* u8str, size_t u8len)
return u16measuredLen;
}
char16_t* utf8_to_utf16_no_null_terminator(const uint8_t* u8str, size_t u8len, char16_t* u16str)
/**
* Convert a UTF-8 string to UTF-16. The destination UTF-16 buffer must have
* space for NULL at the end.
*/
void utf8_to_utf16(const uint8_t* u8str, size_t u8len, char16_t* u16str)
{
const uint8_t* const u8end = u8str + u8len;
const uint8_t* u8cur = u8str;
@@ -565,12 +569,7 @@ char16_t* utf8_to_utf16_no_null_terminator(const uint8_t* u8str, size_t u8len, c
u8cur += u8len;
}
return u16cur;
}
void utf8_to_utf16(const uint8_t* u8str, size_t u8len, char16_t* u16str) {
char16_t* end = utf8_to_utf16_no_null_terminator(u8str, u8len, u16str);
*end = 0;
*u16cur = 0;
}
}