for GObject type the ffi->gvalue conversion was not handled. The
GFlags type was completely missing.
#include "gclosure.h"
#include "gboxed.h"
+#include "genums.h"
#include "gvalue.h"
#include "gvaluetypes.h"
break;
case G_TYPE_UCHAR:
case G_TYPE_UINT:
+ case G_TYPE_FLAGS:
rettype = &ffi_type_uint;
*value = (gpointer)&(gvalue->data[0].v_uint);
break;
case G_TYPE_BOXED:
g_value_set_boxed (gvalue, *(gpointer*)value);
break;
+ case G_TYPE_FLAGS:
+ g_value_set_flags (gvalue, *(guint*)value);
+ break;
+ case G_TYPE_OBJECT:
+ g_value_set_object (gvalue, *(gpointer*)value);
+ break;
default:
g_warning ("value_from_ffi_type: Unsupported fundamental type: %s",
g_type_name (g_type_fundamental (G_VALUE_TYPE (gvalue))));