summaryrefslogtreecommitdiff
path: root/android/sqlite3_android.cpp
diff options
context:
space:
mode:
authorJiyong Park <jiyong@google.com>2017-08-18 08:42:33 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-08-18 08:42:33 +0000
commited6a0cb1f19290ffc824f4ccfcaeffe1effae47c (patch)
treedeaa5e2923ecc77df80d9487af179d9888dc5487 /android/sqlite3_android.cpp
parentbf40ef59e6bedc602a2451d96355aecac28d199b (diff)
parentfc6bb5769385b88b1dd34b6465303b1a6dc54571 (diff)
Merge "Don't use ICU when built for vendors"
am: fc6bb57693 Change-Id: I4b95599ba8257a3fb2983eccde1e338f79046c0c
Diffstat (limited to 'android/sqlite3_android.cpp')
-rw-r--r--android/sqlite3_android.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/android/sqlite3_android.cpp b/android/sqlite3_android.cpp
index 4174a13..da40647 100644
--- a/android/sqlite3_android.cpp
+++ b/android/sqlite3_android.cpp
@@ -21,10 +21,19 @@
#include <string.h>
#include <unistd.h>
+// ICU is turned off when sqlite is built for VNDK
+#ifndef __ANDROID_VNDK__
+#define SQLITE_ENABLE_ICU
+#else
+#undef SQLITE_ENABLE_ICU
+#endif
+
+#ifdef SQLITE_ENABLE_ICU
#include <unicode/ucol.h>
#include <unicode/uiter.h>
#include <unicode/ustring.h>
#include <unicode/utypes.h>
+#endif //SQLITE_ENABLE_ICU
#include <log/log.h>
#include "sqlite3_android.h"
@@ -34,6 +43,7 @@
#define SMALL_BUFFER_SIZE 10
#define PHONE_NUMBER_BUFFER_SIZE 40
+#ifdef SQLITE_ENABLE_ICU
static int collate16(void *p, int n1, const void *v1, int n2, const void *v2)
{
UCollator *coll = (UCollator *) p;
@@ -72,6 +82,7 @@ static int collate8(void *p, int n1, const void *v1, int n2, const void *v2)
return 0;
}
}
+#endif // SQLITE_ENABLE_ICU
static void phone_numbers_equal(sqlite3_context * context, int argc, sqlite3_value ** argv)
{
@@ -205,6 +216,7 @@ static void delete_file(sqlite3_context * context, int argc, sqlite3_value ** ar
}
}
+#ifdef SQLITE_ENABLE_ICU
static void tokenize_auxdata_delete(void * data)
{
sqlite3_stmt * statement = (sqlite3_stmt *)data;
@@ -413,8 +425,15 @@ static void localized_collator_dtor(UCollator* collator)
// This collator may be removed in the near future, so you MUST not use now.
#define PHONEBOOK_COLLATOR_NAME "PHONEBOOK"
-extern "C" int register_localized_collators(sqlite3* handle, const char* systemLocale, int utf16Storage)
+#endif // SQLITE_ENABLE_ICU
+
+extern "C" int register_localized_collators(sqlite3* handle __attribute((unused)),
+ const char* systemLocale __attribute((unused)),
+ int utf16Storage __attribute((unused)))
{
+// This function is no-op for the VNDK, but should exist in case when some vendor
+// module has a reference to this function.
+#ifdef SQLITE_ENABLE_ICU
UErrorCode status = U_ZERO_ERROR;
UCollator* collator = ucol_open(systemLocale, &status);
if (U_FAILURE(status)) {
@@ -478,14 +497,16 @@ extern "C" int register_localized_collators(sqlite3* handle, const char* systemL
return err;
}
//// PHONEBOOK_COLLATOR
+#endif //SQLITE_ENABLE_ICU
return SQLITE_OK;
}
-extern "C" int register_android_functions(sqlite3 * handle, int utf16Storage)
+extern "C" int register_android_functions(sqlite3 * handle, int utf16Storage __attribute((unused)))
{
int err;
+#ifdef SQLITE_ENABLE_ICU
UErrorCode status = U_ZERO_ERROR;
UCollator * collator = ucol_open(NULL, &status);
@@ -511,6 +532,7 @@ extern "C" int register_android_functions(sqlite3 * handle, int utf16Storage)
if (err != SQLITE_OK) {
return err;
}
+#endif // SQLITE_ENABLE_ICU
// Register the PHONE_NUM_EQUALS function
err = sqlite3_create_function(