Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
88a41472
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
接近 2 年 前同步成功
通知
1
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看板
提交
88a41472
编写于
5月 02, 2019
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[serializer] Accept exact type in serialize_subset/copy()
上级
88fdeeec
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
20 addition
and
37 deletion
+20
-37
src/hb-open-type.hh
src/hb-open-type.hh
+6
-6
src/hb-ot-layout-common.hh
src/hb-ot-layout-common.hh
+2
-31
src/hb-ot-layout-gpos-table.hh
src/hb-ot-layout-gpos-table.hh
+6
-0
src/hb-ot-layout-gsub-table.hh
src/hb-ot-layout-gsub-table.hh
+6
-0
未找到文件。
src/hb-open-type.hh
浏览文件 @
88a41472
...
...
@@ -284,11 +284,11 @@ struct OffsetTo : Offset<OffsetType, has_null>
return
*
(
Type
*
)
Offset
<
OffsetType
>::
serialize
(
c
,
base
);
}
template
<
typename
T
,
typename
...
Ts
>
bool
serialize_subset
(
hb_subset_context_t
*
c
,
const
T
&
src
,
const
void
*
base
,
Ts
&&
...
ds
)
template
<
typename
...
Ts
>
bool
serialize_subset
(
hb_subset_context_t
*
c
,
const
T
ype
&
src
,
const
void
*
base
,
Ts
&&
...
ds
)
{
*
this
=
0
;
if
(
has_null
&&
&
src
==
&
Null
(
T
))
if
(
has_null
&&
&
src
==
&
Null
(
T
ype
))
return
false
;
auto
*
s
=
c
->
serializer
;
...
...
@@ -305,11 +305,11 @@ struct OffsetTo : Offset<OffsetType, has_null>
return
ret
;
}
template
<
typename
T
,
typename
...
Ts
>
bool
serialize_copy
(
hb_serialize_context_t
*
c
,
const
T
&
src
,
const
void
*
base
,
Ts
&&
...
ds
)
template
<
typename
...
Ts
>
bool
serialize_copy
(
hb_serialize_context_t
*
c
,
const
T
ype
&
src
,
const
void
*
base
,
Ts
&&
...
ds
)
{
*
this
=
0
;
if
(
has_null
&&
&
src
==
&
Null
(
T
))
if
(
has_null
&&
&
src
==
&
Null
(
T
ype
))
return
false
;
c
->
push
();
...
...
src/hb-ot-layout-common.hh
浏览文件 @
88a41472
...
...
@@ -715,23 +715,6 @@ struct Lookup
return_trace
(
true
);
}
/* Older compilers need this to NOT be locally defined in a function. */
template
<
typename
TSubTable
>
struct
SubTableSubsetWrapper
{
SubTableSubsetWrapper
(
const
TSubTable
&
subtable_
,
unsigned
int
lookup_type_
)
:
subtable
(
subtable_
),
lookup_type
(
lookup_type_
)
{}
bool
subset
(
hb_subset_context_t
*
c
)
const
{
return
subtable
.
dispatch
(
c
,
lookup_type
);
}
private:
const
TSubTable
&
subtable
;
unsigned
int
lookup_type
;
};
template
<
typename
TSubTable
>
bool
subset
(
hb_subset_context_t
*
c
)
const
{
...
...
@@ -746,23 +729,11 @@ struct Lookup
OffsetArrayOf
<
TSubTable
>&
out_subtables
=
out
->
get_subtables
<
TSubTable
>
();
unsigned
int
count
=
subTable
.
len
;
for
(
unsigned
int
i
=
0
;
i
<
count
;
i
++
)
{
SubTableSubsetWrapper
<
TSubTable
>
wrapper
(
this
+
subtables
[
i
],
get_type
());
out_subtables
[
i
].
serialize_subset
(
c
,
wrapper
,
out
);
}
out_subtables
[
i
].
serialize_subset
(
c
,
this
+
subtables
[
i
],
out
,
get_type
());
return_trace
(
true
);
}
/* Older compilers need this to NOT be locally defined in a function. */
template
<
typename
TSubTable
>
struct
SubTableSanitizeWrapper
:
TSubTable
{
bool
sanitize
(
hb_sanitize_context_t
*
c
,
unsigned
int
lookup_type
)
const
{
return
this
->
dispatch
(
c
,
lookup_type
);
}
};
template
<
typename
TSubTable
>
bool
sanitize
(
hb_sanitize_context_t
*
c
)
const
{
...
...
@@ -774,7 +745,7 @@ struct Lookup
if
(
!
markFilteringSet
.
sanitize
(
c
))
return_trace
(
false
);
}
if
(
unlikely
(
!
CastR
<
OffsetArrayOf
<
SubTableSanitizeWrapper
<
TSubTable
>
>>
(
subTable
)
if
(
unlikely
(
!
CastR
<
OffsetArrayOf
<
TSubTable
>>
(
subTable
)
.
sanitize
(
c
,
this
,
get_type
())))
return_trace
(
false
);
...
...
src/hb-ot-layout-gpos-table.hh
浏览文件 @
88a41472
...
...
@@ -1525,6 +1525,12 @@ struct PosLookupSubTable
}
}
/* XXX Remove? */
bool
subset
(
hb_subset_context_t
*
c
,
unsigned
lookup_type
)
const
{
return
dispatch
(
c
,
lookup_type
);
}
bool
sanitize
(
hb_sanitize_context_t
*
c
,
unsigned
lookup_type
)
const
{
return
dispatch
(
c
,
lookup_type
);
}
protected:
union
{
SinglePos
single
;
...
...
src/hb-ot-layout-gsub-table.hh
浏览文件 @
88a41472
...
...
@@ -1170,6 +1170,12 @@ struct SubstLookupSubTable
}
}
/* XXX Remove? */
bool
subset
(
hb_subset_context_t
*
c
,
unsigned
lookup_type
)
const
{
return
dispatch
(
c
,
lookup_type
);
}
bool
sanitize
(
hb_sanitize_context_t
*
c
,
unsigned
lookup_type
)
const
{
return
dispatch
(
c
,
lookup_type
);
}
protected:
union
{
SingleSubst
single
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录