From f19d2461234417f5ae10533f12fb05e9f003dbaa Mon Sep 17 00:00:00 2001 From: Jonathan Matthew Date: Sun, 6 Feb 2011 14:48:58 +1000 Subject: Account for arg direction in g_callable_info_get_ffi_arg_types https://bugzilla.gnome.org/show_bug.cgi?id=641647 --- girepository/girffi.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/girepository/girffi.c b/girepository/girffi.c index d2afca0a..b7c1ceae 100644 --- a/girepository/girffi.c +++ b/girepository/girffi.c @@ -130,7 +130,18 @@ g_callable_info_get_ffi_arg_types (GICallableInfo *callable_info) { GIArgInfo *arg_info = g_callable_info_get_arg (callable_info, i); GITypeInfo *arg_type = g_arg_info_get_type (arg_info); - arg_types[i] = g_type_info_get_ffi_type (arg_type); + switch (g_arg_info_get_direction (arg_info)) + { + case GI_DIRECTION_IN: + arg_types[i] = g_type_info_get_ffi_type (arg_type); + break; + case GI_DIRECTION_OUT: + case GI_DIRECTION_INOUT: + arg_types[i] = &ffi_type_pointer; + break; + default: + g_assert_not_reached (); + } g_base_info_unref ((GIBaseInfo *)arg_info); g_base_info_unref ((GIBaseInfo *)arg_type); } -- cgit v1.2.1