From 77f32d9110bfeb6dad8457f565b4c70b5998fef6 Mon Sep 17 00:00:00 2001
From: Alberto Mardegan <mardy@users.sourceforge.net>
Date: Thu, 15 Dec 2011 16:12:01 +0200
Subject: [PATCH 1/2] Support GHashTable and GError as callback/closure
 arguments

Marshalling of these types from C is already implemented, let's take it
into use for calbacks and closures too.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666270
Bug-Ubuntu: https://launchpad.net/bugs/904783

Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
---
 gi/pygi-closure.c        |    2 ++
 tests/test_everything.py |   35 +++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/gi/pygi-closure.c b/gi/pygi-closure.c
index 7cd0436..6fc08fb 100644
--- a/gi/pygi-closure.c
+++ b/gi/pygi-closure.c
@@ -163,6 +163,8 @@ _pygi_closure_convert_ffi_arguments (GICallableInfo *callable_info, void **args)
 
                     g_base_info_unref (interface);
                 }
+                case GI_TYPE_TAG_ERROR:
+                case GI_TYPE_TAG_GHASH:
                 case GI_TYPE_TAG_GLIST:
                 case GI_TYPE_TAG_GSLIST:
                     g_args[i].v_pointer = * (gpointer *) args[i];
