提交 9e52f33d authored 作者: Travis Cross's avatar Travis Cross

Implement MEMLOCK and UNLOCK as functions

Converting these macros to functions declared static inline allow the
C type-checker to work and avoid warnings about unused expression
values.  These warnings break the build with clang.
上级 c01a1426
......@@ -209,9 +209,14 @@ void (*_su_home_destroy_mutexes)(void *mutex);
su_inline void safefree(void *b) { b ? free(b) : (void)0; }
#endif
#define MEMLOCK(h) \
((void)((h) && (h)->suh_lock ? _su_home_locker((h)->suh_lock) : 0), (h)->suh_blocks)
#define UNLOCK(h) ((void)((h) && (h)->suh_lock ? _su_home_unlocker((h)->suh_lock) : 0), NULL)
static inline su_block_t* MEMLOCK(const su_home_t *h) {
if (h && h->suh_lock) _su_home_locker(h->suh_lock);
return h->suh_blocks;
}
static inline void* UNLOCK(const su_home_t *h) {
if (h && h->suh_lock) _su_home_unlocker(h->suh_lock);
return NULL;
}
#ifdef NDEBUG
#define MEMCHECK 0
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论