Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
62c0fd75
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
62c0fd75
编写于
4月 21, 2010
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cleanup de-const-casting during sanitize
上级
dd155870
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
23 addition
and
24 deletion
+23
-24
src/hb-open-file-private.hh
src/hb-open-file-private.hh
+1
-1
src/hb-open-type-private.hh
src/hb-open-type-private.hh
+14
-15
src/hb-ot-layout-common-private.hh
src/hb-ot-layout-common-private.hh
+2
-2
src/hb-ot-layout-gpos-private.hh
src/hb-ot-layout-gpos-private.hh
+6
-6
未找到文件。
src/hb-open-file-private.hh
浏览文件 @
62c0fd75
...
...
@@ -150,7 +150,7 @@ struct TTCHeader
TRACE_SANITIZE
();
if
(
!
SANITIZE
(
version
))
return
false
;
if
(
version
.
major
<
1
||
version
.
major
>
2
)
return
true
;
return
table
.
sanitize
(
SANITIZE_ARG
,
C
onstCharP
(
this
),
Const
CharP
(
this
));
return
table
.
sanitize
(
SANITIZE_ARG
,
C
harP
(
this
),
CharP
(
this
));
}
private:
...
...
src/hb-open-type-private.hh
浏览文件 @
62c0fd75
...
...
@@ -43,7 +43,6 @@
/* Cast to const char *, to char *, or to char * dropping const-ness */
template
<
typename
Type
>
inline
const
char
*
ConstCharP
(
const
Type
X
)
{
return
reinterpret_cast
<
const
char
*>
(
X
);
}
template
<
typename
Type
>
inline
char
*
CharP
(
Type
X
)
{
return
reinterpret_cast
<
char
*>
(
X
);
}
template
<
typename
Type
>
inline
char
*
DeConstCharP
(
const
Type
X
)
{
return
(
char
*
)
reinterpret_cast
<
const
char
*>
(
X
);
}
#define CONST_CAST(T,X,Ofs) (*(reinterpret_cast<const T *>(ConstCharP(&(X)) + Ofs)))
#define DECONST_CAST(T,X,Ofs) (*(reinterpret_cast<T *>((char *)ConstCharP(&(X)) + Ofs)))
...
...
@@ -248,7 +247,7 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF,
#define SANITIZE(X) HB_LIKELY ((X).sanitize (SANITIZE_ARG))
#define SANITIZE2(X,Y) (SANITIZE (X) && SANITIZE (Y))
#define SANITIZE_THIS(X) HB_LIKELY ((X).sanitize (SANITIZE_ARG, C
onstC
harP(this)))
#define SANITIZE_THIS(X) HB_LIKELY ((X).sanitize (SANITIZE_ARG, CharP(this)))
#define SANITIZE_THIS2(X,Y) (SANITIZE_THIS (X) && SANITIZE_THIS (Y))
#define SANITIZE_THIS3(X,Y,Z) (SANITIZE_THIS (X) && SANITIZE_THIS (Y) && SANITIZE_THIS(Z))
...
...
@@ -265,7 +264,7 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF,
#define NEUTER(Var, Val) \
(SANITIZE_OBJ (Var) && \
_hb_sanitize_edit (SANITIZE_ARG, C
onstC
harP(&(Var)), sizeof (Var)) && \
_hb_sanitize_edit (SANITIZE_ARG, CharP(&(Var)), sizeof (Var)) && \
((Var).set (Val), true))
...
...
@@ -286,7 +285,7 @@ struct Sanitizer
_hb_sanitize_init
(
&
context
,
blob
);
Type
*
t
=
&
CAST
(
Type
,
*
De
ConstCharP
(
context
.
start
),
0
);
Type
*
t
=
&
CAST
(
Type
,
*
(
char
*
)
ConstCharP
(
context
.
start
),
0
);
sane
=
t
->
sanitize
(
SANITIZE_ARG_INIT
);
if
(
sane
)
{
...
...
@@ -480,26 +479,26 @@ struct GenericOffsetTo : OffsetType
return
CONST_CAST
(
Type
,
*
ConstCharP
(
base
),
offset
);
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
const
void
*
base
)
{
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
void
*
base
)
{
TRACE_SANITIZE
();
if
(
!
SANITIZE_SELF
())
return
false
;
unsigned
int
offset
=
*
this
;
if
(
HB_UNLIKELY
(
!
offset
))
return
true
;
return
SANITIZE
(
CAST
(
Type
,
*
DeConst
CharP
(
base
),
offset
))
||
NEUTER
(
DECONST_CAST
(
OffsetType
,
*
this
,
0
),
0
);
return
SANITIZE
(
CAST
(
Type
,
*
CharP
(
base
),
offset
))
||
NEUTER
(
DECONST_CAST
(
OffsetType
,
*
this
,
0
),
0
);
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
const
void
*
base
,
const
void
*
base2
)
{
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
void
*
base
,
void
*
base2
)
{
TRACE_SANITIZE
();
if
(
!
SANITIZE_SELF
())
return
false
;
unsigned
int
offset
=
*
this
;
if
(
HB_UNLIKELY
(
!
offset
))
return
true
;
return
SANITIZE_BASE
(
CAST
(
Type
,
*
DeConst
CharP
(
base
),
offset
),
base2
)
||
NEUTER
(
DECONST_CAST
(
OffsetType
,
*
this
,
0
),
0
);
return
SANITIZE_BASE
(
CAST
(
Type
,
*
CharP
(
base
),
offset
),
base2
)
||
NEUTER
(
DECONST_CAST
(
OffsetType
,
*
this
,
0
),
0
);
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
const
void
*
base
,
unsigned
int
user_data
)
{
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
void
*
base
,
unsigned
int
user_data
)
{
TRACE_SANITIZE
();
if
(
!
SANITIZE_SELF
())
return
false
;
unsigned
int
offset
=
*
this
;
if
(
HB_UNLIKELY
(
!
offset
))
return
true
;
return
SANITIZE_BASE
(
CAST
(
Type
,
*
DeConst
CharP
(
base
),
offset
),
user_data
)
||
NEUTER
(
DECONST_CAST
(
OffsetType
,
*
this
,
0
),
0
);
return
SANITIZE_BASE
(
CAST
(
Type
,
*
CharP
(
base
),
offset
),
user_data
)
||
NEUTER
(
DECONST_CAST
(
OffsetType
,
*
this
,
0
),
0
);
}
};
template
<
typename
Base
,
typename
OffsetType
,
typename
Type
>
...
...
@@ -559,7 +558,7 @@ struct GenericArrayOf
return
false
;
return
true
;
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
const
void
*
base
)
{
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
void
*
base
)
{
TRACE_SANITIZE
();
if
(
!
SANITIZE_GET_SIZE
())
return
false
;
unsigned
int
count
=
len
;
...
...
@@ -568,7 +567,7 @@ struct GenericArrayOf
return
false
;
return
true
;
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
const
void
*
base
,
const
void
*
base2
)
{
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
void
*
base
,
void
*
base2
)
{
TRACE_SANITIZE
();
if
(
!
SANITIZE_GET_SIZE
())
return
false
;
unsigned
int
count
=
len
;
...
...
@@ -577,7 +576,7 @@ struct GenericArrayOf
return
false
;
return
true
;
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
const
void
*
base
,
unsigned
int
user_data
)
{
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
void
*
base
,
unsigned
int
user_data
)
{
TRACE_SANITIZE
();
if
(
!
SANITIZE_GET_SIZE
())
return
false
;
unsigned
int
count
=
len
;
...
...
@@ -623,11 +622,11 @@ struct OffsetListOf : OffsetArrayOf<Type>
inline
bool
sanitize
(
SANITIZE_ARG_DEF
)
{
TRACE_SANITIZE
();
return
OffsetArrayOf
<
Type
>::
sanitize
(
SANITIZE_ARG
,
C
onstC
harP
(
this
));
return
OffsetArrayOf
<
Type
>::
sanitize
(
SANITIZE_ARG
,
CharP
(
this
));
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
unsigned
int
user_data
)
{
TRACE_SANITIZE
();
return
OffsetArrayOf
<
Type
>::
sanitize
(
SANITIZE_ARG
,
C
onstC
harP
(
this
),
user_data
);
return
OffsetArrayOf
<
Type
>::
sanitize
(
SANITIZE_ARG
,
CharP
(
this
),
user_data
);
}
};
...
...
src/hb-ot-layout-common-private.hh
浏览文件 @
62c0fd75
...
...
@@ -53,7 +53,7 @@ struct Record
{
static
inline
unsigned
int
get_size
()
{
return
sizeof
(
Record
<
Type
>
);
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
const
void
*
base
)
{
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
void
*
base
)
{
TRACE_SANITIZE
();
return
SANITIZE
(
tag
)
&&
SANITIZE_BASE
(
offset
,
base
);
}
...
...
@@ -111,7 +111,7 @@ struct RecordListOf : RecordArrayOf<Type>
inline
bool
sanitize
(
SANITIZE_ARG_DEF
)
{
TRACE_SANITIZE
();
return
RecordArrayOf
<
Type
>::
sanitize
(
SANITIZE_ARG
,
C
onstC
harP
(
this
));
return
RecordArrayOf
<
Type
>::
sanitize
(
SANITIZE_ARG
,
CharP
(
this
));
}
};
...
...
src/hb-ot-layout-gpos-private.hh
浏览文件 @
62c0fd75
...
...
@@ -344,7 +344,7 @@ struct MarkRecord
static
inline
unsigned
int
get_size
()
{
return
sizeof
(
MarkRecord
);
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
const
void
*
base
)
{
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
void
*
base
)
{
TRACE_SANITIZE
();
return
SANITIZE_SELF
()
&&
SANITIZE_BASE
(
markAnchor
,
base
);
}
...
...
@@ -602,7 +602,7 @@ struct PairPosFormat1
unsigned
int
len2
=
valueFormat2
.
get_len
();
if
(
!
(
SANITIZE_SELF
()
&&
SANITIZE_THIS
(
coverage
)
&&
pairSet
.
sanitize
(
SANITIZE_ARG
,
C
onstC
harP
(
this
),
len1
+
len2
)))
return
false
;
pairSet
.
sanitize
(
SANITIZE_ARG
,
CharP
(
this
),
len1
+
len2
)))
return
false
;
if
(
!
(
valueFormat1
.
has_device
()
||
valueFormat2
.
has_device
()))
return
true
;
...
...
@@ -765,7 +765,7 @@ struct EntryExitRecord
{
static
inline
unsigned
int
get_size
()
{
return
sizeof
(
EntryExitRecord
);
}
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
const
void
*
base
)
{
inline
bool
sanitize
(
SANITIZE_ARG_DEF
,
void
*
base
)
{
TRACE_SANITIZE
();
return
SANITIZE_BASE2
(
entryAnchor
,
exitAnchor
,
base
);
}
...
...
@@ -1050,7 +1050,7 @@ struct MarkBasePosFormat1
inline
bool
sanitize
(
SANITIZE_ARG_DEF
)
{
TRACE_SANITIZE
();
return
SANITIZE_SELF
()
&&
SANITIZE_THIS2
(
markCoverage
,
baseCoverage
)
&&
SANITIZE_THIS
(
markArray
)
&&
baseArray
.
sanitize
(
SANITIZE_ARG
,
C
onstC
harP
(
this
),
classCount
);
SANITIZE_THIS
(
markArray
)
&&
baseArray
.
sanitize
(
SANITIZE_ARG
,
CharP
(
this
),
classCount
);
}
private:
...
...
@@ -1171,7 +1171,7 @@ struct MarkLigPosFormat1
TRACE_SANITIZE
();
return
SANITIZE_SELF
()
&&
SANITIZE_THIS2
(
markCoverage
,
ligatureCoverage
)
&&
SANITIZE_THIS
(
markArray
)
&&
ligatureArray
.
sanitize
(
SANITIZE_ARG
,
C
onstC
harP
(
this
),
classCount
);
SANITIZE_THIS
(
markArray
)
&&
ligatureArray
.
sanitize
(
SANITIZE_ARG
,
CharP
(
this
),
classCount
);
}
private:
...
...
@@ -1270,7 +1270,7 @@ struct MarkMarkPosFormat1
inline
bool
sanitize
(
SANITIZE_ARG_DEF
)
{
TRACE_SANITIZE
();
return
SANITIZE_SELF
()
&&
SANITIZE_THIS2
(
mark1Coverage
,
mark2Coverage
)
&&
SANITIZE_THIS
(
mark1Array
)
&&
mark2Array
.
sanitize
(
SANITIZE_ARG
,
C
onstC
harP
(
this
),
classCount
);
SANITIZE_THIS
(
mark1Array
)
&&
mark2Array
.
sanitize
(
SANITIZE_ARG
,
CharP
(
this
),
classCount
);
}
private:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录