[libpeas] Fix inout arguments in the Seed loader



commit 2101343d2c8f49a3f809dbbca5867a24c4280ecd
Author: Garrett Regier <alias301 gmail com>
Date:   Sun Jun 12 02:13:00 2011 -0700

    Fix inout arguments in the Seed loader

 loaders/seed/peas-extension-seed.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)
---
diff --git a/loaders/seed/peas-extension-seed.c b/loaders/seed/peas-extension-seed.c
index 2c8b604..147c4cd 100644
--- a/loaders/seed/peas-extension-seed.c
+++ b/loaders/seed/peas-extension-seed.c
@@ -214,7 +214,7 @@ peas_extension_seed_call (PeasExtension *exten,
       direction = g_arg_info_get_direction (&arg_info);
       g_arg_info_load_type (&arg_info, &out_args[n_out_args].type_info);
 
-      if (direction == GI_DIRECTION_IN || direction == GI_DIRECTION_INOUT)
+      if (direction == GI_DIRECTION_IN)
         {
           js_in_args[n_in_args++] = seed_value_from_gi_argument (sexten->js_context,
                                                                  &args[i],
@@ -222,6 +222,18 @@ peas_extension_seed_call (PeasExtension *exten,
                                                                  &exc);
         }
 
+      if (direction == GI_DIRECTION_INOUT)
+        {
+          GIArgument arg;
+
+          peas_gi_pointer_to_argument (&out_args[n_out_args].type_info,
+                                       args[i].v_pointer, &arg);
+          js_in_args[n_in_args++] = seed_value_from_gi_argument (sexten->js_context,
+                                                                 &arg,
+                                                                 &out_args[n_out_args].type_info,
+                                                                 &exc);
+        }
+
       if (direction == GI_DIRECTION_OUT || direction == GI_DIRECTION_INOUT)
         out_args[n_out_args++].ptr = args[i].v_pointer;
     }



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