Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
dfa54f44
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
11 个月 前同步成功
通知
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
dfa54f44
编写于
8月 14, 2009
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[HB] Simplify MarkMark
上级
815a73e4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
13 deletion
+16
-13
src/hb-ot-layout-gpos-private.hh
src/hb-ot-layout-gpos-private.hh
+16
-13
未找到文件。
src/hb-ot-layout-gpos-private.hh
浏览文件 @
dfa54f44
...
...
@@ -1168,14 +1168,17 @@ struct MarkLigPos
ASSERT_SIZE
(
MarkLigPos
,
2
);
struct
Mark2Array
struct
AnchorMatrix
{
friend
struct
MarkMarkPosFormat1
;
inline
const
Anchor
&
get_anchor
(
unsigned
int
row
,
unsigned
int
col
,
unsigned
int
cols
)
const
{
if
(
HB_UNLIKELY
(
row
>=
rows
||
col
>=
cols
))
return
Null
(
Anchor
);
return
this
+
matrix
[
row
*
cols
+
col
];
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
unsigned
int
cols
)
{
SANITIZE_DEBUG
();
if
(
!
SANITIZE_SELF
())
return
false
;
unsigned
int
count
=
cols
*
len
;
unsigned
int
count
=
rows
*
cols
;
if
(
!
SANITIZE_ARRAY
(
matrix
,
sizeof
(
matrix
[
0
]),
count
))
return
false
;
for
(
unsigned
int
i
=
0
;
i
<
count
;
i
++
)
if
(
!
SANITIZE_THIS
(
matrix
[
i
]))
return
false
;
...
...
@@ -1183,14 +1186,16 @@ struct Mark2Array
}
private:
USHORT
len
;
/* Number of rows */
USHORT
rows
;
/* Number of rows */
OffsetTo
<
Anchor
>
matrix
[];
/* Matrix of offsets to Anchor tables--
* from beginning of Mark2Array table--
* mark2-major--in order of
* Mark2Coverage Index--, mark1-minor--
* ordered by class--zero-based. */
* from beginning of AnchorMatrix table */
};
ASSERT_SIZE
(
AnchorMatrix
,
2
);
/* mark2-major--in order of Mark2Coverage Index--,
* mark1-minor--ordered by class--zero-based. */
typedef
AnchorMatrix
Mark2Array
;
ASSERT_SIZE
(
Mark2Array
,
2
);
struct
MarkMarkPosFormat1
...
...
@@ -1231,16 +1236,14 @@ struct MarkMarkPosFormat1
const
Mark2Array
&
mark2_array
=
this
+
mark2Array
;
unsigned
int
mark1_class
=
mark1_array
.
get_class
(
mark1_index
);
const
Anchor
&
mark1_anchor
=
mark1_array
.
get_anchor
(
mark1_index
);
if
(
HB_UNLIKELY
(
mark1_class
>=
classCount
||
mark2_index
>=
mark2_array
.
len
))
return
false
;
const
Anchor
&
mark1_anchor
=
mark1_array
.
get_anchor
(
mark1_index
);
const
Anchor
&
mark2_anchor
=
mark2_array
.
get_anchor
(
mark2_index
,
mark1_class
,
classCount
)
;
hb_position_t
mark1_x
,
mark1_y
,
mark2_x
,
mark2_y
;
mark1_anchor
.
get_anchor
(
context
,
IN_CURGLYPH
(),
&
mark1_x
,
&
mark1_y
);
unsigned
int
index
=
mark2_index
*
classCount
+
mark1_class
;
(
&
mark2_array
+
mark2_array
.
matrix
[
index
]).
get_anchor
(
context
,
IN_GLYPH
(
j
),
&
mark2_x
,
&
mark2_y
);
mark2_anchor
.
get_anchor
(
context
,
IN_GLYPH
(
j
),
&
mark2_x
,
&
mark2_y
);
hb_internal_glyph_position_t
*
o
=
POSITION
(
buffer
->
in_pos
);
o
->
x_pos
=
mark2_x
-
mark1_x
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录