summaryrefslogtreecommitdiff
path: root/gobject/gclosure.c
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2011-06-20 11:15:27 -0400
committerColin Walters <walters@verbum.org>2011-06-20 14:03:05 -0400
commit5e64717a5ffb61c51ca936d51d0d38e5abc08c3a (patch)
tree80e5c31d93d8ab239603f589effe2e707ab525ca /gobject/gclosure.c
parentd54c65448cf7426d132f11c645a1cd9eec034c03 (diff)
downloadglib-5e64717a5ffb61c51ca936d51d0d38e5abc08c3a.tar.gz
gclosure: Add G_TYPE_ENUM and G_TYPE_PARAM for g_cclosure_marshal_generic()
These are fundamental types missed in the original commit.
Diffstat (limited to 'gobject/gclosure.c')
-rw-r--r--gobject/gclosure.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gobject/gclosure.c b/gobject/gclosure.c
index 25002a099..9cce0b857 100644
--- a/gobject/gclosure.c
+++ b/gobject/gclosure.c
@@ -954,6 +954,7 @@ value_to_ffi_type (const GValue *gvalue, gpointer *value)
case G_TYPE_BOOLEAN:
case G_TYPE_CHAR:
case G_TYPE_INT:
+ case G_TYPE_ENUM:
rettype = &ffi_type_sint;
*value = (gpointer)&(gvalue->data[0].v_int);
break;
@@ -966,6 +967,7 @@ value_to_ffi_type (const GValue *gvalue, gpointer *value)
case G_TYPE_STRING:
case G_TYPE_OBJECT:
case G_TYPE_BOXED:
+ case G_TYPE_PARAM:
case G_TYPE_POINTER:
case G_TYPE_INTERFACE:
case G_TYPE_VARIANT:
@@ -1052,9 +1054,15 @@ value_from_ffi_type (GValue *gvalue, gpointer *value)
case G_TYPE_BOXED:
g_value_set_boxed (gvalue, *(gpointer*)value);
break;
+ case G_TYPE_ENUM:
+ g_value_set_enum (gvalue, *(gint*)value);
+ break;
case G_TYPE_FLAGS:
g_value_set_flags (gvalue, *(guint*)value);
break;
+ case G_TYPE_PARAM:
+ g_value_set_param (gvalue, *(gpointer*)value);
+ break;
case G_TYPE_OBJECT:
g_value_set_object (gvalue, *(gpointer*)value);
break;