summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Chang <vichang@google.com>2023-01-27 20:14:06 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-01-27 20:14:06 +0000
commit265bab7e1804495bd93c36245c816f69360a94f6 (patch)
tree7e324ee801ce5bc5daf8bdd4a4f9ae03e4093f17
parentacbe6f2909e7077e7c27d31fdeb5448cd5939ea4 (diff)
parent05883bf666a15500918eaa6f41d6bbf3e5096b7d (diff)
downloadminikin-265bab7e1804495bd93c36245c816f69360a94f6.tar.gz
Replace libandroidicu usage in minikin am: 05883bf666android-u-beta-1-gpl
Original change: https://android-review.googlesource.com/c/platform/frameworks/minikin/+/2378748 Change-Id: I4283d4eb7886ddbc518fca382624007cf6fcfec0 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--fuzz/hyphenator_fuzzer/Android.bp2
-rw-r--r--fuzz/locale_fuzzer/Android.bp2
-rw-r--r--fuzz/measurement_fuzzer/Android.bp2
-rw-r--r--libs/minikin/Android.bp4
-rw-r--r--libs/minikin/WordBreaker.cpp15
-rw-r--r--libs/minikin/WordBreaker.h3
-rw-r--r--tests/perftests/Android.bp2
-rw-r--r--tests/stresstest/Android.bp2
-rw-r--r--tests/unittest/Android.bp2
-rw-r--r--tests/unittest/WordBreakerTests.cpp2
10 files changed, 19 insertions, 17 deletions
diff --git a/fuzz/hyphenator_fuzzer/Android.bp b/fuzz/hyphenator_fuzzer/Android.bp
index 30fb4ba..0b69dc3 100644
--- a/fuzz/hyphenator_fuzzer/Android.bp
+++ b/fuzz/hyphenator_fuzzer/Android.bp
@@ -33,7 +33,7 @@ cc_fuzz {
"liblog",
"libharfbuzz_ng",
"libft2",
- "libandroidicu",
+ "libicu",
"libutils",
],
header_libs: [
diff --git a/fuzz/locale_fuzzer/Android.bp b/fuzz/locale_fuzzer/Android.bp
index 6975c87..5367687 100644
--- a/fuzz/locale_fuzzer/Android.bp
+++ b/fuzz/locale_fuzzer/Android.bp
@@ -33,7 +33,7 @@ package {
"liblog",
"libharfbuzz_ng",
"libft2",
- "libandroidicu",
+ "libicu",
"libutils",
"libz",
],
diff --git a/fuzz/measurement_fuzzer/Android.bp b/fuzz/measurement_fuzzer/Android.bp
index af84e49..133c172 100644
--- a/fuzz/measurement_fuzzer/Android.bp
+++ b/fuzz/measurement_fuzzer/Android.bp
@@ -34,7 +34,7 @@ cc_fuzz {
"liblog",
"libharfbuzz_ng",
"libft2",
- "libandroidicu",
+ "libicu",
"libutils",
"libz",
],
diff --git a/libs/minikin/Android.bp b/libs/minikin/Android.bp
index 3c89688..a6128c8 100644
--- a/libs/minikin/Android.bp
+++ b/libs/minikin/Android.bp
@@ -84,10 +84,10 @@ cc_library {
target: {
android: {
shared_libs: [
- "libandroidicu",
+ "libicu",
],
export_shared_lib_headers: [
- "libandroidicu",
+ "libicu",
],
},
host: {
diff --git a/libs/minikin/WordBreaker.cpp b/libs/minikin/WordBreaker.cpp
index fd0dea9..ae79d3c 100644
--- a/libs/minikin/WordBreaker.cpp
+++ b/libs/minikin/WordBreaker.cpp
@@ -75,17 +75,21 @@ void ICULineBreakerPoolImpl::release(ICULineBreakerPool::Slot&& slot) {
mPool.push_front(std::move(slot));
}
-WordBreaker::WordBreaker() : mPool(&ICULineBreakerPoolImpl::getInstance()) {}
+WordBreaker::WordBreaker()
+ : mPool(&ICULineBreakerPoolImpl::getInstance()), mUText(nullptr, &utext_close) {}
-WordBreaker::WordBreaker(ICULineBreakerPool* pool) : mPool(pool) {}
+WordBreaker::WordBreaker(ICULineBreakerPool* pool) : mPool(pool), mUText(nullptr, &utext_close) {}
ssize_t WordBreaker::followingWithLocale(const Locale& locale, LineBreakStyle lbStyle,
LineBreakWordStyle lbWordStyle, size_t from) {
+ if (!mUText) {
+ return mCurrent;
+ }
mIcuBreaker = mPool->acquire(locale, lbStyle, lbWordStyle);
UErrorCode status = U_ZERO_ERROR;
MINIKIN_ASSERT(mText != nullptr, "setText must be called first");
// TODO: handle failure status
- ubrk_setUText(mIcuBreaker.breaker.get(), &mUText, &status);
+ ubrk_setUText(mIcuBreaker.breaker.get(), mUText.get(), &status);
if (mInEmailOrUrl) {
// Note:
// Don't reset mCurrent, mLast, or mScanOffset for keeping email/URL context.
@@ -108,7 +112,7 @@ void WordBreaker::setText(const uint16_t* data, size_t size) {
mScanOffset = 0;
mInEmailOrUrl = false;
UErrorCode status = U_ZERO_ERROR;
- utext_openUChars(&mUText, reinterpret_cast<const UChar*>(data), size, &status);
+ mUText.reset(utext_openUChars(nullptr, reinterpret_cast<const UChar*>(data), size, &status));
}
ssize_t WordBreaker::current() const {
@@ -317,8 +321,7 @@ int WordBreaker::breakBadness() const {
void WordBreaker::finish() {
mText = nullptr;
- // Note: calling utext_close multiply is safe
- utext_close(&mUText);
+ mUText.reset();
mPool->release(std::move(mIcuBreaker));
}
diff --git a/libs/minikin/WordBreaker.h b/libs/minikin/WordBreaker.h
index 45bcd40..c4af635 100644
--- a/libs/minikin/WordBreaker.h
+++ b/libs/minikin/WordBreaker.h
@@ -26,6 +26,7 @@
#include <unicode/ubrk.h>
#include <list>
+#include <memory>
#include <mutex>
#include "Locale.h"
@@ -146,7 +147,7 @@ private:
ICULineBreakerPool::Slot mIcuBreaker;
- UText mUText = UTEXT_INITIALIZER;
+ std::unique_ptr<UText, decltype(&utext_close)> mUText;
const uint16_t* mText = nullptr;
size_t mTextSize;
ssize_t mLast;
diff --git a/tests/perftests/Android.bp b/tests/perftests/Android.bp
index 4eb47c9..dcf5b98 100644
--- a/tests/perftests/Android.bp
+++ b/tests/perftests/Android.bp
@@ -42,7 +42,7 @@ cc_benchmark {
shared_libs: [
"libft2",
"libharfbuzz_ng",
- "libandroidicu",
+ "libicu",
"liblog",
],
diff --git a/tests/stresstest/Android.bp b/tests/stresstest/Android.bp
index cebefe5..d963a09 100644
--- a/tests/stresstest/Android.bp
+++ b/tests/stresstest/Android.bp
@@ -36,7 +36,7 @@ cc_test {
"libft2",
"libharfbuzz_ng",
- "libandroidicu",
+ "libicu",
"liblog",
"libutils",
"libz",
diff --git a/tests/unittest/Android.bp b/tests/unittest/Android.bp
index d73fa30..9800416 100644
--- a/tests/unittest/Android.bp
+++ b/tests/unittest/Android.bp
@@ -36,7 +36,7 @@ cc_test {
shared_libs: [
"libft2",
"libharfbuzz_ng",
- "libandroidicu",
+ "libicu",
"liblog",
"libutils",
"libz",
diff --git a/tests/unittest/WordBreakerTests.cpp b/tests/unittest/WordBreakerTests.cpp
index 4b5fc35..0c20a80 100644
--- a/tests/unittest/WordBreakerTests.cpp
+++ b/tests/unittest/WordBreakerTests.cpp
@@ -19,8 +19,6 @@
#include <cstdio>
#include <gtest/gtest.h>
-#include <unicode/uclean.h>
-#include <unicode/udata.h>
#include "UnicodeUtils.h"