Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f9792dc authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge changes Idbfeb3cc,I03e8e2e7,Iff9eed78

* changes:
  Fix regression in CursorWindow.getString() Bug: 5332296
  Clean up CursorWindow lifetime. Bug: 5332296
  Fix regression in CursorWindow.copyStingToBuffer. Bug: 5332296
parents 844c6abe de272270
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -149,6 +149,13 @@ 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
+7 −6
Original line number Diff line number Diff line
@@ -542,11 +542,7 @@ ssize_t utf8_to_utf16_length(const uint8_t* u8str, size_t u8len)
    return u16measuredLen;
}

/**
 * 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)
char16_t* utf8_to_utf16_no_null_terminator(const uint8_t* u8str, size_t u8len, char16_t* u16str)
{
    const uint8_t* const u8end = u8str + u8len;
    const uint8_t* u8cur = u8str;
@@ -569,7 +565,12 @@ void utf8_to_utf16(const uint8_t* u8str, size_t u8len, char16_t* u16str)

        u8cur += u8len;
    }
    *u16cur = 0;
    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;
}

}