[gobject-introspection] Account for arg direction in g_callable_info_get_ffi_arg_types



commit f19d2461234417f5ae10533f12fb05e9f003dbaa
Author: Jonathan Matthew <jonathan d14n org>
Date:   Sun Feb 6 14:48:58 2011 +1000

    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 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/girepository/girffi.c b/girepository/girffi.c
index d2afca0..b7c1cea 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);
       }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]