Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
c7d457aa
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,发现更多精彩内容 >>
提交
c7d457aa
编写于
5月 21, 2009
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[HB] Ouch. Add files.
上级
fe550f4d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
78 addition
and
9 deletion
+78
-9
src/hb-common.h
src/hb-common.h
+6
-7
src/hb-private.h
src/hb-private.h
+72
-2
未找到文件。
src/hb-common.h
浏览文件 @
c7d457aa
...
...
@@ -30,11 +30,11 @@
#include <stdint.h>
# ifdef __cplusplus
# define HB_BEGIN_DECLS() extern "C" { extern int
hb_dummy_prototype
(int)
# define HB_END_DECLS() } extern "C" int
hb_dummy_prototype
(int)
# define HB_BEGIN_DECLS() extern "C" { extern int
_hb_dummy_prototype1
(int)
# define HB_END_DECLS() } extern "C" int
_hb_dummy_prototype2
(int)
# else
/* !__cplusplus */
# define HB_BEGIN_DECLS() extern int
hb_dummy_prototype
(int)
# define HB_END_DECLS() extern int
hb_dummy_prototype
(int)
# define HB_BEGIN_DECLS() extern int
_hb_dummy_prototype1
(int)
# define HB_END_DECLS() extern int
_hb_dummy_prototype2
(int)
# endif
/* !__cplusplus */
typedef
int
hb_bool_t
;
...
...
@@ -47,8 +47,7 @@ typedef uint32_t hb_tag_t;
((const char *) s)[3]))
typedef
uint32_t
hb_codepoint_t
;
/* XXX */
typedef
struct
HB_BufferRec_
hb_buffer_t
;
typedef
int32_t
hb_position_t
;
typedef
int32_t
hb_16dot16_t
;
#endif
/* HB_COMMON_H */
src/hb-private.h
浏览文件 @
c7d457aa
...
...
@@ -27,6 +27,8 @@
#ifndef HB_PRIVATE_H
#define HB_PRIVATE_H
#include <hb-common.h>
#include <glib.h>
/* Macros to convert to/from BigEndian */
...
...
@@ -39,12 +41,36 @@
#define hb_be_uint64_t GUINT64_TO_BE
#define hb_be_int64_t GINT64_TO_BE
#define HB_LIKELY G_LIKE
Y
LY
#define HB_LIKELY G_LIKELY
#define HB_UNLIKELY G_UNLIKELY
#define HB_UNUSED(arg) ((arg) = (arg))
#define HB_GNUC_UNUSED G_GNUC_UNUSED
#include <stdlib.h>
#include <stdio.h>
/* XXX */
/* Basics */
#undef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#ifndef HB_INTERNAL
# define HB_INTERNAL
#endif
#ifndef NULL
# define NULL ((void *)0)
#endif
#ifndef FALSE
# define FALSE 0
#endif
#ifndef TRUE
# define TRUE 1
#endif
#include <assert.h>
#define _ASSERT_STATIC1(_line, _cond) typedef int _static_assert_on_line_##_line##_failed[(_cond)?1:-1]
#define _ASSERT_STATIC0(_line, _cond) _ASSERT_STATIC1 (_line, (_cond))
...
...
@@ -52,11 +78,55 @@
#define ASSERT_SIZE(_type, _size) ASSERT_STATIC (sizeof (_type) == (_size))
/* Return the number of 1 bits in mask.
*
* GCC 3.4 supports a "population count" builtin, which on many targets is
* implemented with a single instruction. There is a fallback definition
* in libgcc in case a target does not have one, which should be just as
* good as the open-coded solution below, (which is "HACKMEM 169").
*/
static
inline
unsigned
int
_hb_popcount32
(
uint32_t
mask
)
{
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
return
__builtin_popcount
(
mask
);
#else
register
int
y
;
y
=
(
mask
>>
1
)
&
033333333333
;
y
=
mask
-
y
-
((
y
>>
1
)
&
033333333333
);
return
(((
y
+
(
y
>>
3
))
&
030707070707
)
%
077
);
#endif
}
/*
* buffer
*/
/* XXX */
#define HB_BUFFER_GLYPH_PROPERTIES_UNKNOWN 0xFFFF
#define HB_OT_GPOS_NO_LAST ((unsigned int) -1)
/* XXX */
typedef
enum
{
/* no error */
HB_Err_Ok
=
0x0000
,
HB_Err_Not_Covered
=
0xFFFF
,
/* _hb_err() is called whenever returning the following errors,
* and in a couple places for HB_Err_Not_Covered too. */
/* programmer error */
HB_Err_Invalid_Argument
=
0x1A66
,
/* font error */
HB_Err_Invalid_SubTable_Format
=
0x157F
,
HB_Err_Invalid_SubTable
=
0x1570
,
HB_Err_Read_Error
=
0x6EAD
,
/* system error */
HB_Err_Out_Of_Memory
=
0xDEAD
}
HB_Error
;
#endif
/* HB_PRIVATE_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录