Revert "Fix regression in CursorWindow.copyStingToBuffer."
This reverts commit d0ff68da6a.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user