Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
d5476a30
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看板
提交
d5476a30
编写于
9月 16, 2011
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Minor
上级
55aeb049
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
11 deletion
+15
-11
src/hb-object-private.hh
src/hb-object-private.hh
+15
-11
未找到文件。
src/hb-object-private.hh
浏览文件 @
d5476a30
...
...
@@ -54,9 +54,13 @@
#include <glib.h>
typedef
volatile
int
hb_atomic_int_t
;
#define hb_atomic_int_fetch_and_add(AI, V) g_atomic_int_exchange_and_add (&(AI), V)
#define hb_atomic_int_get(AI) g_atomic_int_get (&(AI))
#define hb_atomic_int_set(AI, V) g_atomic_int_set (&(AI), V)
#if GLIB_CHECK_VERSION(2,29,5)
#define hb_atomic_int_add(AI, V) g_atomic_int_add (&(AI), V)
#else
#define hb_atomic_int_add(AI, V) g_atomic_int_exchange_and_add (&(AI), V)
#endif
#define hb_atomic_int_get(AI) g_atomic_int_get (&(AI))
#define hb_atomic_int_set(AI, V) g_atomic_int_set (&(AI), V)
#elif defined(_MSC_VER)
...
...
@@ -64,9 +68,9 @@ typedef volatile int hb_atomic_int_t;
#include <intrin.h>
typedef
long
hb_atomic_int_t
;
#define hb_atomic_int_
fetch_and_
add(AI, V) _InterlockedExchangeAdd (&(AI), V)
#define hb_atomic_int_get(AI)
(_ReadBarrier (), (AI))
#define hb_atomic_int_set(AI, V)
((void) _InterlockedExchange (&(AI), (V)))
#define hb_atomic_int_add(AI, V) _InterlockedExchangeAdd (&(AI), V)
#define hb_atomic_int_get(AI) (_ReadBarrier (), (AI))
#define hb_atomic_int_set(AI, V) ((void) _InterlockedExchange (&(AI), (V)))
#else
...
...
@@ -74,9 +78,9 @@ typedef long hb_atomic_int_t;
#warning "Could not find any system to define atomic_int macros, library will NOT be thread-safe"
typedef
volatile
int
hb_atomic_int_t
;
#define hb_atomic_int_
fetch_and_
add(AI, V) ((AI) += (V), (AI) - (V))
#define hb_atomic_int_get(AI)
(AI)
#define hb_atomic_int_set(AI, V)
((void) ((AI) = (V)))
#define hb_atomic_int_add(AI, V) ((AI) += (V), (AI) - (V))
#define hb_atomic_int_get(AI) (AI)
#define hb_atomic_int_set(AI, V) ((void) ((AI) = (V)))
#endif
...
...
@@ -93,8 +97,8 @@ typedef struct {
#define HB_REFERENCE_COUNT_INVALID {HB_REFERENCE_COUNT_INVALID_VALUE}
inline
void
init
(
int
v
)
{
ref_count
=
v
;
/* non-atomic is fine */
}
inline
int
inc
(
void
)
{
return
hb_atomic_int_
fetch_and_
add
(
ref_count
,
1
);
}
inline
int
dec
(
void
)
{
return
hb_atomic_int_
fetch_and_
add
(
ref_count
,
-
1
);
}
inline
int
inc
(
void
)
{
return
hb_atomic_int_add
(
ref_count
,
1
);
}
inline
int
dec
(
void
)
{
return
hb_atomic_int_add
(
ref_count
,
-
1
);
}
inline
void
set
(
int
v
)
{
hb_atomic_int_set
(
ref_count
,
v
);
}
inline
int
get
(
void
)
const
{
return
hb_atomic_int_get
(
ref_count
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录