diff options
author | Victor Chang <vichang@google.com> | 2023-01-27 20:14:06 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-01-27 20:14:06 +0000 |
commit | 265bab7e1804495bd93c36245c816f69360a94f6 (patch) | |
tree | 7e324ee801ce5bc5daf8bdd4a4f9ae03e4093f17 | |
parent | acbe6f2909e7077e7c27d31fdeb5448cd5939ea4 (diff) | |
parent | 05883bf666a15500918eaa6f41d6bbf3e5096b7d (diff) | |
download | minikin-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.bp | 2 | ||||
-rw-r--r-- | fuzz/locale_fuzzer/Android.bp | 2 | ||||
-rw-r--r-- | fuzz/measurement_fuzzer/Android.bp | 2 | ||||
-rw-r--r-- | libs/minikin/Android.bp | 4 | ||||
-rw-r--r-- | libs/minikin/WordBreaker.cpp | 15 | ||||
-rw-r--r-- | libs/minikin/WordBreaker.h | 3 | ||||
-rw-r--r-- | tests/perftests/Android.bp | 2 | ||||
-rw-r--r-- | tests/stresstest/Android.bp | 2 | ||||
-rw-r--r-- | tests/unittest/Android.bp | 2 | ||||
-rw-r--r-- | tests/unittest/WordBreakerTests.cpp | 2 |
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" |