=== Released 2.2.0 ===
[platform/upstream/glib.git] / gobject / gvaluecollector.h
index 55b613d..e937996 100644 (file)
 #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
@@ -36,6 +34,7 @@ enum  /*< skip >*/
 {
   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'
 };
@@ -47,6 +46,7 @@ union _GTypeCValue
 {
   gint     v_int;
   glong    v_long;
+  gint64   v_int64;
   gdouble  v_double;
   gpointer v_pointer;
 };
@@ -88,6 +88,9 @@ G_STMT_START {                                                                                \
        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;                                                                        \
@@ -110,7 +113,7 @@ G_STMT_START {                                                                              \
  */
 #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);                    \
@@ -130,6 +133,9 @@ G_STMT_START {                                                                              \
        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;                                                                        \
@@ -149,10 +155,6 @@ G_STMT_START {                                                                             \
 
 #define        G_VALUE_COLLECT_FORMAT_MAX_LENGTH       (8)
 
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_END_DECLS
 
 #endif /* __G_VALUE_COLLECTOR_H__ */