1
0
forked from GitHub/gf-core

GuVariant is now plain uintptr_t instead of a structure to make it easier to write Haskell bindings

This commit is contained in:
kr.angelov
2014-02-09 19:07:15 +00:00
parent 1d69feac38
commit f30c60c3d7
3 changed files with 15 additions and 22 deletions

View File

@@ -33,7 +33,7 @@
* @{
*/
typedef struct GuVariant GuVariant;
typedef uintptr_t GuVariant;
void* gu_alloc_variant(uint8_t tag,
@@ -84,32 +84,25 @@ struct GuVariantInfo {
GuVariantInfo gu_variant_open(GuVariant variant);
GuVariant gu_variant_close(GuVariantInfo info);
/** @privatesection */
struct GuVariant {
uintptr_t p;
/**< @private */
};
/** @} */
static inline void*
gu_variant_to_ptr(GuVariant variant)
{
return (void*)variant.p;
return (void*) variant;
}
static inline GuVariant
gu_variant_from_ptr(const void* p)
{
GuVariant v = { (uintptr_t)p };
return v;
return (uintptr_t) p;
}
extern const GuVariant gu_null_variant;
static inline bool
gu_variant_is_null(GuVariant v) {
return ((void*)v.p == NULL);
return ((void*)v == NULL);
}