提交 7564b7fd 编写于 作者: S Seigo Nonaka 提交者: Android (Google) Code Review

Merge "Fix race condition in Paint.hasGlyph()"

...@@ -48,11 +48,18 @@ minikin_shared_libraries := \ ...@@ -48,11 +48,18 @@ minikin_shared_libraries := \
libicuuc \ libicuuc \
libutils libutils
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
# Enable race detection on eng and userdebug build.
enable_race_detection := -DENABLE_RACE_DETECTION
else
enable_race_detection :=
endif
LOCAL_MODULE := libminikin LOCAL_MODULE := libminikin
LOCAL_EXPORT_C_INCLUDE_DIRS := frameworks/minikin/include LOCAL_EXPORT_C_INCLUDE_DIRS := frameworks/minikin/include
LOCAL_SRC_FILES := $(minikin_src_files) LOCAL_SRC_FILES := $(minikin_src_files)
LOCAL_C_INCLUDES := $(minikin_c_includes) LOCAL_C_INCLUDES := $(minikin_c_includes)
LOCAL_CPPFLAGS += -Werror -Wall -Wextra LOCAL_CPPFLAGS += -Werror -Wall -Wextra $(enable_race_detection)
LOCAL_SHARED_LIBRARIES := $(minikin_shared_libraries) LOCAL_SHARED_LIBRARIES := $(minikin_shared_libraries)
include $(BUILD_SHARED_LIBRARY) include $(BUILD_SHARED_LIBRARY)
...@@ -64,7 +71,7 @@ LOCAL_MODULE_TAGS := optional ...@@ -64,7 +71,7 @@ LOCAL_MODULE_TAGS := optional
LOCAL_EXPORT_C_INCLUDE_DIRS := frameworks/minikin/include LOCAL_EXPORT_C_INCLUDE_DIRS := frameworks/minikin/include
LOCAL_SRC_FILES := $(minikin_src_files) LOCAL_SRC_FILES := $(minikin_src_files)
LOCAL_C_INCLUDES := $(minikin_c_includes) LOCAL_C_INCLUDES := $(minikin_c_includes)
LOCAL_CPPFLAGS += -Werror -Wall -Wextra LOCAL_CPPFLAGS += -Werror -Wall -Wextra $(enable_race_detection)
LOCAL_SHARED_LIBRARIES := $(minikin_shared_libraries) LOCAL_SHARED_LIBRARIES := $(minikin_shared_libraries)
include $(BUILD_STATIC_LIBRARY) include $(BUILD_STATIC_LIBRARY)
...@@ -77,7 +84,7 @@ LOCAL_MODULE := libminikin_host ...@@ -77,7 +84,7 @@ LOCAL_MODULE := libminikin_host
LOCAL_MODULE_TAGS := optional LOCAL_MODULE_TAGS := optional
LOCAL_EXPORT_C_INCLUDE_DIRS := frameworks/minikin/include LOCAL_EXPORT_C_INCLUDE_DIRS := frameworks/minikin/include
LOCAL_C_INCLUDES := $(minikin_c_includes) LOCAL_C_INCLUDES := $(minikin_c_includes)
LOCAL_CPPFLAGS += -Werror -Wall -Wextra LOCAL_CPPFLAGS += -Werror -Wall -Wextra $(enable_race_detection)
LOCAL_SHARED_LIBRARIES := liblog libicuuc-host LOCAL_SHARED_LIBRARIES := liblog libicuuc-host
LOCAL_SRC_FILES := Hyphenator.cpp LOCAL_SRC_FILES := Hyphenator.cpp
......
...@@ -227,6 +227,7 @@ bool FontCollection::hasVariationSelector(uint32_t baseCodepoint, ...@@ -227,6 +227,7 @@ bool FontCollection::hasVariationSelector(uint32_t baseCodepoint,
// Currently mRanges can not be used here since it isn't aware of the variation sequence. // Currently mRanges can not be used here since it isn't aware of the variation sequence.
// TODO: Use mRanges for narrowing down the search range. // TODO: Use mRanges for narrowing down the search range.
for (size_t i = 0; i < mFamilies.size(); i++) { for (size_t i = 0; i < mFamilies.size(); i++) {
AutoMutex _l(gMinikinLock);
if (mFamilies[i]->hasVariationSelector(baseCodepoint, variationSelector)) { if (mFamilies[i]->hasVariationSelector(baseCodepoint, variationSelector)) {
return true; return true;
} }
......
...@@ -25,7 +25,9 @@ namespace android { ...@@ -25,7 +25,9 @@ namespace android {
Mutex gMinikinLock; Mutex gMinikinLock;
void assertMinikinLocked() { void assertMinikinLocked() {
LOG_FATAL_IF(gMinikinLock.tryLock() == 0); #ifdef ENABLE_RACE_DETECTION
LOG_ALWAYS_FATAL_IF(gMinikinLock.tryLock() == 0);
#endif
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册