summaryrefslogtreecommitdiff
path: root/android/sqlite3_android.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'android/sqlite3_android.cpp')
-rw-r--r--android/sqlite3_android.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/android/sqlite3_android.cpp b/android/sqlite3_android.cpp
index 6b253c1..cdcc97b 100644
--- a/android/sqlite3_android.cpp
+++ b/android/sqlite3_android.cpp
@@ -95,17 +95,25 @@ static void get_phonebook_index(
UCharIterator iter;
uiter_setUTF8(&iter, src, -1);
- UChar index = android::GetPhonebookIndex(&iter, locale);
- if (index == 0) {
+ UBool isError = FALSE;
+ UChar index[SMALL_BUFFER_SIZE];
+ uint32_t len = android::GetPhonebookIndex(&iter, locale, index, sizeof(index), &isError);
+ if (isError) {
sqlite3_result_null(context);
return;
}
uint32_t outlen = 0;
uint8_t out[SMALL_BUFFER_SIZE];
- UBool isError = FALSE;
- U8_APPEND(out, outlen, SMALL_BUFFER_SIZE * sizeof(uint8_t), index, isError);
- if (isError || outlen == 0) {
+ for (uint32_t i = 0; i < len; i++) {
+ U8_APPEND(out, outlen, sizeof(out), index[i], isError);
+ if (isError) {
+ sqlite3_result_null(context);
+ return;
+ }
+ }
+
+ if (outlen == 0) {
sqlite3_result_null(context);
return;
}