Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
c9a22fa1
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
1 年多 前同步成功
通知
0
Star
18
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Harfbuzz
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c9a22fa1
编写于
8月 13, 2018
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[icu] Pass normalizer instance down as user_data
上级
f0ef096b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
14 deletion
+9
-14
src/hb-icu.cc
src/hb-icu.cc
+9
-14
未找到文件。
src/hb-icu.cc
浏览文件 @
c9a22fa1
...
@@ -165,10 +165,6 @@ hb_icu_unicode_script (hb_unicode_funcs_t *ufuncs HB_UNUSED,
...
@@ -165,10 +165,6 @@ hb_icu_unicode_script (hb_unicode_funcs_t *ufuncs HB_UNUSED,
return
hb_icu_script_to_script
(
scriptCode
);
return
hb_icu_script_to_script
(
scriptCode
);
}
}
#if U_ICU_VERSION_MAJOR_NUM >= 49
static
hb_atomic_ptr_t
<
const
UNormalizer2
>
normalizer
;
#endif
static
hb_bool_t
static
hb_bool_t
hb_icu_unicode_compose
(
hb_unicode_funcs_t
*
ufuncs
HB_UNUSED
,
hb_icu_unicode_compose
(
hb_unicode_funcs_t
*
ufuncs
HB_UNUSED
,
hb_codepoint_t
a
,
hb_codepoint_t
a
,
...
@@ -178,7 +174,8 @@ hb_icu_unicode_compose (hb_unicode_funcs_t *ufuncs HB_UNUSED,
...
@@ -178,7 +174,8 @@ hb_icu_unicode_compose (hb_unicode_funcs_t *ufuncs HB_UNUSED,
{
{
#if U_ICU_VERSION_MAJOR_NUM >= 49
#if U_ICU_VERSION_MAJOR_NUM >= 49
{
{
UChar32
ret
=
unorm2_composePair
(
normalizer
.
get_relaxed
(),
a
,
b
);
const
UNormalizer2
*
normalizer
=
(
const
UNormalizer2
*
)
user_data
;
UChar32
ret
=
unorm2_composePair
(
normalizer
,
a
,
b
);
if
(
ret
<
0
)
return
false
;
if
(
ret
<
0
)
return
false
;
*
ab
=
ret
;
*
ab
=
ret
;
return
true
;
return
true
;
...
@@ -223,10 +220,11 @@ hb_icu_unicode_decompose (hb_unicode_funcs_t *ufuncs HB_UNUSED,
...
@@ -223,10 +220,11 @@ hb_icu_unicode_decompose (hb_unicode_funcs_t *ufuncs HB_UNUSED,
{
{
#if U_ICU_VERSION_MAJOR_NUM >= 49
#if U_ICU_VERSION_MAJOR_NUM >= 49
{
{
const
UNormalizer2
*
normalizer
=
(
const
UNormalizer2
*
)
user_data
;
UChar
decomposed
[
4
];
UChar
decomposed
[
4
];
int
len
;
int
len
;
UErrorCode
icu_err
=
U_ZERO_ERROR
;
UErrorCode
icu_err
=
U_ZERO_ERROR
;
len
=
unorm2_getRawDecomposition
(
normalizer
.
get_relaxed
()
,
ab
,
decomposed
,
len
=
unorm2_getRawDecomposition
(
normalizer
,
ab
,
decomposed
,
ARRAY_LENGTH
(
decomposed
),
&
icu_err
);
ARRAY_LENGTH
(
decomposed
),
&
icu_err
);
if
(
U_FAILURE
(
icu_err
)
||
len
<
0
)
return
false
;
if
(
U_FAILURE
(
icu_err
)
||
len
<
0
)
return
false
;
...
@@ -352,20 +350,17 @@ static struct hb_icu_unicode_funcs_lazy_loader_t : hb_unicode_funcs_lazy_loader_
...
@@ -352,20 +350,17 @@ static struct hb_icu_unicode_funcs_lazy_loader_t : hb_unicode_funcs_lazy_loader_
{
{
static
inline
hb_unicode_funcs_t
*
create
(
void
)
static
inline
hb_unicode_funcs_t
*
create
(
void
)
{
{
void
*
user_data
=
nullptr
;
#if U_ICU_VERSION_MAJOR_NUM >= 49
#if U_ICU_VERSION_MAJOR_NUM >= 49
retry:
UErrorCode
icu_err
=
U_ZERO_ERROR
;
if
(
!
normalizer
.
get
())
user_data
=
(
void
*
)
unorm2_getNFCInstance
(
&
icu_err
);
{
assert
(
user_data
);
UErrorCode
icu_err
=
U_ZERO_ERROR
;
if
(
unlikely
(
!
normalizer
.
cmpexch
(
nullptr
,
unorm2_getNFCInstance
(
&
icu_err
))))
goto
retry
;
}
#endif
#endif
hb_unicode_funcs_t
*
funcs
=
hb_unicode_funcs_create
(
nullptr
);
hb_unicode_funcs_t
*
funcs
=
hb_unicode_funcs_create
(
nullptr
);
#define HB_UNICODE_FUNC_IMPLEMENT(name) \
#define HB_UNICODE_FUNC_IMPLEMENT(name) \
hb_unicode_funcs_set_##name##_func (funcs, hb_icu_unicode_##name,
nullptr
, nullptr);
hb_unicode_funcs_set_##name##_func (funcs, hb_icu_unicode_##name,
user_data
, nullptr);
HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS
HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS
#undef HB_UNICODE_FUNC_IMPLEMENT
#undef HB_UNICODE_FUNC_IMPLEMENT
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录