#ifndef __G_VALUE_COLLECTOR_H__
#define __G_VALUE_COLLECTOR_H__
+#include <glib-object.h>
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
+G_BEGIN_DECLS
/* we may want to add aggregate types here some day, if requested
* by users. the basic C types are covered already, everything
{
G_VALUE_COLLECT_INT = 'i',
G_VALUE_COLLECT_LONG = 'l',
+ G_VALUE_COLLECT_INT64 = 'q',
G_VALUE_COLLECT_DOUBLE = 'd',
G_VALUE_COLLECT_POINTER = 'p'
};
{
gint v_int;
glong v_long;
+ gint64 v_int64;
gdouble v_double;
gpointer v_pointer;
};
case G_VALUE_COLLECT_LONG: \
_cvalue->v_long = va_arg ((var_args), glong); \
break; \
+ case G_VALUE_COLLECT_INT64: \
+ _cvalue->v_int64 = va_arg ((var_args), gint64); \
+ break; \
case G_VALUE_COLLECT_DOUBLE: \
_cvalue->v_double = va_arg ((var_args), gdouble); \
break; \
*/
#define G_VALUE_LCOPY(value, var_args, flags, __error) \
G_STMT_START { \
- GValue *_value = (value); \
+ const GValue *_value = (value); \
guint _flags = (flags); \
GType _value_type = G_VALUE_TYPE (_value); \
GTypeValueTable *_vtable = g_type_value_table_peek (_value_type); \
case G_VALUE_COLLECT_LONG: \
_cvalue->v_long = va_arg ((var_args), glong); \
break; \
+ case G_VALUE_COLLECT_INT64: \
+ _cvalue->v_int64 = va_arg ((var_args), gint64); \
+ break; \
case G_VALUE_COLLECT_DOUBLE: \
_cvalue->v_double = va_arg ((var_args), gdouble); \
break; \
#define G_VALUE_COLLECT_FORMAT_MAX_LENGTH (8)
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_END_DECLS
#endif /* __G_VALUE_COLLECTOR_H__ */