/* valagdbusclientmodule.c generated by valac, the Vala compiler
 * generated from valagdbusclientmodule.vala, do not modify */

/* valagdbusclientmodule.vala
 *
 * Copyright (C) 2010-2011  Jürg Billeter
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 * Author:
 * 	Jürg Billeter <j@bitron.ch>
 * 	Philip Van Hoof <pvanhoof@gnome.org>
 */

#include "valacodegen.h"
#include <vala.h>
#include <valaccode.h>
#include <glib-object.h>
#include <glib.h>
#include <valagee.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>

typedef enum  {
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC,
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC,
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH,
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY
} ValaGDBusClientModuleCallType;

#define VALA_GD_BUS_CLIENT_MODULE_TYPE_CALL_TYPE (vala_gd_bus_client_module_call_type_get_type ())
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _vala_map_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_unref (var), NULL)))
#define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
#define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))

static gpointer vala_gd_bus_client_module_parent_class = NULL;

static GType vala_gd_bus_client_module_call_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static void vala_gd_bus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base,
                                                                     ValaDynamicMethod* method);
static void vala_gd_bus_client_module_generate_marshalling (ValaGDBusClientModule* self,
                                                     ValaMethod* m,
                                                     ValaGDBusClientModuleCallType call_type,
                                                     const gchar* iface_name,
                                                     const gchar* method_name,
                                                     gint method_timeout);
static void vala_gd_bus_client_module_generate_proxy_interface_init (ValaGDBusClientModule* self,
                                                              ValaInterface* main_iface,
                                                              ValaInterface* iface);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_method (ValaGDBusClientModule* self,
                                                             ValaInterface* main_iface,
                                                             ValaInterface* iface,
                                                             ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_async_dbus_proxy_method (ValaGDBusClientModule* self,
                                                                   ValaInterface* main_iface,
                                                                   ValaInterface* iface,
                                                                   ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_finish_dbus_proxy_method (ValaGDBusClientModule* self,
                                                                    ValaInterface* main_iface,
                                                                    ValaInterface* iface,
                                                                    ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_get (ValaGDBusClientModule* self,
                                                                   ValaInterface* main_iface,
                                                                   ValaInterface* iface,
                                                                   ValaProperty* prop);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_set (ValaGDBusClientModule* self,
                                                                   ValaInterface* main_iface,
                                                                   ValaInterface* iface,
                                                                   ValaProperty* prop);
static gchar* vala_gd_bus_client_module_implement_interface (ValaGDBusClientModule* self,
                                                      ValaCCodeFunctionCall* define_type,
                                                      ValaInterface* main_iface,
                                                      ValaInterface* iface);
static void vala_gd_bus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base,
                                                                    ValaInterface* iface,
                                                                    ValaCCodeFile* decl_space);
static void vala_gd_bus_client_module_real_visit_interface (ValaCodeVisitor* base,
                                                     ValaInterface* iface);
static void vala_gd_bus_client_module_generate_signal_handler_function (ValaGDBusClientModule* self,
                                                                 ValaObjectTypeSymbol* sym);
static void vala_gd_bus_client_module_real_visit_method_call (ValaCodeVisitor* base,
                                                       ValaMethodCall* expr);
static gchar* vala_gd_bus_client_module_generate_dbus_signal_handler (ValaGDBusClientModule* self,
                                                               ValaSignal* sig,
                                                               ValaObjectTypeSymbol* sym);
static void vala_gd_bus_client_module_real_register_dbus_info (ValaCCodeBaseModule* base,
                                                        ValaCCodeBlock* block,
                                                        ValaObjectTypeSymbol* sym);

static GType
vala_gd_bus_client_module_call_type_get_type (void)
{
	static volatile gsize vala_gd_bus_client_module_call_type_type_id__volatile = 0;
	if (g_once_init_enter (&vala_gd_bus_client_module_call_type_type_id__volatile)) {
		static const GEnumValue values[] = {{VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC", "sync"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC", "async"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH", "finish"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY", "no-reply"}, {0, NULL, NULL}};
		GType vala_gd_bus_client_module_call_type_type_id;
		vala_gd_bus_client_module_call_type_type_id = g_enum_register_static ("ValaGDBusClientModuleCallType", values);
		g_once_init_leave (&vala_gd_bus_client_module_call_type_type_id__volatile, vala_gd_bus_client_module_call_type_type_id);
	}
	return vala_gd_bus_client_module_call_type_type_id__volatile;
}

static gpointer
_vala_code_node_ref0 (gpointer self)
{
	return self ? vala_code_node_ref (self) : NULL;
}

ValaCCodeConstant*
vala_gd_bus_client_module_get_dbus_timeout (ValaGDBusClientModule* self,
                                            ValaSymbol* symbol)
{
	gint timeout = 0;
	ValaAttribute* dbus = NULL;
	ValaAttribute* _tmp0_;
	ValaAttribute* _tmp1_;
	gboolean _tmp2_ = FALSE;
	ValaAttribute* _tmp3_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	ValaCCodeConstant* _tmp13_;
	ValaCCodeConstant* _tmp14_;
	ValaCCodeConstant* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (symbol != NULL, NULL);
	timeout = -1;
	_tmp0_ = vala_code_node_get_attribute ((ValaCodeNode*) symbol, "DBus");
	_tmp1_ = _vala_code_node_ref0 (_tmp0_);
	dbus = _tmp1_;
	_tmp3_ = dbus;
	if (_tmp3_ != NULL) {
		ValaAttribute* _tmp4_;
		_tmp4_ = dbus;
		_tmp2_ = vala_attribute_has_argument (_tmp4_, "timeout");
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		ValaAttribute* _tmp5_;
		_tmp5_ = dbus;
		timeout = vala_attribute_get_integer (_tmp5_, "timeout", 0);
	} else {
		ValaSymbol* _tmp6_;
		ValaSymbol* _tmp7_;
		_tmp6_ = vala_symbol_get_parent_symbol (symbol);
		_tmp7_ = _tmp6_;
		if (_tmp7_ != NULL) {
			ValaSymbol* _tmp8_;
			ValaSymbol* _tmp9_;
			ValaCCodeConstant* _tmp10_;
			_tmp8_ = vala_symbol_get_parent_symbol (symbol);
			_tmp9_ = _tmp8_;
			_tmp10_ = vala_gd_bus_client_module_get_dbus_timeout (self, _tmp9_);
			result = _tmp10_;
			_vala_code_node_unref0 (dbus);
			return result;
		}
	}
	_tmp11_ = g_strdup_printf ("%i", timeout);
	_tmp12_ = _tmp11_;
	_tmp13_ = vala_ccode_constant_new (_tmp12_);
	_tmp14_ = _tmp13_;
	_g_free0 (_tmp12_);
	result = _tmp14_;
	_vala_code_node_unref0 (dbus);
	return result;
}

static void
vala_gd_bus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base,
                                                                ValaDynamicMethod* method)
{
	ValaGDBusClientModule * self;
	ValaCCodeFunction* func = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	ValaCCodeFunction* _tmp2_;
	ValaCCodeFunction* _tmp3_;
	ValaCCodeFunction* _tmp4_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp5_;
	GEqualFunc _tmp6_;
	GEqualFunc _tmp7_;
	ValaHashMap* _tmp8_;
	ValaCCodeFile* _tmp9_;
	ValaHashMap* _tmp10_;
	ValaCCodeFunction* _tmp11_;
	ValaCCodeFunction* _tmp12_;
	ValaDataType* _tmp13_;
	ValaDataType* _tmp14_;
	ValaTypeSymbol* _tmp15_;
	ValaTypeSymbol* _tmp16_;
	ValaTypeSymbol* _tmp17_;
	ValaCCodeFile* _tmp28_;
	ValaCCodeFunction* _tmp29_;
	ValaCCodeFile* _tmp30_;
	ValaCCodeFunction* _tmp31_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (method != NULL);
	_tmp0_ = vala_get_ccode_name ((ValaCodeNode*) method);
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_ccode_function_new (_tmp1_, "void");
	_tmp3_ = _tmp2_;
	_g_free0 (_tmp1_);
	func = _tmp3_;
	_tmp4_ = func;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp4_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp5_ = g_direct_hash;
	_tmp6_ = g_direct_equal;
	_tmp7_ = g_direct_equal;
	_tmp8_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp5_, _tmp6_, _tmp7_);
	cparam_map = _tmp8_;
	_tmp9_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp10_ = cparam_map;
	_tmp11_ = func;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, (ValaMethod*) method, _tmp9_, (ValaMap*) _tmp10_, _tmp11_, NULL, NULL, NULL, 3);
	_tmp12_ = func;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp12_);
	_tmp13_ = vala_dynamic_method_get_dynamic_type (method);
	_tmp14_ = _tmp13_;
	_tmp15_ = vala_data_type_get_data_type (_tmp14_);
	_tmp16_ = _tmp15_;
	_tmp17_ = ((ValaCCodeBaseModule*) self)->dbus_proxy_type;
	if (_tmp16_ == _tmp17_) {
		const gchar* _tmp18_;
		const gchar* _tmp19_;
		_tmp18_ = vala_symbol_get_name ((ValaSymbol*) method);
		_tmp19_ = _tmp18_;
		vala_gd_bus_client_module_generate_marshalling (self, (ValaMethod*) method, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC, NULL, _tmp19_, -1);
	} else {
		ValaSourceReference* _tmp20_;
		ValaSourceReference* _tmp21_;
		ValaDataType* _tmp22_;
		ValaDataType* _tmp23_;
		gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		gchar* _tmp27_;
		_tmp20_ = vala_code_node_get_source_reference ((ValaCodeNode*) method);
		_tmp21_ = _tmp20_;
		_tmp22_ = vala_dynamic_method_get_dynamic_type (method);
		_tmp23_ = _tmp22_;
		_tmp24_ = vala_code_node_to_string ((ValaCodeNode*) _tmp23_);
		_tmp25_ = _tmp24_;
		_tmp26_ = g_strdup_printf ("dynamic methods are not supported for `%s'", _tmp25_);
		_tmp27_ = _tmp26_;
		vala_report_error (_tmp21_, _tmp27_);
		_g_free0 (_tmp27_);
		_g_free0 (_tmp25_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp28_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp29_ = func;
	vala_ccode_file_add_function_declaration (_tmp28_, _tmp29_);
	_tmp30_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp31_ = func;
	vala_ccode_file_add_function (_tmp30_, _tmp31_);
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (func);
}

static void
vala_gd_bus_client_module_generate_proxy_interface_init (ValaGDBusClientModule* self,
                                                         ValaInterface* main_iface,
                                                         ValaInterface* iface)
{
	gchar* lower_cname = NULL;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	ValaCCodeFunction* proxy_iface_init = NULL;
	const gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	ValaCCodeFunction* _tmp25_;
	ValaCCodeFunction* _tmp26_;
	ValaCCodeFunction* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	ValaCCodeParameter* _tmp32_;
	ValaCCodeParameter* _tmp33_;
	ValaCCodeFunction* _tmp34_;
	ValaCCodeFunction* _tmp133_;
	ValaCCodeFile* _tmp134_;
	ValaCCodeFunction* _tmp135_;
	ValaCCodeFile* _tmp136_;
	ValaCCodeFunction* _tmp137_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (main_iface != NULL);
	g_return_if_fail (iface != NULL);
	{
		ValaList* _prereq_list = NULL;
		ValaList* _tmp0_;
		gint _prereq_size = 0;
		ValaList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
		gint _prereq_index = 0;
		_tmp0_ = vala_interface_get_prerequisites (iface);
		_prereq_list = _tmp0_;
		_tmp1_ = _prereq_list;
		_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
		_tmp3_ = _tmp2_;
		_prereq_size = _tmp3_;
		_prereq_index = -1;
		while (TRUE) {
			ValaDataType* prereq = NULL;
			ValaList* _tmp4_;
			gpointer _tmp5_;
			ValaDataType* _tmp6_;
			ValaTypeSymbol* _tmp7_;
			ValaTypeSymbol* _tmp8_;
			_prereq_index = _prereq_index + 1;
			if (!(_prereq_index < _prereq_size)) {
				break;
			}
			_tmp4_ = _prereq_list;
			_tmp5_ = vala_list_get (_tmp4_, _prereq_index);
			prereq = (ValaDataType*) _tmp5_;
			_tmp6_ = prereq;
			_tmp7_ = vala_data_type_get_data_type (_tmp6_);
			_tmp8_ = _tmp7_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, VALA_TYPE_INTERFACE)) {
				ValaDataType* _tmp9_;
				ValaTypeSymbol* _tmp10_;
				ValaTypeSymbol* _tmp11_;
				_tmp9_ = prereq;
				_tmp10_ = vala_data_type_get_data_type (_tmp9_);
				_tmp11_ = _tmp10_;
				vala_gd_bus_client_module_generate_proxy_interface_init (self, main_iface, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, VALA_TYPE_INTERFACE, ValaInterface));
			}
			_vala_code_node_unref0 (prereq);
		}
		_vala_iterable_unref0 (_prereq_list);
	}
	_tmp12_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) main_iface);
	_tmp13_ = _tmp12_;
	_tmp14_ = g_strconcat (_tmp13_, "proxy", NULL);
	_tmp15_ = _tmp14_;
	_g_free0 (_tmp13_);
	lower_cname = _tmp15_;
	_tmp16_ = lower_cname;
	_tmp17_ = g_strconcat (_tmp16_, "_", NULL);
	_tmp18_ = _tmp17_;
	_tmp19_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) iface);
	_tmp20_ = _tmp19_;
	_tmp21_ = g_strconcat (_tmp18_, _tmp20_, NULL);
	_tmp22_ = _tmp21_;
	_tmp23_ = g_strconcat (_tmp22_, "interface_init", NULL);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_ccode_function_new (_tmp24_, "void");
	_tmp26_ = _tmp25_;
	_g_free0 (_tmp24_);
	_g_free0 (_tmp22_);
	_g_free0 (_tmp20_);
	_g_free0 (_tmp18_);
	proxy_iface_init = _tmp26_;
	_tmp27_ = proxy_iface_init;
	_tmp28_ = vala_get_ccode_name ((ValaCodeNode*) iface);
	_tmp29_ = _tmp28_;
	_tmp30_ = g_strconcat (_tmp29_, "Iface*", NULL);
	_tmp31_ = _tmp30_;
	_tmp32_ = vala_ccode_parameter_new ("iface", _tmp31_);
	_tmp33_ = _tmp32_;
	vala_ccode_function_add_parameter (_tmp27_, _tmp33_);
	_vala_ccode_node_unref0 (_tmp33_);
	_g_free0 (_tmp31_);
	_g_free0 (_tmp29_);
	_tmp34_ = proxy_iface_init;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp34_);
	{
		ValaList* _m_list = NULL;
		ValaList* _tmp35_;
		gint _m_size = 0;
		ValaList* _tmp36_;
		gint _tmp37_;
		gint _tmp38_;
		gint _m_index = 0;
		_tmp35_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) iface);
		_m_list = _tmp35_;
		_tmp36_ = _m_list;
		_tmp37_ = vala_collection_get_size ((ValaCollection*) _tmp36_);
		_tmp38_ = _tmp37_;
		_m_size = _tmp38_;
		_m_index = -1;
		while (TRUE) {
			ValaMethod* m = NULL;
			ValaList* _tmp39_;
			gpointer _tmp40_;
			ValaMethod* _tmp41_;
			gboolean _tmp42_;
			gboolean _tmp43_;
			ValaCCodeMemberAccess* vfunc_entry = NULL;
			ValaCCodeIdentifier* _tmp44_;
			ValaCCodeIdentifier* _tmp45_;
			ValaMethod* _tmp46_;
			gchar* _tmp47_;
			gchar* _tmp48_;
			ValaCCodeMemberAccess* _tmp49_;
			ValaCCodeMemberAccess* _tmp50_;
			ValaMethod* _tmp51_;
			gboolean _tmp52_;
			gboolean _tmp53_;
			_m_index = _m_index + 1;
			if (!(_m_index < _m_size)) {
				break;
			}
			_tmp39_ = _m_list;
			_tmp40_ = vala_list_get (_tmp39_, _m_index);
			m = (ValaMethod*) _tmp40_;
			_tmp41_ = m;
			_tmp42_ = vala_method_get_is_abstract (_tmp41_);
			_tmp43_ = _tmp42_;
			if (!_tmp43_) {
				_vala_code_node_unref0 (m);
				continue;
			}
			_tmp44_ = vala_ccode_identifier_new ("iface");
			_tmp45_ = _tmp44_;
			_tmp46_ = m;
			_tmp47_ = vala_get_ccode_vfunc_name (_tmp46_);
			_tmp48_ = _tmp47_;
			_tmp49_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp45_, _tmp48_);
			_tmp50_ = _tmp49_;
			_g_free0 (_tmp48_);
			_vala_ccode_node_unref0 (_tmp45_);
			vfunc_entry = _tmp50_;
			_tmp51_ = m;
			_tmp52_ = vala_method_get_coroutine (_tmp51_);
			_tmp53_ = _tmp52_;
			if (!_tmp53_) {
				ValaCCodeFunction* _tmp54_;
				ValaCCodeFunction* _tmp55_;
				ValaCCodeMemberAccess* _tmp56_;
				ValaMethod* _tmp57_;
				gchar* _tmp58_;
				gchar* _tmp59_;
				ValaCCodeIdentifier* _tmp60_;
				ValaCCodeIdentifier* _tmp61_;
				_tmp54_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp55_ = _tmp54_;
				_tmp56_ = vfunc_entry;
				_tmp57_ = m;
				_tmp58_ = vala_gd_bus_client_module_generate_dbus_proxy_method (self, main_iface, iface, _tmp57_);
				_tmp59_ = _tmp58_;
				_tmp60_ = vala_ccode_identifier_new (_tmp59_);
				_tmp61_ = _tmp60_;
				vala_ccode_function_add_assignment (_tmp55_, (ValaCCodeExpression*) _tmp56_, (ValaCCodeExpression*) _tmp61_);
				_vala_ccode_node_unref0 (_tmp61_);
				_g_free0 (_tmp59_);
			} else {
				ValaCCodeFunction* _tmp62_;
				ValaCCodeFunction* _tmp63_;
				ValaCCodeMemberAccess* _tmp64_;
				ValaMethod* _tmp65_;
				gchar* _tmp66_;
				gchar* _tmp67_;
				ValaCCodeIdentifier* _tmp68_;
				ValaCCodeIdentifier* _tmp69_;
				ValaCCodeIdentifier* _tmp70_;
				ValaCCodeIdentifier* _tmp71_;
				ValaMethod* _tmp72_;
				gchar* _tmp73_;
				gchar* _tmp74_;
				ValaCCodeMemberAccess* _tmp75_;
				ValaCCodeFunction* _tmp76_;
				ValaCCodeFunction* _tmp77_;
				ValaCCodeMemberAccess* _tmp78_;
				ValaMethod* _tmp79_;
				gchar* _tmp80_;
				gchar* _tmp81_;
				ValaCCodeIdentifier* _tmp82_;
				ValaCCodeIdentifier* _tmp83_;
				_tmp62_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp63_ = _tmp62_;
				_tmp64_ = vfunc_entry;
				_tmp65_ = m;
				_tmp66_ = vala_gd_bus_client_module_generate_async_dbus_proxy_method (self, main_iface, iface, _tmp65_);
				_tmp67_ = _tmp66_;
				_tmp68_ = vala_ccode_identifier_new (_tmp67_);
				_tmp69_ = _tmp68_;
				vala_ccode_function_add_assignment (_tmp63_, (ValaCCodeExpression*) _tmp64_, (ValaCCodeExpression*) _tmp69_);
				_vala_ccode_node_unref0 (_tmp69_);
				_g_free0 (_tmp67_);
				_tmp70_ = vala_ccode_identifier_new ("iface");
				_tmp71_ = _tmp70_;
				_tmp72_ = m;
				_tmp73_ = vala_get_ccode_finish_vfunc_name (_tmp72_);
				_tmp74_ = _tmp73_;
				_tmp75_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp71_, _tmp74_);
				_vala_ccode_node_unref0 (vfunc_entry);
				vfunc_entry = _tmp75_;
				_g_free0 (_tmp74_);
				_vala_ccode_node_unref0 (_tmp71_);
				_tmp76_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp77_ = _tmp76_;
				_tmp78_ = vfunc_entry;
				_tmp79_ = m;
				_tmp80_ = vala_gd_bus_client_module_generate_finish_dbus_proxy_method (self, main_iface, iface, _tmp79_);
				_tmp81_ = _tmp80_;
				_tmp82_ = vala_ccode_identifier_new (_tmp81_);
				_tmp83_ = _tmp82_;
				vala_ccode_function_add_assignment (_tmp77_, (ValaCCodeExpression*) _tmp78_, (ValaCCodeExpression*) _tmp83_);
				_vala_ccode_node_unref0 (_tmp83_);
				_g_free0 (_tmp81_);
			}
			_vala_ccode_node_unref0 (vfunc_entry);
			_vala_code_node_unref0 (m);
		}
		_vala_iterable_unref0 (_m_list);
	}
	{
		ValaList* _prop_list = NULL;
		ValaList* _tmp84_;
		gint _prop_size = 0;
		ValaList* _tmp85_;
		gint _tmp86_;
		gint _tmp87_;
		gint _prop_index = 0;
		_tmp84_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) iface);
		_prop_list = _tmp84_;
		_tmp85_ = _prop_list;
		_tmp86_ = vala_collection_get_size ((ValaCollection*) _tmp85_);
		_tmp87_ = _tmp86_;
		_prop_size = _tmp87_;
		_prop_index = -1;
		while (TRUE) {
			ValaProperty* prop = NULL;
			ValaList* _tmp88_;
			gpointer _tmp89_;
			ValaProperty* _tmp90_;
			gboolean _tmp91_;
			gboolean _tmp92_;
			ValaProperty* _tmp93_;
			ValaPropertyAccessor* _tmp94_;
			ValaPropertyAccessor* _tmp95_;
			ValaProperty* _tmp113_;
			ValaPropertyAccessor* _tmp114_;
			ValaPropertyAccessor* _tmp115_;
			_prop_index = _prop_index + 1;
			if (!(_prop_index < _prop_size)) {
				break;
			}
			_tmp88_ = _prop_list;
			_tmp89_ = vala_list_get (_tmp88_, _prop_index);
			prop = (ValaProperty*) _tmp89_;
			_tmp90_ = prop;
			_tmp91_ = vala_property_get_is_abstract (_tmp90_);
			_tmp92_ = _tmp91_;
			if (!_tmp92_) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp93_ = prop;
			_tmp94_ = vala_property_get_get_accessor (_tmp93_);
			_tmp95_ = _tmp94_;
			if (_tmp95_ != NULL) {
				ValaCCodeMemberAccess* vfunc_entry = NULL;
				ValaCCodeIdentifier* _tmp96_;
				ValaCCodeIdentifier* _tmp97_;
				ValaProperty* _tmp98_;
				const gchar* _tmp99_;
				const gchar* _tmp100_;
				gchar* _tmp101_;
				gchar* _tmp102_;
				ValaCCodeMemberAccess* _tmp103_;
				ValaCCodeMemberAccess* _tmp104_;
				ValaCCodeFunction* _tmp105_;
				ValaCCodeFunction* _tmp106_;
				ValaCCodeMemberAccess* _tmp107_;
				ValaProperty* _tmp108_;
				gchar* _tmp109_;
				gchar* _tmp110_;
				ValaCCodeIdentifier* _tmp111_;
				ValaCCodeIdentifier* _tmp112_;
				_tmp96_ = vala_ccode_identifier_new ("iface");
				_tmp97_ = _tmp96_;
				_tmp98_ = prop;
				_tmp99_ = vala_symbol_get_name ((ValaSymbol*) _tmp98_);
				_tmp100_ = _tmp99_;
				_tmp101_ = g_strconcat ("get_", _tmp100_, NULL);
				_tmp102_ = _tmp101_;
				_tmp103_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp97_, _tmp102_);
				_tmp104_ = _tmp103_;
				_g_free0 (_tmp102_);
				_vala_ccode_node_unref0 (_tmp97_);
				vfunc_entry = _tmp104_;
				_tmp105_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp106_ = _tmp105_;
				_tmp107_ = vfunc_entry;
				_tmp108_ = prop;
				_tmp109_ = vala_gd_bus_client_module_generate_dbus_proxy_property_get (self, main_iface, iface, _tmp108_);
				_tmp110_ = _tmp109_;
				_tmp111_ = vala_ccode_identifier_new (_tmp110_);
				_tmp112_ = _tmp111_;
				vala_ccode_function_add_assignment (_tmp106_, (ValaCCodeExpression*) _tmp107_, (ValaCCodeExpression*) _tmp112_);
				_vala_ccode_node_unref0 (_tmp112_);
				_g_free0 (_tmp110_);
				_vala_ccode_node_unref0 (vfunc_entry);
			}
			_tmp113_ = prop;
			_tmp114_ = vala_property_get_set_accessor (_tmp113_);
			_tmp115_ = _tmp114_;
			if (_tmp115_ != NULL) {
				ValaCCodeMemberAccess* vfunc_entry = NULL;
				ValaCCodeIdentifier* _tmp116_;
				ValaCCodeIdentifier* _tmp117_;
				ValaProperty* _tmp118_;
				const gchar* _tmp119_;
				const gchar* _tmp120_;
				gchar* _tmp121_;
				gchar* _tmp122_;
				ValaCCodeMemberAccess* _tmp123_;
				ValaCCodeMemberAccess* _tmp124_;
				ValaCCodeFunction* _tmp125_;
				ValaCCodeFunction* _tmp126_;
				ValaCCodeMemberAccess* _tmp127_;
				ValaProperty* _tmp128_;
				gchar* _tmp129_;
				gchar* _tmp130_;
				ValaCCodeIdentifier* _tmp131_;
				ValaCCodeIdentifier* _tmp132_;
				_tmp116_ = vala_ccode_identifier_new ("iface");
				_tmp117_ = _tmp116_;
				_tmp118_ = prop;
				_tmp119_ = vala_symbol_get_name ((ValaSymbol*) _tmp118_);
				_tmp120_ = _tmp119_;
				_tmp121_ = g_strconcat ("set_", _tmp120_, NULL);
				_tmp122_ = _tmp121_;
				_tmp123_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp117_, _tmp122_);
				_tmp124_ = _tmp123_;
				_g_free0 (_tmp122_);
				_vala_ccode_node_unref0 (_tmp117_);
				vfunc_entry = _tmp124_;
				_tmp125_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp126_ = _tmp125_;
				_tmp127_ = vfunc_entry;
				_tmp128_ = prop;
				_tmp129_ = vala_gd_bus_client_module_generate_dbus_proxy_property_set (self, main_iface, iface, _tmp128_);
				_tmp130_ = _tmp129_;
				_tmp131_ = vala_ccode_identifier_new (_tmp130_);
				_tmp132_ = _tmp131_;
				vala_ccode_function_add_assignment (_tmp126_, (ValaCCodeExpression*) _tmp127_, (ValaCCodeExpression*) _tmp132_);
				_vala_ccode_node_unref0 (_tmp132_);
				_g_free0 (_tmp130_);
				_vala_ccode_node_unref0 (vfunc_entry);
			}
			_vala_code_node_unref0 (prop);
		}
		_vala_iterable_unref0 (_prop_list);
	}
	_tmp133_ = proxy_iface_init;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp133_, VALA_CCODE_MODIFIERS_STATIC);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp134_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp135_ = proxy_iface_init;
	vala_ccode_file_add_function_declaration (_tmp134_, _tmp135_);
	_tmp136_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp137_ = proxy_iface_init;
	vala_ccode_file_add_function (_tmp136_, _tmp137_);
	_vala_ccode_node_unref0 (proxy_iface_init);
	_g_free0 (lower_cname);
}

static gchar*
vala_gd_bus_client_module_implement_interface (ValaGDBusClientModule* self,
                                               ValaCCodeFunctionCall* define_type,
                                               ValaInterface* main_iface,
                                               ValaInterface* iface)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* interface_macro = NULL;
	const gchar* _tmp19_;
	const gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (define_type != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	_tmp0_ = g_strdup ("");
	_result_ = _tmp0_;
	{
		ValaList* _prereq_list = NULL;
		ValaList* _tmp1_;
		gint _prereq_size = 0;
		ValaList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _prereq_index = 0;
		_tmp1_ = vala_interface_get_prerequisites (iface);
		_prereq_list = _tmp1_;
		_tmp2_ = _prereq_list;
		_tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
		_tmp4_ = _tmp3_;
		_prereq_size = _tmp4_;
		_prereq_index = -1;
		while (TRUE) {
			ValaDataType* prereq = NULL;
			ValaList* _tmp5_;
			gpointer _tmp6_;
			ValaDataType* _tmp7_;
			ValaTypeSymbol* _tmp8_;
			ValaTypeSymbol* _tmp9_;
			_prereq_index = _prereq_index + 1;
			if (!(_prereq_index < _prereq_size)) {
				break;
			}
			_tmp5_ = _prereq_list;
			_tmp6_ = vala_list_get (_tmp5_, _prereq_index);
			prereq = (ValaDataType*) _tmp6_;
			_tmp7_ = prereq;
			_tmp8_ = vala_data_type_get_data_type (_tmp7_);
			_tmp9_ = _tmp8_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, VALA_TYPE_INTERFACE)) {
				const gchar* _tmp10_;
				ValaDataType* _tmp11_;
				ValaTypeSymbol* _tmp12_;
				ValaTypeSymbol* _tmp13_;
				gchar* _tmp14_;
				gchar* _tmp15_;
				gchar* _tmp16_;
				_tmp10_ = _result_;
				_tmp11_ = prereq;
				_tmp12_ = vala_data_type_get_data_type (_tmp11_);
				_tmp13_ = _tmp12_;
				_tmp14_ = vala_gd_bus_client_module_implement_interface (self, define_type, main_iface, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, VALA_TYPE_INTERFACE, ValaInterface));
				_tmp15_ = _tmp14_;
				_tmp16_ = g_strconcat (_tmp10_, _tmp15_, NULL);
				_g_free0 (_result_);
				_result_ = _tmp16_;
				_g_free0 (_tmp15_);
			}
			_vala_code_node_unref0 (prereq);
		}
		_vala_iterable_unref0 (_prereq_list);
	}
	if (((ValaCCodeBaseModule*) self)->in_plugin) {
		gchar* _tmp17_;
		_tmp17_ = g_strdup ("G_IMPLEMENT_INTERFACE_DYNAMIC");
		_g_free0 (interface_macro);
		interface_macro = _tmp17_;
	} else {
		gchar* _tmp18_;
		_tmp18_ = g_strdup ("G_IMPLEMENT_INTERFACE");
		_g_free0 (interface_macro);
		interface_macro = _tmp18_;
	}
	_tmp19_ = _result_;
	_tmp20_ = interface_macro;
	_tmp21_ = vala_get_ccode_upper_case_name ((ValaSymbol*) iface, "TYPE_");
	_tmp22_ = _tmp21_;
	_tmp23_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) main_iface);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) iface);
	_tmp26_ = _tmp25_;
	_tmp27_ = g_strdup_printf ("%s (%s, %sproxy_%sinterface_init) ", _tmp20_, _tmp22_, _tmp24_, _tmp26_);
	_tmp28_ = _tmp27_;
	_tmp29_ = g_strconcat (_tmp19_, _tmp28_, NULL);
	_g_free0 (_result_);
	_result_ = _tmp29_;
	_g_free0 (_tmp28_);
	_g_free0 (_tmp26_);
	_g_free0 (_tmp24_);
	_g_free0 (_tmp22_);
	result = _result_;
	_g_free0 (interface_macro);
	return result;
}

static void
vala_gd_bus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base,
                                                               ValaInterface* iface,
                                                               ValaCCodeFile* decl_space)
{
	ValaGDBusClientModule * self;
	gchar* dbus_iface_name = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* get_type_name = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	ValaCCodeNewline* _tmp7_;
	ValaCCodeNewline* _tmp8_;
	gchar* macro = NULL;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	const gchar* _tmp15_;
	ValaCCodeMacroReplacement* _tmp16_;
	ValaCCodeMacroReplacement* _tmp17_;
	ValaCCodeFunction* proxy_get_type = NULL;
	const gchar* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeFunction* _tmp20_;
	ValaCCodeFunction* _tmp21_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (iface != NULL);
	g_return_if_fail (decl_space != NULL);
	VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_client_module_parent_class)->generate_interface_declaration ((ValaCCodeBaseModule*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule), iface, decl_space);
	_tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
	dbus_iface_name = _tmp0_;
	_tmp1_ = dbus_iface_name;
	if (_tmp1_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp2_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) iface);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup_printf ("%sproxy_get_type", _tmp3_);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp3_);
	get_type_name = _tmp5_;
	_tmp6_ = get_type_name;
	if (vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, decl_space, (ValaSymbol*) iface, _tmp6_)) {
		_g_free0 (get_type_name);
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp7_ = vala_ccode_newline_new ();
	_tmp8_ = _tmp7_;
	vala_ccode_file_add_type_declaration (decl_space, (ValaCCodeNode*) _tmp8_);
	_vala_ccode_node_unref0 (_tmp8_);
	_tmp9_ = get_type_name;
	_tmp10_ = g_strdup_printf ("(%s ())", _tmp9_);
	macro = _tmp10_;
	_tmp11_ = vala_get_ccode_type_id ((ValaCodeNode*) iface);
	_tmp12_ = _tmp11_;
	_tmp13_ = g_strdup_printf ("%s_PROXY", _tmp12_);
	_tmp14_ = _tmp13_;
	_tmp15_ = macro;
	_tmp16_ = vala_ccode_macro_replacement_new (_tmp14_, _tmp15_);
	_tmp17_ = _tmp16_;
	vala_ccode_file_add_type_declaration (decl_space, (ValaCCodeNode*) _tmp17_);
	_vala_ccode_node_unref0 (_tmp17_);
	_g_free0 (_tmp14_);
	_g_free0 (_tmp12_);
	_tmp18_ = get_type_name;
	_tmp19_ = vala_ccode_function_new (_tmp18_, "GType");
	proxy_get_type = _tmp19_;
	_tmp20_ = proxy_get_type;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp20_, VALA_CCODE_MODIFIERS_CONST);
	_tmp21_ = proxy_get_type;
	vala_ccode_file_add_function_declaration (decl_space, _tmp21_);
	if (((ValaCCodeBaseModule*) self)->in_plugin) {
		ValaCCodeFunction* proxy_register_type = NULL;
		gchar* _tmp22_;
		gchar* _tmp23_;
		gchar* _tmp24_;
		gchar* _tmp25_;
		ValaCCodeFunction* _tmp26_;
		ValaCCodeFunction* _tmp27_;
		ValaCCodeFunction* _tmp28_;
		ValaCCodeParameter* _tmp29_;
		ValaCCodeParameter* _tmp30_;
		ValaCCodeFunction* _tmp31_;
		_tmp22_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) iface);
		_tmp23_ = _tmp22_;
		_tmp24_ = g_strdup_printf ("%sproxy_register_dynamic_type", _tmp23_);
		_tmp25_ = _tmp24_;
		_tmp26_ = vala_ccode_function_new (_tmp25_, "void");
		_tmp27_ = _tmp26_;
		_g_free0 (_tmp25_);
		_g_free0 (_tmp23_);
		proxy_register_type = _tmp27_;
		_tmp28_ = proxy_register_type;
		_tmp29_ = vala_ccode_parameter_new ("module", "GTypeModule*");
		_tmp30_ = _tmp29_;
		vala_ccode_function_add_parameter (_tmp28_, _tmp30_);
		_vala_ccode_node_unref0 (_tmp30_);
		_tmp31_ = proxy_register_type;
		vala_ccode_file_add_function_declaration (decl_space, _tmp31_);
		_vala_ccode_node_unref0 (proxy_register_type);
	}
	_vala_ccode_node_unref0 (proxy_get_type);
	_g_free0 (macro);
	_g_free0 (get_type_name);
	_g_free0 (dbus_iface_name);
}

static void
vala_gd_bus_client_module_real_visit_interface (ValaCodeVisitor* base,
                                                ValaInterface* iface)
{
	ValaGDBusClientModule * self;
	gchar* dbus_iface_name = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	ValaCCodeFile* _tmp2_;
	gchar* cname = NULL;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* lower_cname = NULL;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	ValaCCodeFile* _tmp11_;
	const gchar* _tmp12_;
	ValaCCodeVariableDeclarator* _tmp13_;
	ValaCCodeVariableDeclarator* _tmp14_;
	ValaCCodeTypeDefinition* _tmp15_;
	ValaCCodeTypeDefinition* _tmp16_;
	ValaCCodeFile* _tmp17_;
	const gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	ValaCCodeVariableDeclarator* _tmp21_;
	ValaCCodeVariableDeclarator* _tmp22_;
	ValaCCodeTypeDefinition* _tmp23_;
	ValaCCodeTypeDefinition* _tmp24_;
	gchar* type_macro = NULL;
	ValaCCodeFunctionCall* define_type = NULL;
	const gchar* _tmp27_;
	ValaCCodeIdentifier* _tmp28_;
	ValaCCodeIdentifier* _tmp29_;
	ValaCCodeFunctionCall* _tmp30_;
	ValaCCodeFunctionCall* _tmp31_;
	ValaCCodeFunctionCall* _tmp32_;
	const gchar* _tmp33_;
	ValaCCodeIdentifier* _tmp34_;
	ValaCCodeIdentifier* _tmp35_;
	ValaCCodeFunctionCall* _tmp36_;
	const gchar* _tmp37_;
	ValaCCodeIdentifier* _tmp38_;
	ValaCCodeIdentifier* _tmp39_;
	ValaCCodeFunctionCall* _tmp40_;
	ValaCCodeIdentifier* _tmp41_;
	ValaCCodeIdentifier* _tmp42_;
	ValaCCodeFunctionCall* _tmp43_;
	ValaCCodeConstant* _tmp44_;
	ValaCCodeConstant* _tmp45_;
	ValaCCodeFunctionCall* _tmp46_;
	ValaCCodeFunctionCall* _tmp47_;
	gchar* _tmp48_;
	gchar* _tmp49_;
	ValaCCodeIdentifier* _tmp50_;
	ValaCCodeIdentifier* _tmp51_;
	ValaCCodeFile* _tmp52_;
	ValaCCodeFunctionCall* _tmp53_;
	ValaCCodeFunction* proxy_class_init = NULL;
	const gchar* _tmp54_;
	gchar* _tmp55_;
	gchar* _tmp56_;
	ValaCCodeFunction* _tmp57_;
	ValaCCodeFunction* _tmp58_;
	ValaCCodeFunction* _tmp59_;
	const gchar* _tmp60_;
	gchar* _tmp61_;
	gchar* _tmp62_;
	ValaCCodeParameter* _tmp63_;
	ValaCCodeParameter* _tmp64_;
	ValaCCodeFunction* _tmp65_;
	ValaCCodeFunction* _tmp66_;
	ValaCCodeFunctionCall* proxy_class = NULL;
	ValaCCodeIdentifier* _tmp67_;
	ValaCCodeIdentifier* _tmp68_;
	ValaCCodeFunctionCall* _tmp69_;
	ValaCCodeFunctionCall* _tmp70_;
	ValaCCodeFunctionCall* _tmp71_;
	ValaCCodeIdentifier* _tmp72_;
	ValaCCodeIdentifier* _tmp73_;
	ValaCCodeFunction* _tmp74_;
	ValaCCodeFunction* _tmp75_;
	ValaCCodeFunctionCall* _tmp76_;
	ValaCCodeMemberAccess* _tmp77_;
	ValaCCodeMemberAccess* _tmp78_;
	const gchar* _tmp79_;
	gchar* _tmp80_;
	gchar* _tmp81_;
	ValaCCodeIdentifier* _tmp82_;
	ValaCCodeIdentifier* _tmp83_;
	ValaCCodeFile* _tmp84_;
	ValaCCodeFunction* _tmp85_;
	ValaCCodeFunction* proxy_instance_init = NULL;
	const gchar* _tmp124_;
	gchar* _tmp125_;
	gchar* _tmp126_;
	ValaCCodeFunction* _tmp127_;
	ValaCCodeFunction* _tmp128_;
	ValaCCodeFunction* _tmp129_;
	const gchar* _tmp130_;
	gchar* _tmp131_;
	gchar* _tmp132_;
	ValaCCodeParameter* _tmp133_;
	ValaCCodeParameter* _tmp134_;
	ValaCCodeFunction* _tmp135_;
	ValaCCodeFile* _tmp136_;
	ValaCCodeFunction* _tmp137_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (iface != NULL);
	VALA_CODE_VISITOR_CLASS (vala_gd_bus_client_module_parent_class)->visit_interface ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule), iface);
	_tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
	dbus_iface_name = _tmp0_;
	_tmp1_ = dbus_iface_name;
	if (_tmp1_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp2_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_include (_tmp2_, "gio/gio.h", FALSE);
	_tmp3_ = vala_get_ccode_name ((ValaCodeNode*) iface);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_strconcat (_tmp4_, "Proxy", NULL);
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	cname = _tmp6_;
	_tmp7_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) iface);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_strconcat (_tmp8_, "proxy", NULL);
	_tmp10_ = _tmp9_;
	_g_free0 (_tmp8_);
	lower_cname = _tmp10_;
	_tmp11_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp12_ = cname;
	_tmp13_ = vala_ccode_variable_declarator_new (_tmp12_, NULL, NULL);
	_tmp14_ = _tmp13_;
	_tmp15_ = vala_ccode_type_definition_new ("GDBusProxy", (ValaCCodeDeclarator*) _tmp14_);
	_tmp16_ = _tmp15_;
	vala_ccode_file_add_type_declaration (_tmp11_, (ValaCCodeNode*) _tmp16_);
	_vala_ccode_node_unref0 (_tmp16_);
	_vala_ccode_node_unref0 (_tmp14_);
	_tmp17_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp18_ = cname;
	_tmp19_ = g_strconcat (_tmp18_, "Class", NULL);
	_tmp20_ = _tmp19_;
	_tmp21_ = vala_ccode_variable_declarator_new (_tmp20_, NULL, NULL);
	_tmp22_ = _tmp21_;
	_tmp23_ = vala_ccode_type_definition_new ("GDBusProxyClass", (ValaCCodeDeclarator*) _tmp22_);
	_tmp24_ = _tmp23_;
	vala_ccode_file_add_type_declaration (_tmp17_, (ValaCCodeNode*) _tmp24_);
	_vala_ccode_node_unref0 (_tmp24_);
	_vala_ccode_node_unref0 (_tmp22_);
	_g_free0 (_tmp20_);
	if (((ValaCCodeBaseModule*) self)->in_plugin) {
		gchar* _tmp25_;
		_tmp25_ = g_strdup ("G_DEFINE_DYNAMIC_TYPE_EXTENDED");
		_g_free0 (type_macro);
		type_macro = _tmp25_;
	} else {
		gchar* _tmp26_;
		_tmp26_ = g_strdup ("G_DEFINE_TYPE_EXTENDED");
		_g_free0 (type_macro);
		type_macro = _tmp26_;
	}
	_tmp27_ = type_macro;
	_tmp28_ = vala_ccode_identifier_new (_tmp27_);
	_tmp29_ = _tmp28_;
	_tmp30_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp29_);
	_tmp31_ = _tmp30_;
	_vala_ccode_node_unref0 (_tmp29_);
	define_type = _tmp31_;
	_tmp32_ = define_type;
	_tmp33_ = cname;
	_tmp34_ = vala_ccode_identifier_new (_tmp33_);
	_tmp35_ = _tmp34_;
	vala_ccode_function_call_add_argument (_tmp32_, (ValaCCodeExpression*) _tmp35_);
	_vala_ccode_node_unref0 (_tmp35_);
	_tmp36_ = define_type;
	_tmp37_ = lower_cname;
	_tmp38_ = vala_ccode_identifier_new (_tmp37_);
	_tmp39_ = _tmp38_;
	vala_ccode_function_call_add_argument (_tmp36_, (ValaCCodeExpression*) _tmp39_);
	_vala_ccode_node_unref0 (_tmp39_);
	_tmp40_ = define_type;
	_tmp41_ = vala_ccode_identifier_new ("G_TYPE_DBUS_PROXY");
	_tmp42_ = _tmp41_;
	vala_ccode_function_call_add_argument (_tmp40_, (ValaCCodeExpression*) _tmp42_);
	_vala_ccode_node_unref0 (_tmp42_);
	_tmp43_ = define_type;
	_tmp44_ = vala_ccode_constant_new ("0");
	_tmp45_ = _tmp44_;
	vala_ccode_function_call_add_argument (_tmp43_, (ValaCCodeExpression*) _tmp45_);
	_vala_ccode_node_unref0 (_tmp45_);
	_tmp46_ = define_type;
	_tmp47_ = define_type;
	_tmp48_ = vala_gd_bus_client_module_implement_interface (self, _tmp47_, iface, iface);
	_tmp49_ = _tmp48_;
	_tmp50_ = vala_ccode_identifier_new (_tmp49_);
	_tmp51_ = _tmp50_;
	vala_ccode_function_call_add_argument (_tmp46_, (ValaCCodeExpression*) _tmp51_);
	_vala_ccode_node_unref0 (_tmp51_);
	_g_free0 (_tmp49_);
	_tmp52_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp53_ = define_type;
	vala_ccode_file_add_type_member_definition (_tmp52_, (ValaCCodeNode*) _tmp53_);
	_tmp54_ = lower_cname;
	_tmp55_ = g_strconcat (_tmp54_, "_class_init", NULL);
	_tmp56_ = _tmp55_;
	_tmp57_ = vala_ccode_function_new (_tmp56_, "void");
	_tmp58_ = _tmp57_;
	_g_free0 (_tmp56_);
	proxy_class_init = _tmp58_;
	_tmp59_ = proxy_class_init;
	_tmp60_ = cname;
	_tmp61_ = g_strconcat (_tmp60_, "Class*", NULL);
	_tmp62_ = _tmp61_;
	_tmp63_ = vala_ccode_parameter_new ("klass", _tmp62_);
	_tmp64_ = _tmp63_;
	vala_ccode_function_add_parameter (_tmp59_, _tmp64_);
	_vala_ccode_node_unref0 (_tmp64_);
	_g_free0 (_tmp62_);
	_tmp65_ = proxy_class_init;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp65_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp66_ = proxy_class_init;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp66_);
	_tmp67_ = vala_ccode_identifier_new ("G_DBUS_PROXY_CLASS");
	_tmp68_ = _tmp67_;
	_tmp69_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp68_);
	_tmp70_ = _tmp69_;
	_vala_ccode_node_unref0 (_tmp68_);
	proxy_class = _tmp70_;
	_tmp71_ = proxy_class;
	_tmp72_ = vala_ccode_identifier_new ("klass");
	_tmp73_ = _tmp72_;
	vala_ccode_function_call_add_argument (_tmp71_, (ValaCCodeExpression*) _tmp73_);
	_vala_ccode_node_unref0 (_tmp73_);
	_tmp74_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp75_ = _tmp74_;
	_tmp76_ = proxy_class;
	_tmp77_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp76_, "g_signal");
	_tmp78_ = _tmp77_;
	_tmp79_ = lower_cname;
	_tmp80_ = g_strconcat (_tmp79_, "_g_signal", NULL);
	_tmp81_ = _tmp80_;
	_tmp82_ = vala_ccode_identifier_new (_tmp81_);
	_tmp83_ = _tmp82_;
	vala_ccode_function_add_assignment (_tmp75_, (ValaCCodeExpression*) _tmp78_, (ValaCCodeExpression*) _tmp83_);
	_vala_ccode_node_unref0 (_tmp83_);
	_g_free0 (_tmp81_);
	_vala_ccode_node_unref0 (_tmp78_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp84_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp85_ = proxy_class_init;
	vala_ccode_file_add_function (_tmp84_, _tmp85_);
	vala_gd_bus_client_module_generate_signal_handler_function (self, (ValaObjectTypeSymbol*) iface);
	if (((ValaCCodeBaseModule*) self)->in_plugin) {
		ValaCCodeFunction* proxy_class_finalize = NULL;
		const gchar* _tmp86_;
		gchar* _tmp87_;
		gchar* _tmp88_;
		ValaCCodeFunction* _tmp89_;
		ValaCCodeFunction* _tmp90_;
		ValaCCodeFunction* _tmp91_;
		const gchar* _tmp92_;
		gchar* _tmp93_;
		gchar* _tmp94_;
		ValaCCodeParameter* _tmp95_;
		ValaCCodeParameter* _tmp96_;
		ValaCCodeFunction* _tmp97_;
		ValaCCodeFile* _tmp98_;
		ValaCCodeFunction* _tmp99_;
		ValaCCodeFunction* proxy_type_init = NULL;
		const gchar* _tmp100_;
		gchar* _tmp101_;
		gchar* _tmp102_;
		ValaCCodeFunction* _tmp103_;
		ValaCCodeFunction* _tmp104_;
		ValaCCodeFunction* _tmp105_;
		ValaCCodeParameter* _tmp106_;
		ValaCCodeParameter* _tmp107_;
		ValaCCodeFunction* _tmp108_;
		ValaCCodeFunctionCall* call_register_type = NULL;
		const gchar* _tmp109_;
		gchar* _tmp110_;
		gchar* _tmp111_;
		ValaCCodeIdentifier* _tmp112_;
		ValaCCodeIdentifier* _tmp113_;
		ValaCCodeFunctionCall* _tmp114_;
		ValaCCodeFunctionCall* _tmp115_;
		ValaCCodeFunctionCall* _tmp116_;
		ValaCCodeIdentifier* _tmp117_;
		ValaCCodeIdentifier* _tmp118_;
		ValaCCodeFunction* _tmp119_;
		ValaCCodeFunction* _tmp120_;
		ValaCCodeFunctionCall* _tmp121_;
		ValaCCodeFile* _tmp122_;
		ValaCCodeFunction* _tmp123_;
		_tmp86_ = lower_cname;
		_tmp87_ = g_strconcat (_tmp86_, "_class_finalize", NULL);
		_tmp88_ = _tmp87_;
		_tmp89_ = vala_ccode_function_new (_tmp88_, "void");
		_tmp90_ = _tmp89_;
		_g_free0 (_tmp88_);
		proxy_class_finalize = _tmp90_;
		_tmp91_ = proxy_class_finalize;
		_tmp92_ = cname;
		_tmp93_ = g_strconcat (_tmp92_, "Class*", NULL);
		_tmp94_ = _tmp93_;
		_tmp95_ = vala_ccode_parameter_new ("klass", _tmp94_);
		_tmp96_ = _tmp95_;
		vala_ccode_function_add_parameter (_tmp91_, _tmp96_);
		_vala_ccode_node_unref0 (_tmp96_);
		_g_free0 (_tmp94_);
		_tmp97_ = proxy_class_finalize;
		vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp97_, VALA_CCODE_MODIFIERS_STATIC);
		_tmp98_ = ((ValaCCodeBaseModule*) self)->cfile;
		_tmp99_ = proxy_class_finalize;
		vala_ccode_file_add_function (_tmp98_, _tmp99_);
		_tmp100_ = lower_cname;
		_tmp101_ = g_strconcat (_tmp100_, "_register_dynamic_type", NULL);
		_tmp102_ = _tmp101_;
		_tmp103_ = vala_ccode_function_new (_tmp102_, "void");
		_tmp104_ = _tmp103_;
		_g_free0 (_tmp102_);
		proxy_type_init = _tmp104_;
		_tmp105_ = proxy_type_init;
		_tmp106_ = vala_ccode_parameter_new ("module", "GTypeModule*");
		_tmp107_ = _tmp106_;
		vala_ccode_function_add_parameter (_tmp105_, _tmp107_);
		_vala_ccode_node_unref0 (_tmp107_);
		_tmp108_ = proxy_type_init;
		vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp108_);
		_tmp109_ = lower_cname;
		_tmp110_ = g_strconcat (_tmp109_, "_register_type", NULL);
		_tmp111_ = _tmp110_;
		_tmp112_ = vala_ccode_identifier_new (_tmp111_);
		_tmp113_ = _tmp112_;
		_tmp114_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp113_);
		_tmp115_ = _tmp114_;
		_vala_ccode_node_unref0 (_tmp113_);
		_g_free0 (_tmp111_);
		call_register_type = _tmp115_;
		_tmp116_ = call_register_type;
		_tmp117_ = vala_ccode_identifier_new ("module");
		_tmp118_ = _tmp117_;
		vala_ccode_function_call_add_argument (_tmp116_, (ValaCCodeExpression*) _tmp118_);
		_vala_ccode_node_unref0 (_tmp118_);
		_tmp119_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp120_ = _tmp119_;
		_tmp121_ = call_register_type;
		vala_ccode_function_add_expression (_tmp120_, (ValaCCodeExpression*) _tmp121_);
		vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
		_tmp122_ = ((ValaCCodeBaseModule*) self)->cfile;
		_tmp123_ = proxy_type_init;
		vala_ccode_file_add_function (_tmp122_, _tmp123_);
		_vala_ccode_node_unref0 (call_register_type);
		_vala_ccode_node_unref0 (proxy_type_init);
		_vala_ccode_node_unref0 (proxy_class_finalize);
	}
	_tmp124_ = lower_cname;
	_tmp125_ = g_strconcat (_tmp124_, "_init", NULL);
	_tmp126_ = _tmp125_;
	_tmp127_ = vala_ccode_function_new (_tmp126_, "void");
	_tmp128_ = _tmp127_;
	_g_free0 (_tmp126_);
	proxy_instance_init = _tmp128_;
	_tmp129_ = proxy_instance_init;
	_tmp130_ = cname;
	_tmp131_ = g_strconcat (_tmp130_, "*", NULL);
	_tmp132_ = _tmp131_;
	_tmp133_ = vala_ccode_parameter_new ("self", _tmp132_);
	_tmp134_ = _tmp133_;
	vala_ccode_function_add_parameter (_tmp129_, _tmp134_);
	_vala_ccode_node_unref0 (_tmp134_);
	_g_free0 (_tmp132_);
	_tmp135_ = proxy_instance_init;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp135_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp136_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp137_ = proxy_instance_init;
	vala_ccode_file_add_function (_tmp136_, _tmp137_);
	vala_gd_bus_client_module_generate_proxy_interface_init (self, iface, iface);
	_vala_ccode_node_unref0 (proxy_instance_init);
	_vala_ccode_node_unref0 (proxy_class);
	_vala_ccode_node_unref0 (proxy_class_init);
	_vala_ccode_node_unref0 (define_type);
	_g_free0 (type_macro);
	_g_free0 (lower_cname);
	_g_free0 (cname);
	_g_free0 (dbus_iface_name);
}

static gpointer
_vala_ccode_node_ref0 (gpointer self)
{
	return self ? vala_ccode_node_ref (self) : NULL;
}

static void
vala_gd_bus_client_module_real_visit_method_call (ValaCodeVisitor* base,
                                                  ValaMethodCall* expr)
{
	ValaGDBusClientModule * self;
	ValaMethodType* mtype = NULL;
	ValaExpression* _tmp0_;
	ValaExpression* _tmp1_;
	ValaDataType* _tmp2_;
	ValaDataType* _tmp3_;
	ValaMethodType* _tmp4_;
	gboolean _tmp5_ = FALSE;
	ValaMethodType* _tmp6_;
	gboolean bus_get_proxy_async = FALSE;
	gboolean _tmp12_ = FALSE;
	ValaMethodType* _tmp13_;
	gboolean bus_get_proxy_sync = FALSE;
	gboolean _tmp19_ = FALSE;
	ValaMethodType* _tmp20_;
	gboolean conn_get_proxy_async = FALSE;
	gboolean _tmp26_ = FALSE;
	ValaMethodType* _tmp27_;
	gboolean conn_get_proxy_sync = FALSE;
	gboolean _tmp33_ = FALSE;
	gboolean _tmp34_ = FALSE;
	gboolean _tmp35_ = FALSE;
	ValaMemberAccess* ma = NULL;
	ValaExpression* _tmp36_;
	ValaExpression* _tmp37_;
	ValaMemberAccess* _tmp38_;
	ValaDataType* type_arg = NULL;
	ValaMemberAccess* _tmp39_;
	ValaList* _tmp40_;
	ValaList* _tmp41_;
	gpointer _tmp42_;
	ValaDataType* _tmp43_;
	ValaCCodeExpression* proxy_type = NULL;
	ValaCCodeExpression* dbus_iface_name = NULL;
	ValaCCodeExpression* dbus_iface_info = NULL;
	ValaObjectType* object_type = NULL;
	ValaDataType* _tmp44_;
	ValaObjectType* _tmp45_;
	ValaObjectType* _tmp46_;
	ValaCCodeFunctionCall* quark = NULL;
	ValaCCodeIdentifier* _tmp112_;
	ValaCCodeIdentifier* _tmp113_;
	ValaCCodeFunctionCall* _tmp114_;
	ValaCCodeFunctionCall* _tmp115_;
	ValaCCodeFunctionCall* _tmp116_;
	ValaCCodeConstant* _tmp117_;
	ValaCCodeConstant* _tmp118_;
	ValaCCodeFunctionCall* get_qdata = NULL;
	ValaCCodeIdentifier* _tmp119_;
	ValaCCodeIdentifier* _tmp120_;
	ValaCCodeFunctionCall* _tmp121_;
	ValaCCodeFunctionCall* _tmp122_;
	ValaCCodeFunctionCall* _tmp123_;
	ValaDataType* _tmp124_;
	ValaCCodeExpression* _tmp125_;
	ValaCCodeExpression* _tmp126_;
	ValaCCodeFunctionCall* _tmp127_;
	ValaCCodeFunctionCall* _tmp128_;
	ValaCCodeFunctionCall* _tmp129_;
	ValaCCodeExpression* _tmp130_;
	gboolean _tmp131_ = FALSE;
	gint base_arg_index = 0;
	gboolean _tmp220_ = FALSE;
	ValaList* args = NULL;
	ValaList* _tmp221_;
	ValaExpression* name = NULL;
	ValaList* _tmp222_;
	gpointer _tmp223_;
	ValaExpression* object_path = NULL;
	ValaList* _tmp224_;
	gpointer _tmp225_;
	ValaExpression* flags = NULL;
	ValaList* _tmp226_;
	gpointer _tmp227_;
	ValaExpression* cancellable = NULL;
	ValaList* _tmp228_;
	gpointer _tmp229_;
	ValaCCodeFunctionCall* ccall = NULL;
	gboolean _tmp230_ = FALSE;
	ValaCCodeFunctionCall* _tmp237_;
	ValaCCodeExpression* _tmp238_;
	gboolean _tmp239_ = FALSE;
	ValaCCodeFunctionCall* _tmp243_;
	ValaExpression* _tmp244_;
	ValaCCodeExpression* _tmp245_;
	ValaCCodeExpression* _tmp246_;
	gboolean _tmp247_ = FALSE;
	ValaCCodeFunctionCall* _tmp275_;
	ValaCCodeConstant* _tmp276_;
	ValaCCodeConstant* _tmp277_;
	ValaCCodeFunctionCall* _tmp278_;
	ValaExpression* _tmp279_;
	ValaCCodeExpression* _tmp280_;
	ValaCCodeExpression* _tmp281_;
	ValaCCodeFunctionCall* _tmp282_;
	ValaCCodeConstant* _tmp283_;
	ValaCCodeConstant* _tmp284_;
	ValaCCodeFunctionCall* _tmp285_;
	ValaExpression* _tmp286_;
	ValaCCodeExpression* _tmp287_;
	ValaCCodeExpression* _tmp288_;
	gboolean _tmp289_ = FALSE;
	ValaCCodeFunctionCall* _tmp330_;
	ValaCCodeConstant* _tmp331_;
	ValaCCodeConstant* _tmp332_;
	ValaCCodeFunctionCall* _tmp333_;
	ValaExpression* _tmp334_;
	ValaCCodeExpression* _tmp335_;
	ValaCCodeExpression* _tmp336_;
	ValaCCodeFunctionCall* _tmp337_;
	ValaCCodeConstant* _tmp338_;
	ValaCCodeConstant* _tmp339_;
	ValaCCodeFunctionCall* _tmp340_;
	ValaCCodeExpression* _tmp341_;
	ValaCCodeExpression* _tmp342_;
	ValaCCodeFunctionCall* _tmp348_;
	ValaCCodeConstant* _tmp349_;
	ValaCCodeConstant* _tmp350_;
	gboolean _tmp351_ = FALSE;
	ValaLocalVariable* temp_var = NULL;
	ValaDataType* _tmp400_;
	ValaDataType* _tmp401_;
	ValaDataType* _tmp402_;
	ValaDataType* _tmp403_;
	gboolean _tmp404_;
	gboolean _tmp405_;
	ValaLocalVariable* _tmp406_;
	ValaCCodeExpression* temp_ref = NULL;
	ValaLocalVariable* _tmp407_;
	const gchar* _tmp408_;
	const gchar* _tmp409_;
	ValaCCodeExpression* _tmp410_;
	ValaLocalVariable* _tmp411_;
	ValaCCodeFunction* _tmp412_;
	ValaCCodeFunction* _tmp413_;
	ValaCCodeExpression* _tmp414_;
	ValaCCodeFunctionCall* _tmp415_;
	ValaDataType* _tmp416_;
	ValaDataType* _tmp417_;
	gchar* _tmp418_;
	gchar* _tmp419_;
	ValaCCodeCastExpression* _tmp420_;
	ValaCCodeCastExpression* _tmp421_;
	ValaCCodeExpression* _tmp422_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (expr != NULL);
	_tmp0_ = vala_method_call_get_call (expr);
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_expression_get_value_type (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, VALA_TYPE_METHOD_TYPE) ? ((ValaMethodType*) _tmp3_) : NULL);
	mtype = _tmp4_;
	_tmp6_ = mtype;
	if (_tmp6_ != NULL) {
		ValaMethodType* _tmp7_;
		ValaMethod* _tmp8_;
		ValaMethod* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		_tmp7_ = mtype;
		_tmp8_ = vala_method_type_get_method_symbol (_tmp7_);
		_tmp9_ = _tmp8_;
		_tmp10_ = vala_get_ccode_name ((ValaCodeNode*) _tmp9_);
		_tmp11_ = _tmp10_;
		_tmp5_ = g_strcmp0 (_tmp11_, "g_bus_get_proxy") == 0;
		_g_free0 (_tmp11_);
	} else {
		_tmp5_ = FALSE;
	}
	bus_get_proxy_async = _tmp5_;
	_tmp13_ = mtype;
	if (_tmp13_ != NULL) {
		ValaMethodType* _tmp14_;
		ValaMethod* _tmp15_;
		ValaMethod* _tmp16_;
		gchar* _tmp17_;
		gchar* _tmp18_;
		_tmp14_ = mtype;
		_tmp15_ = vala_method_type_get_method_symbol (_tmp14_);
		_tmp16_ = _tmp15_;
		_tmp17_ = vala_get_ccode_name ((ValaCodeNode*) _tmp16_);
		_tmp18_ = _tmp17_;
		_tmp12_ = g_strcmp0 (_tmp18_, "g_bus_get_proxy_sync") == 0;
		_g_free0 (_tmp18_);
	} else {
		_tmp12_ = FALSE;
	}
	bus_get_proxy_sync = _tmp12_;
	_tmp20_ = mtype;
	if (_tmp20_ != NULL) {
		ValaMethodType* _tmp21_;
		ValaMethod* _tmp22_;
		ValaMethod* _tmp23_;
		gchar* _tmp24_;
		gchar* _tmp25_;
		_tmp21_ = mtype;
		_tmp22_ = vala_method_type_get_method_symbol (_tmp21_);
		_tmp23_ = _tmp22_;
		_tmp24_ = vala_get_ccode_name ((ValaCodeNode*) _tmp23_);
		_tmp25_ = _tmp24_;
		_tmp19_ = g_strcmp0 (_tmp25_, "g_dbus_connection_get_proxy") == 0;
		_g_free0 (_tmp25_);
	} else {
		_tmp19_ = FALSE;
	}
	conn_get_proxy_async = _tmp19_;
	_tmp27_ = mtype;
	if (_tmp27_ != NULL) {
		ValaMethodType* _tmp28_;
		ValaMethod* _tmp29_;
		ValaMethod* _tmp30_;
		gchar* _tmp31_;
		gchar* _tmp32_;
		_tmp28_ = mtype;
		_tmp29_ = vala_method_type_get_method_symbol (_tmp28_);
		_tmp30_ = _tmp29_;
		_tmp31_ = vala_get_ccode_name ((ValaCodeNode*) _tmp30_);
		_tmp32_ = _tmp31_;
		_tmp26_ = g_strcmp0 (_tmp32_, "g_dbus_connection_get_proxy_sync") == 0;
		_g_free0 (_tmp32_);
	} else {
		_tmp26_ = FALSE;
	}
	conn_get_proxy_sync = _tmp26_;
	if (!bus_get_proxy_async) {
		_tmp35_ = !bus_get_proxy_sync;
	} else {
		_tmp35_ = FALSE;
	}
	if (_tmp35_) {
		_tmp34_ = !conn_get_proxy_async;
	} else {
		_tmp34_ = FALSE;
	}
	if (_tmp34_) {
		_tmp33_ = !conn_get_proxy_sync;
	} else {
		_tmp33_ = FALSE;
	}
	if (_tmp33_) {
		VALA_CODE_VISITOR_CLASS (vala_gd_bus_client_module_parent_class)->visit_method_call ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule), expr);
		_vala_code_node_unref0 (mtype);
		return;
	}
	_tmp36_ = vala_method_call_get_call (expr);
	_tmp37_ = _tmp36_;
	_tmp38_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess));
	ma = _tmp38_;
	_tmp39_ = ma;
	_tmp40_ = vala_member_access_get_type_arguments (_tmp39_);
	_tmp41_ = _tmp40_;
	_tmp42_ = vala_list_get (_tmp41_, 0);
	_tmp43_ = (ValaDataType*) _tmp42_;
	_vala_iterable_unref0 (_tmp41_);
	type_arg = _tmp43_;
	_tmp44_ = type_arg;
	_tmp45_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp44_, VALA_TYPE_OBJECT_TYPE) ? ((ValaObjectType*) _tmp44_) : NULL);
	object_type = _tmp45_;
	_tmp46_ = object_type;
	if (_tmp46_ != NULL) {
		ValaInterface* iface = NULL;
		ValaObjectType* _tmp47_;
		ValaObjectTypeSymbol* _tmp48_;
		ValaObjectTypeSymbol* _tmp49_;
		ValaInterface* _tmp50_;
		ValaInterface* _tmp51_;
		gchar* _tmp52_;
		gchar* _tmp53_;
		gboolean _tmp54_;
		ValaInterface* _tmp62_;
		gchar* _tmp63_;
		gchar* _tmp64_;
		gchar* _tmp65_;
		gchar* _tmp66_;
		ValaCCodeIdentifier* _tmp67_;
		ValaInterface* _tmp68_;
		gchar* _tmp69_;
		gchar* _tmp70_;
		gchar* _tmp71_;
		gchar* _tmp72_;
		ValaCCodeConstant* _tmp73_;
		_tmp47_ = object_type;
		_tmp48_ = vala_object_type_get_type_symbol (_tmp47_);
		_tmp49_ = _tmp48_;
		_tmp50_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, VALA_TYPE_INTERFACE, ValaInterface));
		iface = _tmp50_;
		_tmp51_ = iface;
		_tmp52_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp51_);
		_tmp53_ = _tmp52_;
		_tmp54_ = _tmp53_ == NULL;
		_g_free0 (_tmp53_);
		if (_tmp54_) {
			ValaSourceReference* _tmp55_;
			ValaSourceReference* _tmp56_;
			ValaInterface* _tmp57_;
			gchar* _tmp58_;
			gchar* _tmp59_;
			gchar* _tmp60_;
			gchar* _tmp61_;
			_tmp55_ = vala_code_node_get_source_reference ((ValaCodeNode*) expr);
			_tmp56_ = _tmp55_;
			_tmp57_ = iface;
			_tmp58_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp57_);
			_tmp59_ = _tmp58_;
			_tmp60_ = g_strdup_printf ("`%s' is not a D-Bus interface", _tmp59_);
			_tmp61_ = _tmp60_;
			vala_report_error (_tmp56_, _tmp61_);
			_g_free0 (_tmp61_);
			_g_free0 (_tmp59_);
			_vala_code_node_unref0 (iface);
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (dbus_iface_info);
			_vala_ccode_node_unref0 (dbus_iface_name);
			_vala_ccode_node_unref0 (proxy_type);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
		_tmp62_ = iface;
		_tmp63_ = vala_get_ccode_type_id ((ValaCodeNode*) _tmp62_);
		_tmp64_ = _tmp63_;
		_tmp65_ = g_strdup_printf ("%s_PROXY", _tmp64_);
		_tmp66_ = _tmp65_;
		_tmp67_ = vala_ccode_identifier_new (_tmp66_);
		_vala_ccode_node_unref0 (proxy_type);
		proxy_type = (ValaCCodeExpression*) _tmp67_;
		_g_free0 (_tmp66_);
		_g_free0 (_tmp64_);
		_tmp68_ = iface;
		_tmp69_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp68_);
		_tmp70_ = _tmp69_;
		_tmp71_ = g_strdup_printf ("\"%s\"", _tmp70_);
		_tmp72_ = _tmp71_;
		_tmp73_ = vala_ccode_constant_new (_tmp72_);
		_vala_ccode_node_unref0 (dbus_iface_name);
		dbus_iface_name = (ValaCCodeExpression*) _tmp73_;
		_g_free0 (_tmp72_);
		_g_free0 (_tmp70_);
		_vala_code_node_unref0 (iface);
	} else {
		ValaCCodeFunctionCall* quark = NULL;
		ValaCCodeIdentifier* _tmp74_;
		ValaCCodeIdentifier* _tmp75_;
		ValaCCodeFunctionCall* _tmp76_;
		ValaCCodeFunctionCall* _tmp77_;
		ValaCCodeFunctionCall* _tmp78_;
		ValaCCodeConstant* _tmp79_;
		ValaCCodeConstant* _tmp80_;
		ValaCCodeFunctionCall* get_qdata = NULL;
		ValaCCodeIdentifier* _tmp81_;
		ValaCCodeIdentifier* _tmp82_;
		ValaCCodeFunctionCall* _tmp83_;
		ValaCCodeFunctionCall* _tmp84_;
		ValaCCodeFunctionCall* _tmp85_;
		ValaDataType* _tmp86_;
		ValaCCodeExpression* _tmp87_;
		ValaCCodeExpression* _tmp88_;
		ValaCCodeFunctionCall* _tmp89_;
		ValaCCodeFunctionCall* _tmp90_;
		ValaCCodeFunctionCall* _tmp91_;
		ValaCCodeCastExpression* _tmp92_;
		ValaCCodeCastExpression* _tmp93_;
		ValaCCodeFunctionCall* _tmp94_;
		ValaCCodeIdentifier* _tmp95_;
		ValaCCodeIdentifier* _tmp96_;
		ValaCCodeFunctionCall* _tmp97_;
		ValaCCodeFunctionCall* _tmp98_;
		ValaCCodeConstant* _tmp99_;
		ValaCCodeConstant* _tmp100_;
		ValaCCodeIdentifier* _tmp101_;
		ValaCCodeIdentifier* _tmp102_;
		ValaCCodeFunctionCall* _tmp103_;
		ValaCCodeFunctionCall* _tmp104_;
		ValaDataType* _tmp105_;
		ValaCCodeExpression* _tmp106_;
		ValaCCodeExpression* _tmp107_;
		ValaCCodeFunctionCall* _tmp108_;
		ValaCCodeFunctionCall* _tmp109_;
		ValaCCodeFunctionCall* _tmp110_;
		ValaCCodeExpression* _tmp111_;
		_tmp74_ = vala_ccode_identifier_new ("g_quark_from_static_string");
		_tmp75_ = _tmp74_;
		_tmp76_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp75_);
		_tmp77_ = _tmp76_;
		_vala_ccode_node_unref0 (_tmp75_);
		quark = _tmp77_;
		_tmp78_ = quark;
		_tmp79_ = vala_ccode_constant_new ("\"vala-dbus-proxy-type\"");
		_tmp80_ = _tmp79_;
		vala_ccode_function_call_add_argument (_tmp78_, (ValaCCodeExpression*) _tmp80_);
		_vala_ccode_node_unref0 (_tmp80_);
		_tmp81_ = vala_ccode_identifier_new ("g_type_get_qdata");
		_tmp82_ = _tmp81_;
		_tmp83_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp82_);
		_tmp84_ = _tmp83_;
		_vala_ccode_node_unref0 (_tmp82_);
		get_qdata = _tmp84_;
		_tmp85_ = get_qdata;
		_tmp86_ = type_arg;
		_tmp87_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp86_, FALSE);
		_tmp88_ = _tmp87_;
		vala_ccode_function_call_add_argument (_tmp85_, _tmp88_);
		_vala_ccode_node_unref0 (_tmp88_);
		_tmp89_ = get_qdata;
		_tmp90_ = quark;
		vala_ccode_function_call_add_argument (_tmp89_, (ValaCCodeExpression*) _tmp90_);
		_tmp91_ = get_qdata;
		_tmp92_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp91_, "GType (*) (void)");
		_tmp93_ = _tmp92_;
		_tmp94_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp93_);
		_vala_ccode_node_unref0 (proxy_type);
		proxy_type = (ValaCCodeExpression*) _tmp94_;
		_vala_ccode_node_unref0 (_tmp93_);
		_tmp95_ = vala_ccode_identifier_new ("g_quark_from_static_string");
		_tmp96_ = _tmp95_;
		_tmp97_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp96_);
		_vala_ccode_node_unref0 (quark);
		quark = _tmp97_;
		_vala_ccode_node_unref0 (_tmp96_);
		_tmp98_ = quark;
		_tmp99_ = vala_ccode_constant_new ("\"vala-dbus-interface-name\"");
		_tmp100_ = _tmp99_;
		vala_ccode_function_call_add_argument (_tmp98_, (ValaCCodeExpression*) _tmp100_);
		_vala_ccode_node_unref0 (_tmp100_);
		_tmp101_ = vala_ccode_identifier_new ("g_type_get_qdata");
		_tmp102_ = _tmp101_;
		_tmp103_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp102_);
		_vala_ccode_node_unref0 (get_qdata);
		get_qdata = _tmp103_;
		_vala_ccode_node_unref0 (_tmp102_);
		_tmp104_ = get_qdata;
		_tmp105_ = type_arg;
		_tmp106_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp105_, FALSE);
		_tmp107_ = _tmp106_;
		vala_ccode_function_call_add_argument (_tmp104_, _tmp107_);
		_vala_ccode_node_unref0 (_tmp107_);
		_tmp108_ = get_qdata;
		_tmp109_ = quark;
		vala_ccode_function_call_add_argument (_tmp108_, (ValaCCodeExpression*) _tmp109_);
		_tmp110_ = get_qdata;
		_tmp111_ = _vala_ccode_node_ref0 ((ValaCCodeExpression*) _tmp110_);
		_vala_ccode_node_unref0 (dbus_iface_name);
		dbus_iface_name = _tmp111_;
		_vala_ccode_node_unref0 (get_qdata);
		_vala_ccode_node_unref0 (quark);
	}
	_tmp112_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp113_ = _tmp112_;
	_tmp114_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp113_);
	_tmp115_ = _tmp114_;
	_vala_ccode_node_unref0 (_tmp113_);
	quark = _tmp115_;
	_tmp116_ = quark;
	_tmp117_ = vala_ccode_constant_new ("\"vala-dbus-interface-info\"");
	_tmp118_ = _tmp117_;
	vala_ccode_function_call_add_argument (_tmp116_, (ValaCCodeExpression*) _tmp118_);
	_vala_ccode_node_unref0 (_tmp118_);
	_tmp119_ = vala_ccode_identifier_new ("g_type_get_qdata");
	_tmp120_ = _tmp119_;
	_tmp121_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp120_);
	_tmp122_ = _tmp121_;
	_vala_ccode_node_unref0 (_tmp120_);
	get_qdata = _tmp122_;
	_tmp123_ = get_qdata;
	_tmp124_ = type_arg;
	_tmp125_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp124_, FALSE);
	_tmp126_ = _tmp125_;
	vala_ccode_function_call_add_argument (_tmp123_, _tmp126_);
	_vala_ccode_node_unref0 (_tmp126_);
	_tmp127_ = get_qdata;
	_tmp128_ = quark;
	vala_ccode_function_call_add_argument (_tmp127_, (ValaCCodeExpression*) _tmp128_);
	_tmp129_ = get_qdata;
	_tmp130_ = _vala_ccode_node_ref0 ((ValaCCodeExpression*) _tmp129_);
	_vala_ccode_node_unref0 (dbus_iface_info);
	dbus_iface_info = _tmp130_;
	if (bus_get_proxy_async) {
		_tmp131_ = TRUE;
	} else {
		_tmp131_ = conn_get_proxy_async;
	}
	if (_tmp131_) {
		gboolean _tmp132_ = FALSE;
		ValaMemberAccess* _tmp133_;
		const gchar* _tmp134_;
		const gchar* _tmp135_;
		_tmp133_ = ma;
		_tmp134_ = vala_member_access_get_member_name (_tmp133_);
		_tmp135_ = _tmp134_;
		if (g_strcmp0 (_tmp135_, "end") == 0) {
			ValaMemberAccess* _tmp136_;
			ValaExpression* _tmp137_;
			ValaExpression* _tmp138_;
			ValaSymbol* _tmp139_;
			ValaSymbol* _tmp140_;
			ValaMemberAccess* _tmp141_;
			ValaSymbol* _tmp142_;
			ValaSymbol* _tmp143_;
			_tmp136_ = ma;
			_tmp137_ = vala_member_access_get_inner (_tmp136_);
			_tmp138_ = _tmp137_;
			_tmp139_ = vala_expression_get_symbol_reference (_tmp138_);
			_tmp140_ = _tmp139_;
			_tmp141_ = ma;
			_tmp142_ = vala_expression_get_symbol_reference ((ValaExpression*) _tmp141_);
			_tmp143_ = _tmp142_;
			_tmp132_ = _tmp140_ == _tmp143_;
		} else {
			_tmp132_ = FALSE;
		}
		if (_tmp132_) {
			ValaList* args = NULL;
			ValaList* _tmp144_;
			ValaExpression* res = NULL;
			ValaList* _tmp145_;
			gpointer _tmp146_;
			ValaLocalVariable* source_var = NULL;
			ValaDataType* _tmp147_;
			ValaDataType* _tmp148_;
			ValaDataType* _tmp149_;
			ValaDataType* _tmp150_;
			gboolean _tmp151_;
			gboolean _tmp152_;
			ValaLocalVariable* _tmp153_;
			ValaCCodeExpression* source_ref = NULL;
			ValaLocalVariable* _tmp154_;
			const gchar* _tmp155_;
			const gchar* _tmp156_;
			ValaCCodeExpression* _tmp157_;
			ValaLocalVariable* _tmp158_;
			ValaCCodeFunctionCall* source = NULL;
			ValaCCodeIdentifier* _tmp159_;
			ValaCCodeIdentifier* _tmp160_;
			ValaCCodeFunctionCall* _tmp161_;
			ValaCCodeFunctionCall* _tmp162_;
			ValaCCodeFunctionCall* _tmp163_;
			ValaExpression* _tmp164_;
			ValaCCodeExpression* _tmp165_;
			ValaCCodeExpression* _tmp166_;
			ValaCCodeFunction* _tmp167_;
			ValaCCodeFunction* _tmp168_;
			ValaCCodeExpression* _tmp169_;
			ValaCCodeFunctionCall* _tmp170_;
			ValaCCodeFunctionCall* ccall = NULL;
			ValaCCodeIdentifier* _tmp171_;
			ValaCCodeIdentifier* _tmp172_;
			ValaCCodeFunctionCall* _tmp173_;
			ValaCCodeFunctionCall* _tmp174_;
			ValaCCodeFunctionCall* _tmp175_;
			ValaCCodeExpression* _tmp176_;
			ValaCCodeCastExpression* _tmp177_;
			ValaCCodeCastExpression* _tmp178_;
			ValaCCodeFunctionCall* _tmp179_;
			ValaExpression* _tmp180_;
			ValaCCodeExpression* _tmp181_;
			ValaCCodeExpression* _tmp182_;
			ValaCCodeFunctionCall* _tmp183_;
			ValaCCodeExpression* _tmp184_;
			ValaCCodeExpression* _tmp185_;
			ValaCCodeUnaryExpression* _tmp186_;
			ValaCCodeUnaryExpression* _tmp187_;
			ValaLocalVariable* temp_var = NULL;
			ValaDataType* _tmp188_;
			ValaDataType* _tmp189_;
			ValaDataType* _tmp190_;
			ValaDataType* _tmp191_;
			gboolean _tmp192_;
			gboolean _tmp193_;
			ValaLocalVariable* _tmp194_;
			ValaCCodeExpression* temp_ref = NULL;
			ValaLocalVariable* _tmp195_;
			const gchar* _tmp196_;
			const gchar* _tmp197_;
			ValaCCodeExpression* _tmp198_;
			ValaLocalVariable* _tmp199_;
			ValaCCodeFunction* _tmp200_;
			ValaCCodeFunction* _tmp201_;
			ValaCCodeExpression* _tmp202_;
			ValaCCodeFunctionCall* _tmp203_;
			ValaDataType* _tmp204_;
			ValaDataType* _tmp205_;
			gchar* _tmp206_;
			gchar* _tmp207_;
			ValaCCodeCastExpression* _tmp208_;
			ValaCCodeCastExpression* _tmp209_;
			ValaCCodeFunctionCall* unref_proxy = NULL;
			ValaCCodeIdentifier* _tmp210_;
			ValaCCodeIdentifier* _tmp211_;
			ValaCCodeFunctionCall* _tmp212_;
			ValaCCodeFunctionCall* _tmp213_;
			ValaCCodeFunctionCall* _tmp214_;
			ValaCCodeExpression* _tmp215_;
			ValaCCodeFunction* _tmp216_;
			ValaCCodeFunction* _tmp217_;
			ValaCCodeFunctionCall* _tmp218_;
			ValaCCodeExpression* _tmp219_;
			vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
			_tmp144_ = vala_method_call_get_argument_list (expr);
			args = _tmp144_;
			_tmp145_ = args;
			_tmp146_ = vala_list_get (_tmp145_, 0);
			res = (ValaExpression*) _tmp146_;
			_tmp147_ = vala_expression_get_value_type ((ValaExpression*) expr);
			_tmp148_ = _tmp147_;
			_tmp149_ = vala_expression_get_value_type ((ValaExpression*) expr);
			_tmp150_ = _tmp149_;
			_tmp151_ = vala_data_type_get_value_owned (_tmp150_);
			_tmp152_ = _tmp151_;
			_tmp153_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp148_, _tmp152_, NULL, FALSE);
			source_var = _tmp153_;
			_tmp154_ = source_var;
			_tmp155_ = vala_symbol_get_name ((ValaSymbol*) _tmp154_);
			_tmp156_ = _tmp155_;
			_tmp157_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp156_);
			source_ref = _tmp157_;
			_tmp158_ = source_var;
			vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp158_, FALSE);
			_tmp159_ = vala_ccode_identifier_new ("g_async_result_get_source_object");
			_tmp160_ = _tmp159_;
			_tmp161_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp160_);
			_tmp162_ = _tmp161_;
			_vala_ccode_node_unref0 (_tmp160_);
			source = _tmp162_;
			_tmp163_ = source;
			_tmp164_ = res;
			_tmp165_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp164_);
			_tmp166_ = _tmp165_;
			vala_ccode_function_call_add_argument (_tmp163_, _tmp166_);
			_vala_ccode_node_unref0 (_tmp166_);
			_tmp167_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp168_ = _tmp167_;
			_tmp169_ = source_ref;
			_tmp170_ = source;
			vala_ccode_function_add_assignment (_tmp168_, _tmp169_, (ValaCCodeExpression*) _tmp170_);
			_tmp171_ = vala_ccode_identifier_new ("g_async_initable_new_finish");
			_tmp172_ = _tmp171_;
			_tmp173_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp172_);
			_tmp174_ = _tmp173_;
			_vala_ccode_node_unref0 (_tmp172_);
			ccall = _tmp174_;
			_tmp175_ = ccall;
			_tmp176_ = source_ref;
			_tmp177_ = vala_ccode_cast_expression_new (_tmp176_, "GAsyncInitable *");
			_tmp178_ = _tmp177_;
			vala_ccode_function_call_add_argument (_tmp175_, (ValaCCodeExpression*) _tmp178_);
			_vala_ccode_node_unref0 (_tmp178_);
			_tmp179_ = ccall;
			_tmp180_ = res;
			_tmp181_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp180_);
			_tmp182_ = _tmp181_;
			vala_ccode_function_call_add_argument (_tmp179_, _tmp182_);
			_vala_ccode_node_unref0 (_tmp182_);
			_tmp183_ = ccall;
			_tmp184_ = vala_ccode_base_module_get_inner_error_cexpression ((ValaCCodeBaseModule*) self);
			_tmp185_ = _tmp184_;
			_tmp186_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp185_);
			_tmp187_ = _tmp186_;
			vala_ccode_function_call_add_argument (_tmp183_, (ValaCCodeExpression*) _tmp187_);
			_vala_ccode_node_unref0 (_tmp187_);
			_vala_ccode_node_unref0 (_tmp185_);
			_tmp188_ = vala_expression_get_value_type ((ValaExpression*) expr);
			_tmp189_ = _tmp188_;
			_tmp190_ = vala_expression_get_value_type ((ValaExpression*) expr);
			_tmp191_ = _tmp190_;
			_tmp192_ = vala_data_type_get_value_owned (_tmp191_);
			_tmp193_ = _tmp192_;
			_tmp194_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp189_, _tmp193_, NULL, FALSE);
			temp_var = _tmp194_;
			_tmp195_ = temp_var;
			_tmp196_ = vala_symbol_get_name ((ValaSymbol*) _tmp195_);
			_tmp197_ = _tmp196_;
			_tmp198_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp197_);
			temp_ref = _tmp198_;
			_tmp199_ = temp_var;
			vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp199_, FALSE);
			_tmp200_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp201_ = _tmp200_;
			_tmp202_ = temp_ref;
			_tmp203_ = ccall;
			_tmp204_ = vala_expression_get_value_type ((ValaExpression*) expr);
			_tmp205_ = _tmp204_;
			_tmp206_ = vala_get_ccode_name ((ValaCodeNode*) _tmp205_);
			_tmp207_ = _tmp206_;
			_tmp208_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp203_, _tmp207_);
			_tmp209_ = _tmp208_;
			vala_ccode_function_add_assignment (_tmp201_, _tmp202_, (ValaCCodeExpression*) _tmp209_);
			_vala_ccode_node_unref0 (_tmp209_);
			_g_free0 (_tmp207_);
			_tmp210_ = vala_ccode_identifier_new ("g_object_unref");
			_tmp211_ = _tmp210_;
			_tmp212_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp211_);
			_tmp213_ = _tmp212_;
			_vala_ccode_node_unref0 (_tmp211_);
			unref_proxy = _tmp213_;
			_tmp214_ = unref_proxy;
			_tmp215_ = source_ref;
			vala_ccode_function_call_add_argument (_tmp214_, _tmp215_);
			_tmp216_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp217_ = _tmp216_;
			_tmp218_ = unref_proxy;
			vala_ccode_function_add_expression (_tmp217_, (ValaCCodeExpression*) _tmp218_);
			_tmp219_ = temp_ref;
			vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) expr, _tmp219_);
			_vala_ccode_node_unref0 (unref_proxy);
			_vala_ccode_node_unref0 (temp_ref);
			_vala_code_node_unref0 (temp_var);
			_vala_ccode_node_unref0 (ccall);
			_vala_ccode_node_unref0 (source);
			_vala_ccode_node_unref0 (source_ref);
			_vala_code_node_unref0 (source_var);
			_vala_code_node_unref0 (res);
			_vala_iterable_unref0 (args);
			_vala_ccode_node_unref0 (get_qdata);
			_vala_ccode_node_unref0 (quark);
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (dbus_iface_info);
			_vala_ccode_node_unref0 (dbus_iface_name);
			_vala_ccode_node_unref0 (proxy_type);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
	}
	base_arg_index = 0;
	if (bus_get_proxy_async) {
		_tmp220_ = TRUE;
	} else {
		_tmp220_ = bus_get_proxy_sync;
	}
	if (_tmp220_) {
		base_arg_index = 1;
	}
	_tmp221_ = vala_method_call_get_argument_list (expr);
	args = _tmp221_;
	_tmp222_ = args;
	_tmp223_ = vala_list_get (_tmp222_, base_arg_index + 0);
	name = (ValaExpression*) _tmp223_;
	_tmp224_ = args;
	_tmp225_ = vala_list_get (_tmp224_, base_arg_index + 1);
	object_path = (ValaExpression*) _tmp225_;
	_tmp226_ = args;
	_tmp227_ = vala_list_get (_tmp226_, base_arg_index + 2);
	flags = (ValaExpression*) _tmp227_;
	_tmp228_ = args;
	_tmp229_ = vala_list_get (_tmp228_, base_arg_index + 3);
	cancellable = (ValaExpression*) _tmp229_;
	vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
	if (bus_get_proxy_async) {
		_tmp230_ = TRUE;
	} else {
		_tmp230_ = conn_get_proxy_async;
	}
	if (_tmp230_) {
		ValaCCodeIdentifier* _tmp231_;
		ValaCCodeIdentifier* _tmp232_;
		ValaCCodeFunctionCall* _tmp233_;
		_tmp231_ = vala_ccode_identifier_new ("g_async_initable_new_async");
		_tmp232_ = _tmp231_;
		_tmp233_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp232_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp233_;
		_vala_ccode_node_unref0 (_tmp232_);
	} else {
		ValaCCodeIdentifier* _tmp234_;
		ValaCCodeIdentifier* _tmp235_;
		ValaCCodeFunctionCall* _tmp236_;
		_tmp234_ = vala_ccode_identifier_new ("g_initable_new");
		_tmp235_ = _tmp234_;
		_tmp236_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp235_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp236_;
		_vala_ccode_node_unref0 (_tmp235_);
	}
	_tmp237_ = ccall;
	_tmp238_ = proxy_type;
	vala_ccode_function_call_add_argument (_tmp237_, _tmp238_);
	if (bus_get_proxy_async) {
		_tmp239_ = TRUE;
	} else {
		_tmp239_ = conn_get_proxy_async;
	}
	if (_tmp239_) {
		ValaCCodeFunctionCall* _tmp240_;
		ValaCCodeConstant* _tmp241_;
		ValaCCodeConstant* _tmp242_;
		_tmp240_ = ccall;
		_tmp241_ = vala_ccode_constant_new ("0");
		_tmp242_ = _tmp241_;
		vala_ccode_function_call_add_argument (_tmp240_, (ValaCCodeExpression*) _tmp242_);
		_vala_ccode_node_unref0 (_tmp242_);
	}
	_tmp243_ = ccall;
	_tmp244_ = cancellable;
	_tmp245_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp244_);
	_tmp246_ = _tmp245_;
	vala_ccode_function_call_add_argument (_tmp243_, _tmp246_);
	_vala_ccode_node_unref0 (_tmp246_);
	if (bus_get_proxy_async) {
		_tmp247_ = TRUE;
	} else {
		_tmp247_ = conn_get_proxy_async;
	}
	if (_tmp247_) {
		gboolean _tmp248_;
		gboolean _tmp249_;
		_tmp248_ = vala_method_call_get_is_yield_expression (expr);
		_tmp249_ = _tmp248_;
		if (_tmp249_) {
			ValaCCodeFunctionCall* _tmp250_;
			ValaMethod* _tmp251_;
			ValaMethod* _tmp252_;
			gchar* _tmp253_;
			gchar* _tmp254_;
			ValaCCodeIdentifier* _tmp255_;
			ValaCCodeIdentifier* _tmp256_;
			ValaCCodeFunctionCall* _tmp257_;
			ValaCCodeIdentifier* _tmp258_;
			ValaCCodeIdentifier* _tmp259_;
			_tmp250_ = ccall;
			_tmp251_ = vala_ccode_base_module_get_current_method ((ValaCCodeBaseModule*) self);
			_tmp252_ = _tmp251_;
			_tmp253_ = vala_ccode_base_module_generate_ready_function ((ValaCCodeBaseModule*) self, _tmp252_);
			_tmp254_ = _tmp253_;
			_tmp255_ = vala_ccode_identifier_new (_tmp254_);
			_tmp256_ = _tmp255_;
			vala_ccode_function_call_add_argument (_tmp250_, (ValaCCodeExpression*) _tmp256_);
			_vala_ccode_node_unref0 (_tmp256_);
			_g_free0 (_tmp254_);
			_tmp257_ = ccall;
			_tmp258_ = vala_ccode_identifier_new ("_data_");
			_tmp259_ = _tmp258_;
			vala_ccode_function_call_add_argument (_tmp257_, (ValaCCodeExpression*) _tmp259_);
			_vala_ccode_node_unref0 (_tmp259_);
		} else {
			ValaExpression* callback = NULL;
			ValaList* _tmp260_;
			gpointer _tmp261_;
			ValaCCodeFunctionCall* _tmp262_;
			ValaExpression* _tmp263_;
			ValaCCodeExpression* _tmp264_;
			ValaCCodeExpression* _tmp265_;
			ValaCCodeFunctionCall* _tmp266_;
			ValaExpression* _tmp267_;
			ValaCCodeExpression* _tmp268_;
			ValaCCodeExpression* _tmp269_;
			_tmp260_ = args;
			_tmp261_ = vala_list_get (_tmp260_, base_arg_index + 4);
			callback = (ValaExpression*) _tmp261_;
			_tmp262_ = ccall;
			_tmp263_ = callback;
			_tmp264_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp263_);
			_tmp265_ = _tmp264_;
			vala_ccode_function_call_add_argument (_tmp262_, _tmp265_);
			_vala_ccode_node_unref0 (_tmp265_);
			_tmp266_ = ccall;
			_tmp267_ = callback;
			_tmp268_ = vala_ccode_base_module_get_delegate_target ((ValaCCodeBaseModule*) self, _tmp267_);
			_tmp269_ = _tmp268_;
			vala_ccode_function_call_add_argument (_tmp266_, _tmp269_);
			_vala_ccode_node_unref0 (_tmp269_);
			_vala_code_node_unref0 (callback);
		}
	} else {
		ValaCCodeFunctionCall* _tmp270_;
		ValaCCodeExpression* _tmp271_;
		ValaCCodeExpression* _tmp272_;
		ValaCCodeUnaryExpression* _tmp273_;
		ValaCCodeUnaryExpression* _tmp274_;
		_tmp270_ = ccall;
		_tmp271_ = vala_ccode_base_module_get_inner_error_cexpression ((ValaCCodeBaseModule*) self);
		_tmp272_ = _tmp271_;
		_tmp273_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp272_);
		_tmp274_ = _tmp273_;
		vala_ccode_function_call_add_argument (_tmp270_, (ValaCCodeExpression*) _tmp274_);
		_vala_ccode_node_unref0 (_tmp274_);
		_vala_ccode_node_unref0 (_tmp272_);
	}
	_tmp275_ = ccall;
	_tmp276_ = vala_ccode_constant_new ("\"g-flags\"");
	_tmp277_ = _tmp276_;
	vala_ccode_function_call_add_argument (_tmp275_, (ValaCCodeExpression*) _tmp277_);
	_vala_ccode_node_unref0 (_tmp277_);
	_tmp278_ = ccall;
	_tmp279_ = flags;
	_tmp280_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp279_);
	_tmp281_ = _tmp280_;
	vala_ccode_function_call_add_argument (_tmp278_, _tmp281_);
	_vala_ccode_node_unref0 (_tmp281_);
	_tmp282_ = ccall;
	_tmp283_ = vala_ccode_constant_new ("\"g-name\"");
	_tmp284_ = _tmp283_;
	vala_ccode_function_call_add_argument (_tmp282_, (ValaCCodeExpression*) _tmp284_);
	_vala_ccode_node_unref0 (_tmp284_);
	_tmp285_ = ccall;
	_tmp286_ = name;
	_tmp287_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp286_);
	_tmp288_ = _tmp287_;
	vala_ccode_function_call_add_argument (_tmp285_, _tmp288_);
	_vala_ccode_node_unref0 (_tmp288_);
	if (bus_get_proxy_async) {
		_tmp289_ = TRUE;
	} else {
		_tmp289_ = bus_get_proxy_sync;
	}
	if (_tmp289_) {
		ValaExpression* bus_type = NULL;
		ValaList* _tmp290_;
		gpointer _tmp291_;
		ValaCCodeFunctionCall* _tmp292_;
		ValaCCodeConstant* _tmp293_;
		ValaCCodeConstant* _tmp294_;
		ValaCCodeFunctionCall* _tmp295_;
		ValaExpression* _tmp296_;
		ValaCCodeExpression* _tmp297_;
		ValaCCodeExpression* _tmp298_;
		_tmp290_ = args;
		_tmp291_ = vala_list_get (_tmp290_, 0);
		bus_type = (ValaExpression*) _tmp291_;
		_tmp292_ = ccall;
		_tmp293_ = vala_ccode_constant_new ("\"g-bus-type\"");
		_tmp294_ = _tmp293_;
		vala_ccode_function_call_add_argument (_tmp292_, (ValaCCodeExpression*) _tmp294_);
		_vala_ccode_node_unref0 (_tmp294_);
		_tmp295_ = ccall;
		_tmp296_ = bus_type;
		_tmp297_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp296_);
		_tmp298_ = _tmp297_;
		vala_ccode_function_call_add_argument (_tmp295_, _tmp298_);
		_vala_ccode_node_unref0 (_tmp298_);
		_vala_code_node_unref0 (bus_type);
	} else {
		ValaExpression* connection = NULL;
		ValaMemberAccess* _tmp299_;
		ValaExpression* _tmp300_;
		ValaExpression* _tmp301_;
		ValaExpression* _tmp302_;
		gboolean _tmp303_ = FALSE;
		ValaMemberAccess* _tmp304_;
		const gchar* _tmp305_;
		const gchar* _tmp306_;
		ValaCCodeFunctionCall* _tmp323_;
		ValaCCodeConstant* _tmp324_;
		ValaCCodeConstant* _tmp325_;
		ValaCCodeFunctionCall* _tmp326_;
		ValaExpression* _tmp327_;
		ValaCCodeExpression* _tmp328_;
		ValaCCodeExpression* _tmp329_;
		_tmp299_ = ma;
		_tmp300_ = vala_member_access_get_inner (_tmp299_);
		_tmp301_ = _tmp300_;
		_tmp302_ = _vala_code_node_ref0 (_tmp301_);
		connection = _tmp302_;
		_tmp304_ = ma;
		_tmp305_ = vala_member_access_get_member_name (_tmp304_);
		_tmp306_ = _tmp305_;
		if (g_strcmp0 (_tmp306_, "begin") == 0) {
			ValaMemberAccess* _tmp307_;
			ValaExpression* _tmp308_;
			ValaExpression* _tmp309_;
			ValaSymbol* _tmp310_;
			ValaSymbol* _tmp311_;
			ValaMemberAccess* _tmp312_;
			ValaSymbol* _tmp313_;
			ValaSymbol* _tmp314_;
			_tmp307_ = ma;
			_tmp308_ = vala_member_access_get_inner (_tmp307_);
			_tmp309_ = _tmp308_;
			_tmp310_ = vala_expression_get_symbol_reference (_tmp309_);
			_tmp311_ = _tmp310_;
			_tmp312_ = ma;
			_tmp313_ = vala_expression_get_symbol_reference ((ValaExpression*) _tmp312_);
			_tmp314_ = _tmp313_;
			_tmp303_ = _tmp311_ == _tmp314_;
		} else {
			_tmp303_ = FALSE;
		}
		if (_tmp303_) {
			ValaMemberAccess* inner_ma = NULL;
			ValaMemberAccess* _tmp315_;
			ValaExpression* _tmp316_;
			ValaExpression* _tmp317_;
			ValaMemberAccess* _tmp318_;
			ValaMemberAccess* _tmp319_;
			ValaExpression* _tmp320_;
			ValaExpression* _tmp321_;
			ValaExpression* _tmp322_;
			_tmp315_ = ma;
			_tmp316_ = vala_member_access_get_inner (_tmp315_);
			_tmp317_ = _tmp316_;
			_tmp318_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp317_, VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess));
			inner_ma = _tmp318_;
			_tmp319_ = inner_ma;
			_tmp320_ = vala_member_access_get_inner (_tmp319_);
			_tmp321_ = _tmp320_;
			_tmp322_ = _vala_code_node_ref0 (_tmp321_);
			_vala_code_node_unref0 (connection);
			connection = _tmp322_;
			_vala_code_node_unref0 (inner_ma);
		}
		_tmp323_ = ccall;
		_tmp324_ = vala_ccode_constant_new ("\"g-connection\"");
		_tmp325_ = _tmp324_;
		vala_ccode_function_call_add_argument (_tmp323_, (ValaCCodeExpression*) _tmp325_);
		_vala_ccode_node_unref0 (_tmp325_);
		_tmp326_ = ccall;
		_tmp327_ = connection;
		_tmp328_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp327_);
		_tmp329_ = _tmp328_;
		vala_ccode_function_call_add_argument (_tmp326_, _tmp329_);
		_vala_ccode_node_unref0 (_tmp329_);
		_vala_code_node_unref0 (connection);
	}
	_tmp330_ = ccall;
	_tmp331_ = vala_ccode_constant_new ("\"g-object-path\"");
	_tmp332_ = _tmp331_;
	vala_ccode_function_call_add_argument (_tmp330_, (ValaCCodeExpression*) _tmp332_);
	_vala_ccode_node_unref0 (_tmp332_);
	_tmp333_ = ccall;
	_tmp334_ = object_path;
	_tmp335_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp334_);
	_tmp336_ = _tmp335_;
	vala_ccode_function_call_add_argument (_tmp333_, _tmp336_);
	_vala_ccode_node_unref0 (_tmp336_);
	_tmp337_ = ccall;
	_tmp338_ = vala_ccode_constant_new ("\"g-interface-name\"");
	_tmp339_ = _tmp338_;
	vala_ccode_function_call_add_argument (_tmp337_, (ValaCCodeExpression*) _tmp339_);
	_vala_ccode_node_unref0 (_tmp339_);
	_tmp340_ = ccall;
	_tmp341_ = dbus_iface_name;
	vala_ccode_function_call_add_argument (_tmp340_, _tmp341_);
	_tmp342_ = dbus_iface_info;
	if (_tmp342_ != NULL) {
		ValaCCodeFunctionCall* _tmp343_;
		ValaCCodeConstant* _tmp344_;
		ValaCCodeConstant* _tmp345_;
		ValaCCodeFunctionCall* _tmp346_;
		ValaCCodeExpression* _tmp347_;
		_tmp343_ = ccall;
		_tmp344_ = vala_ccode_constant_new ("\"g-interface-info\"");
		_tmp345_ = _tmp344_;
		vala_ccode_function_call_add_argument (_tmp343_, (ValaCCodeExpression*) _tmp345_);
		_vala_ccode_node_unref0 (_tmp345_);
		_tmp346_ = ccall;
		_tmp347_ = dbus_iface_info;
		vala_ccode_function_call_add_argument (_tmp346_, _tmp347_);
	}
	_tmp348_ = ccall;
	_tmp349_ = vala_ccode_constant_new ("NULL");
	_tmp350_ = _tmp349_;
	vala_ccode_function_call_add_argument (_tmp348_, (ValaCCodeExpression*) _tmp350_);
	_vala_ccode_node_unref0 (_tmp350_);
	if (bus_get_proxy_async) {
		_tmp351_ = TRUE;
	} else {
		_tmp351_ = conn_get_proxy_async;
	}
	if (_tmp351_) {
		gboolean _tmp352_;
		gboolean _tmp353_;
		_tmp352_ = vala_method_call_get_is_yield_expression (expr);
		_tmp353_ = _tmp352_;
		if (_tmp353_) {
			gint state = 0;
			ValaCCodeBaseModuleEmitContext* _tmp354_;
			gint _tmp355_;
			ValaCCodeFunction* _tmp356_;
			ValaCCodeFunction* _tmp357_;
			ValaCCodeIdentifier* _tmp358_;
			ValaCCodeIdentifier* _tmp359_;
			ValaCCodeMemberAccess* _tmp360_;
			ValaCCodeMemberAccess* _tmp361_;
			gchar* _tmp362_;
			gchar* _tmp363_;
			ValaCCodeConstant* _tmp364_;
			ValaCCodeConstant* _tmp365_;
			ValaCCodeFunction* _tmp366_;
			ValaCCodeFunction* _tmp367_;
			ValaCCodeFunctionCall* _tmp368_;
			ValaCCodeFunction* _tmp369_;
			ValaCCodeFunction* _tmp370_;
			ValaCCodeConstant* _tmp371_;
			ValaCCodeConstant* _tmp372_;
			ValaCCodeFunction* _tmp373_;
			ValaCCodeFunction* _tmp374_;
			gchar* _tmp375_;
			gchar* _tmp376_;
			ValaCCodeIdentifier* _tmp377_;
			ValaCCodeIdentifier* _tmp378_;
			ValaCCodeFunctionCall* _tmp379_;
			ValaCCodeFunctionCall* _tmp380_;
			ValaCCodeIdentifier* _tmp381_;
			ValaCCodeIdentifier* _tmp382_;
			ValaCCodeMemberAccess* _tmp383_;
			ValaCCodeMemberAccess* _tmp384_;
			ValaCCodeCastExpression* _tmp385_;
			ValaCCodeCastExpression* _tmp386_;
			ValaCCodeFunctionCall* _tmp387_;
			ValaCCodeIdentifier* _tmp388_;
			ValaCCodeIdentifier* _tmp389_;
			ValaCCodeMemberAccess* _tmp390_;
			ValaCCodeMemberAccess* _tmp391_;
			ValaCCodeFunctionCall* _tmp392_;
			ValaCCodeExpression* _tmp393_;
			ValaCCodeExpression* _tmp394_;
			ValaCCodeUnaryExpression* _tmp395_;
			ValaCCodeUnaryExpression* _tmp396_;
			_tmp354_ = ((ValaCCodeBaseModule*) self)->emit_context;
			_tmp355_ = _tmp354_->next_coroutine_state;
			_tmp354_->next_coroutine_state = _tmp355_ + 1;
			state = _tmp355_;
			_tmp356_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp357_ = _tmp356_;
			_tmp358_ = vala_ccode_identifier_new ("_data_");
			_tmp359_ = _tmp358_;
			_tmp360_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp359_, "_state_");
			_tmp361_ = _tmp360_;
			_tmp362_ = g_strdup_printf ("%i", state);
			_tmp363_ = _tmp362_;
			_tmp364_ = vala_ccode_constant_new (_tmp363_);
			_tmp365_ = _tmp364_;
			vala_ccode_function_add_assignment (_tmp357_, (ValaCCodeExpression*) _tmp361_, (ValaCCodeExpression*) _tmp365_);
			_vala_ccode_node_unref0 (_tmp365_);
			_g_free0 (_tmp363_);
			_vala_ccode_node_unref0 (_tmp361_);
			_vala_ccode_node_unref0 (_tmp359_);
			_tmp366_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp367_ = _tmp366_;
			_tmp368_ = ccall;
			vala_ccode_function_add_expression (_tmp367_, (ValaCCodeExpression*) _tmp368_);
			_tmp369_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp370_ = _tmp369_;
			_tmp371_ = vala_ccode_constant_new ("FALSE");
			_tmp372_ = _tmp371_;
			vala_ccode_function_add_return (_tmp370_, (ValaCCodeExpression*) _tmp372_);
			_vala_ccode_node_unref0 (_tmp372_);
			_tmp373_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp374_ = _tmp373_;
			_tmp375_ = g_strdup_printf ("_state_%d", state);
			_tmp376_ = _tmp375_;
			vala_ccode_function_add_label (_tmp374_, _tmp376_);
			_g_free0 (_tmp376_);
			_tmp377_ = vala_ccode_identifier_new ("g_async_initable_new_finish");
			_tmp378_ = _tmp377_;
			_tmp379_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp378_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp379_;
			_vala_ccode_node_unref0 (_tmp378_);
			_tmp380_ = ccall;
			_tmp381_ = vala_ccode_identifier_new ("_data_");
			_tmp382_ = _tmp381_;
			_tmp383_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp382_, "_source_object_");
			_tmp384_ = _tmp383_;
			_tmp385_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp384_, "GAsyncInitable *");
			_tmp386_ = _tmp385_;
			vala_ccode_function_call_add_argument (_tmp380_, (ValaCCodeExpression*) _tmp386_);
			_vala_ccode_node_unref0 (_tmp386_);
			_vala_ccode_node_unref0 (_tmp384_);
			_vala_ccode_node_unref0 (_tmp382_);
			_tmp387_ = ccall;
			_tmp388_ = vala_ccode_identifier_new ("_data_");
			_tmp389_ = _tmp388_;
			_tmp390_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp389_, "_res_");
			_tmp391_ = _tmp390_;
			vala_ccode_function_call_add_argument (_tmp387_, (ValaCCodeExpression*) _tmp391_);
			_vala_ccode_node_unref0 (_tmp391_);
			_vala_ccode_node_unref0 (_tmp389_);
			_tmp392_ = ccall;
			_tmp393_ = vala_ccode_base_module_get_inner_error_cexpression ((ValaCCodeBaseModule*) self);
			_tmp394_ = _tmp393_;
			_tmp395_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp394_);
			_tmp396_ = _tmp395_;
			vala_ccode_function_call_add_argument (_tmp392_, (ValaCCodeExpression*) _tmp396_);
			_vala_ccode_node_unref0 (_tmp396_);
			_vala_ccode_node_unref0 (_tmp394_);
		} else {
			ValaCCodeFunction* _tmp397_;
			ValaCCodeFunction* _tmp398_;
			ValaCCodeFunctionCall* _tmp399_;
			_tmp397_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp398_ = _tmp397_;
			_tmp399_ = ccall;
			vala_ccode_function_add_expression (_tmp398_, (ValaCCodeExpression*) _tmp399_);
			_vala_ccode_node_unref0 (ccall);
			_vala_code_node_unref0 (cancellable);
			_vala_code_node_unref0 (flags);
			_vala_code_node_unref0 (object_path);
			_vala_code_node_unref0 (name);
			_vala_iterable_unref0 (args);
			_vala_ccode_node_unref0 (get_qdata);
			_vala_ccode_node_unref0 (quark);
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (dbus_iface_info);
			_vala_ccode_node_unref0 (dbus_iface_name);
			_vala_ccode_node_unref0 (proxy_type);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
	}
	_tmp400_ = vala_expression_get_value_type ((ValaExpression*) expr);
	_tmp401_ = _tmp400_;
	_tmp402_ = vala_expression_get_value_type ((ValaExpression*) expr);
	_tmp403_ = _tmp402_;
	_tmp404_ = vala_data_type_get_value_owned (_tmp403_);
	_tmp405_ = _tmp404_;
	_tmp406_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp401_, _tmp405_, NULL, FALSE);
	temp_var = _tmp406_;
	_tmp407_ = temp_var;
	_tmp408_ = vala_symbol_get_name ((ValaSymbol*) _tmp407_);
	_tmp409_ = _tmp408_;
	_tmp410_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp409_);
	temp_ref = _tmp410_;
	_tmp411_ = temp_var;
	vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp411_, FALSE);
	_tmp412_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp413_ = _tmp412_;
	_tmp414_ = temp_ref;
	_tmp415_ = ccall;
	_tmp416_ = vala_expression_get_value_type ((ValaExpression*) expr);
	_tmp417_ = _tmp416_;
	_tmp418_ = vala_get_ccode_name ((ValaCodeNode*) _tmp417_);
	_tmp419_ = _tmp418_;
	_tmp420_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp415_, _tmp419_);
	_tmp421_ = _tmp420_;
	vala_ccode_function_add_assignment (_tmp413_, _tmp414_, (ValaCCodeExpression*) _tmp421_);
	_vala_ccode_node_unref0 (_tmp421_);
	_g_free0 (_tmp419_);
	_tmp422_ = temp_ref;
	vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) expr, _tmp422_);
	_vala_ccode_node_unref0 (temp_ref);
	_vala_code_node_unref0 (temp_var);
	_vala_ccode_node_unref0 (ccall);
	_vala_code_node_unref0 (cancellable);
	_vala_code_node_unref0 (flags);
	_vala_code_node_unref0 (object_path);
	_vala_code_node_unref0 (name);
	_vala_iterable_unref0 (args);
	_vala_ccode_node_unref0 (get_qdata);
	_vala_ccode_node_unref0 (quark);
	_vala_code_node_unref0 (object_type);
	_vala_ccode_node_unref0 (dbus_iface_info);
	_vala_ccode_node_unref0 (dbus_iface_name);
	_vala_ccode_node_unref0 (proxy_type);
	_vala_code_node_unref0 (type_arg);
	_vala_code_node_unref0 (ma);
	_vala_code_node_unref0 (mtype);
}

static gchar*
vala_gd_bus_client_module_generate_dbus_signal_handler (ValaGDBusClientModule* self,
                                                        ValaSignal* sig,
                                                        ValaObjectTypeSymbol* sym)
{
	gchar* wrapper_name = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp6_;
	ValaCCodeFunction* _tmp7_;
	ValaCCodeFunction* _tmp8_;
	ValaCCodeFunction* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeFunction* _tmp20_;
	ValaCCodeFunction* _tmp21_;
	ValaCCodeVariableDeclarator* _tmp22_;
	ValaCCodeVariableDeclarator* _tmp23_;
	ValaCCodeFunctionCall* iter_init = NULL;
	ValaCCodeIdentifier* _tmp24_;
	ValaCCodeIdentifier* _tmp25_;
	ValaCCodeFunctionCall* _tmp26_;
	ValaCCodeFunctionCall* _tmp27_;
	ValaCCodeFunctionCall* _tmp28_;
	ValaCCodeIdentifier* _tmp29_;
	ValaCCodeIdentifier* _tmp30_;
	ValaCCodeUnaryExpression* _tmp31_;
	ValaCCodeUnaryExpression* _tmp32_;
	ValaCCodeFunctionCall* _tmp33_;
	ValaCCodeIdentifier* _tmp34_;
	ValaCCodeIdentifier* _tmp35_;
	ValaCCodeFunction* _tmp36_;
	ValaCCodeFunction* _tmp37_;
	ValaCCodeFunctionCall* _tmp38_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp39_;
	ValaCCodeIdentifier* _tmp40_;
	ValaCCodeFunctionCall* _tmp41_;
	ValaCCodeFunctionCall* _tmp42_;
	ValaCCodeFunctionCall* _tmp43_;
	ValaCCodeIdentifier* _tmp44_;
	ValaCCodeIdentifier* _tmp45_;
	ValaCCodeFunctionCall* _tmp46_;
	ValaCCodeConstant* _tmp47_;
	ValaCCodeConstant* _tmp48_;
	ValaCCodeFunction* _tmp133_;
	ValaCCodeFunction* _tmp134_;
	ValaCCodeFunctionCall* _tmp135_;
	ValaCCodeFile* _tmp158_;
	ValaCCodeFunction* _tmp159_;
	ValaCCodeFile* _tmp160_;
	ValaCCodeFunction* _tmp161_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sig != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) sym, NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) sig, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup_printf ("_dbus_handle_%s_%s", _tmp1_, _tmp3_);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	wrapper_name = _tmp5_;
	_tmp6_ = wrapper_name;
	_tmp7_ = vala_ccode_function_new (_tmp6_, "void");
	function = _tmp7_;
	_tmp8_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp8_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp9_ = function;
	_tmp10_ = vala_get_ccode_name ((ValaCodeNode*) sym);
	_tmp11_ = _tmp10_;
	_tmp12_ = g_strconcat (_tmp11_, "*", NULL);
	_tmp13_ = _tmp12_;
	_tmp14_ = vala_ccode_parameter_new ("self", _tmp13_);
	_tmp15_ = _tmp14_;
	vala_ccode_function_add_parameter (_tmp9_, _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_g_free0 (_tmp13_);
	_g_free0 (_tmp11_);
	_tmp16_ = function;
	_tmp17_ = vala_ccode_parameter_new ("parameters", "GVariant*");
	_tmp18_ = _tmp17_;
	vala_ccode_function_add_parameter (_tmp16_, _tmp18_);
	_vala_ccode_node_unref0 (_tmp18_);
	_tmp19_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp19_);
	_tmp20_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp21_ = _tmp20_;
	_tmp22_ = vala_ccode_variable_declarator_new ("_arguments_iter", NULL, NULL);
	_tmp23_ = _tmp22_;
	vala_ccode_function_add_declaration (_tmp21_, "GVariantIter", (ValaCCodeDeclarator*) _tmp23_, 0);
	_vala_ccode_node_unref0 (_tmp23_);
	_tmp24_ = vala_ccode_identifier_new ("g_variant_iter_init");
	_tmp25_ = _tmp24_;
	_tmp26_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp25_);
	_tmp27_ = _tmp26_;
	_vala_ccode_node_unref0 (_tmp25_);
	iter_init = _tmp27_;
	_tmp28_ = iter_init;
	_tmp29_ = vala_ccode_identifier_new ("_arguments_iter");
	_tmp30_ = _tmp29_;
	_tmp31_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp30_);
	_tmp32_ = _tmp31_;
	vala_ccode_function_call_add_argument (_tmp28_, (ValaCCodeExpression*) _tmp32_);
	_vala_ccode_node_unref0 (_tmp32_);
	_vala_ccode_node_unref0 (_tmp30_);
	_tmp33_ = iter_init;
	_tmp34_ = vala_ccode_identifier_new ("parameters");
	_tmp35_ = _tmp34_;
	vala_ccode_function_call_add_argument (_tmp33_, (ValaCCodeExpression*) _tmp35_);
	_vala_ccode_node_unref0 (_tmp35_);
	_tmp36_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp37_ = _tmp36_;
	_tmp38_ = iter_init;
	vala_ccode_function_add_expression (_tmp37_, (ValaCCodeExpression*) _tmp38_);
	_tmp39_ = vala_ccode_identifier_new ("g_signal_emit_by_name");
	_tmp40_ = _tmp39_;
	_tmp41_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp40_);
	_tmp42_ = _tmp41_;
	_vala_ccode_node_unref0 (_tmp40_);
	ccall = _tmp42_;
	_tmp43_ = ccall;
	_tmp44_ = vala_ccode_identifier_new ("self");
	_tmp45_ = _tmp44_;
	vala_ccode_function_call_add_argument (_tmp43_, (ValaCCodeExpression*) _tmp45_);
	_vala_ccode_node_unref0 (_tmp45_);
	_tmp46_ = ccall;
	_tmp47_ = vala_ccode_base_module_get_signal_canonical_constant ((ValaCCodeBaseModule*) self, sig, NULL);
	_tmp48_ = _tmp47_;
	vala_ccode_function_call_add_argument (_tmp46_, (ValaCCodeExpression*) _tmp48_);
	_vala_ccode_node_unref0 (_tmp48_);
	{
		ValaList* _param_list = NULL;
		ValaList* _tmp49_;
		gint _param_size = 0;
		ValaList* _tmp50_;
		gint _tmp51_;
		gint _tmp52_;
		gint _param_index = 0;
		_tmp49_ = vala_callable_get_parameters ((ValaCallable*) sig);
		_param_list = _tmp49_;
		_tmp50_ = _param_list;
		_tmp51_ = vala_collection_get_size ((ValaCollection*) _tmp50_);
		_tmp52_ = _tmp51_;
		_param_size = _tmp52_;
		_param_index = -1;
		while (TRUE) {
			ValaParameter* param = NULL;
			ValaList* _tmp53_;
			gpointer _tmp54_;
			gchar* param_name = NULL;
			ValaParameter* _tmp55_;
			const gchar* _tmp56_;
			const gchar* _tmp57_;
			gchar* _tmp58_;
			ValaDataType* owned_type = NULL;
			ValaParameter* _tmp59_;
			ValaDataType* _tmp60_;
			ValaDataType* _tmp61_;
			ValaDataType* _tmp62_;
			ValaDataType* _tmp63_;
			ValaCCodeFunction* _tmp64_;
			ValaCCodeFunction* _tmp65_;
			ValaDataType* _tmp66_;
			gchar* _tmp67_;
			gchar* _tmp68_;
			const gchar* _tmp69_;
			ValaParameter* _tmp70_;
			ValaDataType* _tmp71_;
			ValaDataType* _tmp72_;
			ValaCCodeExpression* _tmp73_;
			ValaCCodeExpression* _tmp74_;
			ValaCCodeVariableDeclarator* _tmp75_;
			ValaCCodeVariableDeclarator* _tmp76_;
			ValaStruct* st = NULL;
			ValaParameter* _tmp77_;
			ValaDataType* _tmp78_;
			ValaDataType* _tmp79_;
			ValaTypeSymbol* _tmp80_;
			ValaTypeSymbol* _tmp81_;
			ValaStruct* _tmp82_;
			gboolean _tmp83_ = FALSE;
			ValaStruct* _tmp84_;
			ValaParameter* _tmp96_;
			ValaDataType* _tmp97_;
			ValaDataType* _tmp98_;
			ValaParameter* _tmp124_;
			ValaDataType* _tmp125_;
			ValaDataType* _tmp126_;
			ValaCCodeIdentifier* _tmp127_;
			ValaCCodeIdentifier* _tmp128_;
			const gchar* _tmp129_;
			ValaCCodeIdentifier* _tmp130_;
			ValaCCodeIdentifier* _tmp131_;
			ValaParameter* _tmp132_;
			_param_index = _param_index + 1;
			if (!(_param_index < _param_size)) {
				break;
			}
			_tmp53_ = _param_list;
			_tmp54_ = vala_list_get (_tmp53_, _param_index);
			param = (ValaParameter*) _tmp54_;
			_tmp55_ = param;
			_tmp56_ = vala_symbol_get_name ((ValaSymbol*) _tmp55_);
			_tmp57_ = _tmp56_;
			_tmp58_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp57_);
			param_name = _tmp58_;
			_tmp59_ = param;
			_tmp60_ = vala_variable_get_variable_type ((ValaVariable*) _tmp59_);
			_tmp61_ = _tmp60_;
			_tmp62_ = vala_data_type_copy (_tmp61_);
			owned_type = _tmp62_;
			_tmp63_ = owned_type;
			vala_data_type_set_value_owned (_tmp63_, TRUE);
			_tmp64_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp65_ = _tmp64_;
			_tmp66_ = owned_type;
			_tmp67_ = vala_get_ccode_name ((ValaCodeNode*) _tmp66_);
			_tmp68_ = _tmp67_;
			_tmp69_ = param_name;
			_tmp70_ = param;
			_tmp71_ = vala_variable_get_variable_type ((ValaVariable*) _tmp70_);
			_tmp72_ = _tmp71_;
			_tmp73_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp72_, TRUE, FALSE);
			_tmp74_ = _tmp73_;
			_tmp75_ = vala_ccode_variable_declarator_new_zero (_tmp69_, _tmp74_, NULL);
			_tmp76_ = _tmp75_;
			vala_ccode_function_add_declaration (_tmp65_, _tmp68_, (ValaCCodeDeclarator*) _tmp76_, 0);
			_vala_ccode_node_unref0 (_tmp76_);
			_vala_ccode_node_unref0 (_tmp74_);
			_g_free0 (_tmp68_);
			_tmp77_ = param;
			_tmp78_ = vala_variable_get_variable_type ((ValaVariable*) _tmp77_);
			_tmp79_ = _tmp78_;
			_tmp80_ = vala_data_type_get_data_type (_tmp79_);
			_tmp81_ = _tmp80_;
			_tmp82_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp81_, VALA_TYPE_STRUCT) ? ((ValaStruct*) _tmp81_) : NULL);
			st = _tmp82_;
			_tmp84_ = st;
			if (_tmp84_ != NULL) {
				ValaStruct* _tmp85_;
				_tmp85_ = st;
				_tmp83_ = !vala_struct_is_simple_type (_tmp85_);
			} else {
				_tmp83_ = FALSE;
			}
			if (_tmp83_) {
				ValaCCodeFunctionCall* _tmp86_;
				const gchar* _tmp87_;
				ValaCCodeIdentifier* _tmp88_;
				ValaCCodeIdentifier* _tmp89_;
				ValaCCodeUnaryExpression* _tmp90_;
				ValaCCodeUnaryExpression* _tmp91_;
				_tmp86_ = ccall;
				_tmp87_ = param_name;
				_tmp88_ = vala_ccode_identifier_new (_tmp87_);
				_tmp89_ = _tmp88_;
				_tmp90_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp89_);
				_tmp91_ = _tmp90_;
				vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp91_);
				_vala_ccode_node_unref0 (_tmp91_);
				_vala_ccode_node_unref0 (_tmp89_);
			} else {
				ValaCCodeFunctionCall* _tmp92_;
				const gchar* _tmp93_;
				ValaCCodeIdentifier* _tmp94_;
				ValaCCodeIdentifier* _tmp95_;
				_tmp92_ = ccall;
				_tmp93_ = param_name;
				_tmp94_ = vala_ccode_identifier_new (_tmp93_);
				_tmp95_ = _tmp94_;
				vala_ccode_function_call_add_argument (_tmp92_, (ValaCCodeExpression*) _tmp95_);
				_vala_ccode_node_unref0 (_tmp95_);
			}
			_tmp96_ = param;
			_tmp97_ = vala_variable_get_variable_type ((ValaVariable*) _tmp96_);
			_tmp98_ = _tmp97_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp98_, VALA_TYPE_ARRAY_TYPE)) {
				ValaArrayType* array_type = NULL;
				ValaParameter* _tmp99_;
				ValaDataType* _tmp100_;
				ValaDataType* _tmp101_;
				ValaArrayType* _tmp102_;
				gchar* length_ctype = NULL;
				ValaArrayType* _tmp103_;
				gchar* _tmp104_;
				_tmp99_ = param;
				_tmp100_ = vala_variable_get_variable_type ((ValaVariable*) _tmp99_);
				_tmp101_ = _tmp100_;
				_tmp102_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp101_, VALA_TYPE_ARRAY_TYPE, ValaArrayType));
				array_type = _tmp102_;
				_tmp103_ = array_type;
				_tmp104_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp103_);
				length_ctype = _tmp104_;
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp105_ = FALSE;
						_tmp105_ = TRUE;
						while (TRUE) {
							ValaArrayType* _tmp107_;
							gint _tmp108_;
							gint _tmp109_;
							gchar* length_cname = NULL;
							ValaParameter* _tmp110_;
							gchar* _tmp111_;
							ValaCCodeFunction* _tmp112_;
							ValaCCodeFunction* _tmp113_;
							const gchar* _tmp114_;
							const gchar* _tmp115_;
							ValaCCodeConstant* _tmp116_;
							ValaCCodeConstant* _tmp117_;
							ValaCCodeVariableDeclarator* _tmp118_;
							ValaCCodeVariableDeclarator* _tmp119_;
							ValaCCodeFunctionCall* _tmp120_;
							const gchar* _tmp121_;
							ValaCCodeIdentifier* _tmp122_;
							ValaCCodeIdentifier* _tmp123_;
							if (!_tmp105_) {
								gint _tmp106_;
								_tmp106_ = dim;
								dim = _tmp106_ + 1;
							}
							_tmp105_ = FALSE;
							_tmp107_ = array_type;
							_tmp108_ = vala_array_type_get_rank (_tmp107_);
							_tmp109_ = _tmp108_;
							if (!(dim <= _tmp109_)) {
								break;
							}
							_tmp110_ = param;
							_tmp111_ = vala_ccode_base_module_get_variable_array_length_cname ((ValaCCodeBaseModule*) self, (ValaVariable*) _tmp110_, dim);
							length_cname = _tmp111_;
							_tmp112_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp113_ = _tmp112_;
							_tmp114_ = length_ctype;
							_tmp115_ = length_cname;
							_tmp116_ = vala_ccode_constant_new ("0");
							_tmp117_ = _tmp116_;
							_tmp118_ = vala_ccode_variable_declarator_new (_tmp115_, (ValaCCodeExpression*) _tmp117_, NULL);
							_tmp119_ = _tmp118_;
							vala_ccode_function_add_declaration (_tmp113_, _tmp114_, (ValaCCodeDeclarator*) _tmp119_, 0);
							_vala_ccode_node_unref0 (_tmp119_);
							_vala_ccode_node_unref0 (_tmp117_);
							_tmp120_ = ccall;
							_tmp121_ = length_cname;
							_tmp122_ = vala_ccode_identifier_new (_tmp121_);
							_tmp123_ = _tmp122_;
							vala_ccode_function_call_add_argument (_tmp120_, (ValaCCodeExpression*) _tmp123_);
							_vala_ccode_node_unref0 (_tmp123_);
							_g_free0 (length_cname);
						}
					}
				}
				_g_free0 (length_ctype);
				_vala_code_node_unref0 (array_type);
			}
			_tmp124_ = param;
			_tmp125_ = vala_variable_get_variable_type ((ValaVariable*) _tmp124_);
			_tmp126_ = _tmp125_;
			_tmp127_ = vala_ccode_identifier_new ("_arguments_iter");
			_tmp128_ = _tmp127_;
			_tmp129_ = param_name;
			_tmp130_ = vala_ccode_identifier_new (_tmp129_);
			_tmp131_ = _tmp130_;
			_tmp132_ = param;
			vala_gvariant_module_read_expression ((ValaGVariantModule*) self, _tmp126_, (ValaCCodeExpression*) _tmp128_, (ValaCCodeExpression*) _tmp131_, (ValaSymbol*) _tmp132_, NULL, NULL);
			_vala_ccode_node_unref0 (_tmp131_);
			_vala_ccode_node_unref0 (_tmp128_);
			_vala_code_node_unref0 (st);
			_vala_code_node_unref0 (owned_type);
			_g_free0 (param_name);
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	_tmp133_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp134_ = _tmp133_;
	_tmp135_ = ccall;
	vala_ccode_function_add_expression (_tmp134_, (ValaCCodeExpression*) _tmp135_);
	{
		ValaList* _param_list = NULL;
		ValaList* _tmp136_;
		gint _param_size = 0;
		ValaList* _tmp137_;
		gint _tmp138_;
		gint _tmp139_;
		gint _param_index = 0;
		_tmp136_ = vala_callable_get_parameters ((ValaCallable*) sig);
		_param_list = _tmp136_;
		_tmp137_ = _param_list;
		_tmp138_ = vala_collection_get_size ((ValaCollection*) _tmp137_);
		_tmp139_ = _tmp138_;
		_param_size = _tmp139_;
		_param_index = -1;
		while (TRUE) {
			ValaParameter* param = NULL;
			ValaList* _tmp140_;
			gpointer _tmp141_;
			ValaDataType* owned_type = NULL;
			ValaParameter* _tmp142_;
			ValaDataType* _tmp143_;
			ValaDataType* _tmp144_;
			ValaDataType* _tmp145_;
			ValaDataType* _tmp146_;
			ValaDataType* _tmp147_;
			_param_index = _param_index + 1;
			if (!(_param_index < _param_size)) {
				break;
			}
			_tmp140_ = _param_list;
			_tmp141_ = vala_list_get (_tmp140_, _param_index);
			param = (ValaParameter*) _tmp141_;
			_tmp142_ = param;
			_tmp143_ = vala_variable_get_variable_type ((ValaVariable*) _tmp142_);
			_tmp144_ = _tmp143_;
			_tmp145_ = vala_data_type_copy (_tmp144_);
			owned_type = _tmp145_;
			_tmp146_ = owned_type;
			vala_data_type_set_value_owned (_tmp146_, TRUE);
			_tmp147_ = owned_type;
			if (vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp147_)) {
				ValaLocalVariable* local = NULL;
				ValaDataType* _tmp148_;
				ValaParameter* _tmp149_;
				const gchar* _tmp150_;
				const gchar* _tmp151_;
				ValaLocalVariable* _tmp152_;
				ValaCCodeFunction* _tmp153_;
				ValaCCodeFunction* _tmp154_;
				ValaLocalVariable* _tmp155_;
				ValaCCodeExpression* _tmp156_;
				ValaCCodeExpression* _tmp157_;
				_tmp148_ = owned_type;
				_tmp149_ = param;
				_tmp150_ = vala_symbol_get_name ((ValaSymbol*) _tmp149_);
				_tmp151_ = _tmp150_;
				_tmp152_ = vala_local_variable_new (_tmp148_, _tmp151_, NULL, NULL);
				local = _tmp152_;
				_tmp153_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp154_ = _tmp153_;
				_tmp155_ = local;
				_tmp156_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp155_);
				_tmp157_ = _tmp156_;
				vala_ccode_function_add_expression (_tmp154_, _tmp157_);
				_vala_ccode_node_unref0 (_tmp157_);
				_vala_code_node_unref0 (local);
			}
			_vala_code_node_unref0 (owned_type);
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp158_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp159_ = function;
	vala_ccode_file_add_function_declaration (_tmp158_, _tmp159_);
	_tmp160_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp161_ = function;
	vala_ccode_file_add_function (_tmp160_, _tmp161_);
	result = wrapper_name;
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (iter_init);
	_vala_ccode_node_unref0 (function);
	return result;
}

static void
vala_gd_bus_client_module_generate_signal_handler_function (ValaGDBusClientModule* self,
                                                            ValaObjectTypeSymbol* sym)
{
	ValaCCodeFunction* cfunc = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	ValaCCodeFunction* _tmp4_;
	ValaCCodeFunction* _tmp5_;
	ValaCCodeFunction* _tmp6_;
	ValaCCodeParameter* _tmp7_;
	ValaCCodeParameter* _tmp8_;
	ValaCCodeFunction* _tmp9_;
	ValaCCodeParameter* _tmp10_;
	ValaCCodeParameter* _tmp11_;
	ValaCCodeFunction* _tmp12_;
	ValaCCodeParameter* _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeFunction* _tmp15_;
	ValaCCodeParameter* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeFunction* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeModifiers _tmp20_;
	ValaCCodeModifiers _tmp21_;
	ValaCCodeFile* _tmp22_;
	ValaCCodeFunction* _tmp23_;
	ValaCCodeFunction* _tmp24_;
	gboolean firstif = FALSE;
	ValaCCodeFile* _tmp85_;
	ValaCCodeFunction* _tmp86_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat (_tmp1_, "proxy_g_signal", NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = vala_ccode_function_new (_tmp3_, "void");
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	cfunc = _tmp5_;
	_tmp6_ = cfunc;
	_tmp7_ = vala_ccode_parameter_new ("proxy", "GDBusProxy*");
	_tmp8_ = _tmp7_;
	vala_ccode_function_add_parameter (_tmp6_, _tmp8_);
	_vala_ccode_node_unref0 (_tmp8_);
	_tmp9_ = cfunc;
	_tmp10_ = vala_ccode_parameter_new ("sender_name", "const gchar*");
	_tmp11_ = _tmp10_;
	vala_ccode_function_add_parameter (_tmp9_, _tmp11_);
	_vala_ccode_node_unref0 (_tmp11_);
	_tmp12_ = cfunc;
	_tmp13_ = vala_ccode_parameter_new ("signal_name", "const gchar*");
	_tmp14_ = _tmp13_;
	vala_ccode_function_add_parameter (_tmp12_, _tmp14_);
	_vala_ccode_node_unref0 (_tmp14_);
	_tmp15_ = cfunc;
	_tmp16_ = vala_ccode_parameter_new ("parameters", "GVariant*");
	_tmp17_ = _tmp16_;
	vala_ccode_function_add_parameter (_tmp15_, _tmp17_);
	_vala_ccode_node_unref0 (_tmp17_);
	_tmp18_ = cfunc;
	_tmp19_ = cfunc;
	_tmp20_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp19_);
	_tmp21_ = _tmp20_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp19_, _tmp21_ | VALA_CCODE_MODIFIERS_STATIC);
	_tmp22_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp23_ = cfunc;
	vala_ccode_file_add_function_declaration (_tmp22_, _tmp23_);
	_tmp24_ = cfunc;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp24_);
	firstif = TRUE;
	{
		ValaList* _sig_list = NULL;
		ValaList* _tmp25_;
		gint _sig_size = 0;
		ValaList* _tmp26_;
		gint _tmp27_;
		gint _tmp28_;
		gint _sig_index = 0;
		_tmp25_ = vala_object_type_symbol_get_signals (sym);
		_sig_list = _tmp25_;
		_tmp26_ = _sig_list;
		_tmp27_ = vala_collection_get_size ((ValaCollection*) _tmp26_);
		_tmp28_ = _tmp27_;
		_sig_size = _tmp28_;
		_sig_index = -1;
		while (TRUE) {
			ValaSignal* sig = NULL;
			ValaList* _tmp29_;
			gpointer _tmp30_;
			ValaSignal* _tmp31_;
			ValaSymbolAccessibility _tmp32_;
			ValaSymbolAccessibility _tmp33_;
			ValaCCodeFile* _tmp34_;
			ValaCCodeFunctionCall* ccheck = NULL;
			ValaCCodeIdentifier* _tmp35_;
			ValaCCodeIdentifier* _tmp36_;
			ValaCCodeFunctionCall* _tmp37_;
			ValaCCodeFunctionCall* _tmp38_;
			ValaCCodeFunctionCall* _tmp39_;
			ValaCCodeIdentifier* _tmp40_;
			ValaCCodeIdentifier* _tmp41_;
			ValaCCodeFunctionCall* _tmp42_;
			ValaSignal* _tmp43_;
			gchar* _tmp44_;
			gchar* _tmp45_;
			gchar* _tmp46_;
			gchar* _tmp47_;
			ValaCCodeConstant* _tmp48_;
			ValaCCodeConstant* _tmp49_;
			ValaCCodeBinaryExpression* cond = NULL;
			ValaCCodeFunctionCall* _tmp50_;
			ValaCCodeConstant* _tmp51_;
			ValaCCodeConstant* _tmp52_;
			ValaCCodeBinaryExpression* _tmp53_;
			ValaCCodeBinaryExpression* _tmp54_;
			ValaCCodeFunctionCall* ccall = NULL;
			ValaSignal* _tmp61_;
			gchar* _tmp62_;
			gchar* _tmp63_;
			ValaCCodeIdentifier* _tmp64_;
			ValaCCodeIdentifier* _tmp65_;
			ValaCCodeFunctionCall* _tmp66_;
			ValaCCodeFunctionCall* _tmp67_;
			ValaCCodeFunctionCall* _tmp68_;
			ValaCCodeIdentifier* _tmp69_;
			ValaCCodeIdentifier* _tmp70_;
			gchar* _tmp71_;
			gchar* _tmp72_;
			gchar* _tmp73_;
			gchar* _tmp74_;
			ValaCCodeCastExpression* _tmp75_;
			ValaCCodeCastExpression* _tmp76_;
			ValaCCodeFunctionCall* _tmp77_;
			ValaCCodeIdentifier* _tmp78_;
			ValaCCodeIdentifier* _tmp79_;
			ValaCCodeFunction* _tmp80_;
			ValaCCodeFunction* _tmp81_;
			ValaCCodeFunctionCall* _tmp82_;
			_sig_index = _sig_index + 1;
			if (!(_sig_index < _sig_size)) {
				break;
			}
			_tmp29_ = _sig_list;
			_tmp30_ = vala_list_get (_tmp29_, _sig_index);
			sig = (ValaSignal*) _tmp30_;
			_tmp31_ = sig;
			_tmp32_ = vala_symbol_get_access ((ValaSymbol*) _tmp31_);
			_tmp33_ = _tmp32_;
			if (_tmp33_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
				_vala_code_node_unref0 (sig);
				continue;
			}
			_tmp34_ = ((ValaCCodeBaseModule*) self)->cfile;
			vala_ccode_file_add_include (_tmp34_, "string.h", FALSE);
			_tmp35_ = vala_ccode_identifier_new ("strcmp");
			_tmp36_ = _tmp35_;
			_tmp37_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp36_);
			_tmp38_ = _tmp37_;
			_vala_ccode_node_unref0 (_tmp36_);
			ccheck = _tmp38_;
			_tmp39_ = ccheck;
			_tmp40_ = vala_ccode_identifier_new ("signal_name");
			_tmp41_ = _tmp40_;
			vala_ccode_function_call_add_argument (_tmp39_, (ValaCCodeExpression*) _tmp41_);
			_vala_ccode_node_unref0 (_tmp41_);
			_tmp42_ = ccheck;
			_tmp43_ = sig;
			_tmp44_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp43_);
			_tmp45_ = _tmp44_;
			_tmp46_ = g_strdup_printf ("\"%s\"", _tmp45_);
			_tmp47_ = _tmp46_;
			_tmp48_ = vala_ccode_constant_new (_tmp47_);
			_tmp49_ = _tmp48_;
			vala_ccode_function_call_add_argument (_tmp42_, (ValaCCodeExpression*) _tmp49_);
			_vala_ccode_node_unref0 (_tmp49_);
			_g_free0 (_tmp47_);
			_g_free0 (_tmp45_);
			_tmp50_ = ccheck;
			_tmp51_ = vala_ccode_constant_new ("0");
			_tmp52_ = _tmp51_;
			_tmp53_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp50_, (ValaCCodeExpression*) _tmp52_);
			_tmp54_ = _tmp53_;
			_vala_ccode_node_unref0 (_tmp52_);
			cond = _tmp54_;
			if (firstif) {
				ValaCCodeFunction* _tmp55_;
				ValaCCodeFunction* _tmp56_;
				ValaCCodeBinaryExpression* _tmp57_;
				_tmp55_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp56_ = _tmp55_;
				_tmp57_ = cond;
				vala_ccode_function_open_if (_tmp56_, (ValaCCodeExpression*) _tmp57_);
				firstif = FALSE;
			} else {
				ValaCCodeFunction* _tmp58_;
				ValaCCodeFunction* _tmp59_;
				ValaCCodeBinaryExpression* _tmp60_;
				_tmp58_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp59_ = _tmp58_;
				_tmp60_ = cond;
				vala_ccode_function_else_if (_tmp59_, (ValaCCodeExpression*) _tmp60_);
			}
			_tmp61_ = sig;
			_tmp62_ = vala_gd_bus_client_module_generate_dbus_signal_handler (self, _tmp61_, sym);
			_tmp63_ = _tmp62_;
			_tmp64_ = vala_ccode_identifier_new (_tmp63_);
			_tmp65_ = _tmp64_;
			_tmp66_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp65_);
			_tmp67_ = _tmp66_;
			_vala_ccode_node_unref0 (_tmp65_);
			_g_free0 (_tmp63_);
			ccall = _tmp67_;
			_tmp68_ = ccall;
			_tmp69_ = vala_ccode_identifier_new ("proxy");
			_tmp70_ = _tmp69_;
			_tmp71_ = vala_get_ccode_name ((ValaCodeNode*) sym);
			_tmp72_ = _tmp71_;
			_tmp73_ = g_strconcat (_tmp72_, "*", NULL);
			_tmp74_ = _tmp73_;
			_tmp75_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp70_, _tmp74_);
			_tmp76_ = _tmp75_;
			vala_ccode_function_call_add_argument (_tmp68_, (ValaCCodeExpression*) _tmp76_);
			_vala_ccode_node_unref0 (_tmp76_);
			_g_free0 (_tmp74_);
			_g_free0 (_tmp72_);
			_vala_ccode_node_unref0 (_tmp70_);
			_tmp77_ = ccall;
			_tmp78_ = vala_ccode_identifier_new ("parameters");
			_tmp79_ = _tmp78_;
			vala_ccode_function_call_add_argument (_tmp77_, (ValaCCodeExpression*) _tmp79_);
			_vala_ccode_node_unref0 (_tmp79_);
			_tmp80_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp81_ = _tmp80_;
			_tmp82_ = ccall;
			vala_ccode_function_add_expression (_tmp81_, (ValaCCodeExpression*) _tmp82_);
			_vala_ccode_node_unref0 (ccall);
			_vala_ccode_node_unref0 (cond);
			_vala_ccode_node_unref0 (ccheck);
			_vala_code_node_unref0 (sig);
		}
		_vala_iterable_unref0 (_sig_list);
	}
	if (!firstif) {
		ValaCCodeFunction* _tmp83_;
		ValaCCodeFunction* _tmp84_;
		_tmp83_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp84_ = _tmp83_;
		vala_ccode_function_close (_tmp84_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp85_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp86_ = cfunc;
	vala_ccode_file_add_function (_tmp85_, _tmp86_);
	_vala_ccode_node_unref0 (cfunc);
}

static gpointer
_vala_iterable_ref0 (gpointer self)
{
	return self ? vala_iterable_ref (self) : NULL;
}

static void
vala_gd_bus_client_module_generate_marshalling (ValaGDBusClientModule* self,
                                                ValaMethod* m,
                                                ValaGDBusClientModuleCallType call_type,
                                                const gchar* iface_name,
                                                const gchar* method_name,
                                                gint method_timeout)
{
	ValaCCodeCastExpression* gdbusproxy = NULL;
	ValaCCodeIdentifier* _tmp0_;
	ValaCCodeIdentifier* _tmp1_;
	ValaCCodeCastExpression* _tmp2_;
	ValaCCodeCastExpression* _tmp3_;
	ValaCCodeFunctionCall* connection = NULL;
	ValaCCodeIdentifier* _tmp4_;
	ValaCCodeIdentifier* _tmp5_;
	ValaCCodeFunctionCall* _tmp6_;
	ValaCCodeFunctionCall* _tmp7_;
	ValaCCodeFunctionCall* _tmp8_;
	ValaCCodeCastExpression* _tmp9_;
	gboolean uses_fd = FALSE;
	gboolean has_error_argument = FALSE;
	gboolean _tmp15_;
	gboolean _tmp16_;
	ValaCCodeExpression* error_argument = NULL;
	gboolean _tmp388_ = FALSE;
	g_return_if_fail (self != NULL);
	g_return_if_fail (m != NULL);
	_tmp0_ = vala_ccode_identifier_new ("self");
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp1_, "GDBusProxy *");
	_tmp3_ = _tmp2_;
	_vala_ccode_node_unref0 (_tmp1_);
	gdbusproxy = _tmp3_;
	_tmp4_ = vala_ccode_identifier_new ("g_dbus_proxy_get_connection");
	_tmp5_ = _tmp4_;
	_tmp6_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp5_);
	_tmp7_ = _tmp6_;
	_vala_ccode_node_unref0 (_tmp5_);
	connection = _tmp7_;
	_tmp8_ = connection;
	_tmp9_ = gdbusproxy;
	vala_ccode_function_call_add_argument (_tmp8_, (ValaCCodeExpression*) _tmp9_);
	uses_fd = vala_gd_bus_module_dbus_method_uses_file_descriptor ((ValaGDBusModule*) self, m);
	if (uses_fd) {
		ValaCCodeFile* _tmp10_;
		ValaCCodeFunction* _tmp11_;
		ValaCCodeFunction* _tmp12_;
		ValaCCodeVariableDeclarator* _tmp13_;
		ValaCCodeVariableDeclarator* _tmp14_;
		_tmp10_ = ((ValaCCodeBaseModule*) self)->cfile;
		vala_ccode_file_add_include (_tmp10_, "gio/gunixfdlist.h", FALSE);
		_tmp11_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp12_ = _tmp11_;
		_tmp13_ = vala_ccode_variable_declarator_new ("_fd_list", NULL, NULL);
		_tmp14_ = _tmp13_;
		vala_ccode_function_add_declaration (_tmp12_, "GUnixFDList*", (ValaCCodeDeclarator*) _tmp14_, 0);
		_vala_ccode_node_unref0 (_tmp14_);
	}
	_tmp15_ = vala_code_node_get_tree_can_fail ((ValaCodeNode*) m);
	_tmp16_ = _tmp15_;
	has_error_argument = _tmp16_;
	if (has_error_argument) {
		ValaCCodeIdentifier* _tmp17_;
		_tmp17_ = vala_ccode_identifier_new ("error");
		_vala_ccode_node_unref0 (error_argument);
		error_argument = (ValaCCodeExpression*) _tmp17_;
	} else {
		ValaCCodeConstant* _tmp18_;
		_tmp18_ = vala_ccode_constant_new ("NULL");
		_vala_ccode_node_unref0 (error_argument);
		error_argument = (ValaCCodeExpression*) _tmp18_;
	}
	if (call_type != VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH) {
		ValaCCodeFunctionCall* destination = NULL;
		ValaCCodeIdentifier* _tmp19_;
		ValaCCodeIdentifier* _tmp20_;
		ValaCCodeFunctionCall* _tmp21_;
		ValaCCodeFunctionCall* _tmp22_;
		ValaCCodeFunctionCall* _tmp23_;
		ValaCCodeCastExpression* _tmp24_;
		ValaCCodeFunctionCall* interface_name = NULL;
		ValaCCodeIdentifier* _tmp25_;
		ValaCCodeIdentifier* _tmp26_;
		ValaCCodeFunctionCall* _tmp27_;
		ValaCCodeFunctionCall* _tmp28_;
		ValaCCodeFunctionCall* _tmp29_;
		ValaCCodeCastExpression* _tmp30_;
		ValaCCodeFunctionCall* object_path = NULL;
		ValaCCodeIdentifier* _tmp31_;
		ValaCCodeIdentifier* _tmp32_;
		ValaCCodeFunctionCall* _tmp33_;
		ValaCCodeFunctionCall* _tmp34_;
		ValaCCodeFunctionCall* _tmp35_;
		ValaCCodeCastExpression* _tmp36_;
		ValaCCodeExpression* timeout = NULL;
		ValaArrayList* error_types = NULL;
		GEqualFunc _tmp45_;
		ValaArrayList* _tmp46_;
		ValaArrayList* _tmp47_;
		ValaCCodeFunction* _tmp69_;
		ValaCCodeFunction* _tmp70_;
		ValaCCodeVariableDeclarator* _tmp71_;
		ValaCCodeVariableDeclarator* _tmp72_;
		ValaCCodeFunctionCall* ccall = NULL;
		ValaCCodeIdentifier* _tmp73_;
		ValaCCodeIdentifier* _tmp74_;
		ValaCCodeFunctionCall* _tmp75_;
		ValaCCodeFunctionCall* _tmp76_;
		ValaCCodeFunctionCall* _tmp77_;
		ValaCCodeFunctionCall* _tmp78_;
		ValaCCodeFunctionCall* _tmp79_;
		ValaCCodeFunctionCall* _tmp80_;
		ValaCCodeFunctionCall* _tmp88_;
		gchar* _tmp89_;
		gchar* _tmp90_;
		ValaCCodeConstant* _tmp91_;
		ValaCCodeConstant* _tmp92_;
		ValaCCodeFunction* _tmp93_;
		ValaCCodeFunction* _tmp94_;
		ValaCCodeIdentifier* _tmp95_;
		ValaCCodeIdentifier* _tmp96_;
		ValaCCodeFunctionCall* _tmp97_;
		ValaCCodeFunction* _tmp98_;
		ValaCCodeFunction* _tmp99_;
		ValaCCodeVariableDeclarator* _tmp100_;
		ValaCCodeVariableDeclarator* _tmp101_;
		ValaCCodeFunction* _tmp102_;
		ValaCCodeFunction* _tmp103_;
		ValaCCodeVariableDeclarator* _tmp104_;
		ValaCCodeVariableDeclarator* _tmp105_;
		ValaCCodeFunctionCall* builder_init = NULL;
		ValaCCodeIdentifier* _tmp106_;
		ValaCCodeIdentifier* _tmp107_;
		ValaCCodeFunctionCall* _tmp108_;
		ValaCCodeFunctionCall* _tmp109_;
		ValaCCodeFunctionCall* _tmp110_;
		ValaCCodeIdentifier* _tmp111_;
		ValaCCodeIdentifier* _tmp112_;
		ValaCCodeUnaryExpression* _tmp113_;
		ValaCCodeUnaryExpression* _tmp114_;
		ValaCCodeFunctionCall* _tmp115_;
		ValaCCodeIdentifier* _tmp116_;
		ValaCCodeIdentifier* _tmp117_;
		ValaCCodeFunction* _tmp118_;
		ValaCCodeFunction* _tmp119_;
		ValaCCodeFunctionCall* _tmp120_;
		ValaCCodeExpression* cancellable = NULL;
		ValaCCodeConstant* _tmp129_;
		ValaCCodeFunctionCall* builder_end = NULL;
		ValaCCodeIdentifier* _tmp182_;
		ValaCCodeIdentifier* _tmp183_;
		ValaCCodeFunctionCall* _tmp184_;
		ValaCCodeFunctionCall* _tmp185_;
		ValaCCodeFunctionCall* _tmp186_;
		ValaCCodeIdentifier* _tmp187_;
		ValaCCodeIdentifier* _tmp188_;
		ValaCCodeUnaryExpression* _tmp189_;
		ValaCCodeUnaryExpression* _tmp190_;
		ValaCCodeFunction* _tmp191_;
		ValaCCodeFunction* _tmp192_;
		ValaCCodeIdentifier* _tmp193_;
		ValaCCodeIdentifier* _tmp194_;
		ValaCCodeFunctionCall* _tmp195_;
		ValaCCodeFunctionCall* set_body = NULL;
		ValaCCodeIdentifier* _tmp196_;
		ValaCCodeIdentifier* _tmp197_;
		ValaCCodeFunctionCall* _tmp198_;
		ValaCCodeFunctionCall* _tmp199_;
		ValaCCodeFunctionCall* _tmp200_;
		ValaCCodeIdentifier* _tmp201_;
		ValaCCodeIdentifier* _tmp202_;
		ValaCCodeFunctionCall* _tmp203_;
		ValaCCodeIdentifier* _tmp204_;
		ValaCCodeIdentifier* _tmp205_;
		ValaCCodeFunction* _tmp206_;
		ValaCCodeFunction* _tmp207_;
		ValaCCodeFunctionCall* _tmp208_;
		ValaCCodeIdentifier* _tmp332_;
		ValaCCodeIdentifier* _tmp333_;
		ValaCCodeFunctionCall* _tmp334_;
		ValaCCodeFunctionCall* _tmp335_;
		ValaCCodeIdentifier* _tmp336_;
		ValaCCodeIdentifier* _tmp337_;
		ValaCCodeFunction* _tmp338_;
		ValaCCodeFunction* _tmp339_;
		ValaCCodeFunctionCall* _tmp340_;
		_tmp19_ = vala_ccode_identifier_new ("g_dbus_proxy_get_name");
		_tmp20_ = _tmp19_;
		_tmp21_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp20_);
		_tmp22_ = _tmp21_;
		_vala_ccode_node_unref0 (_tmp20_);
		destination = _tmp22_;
		_tmp23_ = destination;
		_tmp24_ = gdbusproxy;
		vala_ccode_function_call_add_argument (_tmp23_, (ValaCCodeExpression*) _tmp24_);
		_tmp25_ = vala_ccode_identifier_new ("g_dbus_proxy_get_interface_name");
		_tmp26_ = _tmp25_;
		_tmp27_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp26_);
		_tmp28_ = _tmp27_;
		_vala_ccode_node_unref0 (_tmp26_);
		interface_name = _tmp28_;
		_tmp29_ = interface_name;
		_tmp30_ = gdbusproxy;
		vala_ccode_function_call_add_argument (_tmp29_, (ValaCCodeExpression*) _tmp30_);
		_tmp31_ = vala_ccode_identifier_new ("g_dbus_proxy_get_object_path");
		_tmp32_ = _tmp31_;
		_tmp33_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp32_);
		_tmp34_ = _tmp33_;
		_vala_ccode_node_unref0 (_tmp32_);
		object_path = _tmp34_;
		_tmp35_ = object_path;
		_tmp36_ = gdbusproxy;
		vala_ccode_function_call_add_argument (_tmp35_, (ValaCCodeExpression*) _tmp36_);
		if (method_timeout <= 0) {
			ValaCCodeIdentifier* _tmp37_;
			ValaCCodeIdentifier* _tmp38_;
			ValaCCodeFunctionCall* _tmp39_;
			ValaCCodeExpression* _tmp40_;
			ValaCCodeCastExpression* _tmp41_;
			_tmp37_ = vala_ccode_identifier_new ("g_dbus_proxy_get_default_timeout");
			_tmp38_ = _tmp37_;
			_tmp39_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp38_);
			_vala_ccode_node_unref0 (timeout);
			timeout = (ValaCCodeExpression*) _tmp39_;
			_vala_ccode_node_unref0 (_tmp38_);
			_tmp40_ = timeout;
			_tmp41_ = gdbusproxy;
			vala_ccode_function_call_add_argument (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, VALA_TYPE_CCODE_FUNCTION_CALL, ValaCCodeFunctionCall), (ValaCCodeExpression*) _tmp41_);
		} else {
			gchar* _tmp42_;
			gchar* _tmp43_;
			ValaCCodeConstant* _tmp44_;
			_tmp42_ = g_strdup_printf ("%d", method_timeout);
			_tmp43_ = _tmp42_;
			_tmp44_ = vala_ccode_constant_new (_tmp43_);
			_vala_ccode_node_unref0 (timeout);
			timeout = (ValaCCodeExpression*) _tmp44_;
			_g_free0 (_tmp43_);
		}
		_tmp45_ = g_direct_equal;
		_tmp46_ = vala_array_list_new (VALA_TYPE_DATA_TYPE, (GBoxedCopyFunc) vala_code_node_ref, (GDestroyNotify) vala_code_node_unref, _tmp45_);
		error_types = _tmp46_;
		_tmp47_ = error_types;
		vala_code_node_get_error_types ((ValaCodeNode*) m, (ValaCollection*) _tmp47_, NULL);
		{
			ValaArrayList* _error_type_list = NULL;
			ValaArrayList* _tmp48_;
			ValaArrayList* _tmp49_;
			gint _error_type_size = 0;
			ValaArrayList* _tmp50_;
			gint _tmp51_;
			gint _tmp52_;
			gint _error_type_index = 0;
			_tmp48_ = error_types;
			_tmp49_ = _vala_iterable_ref0 (_tmp48_);
			_error_type_list = _tmp49_;
			_tmp50_ = _error_type_list;
			_tmp51_ = vala_collection_get_size ((ValaCollection*) _tmp50_);
			_tmp52_ = _tmp51_;
			_error_type_size = _tmp52_;
			_error_type_index = -1;
			while (TRUE) {
				ValaDataType* error_type = NULL;
				ValaArrayList* _tmp53_;
				gpointer _tmp54_;
				ValaErrorType* errtype = NULL;
				ValaDataType* _tmp55_;
				ValaErrorType* _tmp56_;
				ValaErrorType* _tmp57_;
				ValaErrorDomain* _tmp58_;
				ValaErrorDomain* _tmp59_;
				_error_type_index = _error_type_index + 1;
				if (!(_error_type_index < _error_type_size)) {
					break;
				}
				_tmp53_ = _error_type_list;
				_tmp54_ = vala_list_get ((ValaList*) _tmp53_, _error_type_index);
				error_type = (ValaDataType*) _tmp54_;
				_tmp55_ = error_type;
				_tmp56_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, VALA_TYPE_ERROR_TYPE, ValaErrorType));
				errtype = _tmp56_;
				_tmp57_ = errtype;
				_tmp58_ = vala_error_type_get_error_domain (_tmp57_);
				_tmp59_ = _tmp58_;
				if (_tmp59_ != NULL) {
					ValaCCodeFunction* _tmp60_;
					ValaCCodeFunction* _tmp61_;
					ValaErrorType* _tmp62_;
					ValaErrorDomain* _tmp63_;
					ValaErrorDomain* _tmp64_;
					gchar* _tmp65_;
					gchar* _tmp66_;
					ValaCCodeIdentifier* _tmp67_;
					ValaCCodeIdentifier* _tmp68_;
					_tmp60_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp61_ = _tmp60_;
					_tmp62_ = errtype;
					_tmp63_ = vala_error_type_get_error_domain (_tmp62_);
					_tmp64_ = _tmp63_;
					_tmp65_ = vala_get_ccode_upper_case_name ((ValaSymbol*) _tmp64_, NULL);
					_tmp66_ = _tmp65_;
					_tmp67_ = vala_ccode_identifier_new (_tmp66_);
					_tmp68_ = _tmp67_;
					vala_ccode_function_add_expression (_tmp61_, (ValaCCodeExpression*) _tmp68_);
					_vala_ccode_node_unref0 (_tmp68_);
					_g_free0 (_tmp66_);
				}
				_vala_code_node_unref0 (errtype);
				_vala_code_node_unref0 (error_type);
			}
			_vala_iterable_unref0 (_error_type_list);
		}
		_tmp69_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp70_ = _tmp69_;
		_tmp71_ = vala_ccode_variable_declarator_new ("*_message", NULL, NULL);
		_tmp72_ = _tmp71_;
		vala_ccode_function_add_declaration (_tmp70_, "GDBusMessage", (ValaCCodeDeclarator*) _tmp72_, 0);
		_vala_ccode_node_unref0 (_tmp72_);
		_tmp73_ = vala_ccode_identifier_new ("g_dbus_message_new_method_call");
		_tmp74_ = _tmp73_;
		_tmp75_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp74_);
		_tmp76_ = _tmp75_;
		_vala_ccode_node_unref0 (_tmp74_);
		ccall = _tmp76_;
		_tmp77_ = ccall;
		_tmp78_ = destination;
		vala_ccode_function_call_add_argument (_tmp77_, (ValaCCodeExpression*) _tmp78_);
		_tmp79_ = ccall;
		_tmp80_ = object_path;
		vala_ccode_function_call_add_argument (_tmp79_, (ValaCCodeExpression*) _tmp80_);
		if (iface_name != NULL) {
			ValaCCodeFunctionCall* _tmp81_;
			gchar* _tmp82_;
			gchar* _tmp83_;
			ValaCCodeConstant* _tmp84_;
			ValaCCodeConstant* _tmp85_;
			_tmp81_ = ccall;
			_tmp82_ = g_strdup_printf ("\"%s\"", iface_name);
			_tmp83_ = _tmp82_;
			_tmp84_ = vala_ccode_constant_new (_tmp83_);
			_tmp85_ = _tmp84_;
			vala_ccode_function_call_add_argument (_tmp81_, (ValaCCodeExpression*) _tmp85_);
			_vala_ccode_node_unref0 (_tmp85_);
			_g_free0 (_tmp83_);
		} else {
			ValaCCodeFunctionCall* _tmp86_;
			ValaCCodeFunctionCall* _tmp87_;
			_tmp86_ = ccall;
			_tmp87_ = interface_name;
			vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp87_);
		}
		_tmp88_ = ccall;
		_tmp89_ = g_strdup_printf ("\"%s\"", method_name);
		_tmp90_ = _tmp89_;
		_tmp91_ = vala_ccode_constant_new (_tmp90_);
		_tmp92_ = _tmp91_;
		vala_ccode_function_call_add_argument (_tmp88_, (ValaCCodeExpression*) _tmp92_);
		_vala_ccode_node_unref0 (_tmp92_);
		_g_free0 (_tmp90_);
		_tmp93_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp94_ = _tmp93_;
		_tmp95_ = vala_ccode_identifier_new ("_message");
		_tmp96_ = _tmp95_;
		_tmp97_ = ccall;
		vala_ccode_function_add_assignment (_tmp94_, (ValaCCodeExpression*) _tmp96_, (ValaCCodeExpression*) _tmp97_);
		_vala_ccode_node_unref0 (_tmp96_);
		_tmp98_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp99_ = _tmp98_;
		_tmp100_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
		_tmp101_ = _tmp100_;
		vala_ccode_function_add_declaration (_tmp99_, "GVariant", (ValaCCodeDeclarator*) _tmp101_, 0);
		_vala_ccode_node_unref0 (_tmp101_);
		_tmp102_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp103_ = _tmp102_;
		_tmp104_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
		_tmp105_ = _tmp104_;
		vala_ccode_function_add_declaration (_tmp103_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp105_, 0);
		_vala_ccode_node_unref0 (_tmp105_);
		_tmp106_ = vala_ccode_identifier_new ("g_variant_builder_init");
		_tmp107_ = _tmp106_;
		_tmp108_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp107_);
		_tmp109_ = _tmp108_;
		_vala_ccode_node_unref0 (_tmp107_);
		builder_init = _tmp109_;
		_tmp110_ = builder_init;
		_tmp111_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp112_ = _tmp111_;
		_tmp113_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp112_);
		_tmp114_ = _tmp113_;
		vala_ccode_function_call_add_argument (_tmp110_, (ValaCCodeExpression*) _tmp114_);
		_vala_ccode_node_unref0 (_tmp114_);
		_vala_ccode_node_unref0 (_tmp112_);
		_tmp115_ = builder_init;
		_tmp116_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
		_tmp117_ = _tmp116_;
		vala_ccode_function_call_add_argument (_tmp115_, (ValaCCodeExpression*) _tmp117_);
		_vala_ccode_node_unref0 (_tmp117_);
		_tmp118_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp119_ = _tmp118_;
		_tmp120_ = builder_init;
		vala_ccode_function_add_expression (_tmp119_, (ValaCCodeExpression*) _tmp120_);
		if (uses_fd) {
			ValaCCodeFunction* _tmp121_;
			ValaCCodeFunction* _tmp122_;
			ValaCCodeIdentifier* _tmp123_;
			ValaCCodeIdentifier* _tmp124_;
			ValaCCodeIdentifier* _tmp125_;
			ValaCCodeIdentifier* _tmp126_;
			ValaCCodeFunctionCall* _tmp127_;
			ValaCCodeFunctionCall* _tmp128_;
			_tmp121_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp122_ = _tmp121_;
			_tmp123_ = vala_ccode_identifier_new ("_fd_list");
			_tmp124_ = _tmp123_;
			_tmp125_ = vala_ccode_identifier_new ("g_unix_fd_list_new");
			_tmp126_ = _tmp125_;
			_tmp127_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp126_);
			_tmp128_ = _tmp127_;
			vala_ccode_function_add_assignment (_tmp122_, (ValaCCodeExpression*) _tmp124_, (ValaCCodeExpression*) _tmp128_);
			_vala_ccode_node_unref0 (_tmp128_);
			_vala_ccode_node_unref0 (_tmp126_);
			_vala_ccode_node_unref0 (_tmp124_);
		}
		_tmp129_ = vala_ccode_constant_new ("NULL");
		cancellable = (ValaCCodeExpression*) _tmp129_;
		{
			ValaList* _param_list = NULL;
			ValaList* _tmp130_;
			gint _param_size = 0;
			ValaList* _tmp131_;
			gint _tmp132_;
			gint _tmp133_;
			gint _param_index = 0;
			_tmp130_ = vala_callable_get_parameters ((ValaCallable*) m);
			_param_list = _tmp130_;
			_tmp131_ = _param_list;
			_tmp132_ = vala_collection_get_size ((ValaCollection*) _tmp131_);
			_tmp133_ = _tmp132_;
			_param_size = _tmp133_;
			_param_index = -1;
			while (TRUE) {
				ValaParameter* param = NULL;
				ValaList* _tmp134_;
				gpointer _tmp135_;
				ValaParameter* _tmp136_;
				ValaParameterDirection _tmp137_;
				ValaParameterDirection _tmp138_;
				_param_index = _param_index + 1;
				if (!(_param_index < _param_size)) {
					break;
				}
				_tmp134_ = _param_list;
				_tmp135_ = vala_list_get (_tmp134_, _param_index);
				param = (ValaParameter*) _tmp135_;
				_tmp136_ = param;
				_tmp137_ = vala_parameter_get_direction (_tmp136_);
				_tmp138_ = _tmp137_;
				if (_tmp138_ == VALA_PARAMETER_DIRECTION_IN) {
					ValaCCodeExpression* expr = NULL;
					ValaParameter* _tmp139_;
					const gchar* _tmp140_;
					const gchar* _tmp141_;
					gchar* _tmp142_;
					gchar* _tmp143_;
					ValaCCodeIdentifier* _tmp144_;
					ValaCCodeExpression* _tmp145_;
					ValaParameter* _tmp146_;
					ValaDataType* _tmp147_;
					ValaDataType* _tmp148_;
					gboolean _tmp151_ = FALSE;
					ValaParameter* _tmp152_;
					ValaDataType* _tmp153_;
					ValaDataType* _tmp154_;
					gboolean _tmp164_ = FALSE;
					ValaParameter* _tmp165_;
					ValaDataType* _tmp166_;
					ValaDataType* _tmp167_;
					ValaParameter* _tmp175_;
					ValaDataType* _tmp176_;
					ValaDataType* _tmp177_;
					ValaCCodeIdentifier* _tmp178_;
					ValaCCodeIdentifier* _tmp179_;
					ValaCCodeExpression* _tmp180_;
					ValaParameter* _tmp181_;
					_tmp139_ = param;
					_tmp140_ = vala_symbol_get_name ((ValaSymbol*) _tmp139_);
					_tmp141_ = _tmp140_;
					_tmp142_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp141_);
					_tmp143_ = _tmp142_;
					_tmp144_ = vala_ccode_identifier_new (_tmp143_);
					_tmp145_ = (ValaCCodeExpression*) _tmp144_;
					_g_free0 (_tmp143_);
					expr = _tmp145_;
					_tmp146_ = param;
					_tmp147_ = vala_variable_get_variable_type ((ValaVariable*) _tmp146_);
					_tmp148_ = _tmp147_;
					if (vala_data_type_is_real_struct_type (_tmp148_)) {
						ValaCCodeExpression* _tmp149_;
						ValaCCodeUnaryExpression* _tmp150_;
						_tmp149_ = expr;
						_tmp150_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, _tmp149_);
						_vala_ccode_node_unref0 (expr);
						expr = (ValaCCodeExpression*) _tmp150_;
					}
					_tmp152_ = param;
					_tmp153_ = vala_variable_get_variable_type ((ValaVariable*) _tmp152_);
					_tmp154_ = _tmp153_;
					if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp154_, VALA_TYPE_OBJECT_TYPE)) {
						ValaParameter* _tmp155_;
						ValaDataType* _tmp156_;
						ValaDataType* _tmp157_;
						ValaTypeSymbol* _tmp158_;
						ValaTypeSymbol* _tmp159_;
						gchar* _tmp160_;
						gchar* _tmp161_;
						_tmp155_ = param;
						_tmp156_ = vala_variable_get_variable_type ((ValaVariable*) _tmp155_);
						_tmp157_ = _tmp156_;
						_tmp158_ = vala_data_type_get_data_type (_tmp157_);
						_tmp159_ = _tmp158_;
						_tmp160_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp159_);
						_tmp161_ = _tmp160_;
						_tmp151_ = g_strcmp0 (_tmp161_, "GLib.Cancellable") == 0;
						_g_free0 (_tmp161_);
					} else {
						_tmp151_ = FALSE;
					}
					if (_tmp151_) {
						ValaCCodeExpression* _tmp162_;
						ValaCCodeExpression* _tmp163_;
						_tmp162_ = expr;
						_tmp163_ = _vala_ccode_node_ref0 (_tmp162_);
						_vala_ccode_node_unref0 (cancellable);
						cancellable = _tmp163_;
						_vala_ccode_node_unref0 (expr);
						_vala_code_node_unref0 (param);
						continue;
					}
					_tmp165_ = param;
					_tmp166_ = vala_variable_get_variable_type ((ValaVariable*) _tmp165_);
					_tmp167_ = _tmp166_;
					if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp167_, VALA_TYPE_OBJECT_TYPE)) {
						ValaParameter* _tmp168_;
						ValaDataType* _tmp169_;
						ValaDataType* _tmp170_;
						ValaTypeSymbol* _tmp171_;
						ValaTypeSymbol* _tmp172_;
						gchar* _tmp173_;
						gchar* _tmp174_;
						_tmp168_ = param;
						_tmp169_ = vala_variable_get_variable_type ((ValaVariable*) _tmp168_);
						_tmp170_ = _tmp169_;
						_tmp171_ = vala_data_type_get_data_type (_tmp170_);
						_tmp172_ = _tmp171_;
						_tmp173_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp172_);
						_tmp174_ = _tmp173_;
						_tmp164_ = g_strcmp0 (_tmp174_, "GLib.BusName") == 0;
						_g_free0 (_tmp174_);
					} else {
						_tmp164_ = FALSE;
					}
					if (_tmp164_) {
						_vala_ccode_node_unref0 (expr);
						_vala_code_node_unref0 (param);
						continue;
					}
					_tmp175_ = param;
					_tmp176_ = vala_variable_get_variable_type ((ValaVariable*) _tmp175_);
					_tmp177_ = _tmp176_;
					_tmp178_ = vala_ccode_identifier_new ("_arguments_builder");
					_tmp179_ = _tmp178_;
					_tmp180_ = expr;
					_tmp181_ = param;
					vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp177_, (ValaCCodeExpression*) _tmp179_, _tmp180_, (ValaSymbol*) _tmp181_);
					_vala_ccode_node_unref0 (_tmp179_);
					_vala_ccode_node_unref0 (expr);
				}
				_vala_code_node_unref0 (param);
			}
			_vala_iterable_unref0 (_param_list);
		}
		_tmp182_ = vala_ccode_identifier_new ("g_variant_builder_end");
		_tmp183_ = _tmp182_;
		_tmp184_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp183_);
		_tmp185_ = _tmp184_;
		_vala_ccode_node_unref0 (_tmp183_);
		builder_end = _tmp185_;
		_tmp186_ = builder_end;
		_tmp187_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp188_ = _tmp187_;
		_tmp189_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp188_);
		_tmp190_ = _tmp189_;
		vala_ccode_function_call_add_argument (_tmp186_, (ValaCCodeExpression*) _tmp190_);
		_vala_ccode_node_unref0 (_tmp190_);
		_vala_ccode_node_unref0 (_tmp188_);
		_tmp191_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp192_ = _tmp191_;
		_tmp193_ = vala_ccode_identifier_new ("_arguments");
		_tmp194_ = _tmp193_;
		_tmp195_ = builder_end;
		vala_ccode_function_add_assignment (_tmp192_, (ValaCCodeExpression*) _tmp194_, (ValaCCodeExpression*) _tmp195_);
		_vala_ccode_node_unref0 (_tmp194_);
		_tmp196_ = vala_ccode_identifier_new ("g_dbus_message_set_body");
		_tmp197_ = _tmp196_;
		_tmp198_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp197_);
		_tmp199_ = _tmp198_;
		_vala_ccode_node_unref0 (_tmp197_);
		set_body = _tmp199_;
		_tmp200_ = set_body;
		_tmp201_ = vala_ccode_identifier_new ("_message");
		_tmp202_ = _tmp201_;
		vala_ccode_function_call_add_argument (_tmp200_, (ValaCCodeExpression*) _tmp202_);
		_vala_ccode_node_unref0 (_tmp202_);
		_tmp203_ = set_body;
		_tmp204_ = vala_ccode_identifier_new ("_arguments");
		_tmp205_ = _tmp204_;
		vala_ccode_function_call_add_argument (_tmp203_, (ValaCCodeExpression*) _tmp205_);
		_vala_ccode_node_unref0 (_tmp205_);
		_tmp206_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp207_ = _tmp206_;
		_tmp208_ = set_body;
		vala_ccode_function_add_expression (_tmp207_, (ValaCCodeExpression*) _tmp208_);
		if (uses_fd) {
			ValaCCodeIdentifier* _tmp209_;
			ValaCCodeIdentifier* _tmp210_;
			ValaCCodeFunctionCall* _tmp211_;
			ValaCCodeFunctionCall* _tmp212_;
			ValaCCodeIdentifier* _tmp213_;
			ValaCCodeIdentifier* _tmp214_;
			ValaCCodeFunctionCall* _tmp215_;
			ValaCCodeIdentifier* _tmp216_;
			ValaCCodeIdentifier* _tmp217_;
			ValaCCodeFunction* _tmp218_;
			ValaCCodeFunction* _tmp219_;
			ValaCCodeFunctionCall* _tmp220_;
			ValaCCodeIdentifier* _tmp221_;
			ValaCCodeIdentifier* _tmp222_;
			ValaCCodeFunctionCall* _tmp223_;
			ValaCCodeFunctionCall* _tmp224_;
			ValaCCodeIdentifier* _tmp225_;
			ValaCCodeIdentifier* _tmp226_;
			ValaCCodeFunction* _tmp227_;
			ValaCCodeFunction* _tmp228_;
			ValaCCodeFunctionCall* _tmp229_;
			_tmp209_ = vala_ccode_identifier_new ("g_dbus_message_set_unix_fd_list");
			_tmp210_ = _tmp209_;
			_tmp211_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp210_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp211_;
			_vala_ccode_node_unref0 (_tmp210_);
			_tmp212_ = ccall;
			_tmp213_ = vala_ccode_identifier_new ("_message");
			_tmp214_ = _tmp213_;
			vala_ccode_function_call_add_argument (_tmp212_, (ValaCCodeExpression*) _tmp214_);
			_vala_ccode_node_unref0 (_tmp214_);
			_tmp215_ = ccall;
			_tmp216_ = vala_ccode_identifier_new ("_fd_list");
			_tmp217_ = _tmp216_;
			vala_ccode_function_call_add_argument (_tmp215_, (ValaCCodeExpression*) _tmp217_);
			_vala_ccode_node_unref0 (_tmp217_);
			_tmp218_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp219_ = _tmp218_;
			_tmp220_ = ccall;
			vala_ccode_function_add_expression (_tmp219_, (ValaCCodeExpression*) _tmp220_);
			_tmp221_ = vala_ccode_identifier_new ("g_object_unref");
			_tmp222_ = _tmp221_;
			_tmp223_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp222_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp223_;
			_vala_ccode_node_unref0 (_tmp222_);
			_tmp224_ = ccall;
			_tmp225_ = vala_ccode_identifier_new ("_fd_list");
			_tmp226_ = _tmp225_;
			vala_ccode_function_call_add_argument (_tmp224_, (ValaCCodeExpression*) _tmp226_);
			_vala_ccode_node_unref0 (_tmp226_);
			_tmp227_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp228_ = _tmp227_;
			_tmp229_ = ccall;
			vala_ccode_function_add_expression (_tmp228_, (ValaCCodeExpression*) _tmp229_);
		}
		if (call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC) {
			ValaCCodeIdentifier* _tmp230_;
			ValaCCodeIdentifier* _tmp231_;
			ValaCCodeFunctionCall* _tmp232_;
			ValaCCodeFunctionCall* _tmp233_;
			ValaCCodeFunctionCall* _tmp234_;
			ValaCCodeFunctionCall* _tmp235_;
			ValaCCodeIdentifier* _tmp236_;
			ValaCCodeIdentifier* _tmp237_;
			ValaCCodeFunctionCall* _tmp238_;
			ValaCCodeConstant* _tmp239_;
			ValaCCodeConstant* _tmp240_;
			ValaCCodeFunctionCall* _tmp241_;
			ValaCCodeExpression* _tmp242_;
			ValaCCodeFunctionCall* _tmp243_;
			ValaCCodeConstant* _tmp244_;
			ValaCCodeConstant* _tmp245_;
			ValaCCodeFunctionCall* _tmp246_;
			ValaCCodeExpression* _tmp247_;
			ValaCCodeFunctionCall* _tmp248_;
			ValaCCodeExpression* _tmp249_;
			ValaCCodeFunction* _tmp250_;
			ValaCCodeFunction* _tmp251_;
			ValaCCodeIdentifier* _tmp252_;
			ValaCCodeIdentifier* _tmp253_;
			ValaCCodeFunctionCall* _tmp254_;
			_tmp230_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply_sync");
			_tmp231_ = _tmp230_;
			_tmp232_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp231_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp232_;
			_vala_ccode_node_unref0 (_tmp231_);
			_tmp233_ = ccall;
			_tmp234_ = connection;
			vala_ccode_function_call_add_argument (_tmp233_, (ValaCCodeExpression*) _tmp234_);
			_tmp235_ = ccall;
			_tmp236_ = vala_ccode_identifier_new ("_message");
			_tmp237_ = _tmp236_;
			vala_ccode_function_call_add_argument (_tmp235_, (ValaCCodeExpression*) _tmp237_);
			_vala_ccode_node_unref0 (_tmp237_);
			_tmp238_ = ccall;
			_tmp239_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
			_tmp240_ = _tmp239_;
			vala_ccode_function_call_add_argument (_tmp238_, (ValaCCodeExpression*) _tmp240_);
			_vala_ccode_node_unref0 (_tmp240_);
			_tmp241_ = ccall;
			_tmp242_ = timeout;
			vala_ccode_function_call_add_argument (_tmp241_, _tmp242_);
			_tmp243_ = ccall;
			_tmp244_ = vala_ccode_constant_new ("NULL");
			_tmp245_ = _tmp244_;
			vala_ccode_function_call_add_argument (_tmp243_, (ValaCCodeExpression*) _tmp245_);
			_vala_ccode_node_unref0 (_tmp245_);
			_tmp246_ = ccall;
			_tmp247_ = cancellable;
			vala_ccode_function_call_add_argument (_tmp246_, _tmp247_);
			_tmp248_ = ccall;
			_tmp249_ = error_argument;
			vala_ccode_function_call_add_argument (_tmp248_, _tmp249_);
			_tmp250_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp251_ = _tmp250_;
			_tmp252_ = vala_ccode_identifier_new ("_reply_message");
			_tmp253_ = _tmp252_;
			_tmp254_ = ccall;
			vala_ccode_function_add_assignment (_tmp251_, (ValaCCodeExpression*) _tmp253_, (ValaCCodeExpression*) _tmp254_);
			_vala_ccode_node_unref0 (_tmp253_);
		} else {
			if (call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY) {
				ValaCCodeFunctionCall* set_flags = NULL;
				ValaCCodeIdentifier* _tmp255_;
				ValaCCodeIdentifier* _tmp256_;
				ValaCCodeFunctionCall* _tmp257_;
				ValaCCodeFunctionCall* _tmp258_;
				ValaCCodeFunctionCall* _tmp259_;
				ValaCCodeIdentifier* _tmp260_;
				ValaCCodeIdentifier* _tmp261_;
				ValaCCodeFunctionCall* _tmp262_;
				ValaCCodeConstant* _tmp263_;
				ValaCCodeConstant* _tmp264_;
				ValaCCodeFunction* _tmp265_;
				ValaCCodeFunction* _tmp266_;
				ValaCCodeFunctionCall* _tmp267_;
				ValaCCodeIdentifier* _tmp268_;
				ValaCCodeIdentifier* _tmp269_;
				ValaCCodeFunctionCall* _tmp270_;
				ValaCCodeFunctionCall* _tmp271_;
				ValaCCodeFunctionCall* _tmp272_;
				ValaCCodeFunctionCall* _tmp273_;
				ValaCCodeIdentifier* _tmp274_;
				ValaCCodeIdentifier* _tmp275_;
				ValaCCodeFunctionCall* _tmp276_;
				ValaCCodeConstant* _tmp277_;
				ValaCCodeConstant* _tmp278_;
				ValaCCodeFunctionCall* _tmp279_;
				ValaCCodeConstant* _tmp280_;
				ValaCCodeConstant* _tmp281_;
				ValaCCodeFunctionCall* _tmp282_;
				ValaCCodeExpression* _tmp283_;
				ValaCCodeFunction* _tmp284_;
				ValaCCodeFunction* _tmp285_;
				ValaCCodeFunctionCall* _tmp286_;
				_tmp255_ = vala_ccode_identifier_new ("g_dbus_message_set_flags");
				_tmp256_ = _tmp255_;
				_tmp257_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp256_);
				_tmp258_ = _tmp257_;
				_vala_ccode_node_unref0 (_tmp256_);
				set_flags = _tmp258_;
				_tmp259_ = set_flags;
				_tmp260_ = vala_ccode_identifier_new ("_message");
				_tmp261_ = _tmp260_;
				vala_ccode_function_call_add_argument (_tmp259_, (ValaCCodeExpression*) _tmp261_);
				_vala_ccode_node_unref0 (_tmp261_);
				_tmp262_ = set_flags;
				_tmp263_ = vala_ccode_constant_new ("G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED");
				_tmp264_ = _tmp263_;
				vala_ccode_function_call_add_argument (_tmp262_, (ValaCCodeExpression*) _tmp264_);
				_vala_ccode_node_unref0 (_tmp264_);
				_tmp265_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp266_ = _tmp265_;
				_tmp267_ = set_flags;
				vala_ccode_function_add_expression (_tmp266_, (ValaCCodeExpression*) _tmp267_);
				_tmp268_ = vala_ccode_identifier_new ("g_dbus_connection_send_message");
				_tmp269_ = _tmp268_;
				_tmp270_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp269_);
				_vala_ccode_node_unref0 (ccall);
				ccall = _tmp270_;
				_vala_ccode_node_unref0 (_tmp269_);
				_tmp271_ = ccall;
				_tmp272_ = connection;
				vala_ccode_function_call_add_argument (_tmp271_, (ValaCCodeExpression*) _tmp272_);
				_tmp273_ = ccall;
				_tmp274_ = vala_ccode_identifier_new ("_message");
				_tmp275_ = _tmp274_;
				vala_ccode_function_call_add_argument (_tmp273_, (ValaCCodeExpression*) _tmp275_);
				_vala_ccode_node_unref0 (_tmp275_);
				_tmp276_ = ccall;
				_tmp277_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
				_tmp278_ = _tmp277_;
				vala_ccode_function_call_add_argument (_tmp276_, (ValaCCodeExpression*) _tmp278_);
				_vala_ccode_node_unref0 (_tmp278_);
				_tmp279_ = ccall;
				_tmp280_ = vala_ccode_constant_new ("NULL");
				_tmp281_ = _tmp280_;
				vala_ccode_function_call_add_argument (_tmp279_, (ValaCCodeExpression*) _tmp281_);
				_vala_ccode_node_unref0 (_tmp281_);
				_tmp282_ = ccall;
				_tmp283_ = error_argument;
				vala_ccode_function_call_add_argument (_tmp282_, _tmp283_);
				_tmp284_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp285_ = _tmp284_;
				_tmp286_ = ccall;
				vala_ccode_function_add_expression (_tmp285_, (ValaCCodeExpression*) _tmp286_);
				_vala_ccode_node_unref0 (set_flags);
			} else {
				if (call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC) {
					ValaCCodeIdentifier* _tmp287_;
					ValaCCodeIdentifier* _tmp288_;
					ValaCCodeFunctionCall* _tmp289_;
					ValaCCodeFunctionCall* _tmp290_;
					ValaCCodeFunctionCall* _tmp291_;
					ValaCCodeFunctionCall* _tmp292_;
					ValaCCodeIdentifier* _tmp293_;
					ValaCCodeIdentifier* _tmp294_;
					ValaCCodeFunctionCall* _tmp295_;
					ValaCCodeConstant* _tmp296_;
					ValaCCodeConstant* _tmp297_;
					ValaCCodeFunctionCall* _tmp298_;
					ValaCCodeExpression* _tmp299_;
					ValaCCodeFunctionCall* _tmp300_;
					ValaCCodeConstant* _tmp301_;
					ValaCCodeConstant* _tmp302_;
					ValaCCodeFunctionCall* _tmp303_;
					ValaCCodeExpression* _tmp304_;
					ValaCCodeFunctionCall* res_wrapper = NULL;
					ValaCCodeFunctionCall* _tmp305_;
					gchar* _tmp306_;
					gchar* _tmp307_;
					ValaCCodeIdentifier* _tmp308_;
					ValaCCodeIdentifier* _tmp309_;
					ValaCCodeIdentifier* _tmp310_;
					ValaCCodeIdentifier* _tmp311_;
					ValaCCodeFunctionCall* _tmp312_;
					ValaCCodeFunctionCall* _tmp313_;
					ValaCCodeIdentifier* _tmp314_;
					ValaCCodeIdentifier* _tmp315_;
					ValaCCodeCastExpression* _tmp316_;
					ValaCCodeCastExpression* _tmp317_;
					ValaCCodeFunctionCall* _tmp318_;
					ValaCCodeConstant* _tmp319_;
					ValaCCodeConstant* _tmp320_;
					ValaCCodeFunctionCall* _tmp321_;
					ValaCCodeIdentifier* _tmp322_;
					ValaCCodeIdentifier* _tmp323_;
					ValaCCodeFunctionCall* _tmp324_;
					ValaCCodeIdentifier* _tmp325_;
					ValaCCodeIdentifier* _tmp326_;
					ValaCCodeFunctionCall* _tmp327_;
					ValaCCodeFunctionCall* _tmp328_;
					ValaCCodeFunction* _tmp329_;
					ValaCCodeFunction* _tmp330_;
					ValaCCodeFunctionCall* _tmp331_;
					_tmp287_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply");
					_tmp288_ = _tmp287_;
					_tmp289_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp288_);
					_vala_ccode_node_unref0 (ccall);
					ccall = _tmp289_;
					_vala_ccode_node_unref0 (_tmp288_);
					_tmp290_ = ccall;
					_tmp291_ = connection;
					vala_ccode_function_call_add_argument (_tmp290_, (ValaCCodeExpression*) _tmp291_);
					_tmp292_ = ccall;
					_tmp293_ = vala_ccode_identifier_new ("_message");
					_tmp294_ = _tmp293_;
					vala_ccode_function_call_add_argument (_tmp292_, (ValaCCodeExpression*) _tmp294_);
					_vala_ccode_node_unref0 (_tmp294_);
					_tmp295_ = ccall;
					_tmp296_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
					_tmp297_ = _tmp296_;
					vala_ccode_function_call_add_argument (_tmp295_, (ValaCCodeExpression*) _tmp297_);
					_vala_ccode_node_unref0 (_tmp297_);
					_tmp298_ = ccall;
					_tmp299_ = timeout;
					vala_ccode_function_call_add_argument (_tmp298_, _tmp299_);
					_tmp300_ = ccall;
					_tmp301_ = vala_ccode_constant_new ("NULL");
					_tmp302_ = _tmp301_;
					vala_ccode_function_call_add_argument (_tmp300_, (ValaCCodeExpression*) _tmp302_);
					_vala_ccode_node_unref0 (_tmp302_);
					_tmp303_ = ccall;
					_tmp304_ = cancellable;
					vala_ccode_function_call_add_argument (_tmp303_, _tmp304_);
					res_wrapper = NULL;
					_tmp305_ = ccall;
					_tmp306_ = vala_gasync_module_generate_async_callback_wrapper ((ValaGAsyncModule*) self);
					_tmp307_ = _tmp306_;
					_tmp308_ = vala_ccode_identifier_new (_tmp307_);
					_tmp309_ = _tmp308_;
					vala_ccode_function_call_add_argument (_tmp305_, (ValaCCodeExpression*) _tmp309_);
					_vala_ccode_node_unref0 (_tmp309_);
					_g_free0 (_tmp307_);
					_tmp310_ = vala_ccode_identifier_new ("g_task_new");
					_tmp311_ = _tmp310_;
					_tmp312_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp311_);
					_vala_ccode_node_unref0 (res_wrapper);
					res_wrapper = _tmp312_;
					_vala_ccode_node_unref0 (_tmp311_);
					_tmp313_ = res_wrapper;
					_tmp314_ = vala_ccode_identifier_new ("self");
					_tmp315_ = _tmp314_;
					_tmp316_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp315_, "GObject *");
					_tmp317_ = _tmp316_;
					vala_ccode_function_call_add_argument (_tmp313_, (ValaCCodeExpression*) _tmp317_);
					_vala_ccode_node_unref0 (_tmp317_);
					_vala_ccode_node_unref0 (_tmp315_);
					_tmp318_ = res_wrapper;
					_tmp319_ = vala_ccode_constant_new ("NULL");
					_tmp320_ = _tmp319_;
					vala_ccode_function_call_add_argument (_tmp318_, (ValaCCodeExpression*) _tmp320_);
					_vala_ccode_node_unref0 (_tmp320_);
					_tmp321_ = res_wrapper;
					_tmp322_ = vala_ccode_identifier_new ("_callback_");
					_tmp323_ = _tmp322_;
					vala_ccode_function_call_add_argument (_tmp321_, (ValaCCodeExpression*) _tmp323_);
					_vala_ccode_node_unref0 (_tmp323_);
					_tmp324_ = res_wrapper;
					_tmp325_ = vala_ccode_identifier_new ("_user_data_");
					_tmp326_ = _tmp325_;
					vala_ccode_function_call_add_argument (_tmp324_, (ValaCCodeExpression*) _tmp326_);
					_vala_ccode_node_unref0 (_tmp326_);
					_tmp327_ = ccall;
					_tmp328_ = res_wrapper;
					vala_ccode_function_call_add_argument (_tmp327_, (ValaCCodeExpression*) _tmp328_);
					_tmp329_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp330_ = _tmp329_;
					_tmp331_ = ccall;
					vala_ccode_function_add_expression (_tmp330_, (ValaCCodeExpression*) _tmp331_);
					_vala_ccode_node_unref0 (res_wrapper);
				}
			}
		}
		_tmp332_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp333_ = _tmp332_;
		_tmp334_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp333_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp334_;
		_vala_ccode_node_unref0 (_tmp333_);
		_tmp335_ = ccall;
		_tmp336_ = vala_ccode_identifier_new ("_message");
		_tmp337_ = _tmp336_;
		vala_ccode_function_call_add_argument (_tmp335_, (ValaCCodeExpression*) _tmp337_);
		_vala_ccode_node_unref0 (_tmp337_);
		_tmp338_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp339_ = _tmp338_;
		_tmp340_ = ccall;
		vala_ccode_function_add_expression (_tmp339_, (ValaCCodeExpression*) _tmp340_);
		_vala_ccode_node_unref0 (set_body);
		_vala_ccode_node_unref0 (builder_end);
		_vala_ccode_node_unref0 (cancellable);
		_vala_ccode_node_unref0 (builder_init);
		_vala_ccode_node_unref0 (ccall);
		_vala_iterable_unref0 (error_types);
		_vala_ccode_node_unref0 (timeout);
		_vala_ccode_node_unref0 (object_path);
		_vala_ccode_node_unref0 (interface_name);
		_vala_ccode_node_unref0 (destination);
	} else {
		ValaCCodeFunctionCall* ccall = NULL;
		ValaCCodeIdentifier* _tmp341_;
		ValaCCodeIdentifier* _tmp342_;
		ValaCCodeFunctionCall* _tmp343_;
		ValaCCodeFunctionCall* _tmp344_;
		ValaCCodeFunctionCall* _tmp345_;
		ValaCCodeFunctionCall* _tmp346_;
		ValaCCodeFunction* _tmp347_;
		ValaCCodeFunction* _tmp348_;
		ValaCCodeVariableDeclarator* _tmp349_;
		ValaCCodeVariableDeclarator* _tmp350_;
		ValaCCodeFunctionCall* inner_res = NULL;
		ValaCCodeIdentifier* _tmp351_;
		ValaCCodeIdentifier* _tmp352_;
		ValaCCodeFunctionCall* _tmp353_;
		ValaCCodeFunctionCall* _tmp354_;
		ValaCCodeFunctionCall* _tmp355_;
		ValaCCodeIdentifier* _tmp356_;
		ValaCCodeIdentifier* _tmp357_;
		ValaCCodeCastExpression* _tmp358_;
		ValaCCodeCastExpression* _tmp359_;
		ValaCCodeFunctionCall* _tmp360_;
		ValaCCodeConstant* _tmp361_;
		ValaCCodeConstant* _tmp362_;
		ValaCCodeFunction* _tmp363_;
		ValaCCodeFunction* _tmp364_;
		ValaCCodeIdentifier* _tmp365_;
		ValaCCodeIdentifier* _tmp366_;
		ValaCCodeFunctionCall* _tmp367_;
		ValaCCodeFunctionCall* _tmp368_;
		ValaCCodeIdentifier* _tmp369_;
		ValaCCodeIdentifier* _tmp370_;
		ValaCCodeFunctionCall* _tmp371_;
		ValaCCodeExpression* _tmp372_;
		ValaCCodeFunction* _tmp373_;
		ValaCCodeFunction* _tmp374_;
		ValaCCodeIdentifier* _tmp375_;
		ValaCCodeIdentifier* _tmp376_;
		ValaCCodeFunctionCall* _tmp377_;
		ValaCCodeFunctionCall* unref_inner_res = NULL;
		ValaCCodeIdentifier* _tmp378_;
		ValaCCodeIdentifier* _tmp379_;
		ValaCCodeFunctionCall* _tmp380_;
		ValaCCodeFunctionCall* _tmp381_;
		ValaCCodeFunctionCall* _tmp382_;
		ValaCCodeIdentifier* _tmp383_;
		ValaCCodeIdentifier* _tmp384_;
		ValaCCodeFunction* _tmp385_;
		ValaCCodeFunction* _tmp386_;
		ValaCCodeFunctionCall* _tmp387_;
		_tmp341_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply_finish");
		_tmp342_ = _tmp341_;
		_tmp343_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp342_);
		_tmp344_ = _tmp343_;
		_vala_ccode_node_unref0 (_tmp342_);
		ccall = _tmp344_;
		_tmp345_ = ccall;
		_tmp346_ = connection;
		vala_ccode_function_call_add_argument (_tmp345_, (ValaCCodeExpression*) _tmp346_);
		_tmp347_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp348_ = _tmp347_;
		_tmp349_ = vala_ccode_variable_declarator_new ("*_inner_res", NULL, NULL);
		_tmp350_ = _tmp349_;
		vala_ccode_function_add_declaration (_tmp348_, "GAsyncResult", (ValaCCodeDeclarator*) _tmp350_, 0);
		_vala_ccode_node_unref0 (_tmp350_);
		_tmp351_ = vala_ccode_identifier_new ("g_task_propagate_pointer");
		_tmp352_ = _tmp351_;
		_tmp353_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp352_);
		_tmp354_ = _tmp353_;
		_vala_ccode_node_unref0 (_tmp352_);
		inner_res = _tmp354_;
		_tmp355_ = inner_res;
		_tmp356_ = vala_ccode_identifier_new ("_res_");
		_tmp357_ = _tmp356_;
		_tmp358_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp357_, "GTask *");
		_tmp359_ = _tmp358_;
		vala_ccode_function_call_add_argument (_tmp355_, (ValaCCodeExpression*) _tmp359_);
		_vala_ccode_node_unref0 (_tmp359_);
		_vala_ccode_node_unref0 (_tmp357_);
		_tmp360_ = inner_res;
		_tmp361_ = vala_ccode_constant_new ("NULL");
		_tmp362_ = _tmp361_;
		vala_ccode_function_call_add_argument (_tmp360_, (ValaCCodeExpression*) _tmp362_);
		_vala_ccode_node_unref0 (_tmp362_);
		_tmp363_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp364_ = _tmp363_;
		_tmp365_ = vala_ccode_identifier_new ("_inner_res");
		_tmp366_ = _tmp365_;
		_tmp367_ = inner_res;
		vala_ccode_function_add_assignment (_tmp364_, (ValaCCodeExpression*) _tmp366_, (ValaCCodeExpression*) _tmp367_);
		_vala_ccode_node_unref0 (_tmp366_);
		_tmp368_ = ccall;
		_tmp369_ = vala_ccode_identifier_new ("_inner_res");
		_tmp370_ = _tmp369_;
		vala_ccode_function_call_add_argument (_tmp368_, (ValaCCodeExpression*) _tmp370_);
		_vala_ccode_node_unref0 (_tmp370_);
		_tmp371_ = ccall;
		_tmp372_ = error_argument;
		vala_ccode_function_call_add_argument (_tmp371_, _tmp372_);
		_tmp373_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp374_ = _tmp373_;
		_tmp375_ = vala_ccode_identifier_new ("_reply_message");
		_tmp376_ = _tmp375_;
		_tmp377_ = ccall;
		vala_ccode_function_add_assignment (_tmp374_, (ValaCCodeExpression*) _tmp376_, (ValaCCodeExpression*) _tmp377_);
		_vala_ccode_node_unref0 (_tmp376_);
		_tmp378_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp379_ = _tmp378_;
		_tmp380_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp379_);
		_tmp381_ = _tmp380_;
		_vala_ccode_node_unref0 (_tmp379_);
		unref_inner_res = _tmp381_;
		_tmp382_ = unref_inner_res;
		_tmp383_ = vala_ccode_identifier_new ("_inner_res");
		_tmp384_ = _tmp383_;
		vala_ccode_function_call_add_argument (_tmp382_, (ValaCCodeExpression*) _tmp384_);
		_vala_ccode_node_unref0 (_tmp384_);
		_tmp385_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp386_ = _tmp385_;
		_tmp387_ = unref_inner_res;
		vala_ccode_function_add_expression (_tmp386_, (ValaCCodeExpression*) _tmp387_);
		_vala_ccode_node_unref0 (unref_inner_res);
		_vala_ccode_node_unref0 (inner_res);
		_vala_ccode_node_unref0 (ccall);
	}
	if (call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC) {
		_tmp388_ = TRUE;
	} else {
		_tmp388_ = call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH;
	}
	if (_tmp388_) {
		ValaCCodeFunction* _tmp389_;
		ValaCCodeFunction* _tmp390_;
		ValaCCodeVariableDeclarator* _tmp391_;
		ValaCCodeVariableDeclarator* _tmp392_;
		ValaCCodeFunctionCall* unref_reply = NULL;
		ValaCCodeIdentifier* _tmp393_;
		ValaCCodeIdentifier* _tmp394_;
		ValaCCodeFunctionCall* _tmp395_;
		ValaCCodeFunctionCall* _tmp396_;
		ValaCCodeFunctionCall* _tmp397_;
		ValaCCodeIdentifier* _tmp398_;
		ValaCCodeIdentifier* _tmp399_;
		ValaCCodeUnaryExpression* reply_is_null = NULL;
		ValaCCodeIdentifier* _tmp400_;
		ValaCCodeIdentifier* _tmp401_;
		ValaCCodeUnaryExpression* _tmp402_;
		ValaCCodeUnaryExpression* _tmp403_;
		ValaCCodeFunction* _tmp404_;
		ValaCCodeFunction* _tmp405_;
		ValaCCodeUnaryExpression* _tmp406_;
		ValaDataType* _tmp407_;
		ValaDataType* _tmp408_;
		ValaCCodeFunction* _tmp409_;
		ValaCCodeFunction* _tmp410_;
		ValaCCodeFunctionCall* ccall = NULL;
		ValaCCodeIdentifier* _tmp411_;
		ValaCCodeIdentifier* _tmp412_;
		ValaCCodeFunctionCall* _tmp413_;
		ValaCCodeFunctionCall* _tmp414_;
		ValaCCodeFunctionCall* _tmp415_;
		ValaCCodeIdentifier* _tmp416_;
		ValaCCodeIdentifier* _tmp417_;
		ValaCCodeFunctionCall* _tmp418_;
		ValaCCodeExpression* _tmp419_;
		ValaCCodeFunction* _tmp420_;
		ValaCCodeFunction* _tmp421_;
		ValaCCodeFunctionCall* _tmp422_;
		ValaCCodeFunction* _tmp423_;
		ValaCCodeFunction* _tmp424_;
		ValaCCodeFunctionCall* _tmp425_;
		ValaDataType* _tmp426_;
		ValaDataType* _tmp427_;
		ValaCCodeFunction* _tmp428_;
		ValaCCodeFunction* _tmp429_;
		gboolean has_result = FALSE;
		ValaDataType* _tmp430_;
		ValaDataType* _tmp431_;
		ValaCCodeFunction* _tmp702_;
		ValaCCodeFunction* _tmp703_;
		ValaCCodeFunctionCall* _tmp704_;
		gboolean _tmp705_ = FALSE;
		ValaDataType* _tmp706_;
		ValaDataType* _tmp707_;
		_tmp389_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp390_ = _tmp389_;
		_tmp391_ = vala_ccode_variable_declarator_new ("*_reply_message", NULL, NULL);
		_tmp392_ = _tmp391_;
		vala_ccode_function_add_declaration (_tmp390_, "GDBusMessage", (ValaCCodeDeclarator*) _tmp392_, 0);
		_vala_ccode_node_unref0 (_tmp392_);
		_tmp393_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp394_ = _tmp393_;
		_tmp395_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp394_);
		_tmp396_ = _tmp395_;
		_vala_ccode_node_unref0 (_tmp394_);
		unref_reply = _tmp396_;
		_tmp397_ = unref_reply;
		_tmp398_ = vala_ccode_identifier_new ("_reply_message");
		_tmp399_ = _tmp398_;
		vala_ccode_function_call_add_argument (_tmp397_, (ValaCCodeExpression*) _tmp399_);
		_vala_ccode_node_unref0 (_tmp399_);
		_tmp400_ = vala_ccode_identifier_new ("_reply_message");
		_tmp401_ = _tmp400_;
		_tmp402_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp401_);
		_tmp403_ = _tmp402_;
		_vala_ccode_node_unref0 (_tmp401_);
		reply_is_null = _tmp403_;
		_tmp404_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp405_ = _tmp404_;
		_tmp406_ = reply_is_null;
		vala_ccode_function_open_if (_tmp405_, (ValaCCodeExpression*) _tmp406_);
		_tmp407_ = vala_callable_get_return_type ((ValaCallable*) m);
		_tmp408_ = _tmp407_;
		vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp408_, FALSE);
		_tmp409_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp410_ = _tmp409_;
		vala_ccode_function_close (_tmp410_);
		_tmp411_ = vala_ccode_identifier_new ("g_dbus_message_to_gerror");
		_tmp412_ = _tmp411_;
		_tmp413_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp412_);
		_tmp414_ = _tmp413_;
		_vala_ccode_node_unref0 (_tmp412_);
		ccall = _tmp414_;
		_tmp415_ = ccall;
		_tmp416_ = vala_ccode_identifier_new ("_reply_message");
		_tmp417_ = _tmp416_;
		vala_ccode_function_call_add_argument (_tmp415_, (ValaCCodeExpression*) _tmp417_);
		_vala_ccode_node_unref0 (_tmp417_);
		_tmp418_ = ccall;
		_tmp419_ = error_argument;
		vala_ccode_function_call_add_argument (_tmp418_, _tmp419_);
		_tmp420_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp421_ = _tmp420_;
		_tmp422_ = ccall;
		vala_ccode_function_open_if (_tmp421_, (ValaCCodeExpression*) _tmp422_);
		_tmp423_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp424_ = _tmp423_;
		_tmp425_ = unref_reply;
		vala_ccode_function_add_expression (_tmp424_, (ValaCCodeExpression*) _tmp425_);
		_tmp426_ = vala_callable_get_return_type ((ValaCallable*) m);
		_tmp427_ = _tmp426_;
		vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp427_, FALSE);
		_tmp428_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp429_ = _tmp428_;
		vala_ccode_function_close (_tmp429_);
		_tmp430_ = vala_callable_get_return_type ((ValaCallable*) m);
		_tmp431_ = _tmp430_;
		has_result = !G_TYPE_CHECK_INSTANCE_TYPE (_tmp431_, VALA_TYPE_VOID_TYPE);
		if (uses_fd) {
			ValaCCodeFunction* _tmp432_;
			ValaCCodeFunction* _tmp433_;
			ValaCCodeConstant* _tmp434_;
			ValaCCodeConstant* _tmp435_;
			ValaCCodeVariableDeclarator* _tmp436_;
			ValaCCodeVariableDeclarator* _tmp437_;
			ValaCCodeFunction* _tmp438_;
			ValaCCodeFunction* _tmp439_;
			ValaCCodeVariableDeclarator* _tmp440_;
			ValaCCodeVariableDeclarator* _tmp441_;
			_tmp432_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp433_ = _tmp432_;
			_tmp434_ = vala_ccode_constant_new ("0");
			_tmp435_ = _tmp434_;
			_tmp436_ = vala_ccode_variable_declarator_new_zero ("_fd_index", (ValaCCodeExpression*) _tmp435_, NULL);
			_tmp437_ = _tmp436_;
			vala_ccode_function_add_declaration (_tmp433_, "gint", (ValaCCodeDeclarator*) _tmp437_, 0);
			_vala_ccode_node_unref0 (_tmp437_);
			_vala_ccode_node_unref0 (_tmp435_);
			_tmp438_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp439_ = _tmp438_;
			_tmp440_ = vala_ccode_variable_declarator_new ("_fd", NULL, NULL);
			_tmp441_ = _tmp440_;
			vala_ccode_function_add_declaration (_tmp439_, "gint", (ValaCCodeDeclarator*) _tmp441_, 0);
			_vala_ccode_node_unref0 (_tmp441_);
		}
		{
			ValaList* _param_list = NULL;
			ValaList* _tmp442_;
			gint _param_size = 0;
			ValaList* _tmp443_;
			gint _tmp444_;
			gint _tmp445_;
			gint _param_index = 0;
			_tmp442_ = vala_callable_get_parameters ((ValaCallable*) m);
			_param_list = _tmp442_;
			_tmp443_ = _param_list;
			_tmp444_ = vala_collection_get_size ((ValaCollection*) _tmp443_);
			_tmp445_ = _tmp444_;
			_param_size = _tmp445_;
			_param_index = -1;
			while (TRUE) {
				ValaParameter* param = NULL;
				ValaList* _tmp446_;
				gpointer _tmp447_;
				ValaParameter* _tmp448_;
				ValaParameterDirection _tmp449_;
				ValaParameterDirection _tmp450_;
				_param_index = _param_index + 1;
				if (!(_param_index < _param_size)) {
					break;
				}
				_tmp446_ = _param_list;
				_tmp447_ = vala_list_get (_tmp446_, _param_index);
				param = (ValaParameter*) _tmp447_;
				_tmp448_ = param;
				_tmp449_ = vala_parameter_get_direction (_tmp448_);
				_tmp450_ = _tmp449_;
				if (_tmp450_ == VALA_PARAMETER_DIRECTION_OUT) {
					has_result = TRUE;
				}
				_vala_code_node_unref0 (param);
			}
			_vala_iterable_unref0 (_param_list);
		}
		if (has_result) {
			ValaCCodeFunction* _tmp451_;
			ValaCCodeFunction* _tmp452_;
			ValaCCodeVariableDeclarator* _tmp453_;
			ValaCCodeVariableDeclarator* _tmp454_;
			ValaCCodeFunction* _tmp455_;
			ValaCCodeFunction* _tmp456_;
			ValaCCodeVariableDeclarator* _tmp457_;
			ValaCCodeVariableDeclarator* _tmp458_;
			ValaCCodeIdentifier* _tmp459_;
			ValaCCodeIdentifier* _tmp460_;
			ValaCCodeFunctionCall* _tmp461_;
			ValaCCodeFunctionCall* _tmp462_;
			ValaCCodeIdentifier* _tmp463_;
			ValaCCodeIdentifier* _tmp464_;
			ValaCCodeFunction* _tmp465_;
			ValaCCodeFunction* _tmp466_;
			ValaCCodeIdentifier* _tmp467_;
			ValaCCodeIdentifier* _tmp468_;
			ValaCCodeFunctionCall* _tmp469_;
			ValaCCodeFunctionCall* iter_init = NULL;
			ValaCCodeIdentifier* _tmp470_;
			ValaCCodeIdentifier* _tmp471_;
			ValaCCodeFunctionCall* _tmp472_;
			ValaCCodeFunctionCall* _tmp473_;
			ValaCCodeFunctionCall* _tmp474_;
			ValaCCodeIdentifier* _tmp475_;
			ValaCCodeIdentifier* _tmp476_;
			ValaCCodeUnaryExpression* _tmp477_;
			ValaCCodeUnaryExpression* _tmp478_;
			ValaCCodeFunctionCall* _tmp479_;
			ValaCCodeIdentifier* _tmp480_;
			ValaCCodeIdentifier* _tmp481_;
			ValaCCodeFunction* _tmp482_;
			ValaCCodeFunction* _tmp483_;
			ValaCCodeFunctionCall* _tmp484_;
			ValaDataType* _tmp609_;
			ValaDataType* _tmp610_;
			_tmp451_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp452_ = _tmp451_;
			_tmp453_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
			_tmp454_ = _tmp453_;
			vala_ccode_function_add_declaration (_tmp452_, "GVariant", (ValaCCodeDeclarator*) _tmp454_, 0);
			_vala_ccode_node_unref0 (_tmp454_);
			_tmp455_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp456_ = _tmp455_;
			_tmp457_ = vala_ccode_variable_declarator_new ("_reply_iter", NULL, NULL);
			_tmp458_ = _tmp457_;
			vala_ccode_function_add_declaration (_tmp456_, "GVariantIter", (ValaCCodeDeclarator*) _tmp458_, 0);
			_vala_ccode_node_unref0 (_tmp458_);
			_tmp459_ = vala_ccode_identifier_new ("g_dbus_message_get_body");
			_tmp460_ = _tmp459_;
			_tmp461_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp460_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp461_;
			_vala_ccode_node_unref0 (_tmp460_);
			_tmp462_ = ccall;
			_tmp463_ = vala_ccode_identifier_new ("_reply_message");
			_tmp464_ = _tmp463_;
			vala_ccode_function_call_add_argument (_tmp462_, (ValaCCodeExpression*) _tmp464_);
			_vala_ccode_node_unref0 (_tmp464_);
			_tmp465_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp466_ = _tmp465_;
			_tmp467_ = vala_ccode_identifier_new ("_reply");
			_tmp468_ = _tmp467_;
			_tmp469_ = ccall;
			vala_ccode_function_add_assignment (_tmp466_, (ValaCCodeExpression*) _tmp468_, (ValaCCodeExpression*) _tmp469_);
			_vala_ccode_node_unref0 (_tmp468_);
			_tmp470_ = vala_ccode_identifier_new ("g_variant_iter_init");
			_tmp471_ = _tmp470_;
			_tmp472_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp471_);
			_tmp473_ = _tmp472_;
			_vala_ccode_node_unref0 (_tmp471_);
			iter_init = _tmp473_;
			_tmp474_ = iter_init;
			_tmp475_ = vala_ccode_identifier_new ("_reply_iter");
			_tmp476_ = _tmp475_;
			_tmp477_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp476_);
			_tmp478_ = _tmp477_;
			vala_ccode_function_call_add_argument (_tmp474_, (ValaCCodeExpression*) _tmp478_);
			_vala_ccode_node_unref0 (_tmp478_);
			_vala_ccode_node_unref0 (_tmp476_);
			_tmp479_ = iter_init;
			_tmp480_ = vala_ccode_identifier_new ("_reply");
			_tmp481_ = _tmp480_;
			vala_ccode_function_call_add_argument (_tmp479_, (ValaCCodeExpression*) _tmp481_);
			_vala_ccode_node_unref0 (_tmp481_);
			_tmp482_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp483_ = _tmp482_;
			_tmp484_ = iter_init;
			vala_ccode_function_add_expression (_tmp483_, (ValaCCodeExpression*) _tmp484_);
			{
				ValaList* _param_list = NULL;
				ValaList* _tmp485_;
				gint _param_size = 0;
				ValaList* _tmp486_;
				gint _tmp487_;
				gint _tmp488_;
				gint _param_index = 0;
				_tmp485_ = vala_callable_get_parameters ((ValaCallable*) m);
				_param_list = _tmp485_;
				_tmp486_ = _param_list;
				_tmp487_ = vala_collection_get_size ((ValaCollection*) _tmp486_);
				_tmp488_ = _tmp487_;
				_param_size = _tmp488_;
				_param_index = -1;
				while (TRUE) {
					ValaParameter* param = NULL;
					ValaList* _tmp489_;
					gpointer _tmp490_;
					ValaParameter* _tmp491_;
					ValaParameterDirection _tmp492_;
					ValaParameterDirection _tmp493_;
					_param_index = _param_index + 1;
					if (!(_param_index < _param_size)) {
						break;
					}
					_tmp489_ = _param_list;
					_tmp490_ = vala_list_get (_tmp489_, _param_index);
					param = (ValaParameter*) _tmp490_;
					_tmp491_ = param;
					_tmp492_ = vala_parameter_get_direction (_tmp491_);
					_tmp493_ = _tmp492_;
					if (_tmp493_ == VALA_PARAMETER_DIRECTION_OUT) {
						ValaCCodeFunction* _tmp494_;
						ValaCCodeFunction* _tmp495_;
						ValaParameter* _tmp496_;
						ValaDataType* _tmp497_;
						ValaDataType* _tmp498_;
						gchar* _tmp499_;
						gchar* _tmp500_;
						ValaParameter* _tmp501_;
						const gchar* _tmp502_;
						const gchar* _tmp503_;
						gchar* _tmp504_;
						gchar* _tmp505_;
						ValaParameter* _tmp506_;
						ValaDataType* _tmp507_;
						ValaDataType* _tmp508_;
						ValaCCodeExpression* _tmp509_;
						ValaCCodeExpression* _tmp510_;
						ValaCCodeVariableDeclarator* _tmp511_;
						ValaCCodeVariableDeclarator* _tmp512_;
						ValaArrayType* array_type = NULL;
						ValaParameter* _tmp513_;
						ValaDataType* _tmp514_;
						ValaDataType* _tmp515_;
						ValaArrayType* _tmp516_;
						ValaArrayType* _tmp517_;
						ValaCCodeIdentifier* target = NULL;
						ValaParameter* _tmp537_;
						const gchar* _tmp538_;
						const gchar* _tmp539_;
						gchar* _tmp540_;
						gchar* _tmp541_;
						ValaCCodeIdentifier* _tmp542_;
						ValaCCodeIdentifier* _tmp543_;
						gboolean may_fail = FALSE;
						ValaParameter* _tmp544_;
						ValaDataType* _tmp545_;
						ValaDataType* _tmp546_;
						ValaCCodeIdentifier* _tmp547_;
						ValaCCodeIdentifier* _tmp548_;
						ValaCCodeIdentifier* _tmp549_;
						ValaCCodeIdentifier* _tmp550_;
						ValaCCodeIdentifier* _tmp551_;
						ValaParameter* _tmp552_;
						ValaCCodeExpression* _tmp553_;
						gboolean _tmp554_ = FALSE;
						ValaCCodeFunction* _tmp555_;
						ValaCCodeFunction* _tmp556_;
						ValaParameter* _tmp557_;
						const gchar* _tmp558_;
						const gchar* _tmp559_;
						gchar* _tmp560_;
						gchar* _tmp561_;
						ValaCCodeIdentifier* _tmp562_;
						ValaCCodeIdentifier* _tmp563_;
						ValaCCodeUnaryExpression* _tmp564_;
						ValaCCodeUnaryExpression* _tmp565_;
						ValaCCodeIdentifier* _tmp566_;
						ValaArrayType* _tmp567_;
						gboolean _tmp591_ = FALSE;
						_tmp494_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp495_ = _tmp494_;
						_tmp496_ = param;
						_tmp497_ = vala_variable_get_variable_type ((ValaVariable*) _tmp496_);
						_tmp498_ = _tmp497_;
						_tmp499_ = vala_get_ccode_name ((ValaCodeNode*) _tmp498_);
						_tmp500_ = _tmp499_;
						_tmp501_ = param;
						_tmp502_ = vala_symbol_get_name ((ValaSymbol*) _tmp501_);
						_tmp503_ = _tmp502_;
						_tmp504_ = g_strdup_printf ("_vala_%s", _tmp503_);
						_tmp505_ = _tmp504_;
						_tmp506_ = param;
						_tmp507_ = vala_variable_get_variable_type ((ValaVariable*) _tmp506_);
						_tmp508_ = _tmp507_;
						_tmp509_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp508_, TRUE, FALSE);
						_tmp510_ = _tmp509_;
						_tmp511_ = vala_ccode_variable_declarator_new_zero (_tmp505_, _tmp510_, NULL);
						_tmp512_ = _tmp511_;
						vala_ccode_function_add_declaration (_tmp495_, _tmp500_, (ValaCCodeDeclarator*) _tmp512_, 0);
						_vala_ccode_node_unref0 (_tmp512_);
						_vala_ccode_node_unref0 (_tmp510_);
						_g_free0 (_tmp505_);
						_g_free0 (_tmp500_);
						_tmp513_ = param;
						_tmp514_ = vala_variable_get_variable_type ((ValaVariable*) _tmp513_);
						_tmp515_ = _tmp514_;
						_tmp516_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp515_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp515_) : NULL);
						array_type = _tmp516_;
						_tmp517_ = array_type;
						if (_tmp517_ != NULL) {
							gchar* length_ctype = NULL;
							ValaArrayType* _tmp518_;
							gchar* _tmp519_;
							_tmp518_ = array_type;
							_tmp519_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp518_);
							length_ctype = _tmp519_;
							{
								gint dim = 0;
								dim = 1;
								{
									gboolean _tmp520_ = FALSE;
									_tmp520_ = TRUE;
									while (TRUE) {
										ValaArrayType* _tmp522_;
										gint _tmp523_;
										gint _tmp524_;
										ValaCCodeFunction* _tmp525_;
										ValaCCodeFunction* _tmp526_;
										const gchar* _tmp527_;
										ValaParameter* _tmp528_;
										const gchar* _tmp529_;
										const gchar* _tmp530_;
										gchar* _tmp531_;
										gchar* _tmp532_;
										ValaCCodeConstant* _tmp533_;
										ValaCCodeConstant* _tmp534_;
										ValaCCodeVariableDeclarator* _tmp535_;
										ValaCCodeVariableDeclarator* _tmp536_;
										if (!_tmp520_) {
											gint _tmp521_;
											_tmp521_ = dim;
											dim = _tmp521_ + 1;
										}
										_tmp520_ = FALSE;
										_tmp522_ = array_type;
										_tmp523_ = vala_array_type_get_rank (_tmp522_);
										_tmp524_ = _tmp523_;
										if (!(dim <= _tmp524_)) {
											break;
										}
										_tmp525_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
										_tmp526_ = _tmp525_;
										_tmp527_ = length_ctype;
										_tmp528_ = param;
										_tmp529_ = vala_symbol_get_name ((ValaSymbol*) _tmp528_);
										_tmp530_ = _tmp529_;
										_tmp531_ = g_strdup_printf ("_vala_%s_length%d", _tmp530_, dim);
										_tmp532_ = _tmp531_;
										_tmp533_ = vala_ccode_constant_new ("0");
										_tmp534_ = _tmp533_;
										_tmp535_ = vala_ccode_variable_declarator_new (_tmp532_, (ValaCCodeExpression*) _tmp534_, NULL);
										_tmp536_ = _tmp535_;
										vala_ccode_function_add_declaration (_tmp526_, _tmp527_, (ValaCCodeDeclarator*) _tmp536_, 0);
										_vala_ccode_node_unref0 (_tmp536_);
										_vala_ccode_node_unref0 (_tmp534_);
										_g_free0 (_tmp532_);
									}
								}
							}
							_g_free0 (length_ctype);
						}
						_tmp537_ = param;
						_tmp538_ = vala_symbol_get_name ((ValaSymbol*) _tmp537_);
						_tmp539_ = _tmp538_;
						_tmp540_ = g_strdup_printf ("_vala_%s", _tmp539_);
						_tmp541_ = _tmp540_;
						_tmp542_ = vala_ccode_identifier_new (_tmp541_);
						_tmp543_ = _tmp542_;
						_g_free0 (_tmp541_);
						target = _tmp543_;
						_tmp544_ = param;
						_tmp545_ = vala_variable_get_variable_type ((ValaVariable*) _tmp544_);
						_tmp546_ = _tmp545_;
						_tmp547_ = vala_ccode_identifier_new ("_reply_message");
						_tmp548_ = _tmp547_;
						_tmp549_ = vala_ccode_identifier_new ("_reply_iter");
						_tmp550_ = _tmp549_;
						_tmp551_ = target;
						_tmp552_ = param;
						_tmp553_ = error_argument;
						vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp546_, (ValaCCodeExpression*) _tmp548_, (ValaCCodeExpression*) _tmp550_, (ValaCCodeExpression*) _tmp551_, (ValaSymbol*) _tmp552_, _tmp553_, &_tmp554_);
						may_fail = _tmp554_;
						_vala_ccode_node_unref0 (_tmp550_);
						_vala_ccode_node_unref0 (_tmp548_);
						_tmp555_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp556_ = _tmp555_;
						_tmp557_ = param;
						_tmp558_ = vala_symbol_get_name ((ValaSymbol*) _tmp557_);
						_tmp559_ = _tmp558_;
						_tmp560_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp559_);
						_tmp561_ = _tmp560_;
						_tmp562_ = vala_ccode_identifier_new (_tmp561_);
						_tmp563_ = _tmp562_;
						_tmp564_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp563_);
						_tmp565_ = _tmp564_;
						_tmp566_ = target;
						vala_ccode_function_add_assignment (_tmp556_, (ValaCCodeExpression*) _tmp565_, (ValaCCodeExpression*) _tmp566_);
						_vala_ccode_node_unref0 (_tmp565_);
						_vala_ccode_node_unref0 (_tmp563_);
						_g_free0 (_tmp561_);
						_tmp567_ = array_type;
						if (_tmp567_ != NULL) {
							{
								gint dim = 0;
								dim = 1;
								{
									gboolean _tmp568_ = FALSE;
									_tmp568_ = TRUE;
									while (TRUE) {
										ValaArrayType* _tmp570_;
										gint _tmp571_;
										gint _tmp572_;
										ValaCCodeFunction* _tmp573_;
										ValaCCodeFunction* _tmp574_;
										ValaParameter* _tmp575_;
										const gchar* _tmp576_;
										const gchar* _tmp577_;
										gchar* _tmp578_;
										gchar* _tmp579_;
										ValaCCodeIdentifier* _tmp580_;
										ValaCCodeIdentifier* _tmp581_;
										ValaCCodeUnaryExpression* _tmp582_;
										ValaCCodeUnaryExpression* _tmp583_;
										ValaParameter* _tmp584_;
										const gchar* _tmp585_;
										const gchar* _tmp586_;
										gchar* _tmp587_;
										gchar* _tmp588_;
										ValaCCodeIdentifier* _tmp589_;
										ValaCCodeIdentifier* _tmp590_;
										if (!_tmp568_) {
											gint _tmp569_;
											_tmp569_ = dim;
											dim = _tmp569_ + 1;
										}
										_tmp568_ = FALSE;
										_tmp570_ = array_type;
										_tmp571_ = vala_array_type_get_rank (_tmp570_);
										_tmp572_ = _tmp571_;
										if (!(dim <= _tmp572_)) {
											break;
										}
										_tmp573_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
										_tmp574_ = _tmp573_;
										_tmp575_ = param;
										_tmp576_ = vala_symbol_get_name ((ValaSymbol*) _tmp575_);
										_tmp577_ = _tmp576_;
										_tmp578_ = g_strdup_printf ("%s_length%d", _tmp577_, dim);
										_tmp579_ = _tmp578_;
										_tmp580_ = vala_ccode_identifier_new (_tmp579_);
										_tmp581_ = _tmp580_;
										_tmp582_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp581_);
										_tmp583_ = _tmp582_;
										_tmp584_ = param;
										_tmp585_ = vala_symbol_get_name ((ValaSymbol*) _tmp584_);
										_tmp586_ = _tmp585_;
										_tmp587_ = g_strdup_printf ("_vala_%s_length%d", _tmp586_, dim);
										_tmp588_ = _tmp587_;
										_tmp589_ = vala_ccode_identifier_new (_tmp588_);
										_tmp590_ = _tmp589_;
										vala_ccode_function_add_assignment (_tmp574_, (ValaCCodeExpression*) _tmp583_, (ValaCCodeExpression*) _tmp590_);
										_vala_ccode_node_unref0 (_tmp590_);
										_g_free0 (_tmp588_);
										_vala_ccode_node_unref0 (_tmp583_);
										_vala_ccode_node_unref0 (_tmp581_);
										_g_free0 (_tmp579_);
									}
								}
							}
						}
						if (may_fail) {
							_tmp591_ = has_error_argument;
						} else {
							_tmp591_ = FALSE;
						}
						if (_tmp591_) {
							ValaCCodeFunction* _tmp592_;
							ValaCCodeFunction* _tmp593_;
							ValaCCodeIdentifier* _tmp594_;
							ValaCCodeIdentifier* _tmp595_;
							ValaCCodeIdentifier* _tmp596_;
							ValaCCodeIdentifier* _tmp597_;
							ValaCCodeUnaryExpression* _tmp598_;
							ValaCCodeUnaryExpression* _tmp599_;
							ValaCCodeBinaryExpression* _tmp600_;
							ValaCCodeBinaryExpression* _tmp601_;
							ValaCCodeFunction* _tmp602_;
							ValaCCodeFunction* _tmp603_;
							ValaCCodeFunctionCall* _tmp604_;
							ValaDataType* _tmp605_;
							ValaDataType* _tmp606_;
							ValaCCodeFunction* _tmp607_;
							ValaCCodeFunction* _tmp608_;
							_tmp592_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp593_ = _tmp592_;
							_tmp594_ = vala_ccode_identifier_new ("error");
							_tmp595_ = _tmp594_;
							_tmp596_ = vala_ccode_identifier_new ("error");
							_tmp597_ = _tmp596_;
							_tmp598_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp597_);
							_tmp599_ = _tmp598_;
							_tmp600_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) _tmp595_, (ValaCCodeExpression*) _tmp599_);
							_tmp601_ = _tmp600_;
							vala_ccode_function_open_if (_tmp593_, (ValaCCodeExpression*) _tmp601_);
							_vala_ccode_node_unref0 (_tmp601_);
							_vala_ccode_node_unref0 (_tmp599_);
							_vala_ccode_node_unref0 (_tmp597_);
							_vala_ccode_node_unref0 (_tmp595_);
							_tmp602_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp603_ = _tmp602_;
							_tmp604_ = unref_reply;
							vala_ccode_function_add_expression (_tmp603_, (ValaCCodeExpression*) _tmp604_);
							_tmp605_ = vala_callable_get_return_type ((ValaCallable*) m);
							_tmp606_ = _tmp605_;
							vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp606_, FALSE);
							_tmp607_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp608_ = _tmp607_;
							vala_ccode_function_close (_tmp608_);
						}
						_vala_ccode_node_unref0 (target);
						_vala_code_node_unref0 (array_type);
					}
					_vala_code_node_unref0 (param);
				}
				_vala_iterable_unref0 (_param_list);
			}
			_tmp609_ = vala_callable_get_return_type ((ValaCallable*) m);
			_tmp610_ = _tmp609_;
			if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp610_, VALA_TYPE_VOID_TYPE)) {
				ValaDataType* _tmp611_;
				ValaDataType* _tmp612_;
				_tmp611_ = vala_callable_get_return_type ((ValaCallable*) m);
				_tmp612_ = _tmp611_;
				if (vala_data_type_is_real_non_null_struct_type (_tmp612_)) {
					ValaCCodeUnaryExpression* target = NULL;
					ValaCCodeIdentifier* _tmp613_;
					ValaCCodeIdentifier* _tmp614_;
					ValaCCodeUnaryExpression* _tmp615_;
					ValaCCodeUnaryExpression* _tmp616_;
					ValaDataType* _tmp617_;
					ValaDataType* _tmp618_;
					ValaCCodeIdentifier* _tmp619_;
					ValaCCodeIdentifier* _tmp620_;
					ValaCCodeIdentifier* _tmp621_;
					ValaCCodeIdentifier* _tmp622_;
					ValaCCodeUnaryExpression* _tmp623_;
					_tmp613_ = vala_ccode_identifier_new ("result");
					_tmp614_ = _tmp613_;
					_tmp615_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp614_);
					_tmp616_ = _tmp615_;
					_vala_ccode_node_unref0 (_tmp614_);
					target = _tmp616_;
					_tmp617_ = vala_callable_get_return_type ((ValaCallable*) m);
					_tmp618_ = _tmp617_;
					_tmp619_ = vala_ccode_identifier_new ("_reply_message");
					_tmp620_ = _tmp619_;
					_tmp621_ = vala_ccode_identifier_new ("_reply_iter");
					_tmp622_ = _tmp621_;
					_tmp623_ = target;
					vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp618_, (ValaCCodeExpression*) _tmp620_, (ValaCCodeExpression*) _tmp622_, (ValaCCodeExpression*) _tmp623_, (ValaSymbol*) m, NULL, NULL);
					_vala_ccode_node_unref0 (_tmp622_);
					_vala_ccode_node_unref0 (_tmp620_);
					_vala_ccode_node_unref0 (target);
				} else {
					ValaCCodeFunction* _tmp624_;
					ValaCCodeFunction* _tmp625_;
					ValaDataType* _tmp626_;
					ValaDataType* _tmp627_;
					gchar* _tmp628_;
					gchar* _tmp629_;
					ValaDataType* _tmp630_;
					ValaDataType* _tmp631_;
					ValaCCodeExpression* _tmp632_;
					ValaCCodeExpression* _tmp633_;
					ValaCCodeVariableDeclarator* _tmp634_;
					ValaCCodeVariableDeclarator* _tmp635_;
					ValaArrayType* array_type = NULL;
					ValaDataType* _tmp636_;
					ValaDataType* _tmp637_;
					ValaArrayType* _tmp638_;
					ValaArrayType* _tmp639_;
					gboolean may_fail = FALSE;
					ValaDataType* _tmp656_;
					ValaDataType* _tmp657_;
					ValaCCodeIdentifier* _tmp658_;
					ValaCCodeIdentifier* _tmp659_;
					ValaCCodeIdentifier* _tmp660_;
					ValaCCodeIdentifier* _tmp661_;
					ValaCCodeIdentifier* _tmp662_;
					ValaCCodeIdentifier* _tmp663_;
					ValaCCodeIdentifier* _tmp664_;
					ValaCCodeIdentifier* _tmp665_;
					gboolean _tmp666_ = FALSE;
					ValaArrayType* _tmp667_;
					_tmp624_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp625_ = _tmp624_;
					_tmp626_ = vala_callable_get_return_type ((ValaCallable*) m);
					_tmp627_ = _tmp626_;
					_tmp628_ = vala_get_ccode_name ((ValaCodeNode*) _tmp627_);
					_tmp629_ = _tmp628_;
					_tmp630_ = vala_callable_get_return_type ((ValaCallable*) m);
					_tmp631_ = _tmp630_;
					_tmp632_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp631_, TRUE, FALSE);
					_tmp633_ = _tmp632_;
					_tmp634_ = vala_ccode_variable_declarator_new_zero ("_result", _tmp633_, NULL);
					_tmp635_ = _tmp634_;
					vala_ccode_function_add_declaration (_tmp625_, _tmp629_, (ValaCCodeDeclarator*) _tmp635_, 0);
					_vala_ccode_node_unref0 (_tmp635_);
					_vala_ccode_node_unref0 (_tmp633_);
					_g_free0 (_tmp629_);
					_tmp636_ = vala_callable_get_return_type ((ValaCallable*) m);
					_tmp637_ = _tmp636_;
					_tmp638_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp637_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp637_) : NULL);
					array_type = _tmp638_;
					_tmp639_ = array_type;
					if (_tmp639_ != NULL) {
						gchar* length_ctype = NULL;
						ValaArrayType* _tmp640_;
						gchar* _tmp641_;
						_tmp640_ = array_type;
						_tmp641_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp640_);
						length_ctype = _tmp641_;
						{
							gint dim = 0;
							dim = 1;
							{
								gboolean _tmp642_ = FALSE;
								_tmp642_ = TRUE;
								while (TRUE) {
									ValaArrayType* _tmp644_;
									gint _tmp645_;
									gint _tmp646_;
									ValaCCodeFunction* _tmp647_;
									ValaCCodeFunction* _tmp648_;
									const gchar* _tmp649_;
									gchar* _tmp650_;
									gchar* _tmp651_;
									ValaCCodeConstant* _tmp652_;
									ValaCCodeConstant* _tmp653_;
									ValaCCodeVariableDeclarator* _tmp654_;
									ValaCCodeVariableDeclarator* _tmp655_;
									if (!_tmp642_) {
										gint _tmp643_;
										_tmp643_ = dim;
										dim = _tmp643_ + 1;
									}
									_tmp642_ = FALSE;
									_tmp644_ = array_type;
									_tmp645_ = vala_array_type_get_rank (_tmp644_);
									_tmp646_ = _tmp645_;
									if (!(dim <= _tmp646_)) {
										break;
									}
									_tmp647_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
									_tmp648_ = _tmp647_;
									_tmp649_ = length_ctype;
									_tmp650_ = g_strdup_printf ("_result_length%d", dim);
									_tmp651_ = _tmp650_;
									_tmp652_ = vala_ccode_constant_new ("0");
									_tmp653_ = _tmp652_;
									_tmp654_ = vala_ccode_variable_declarator_new (_tmp651_, (ValaCCodeExpression*) _tmp653_, NULL);
									_tmp655_ = _tmp654_;
									vala_ccode_function_add_declaration (_tmp648_, _tmp649_, (ValaCCodeDeclarator*) _tmp655_, 0);
									_vala_ccode_node_unref0 (_tmp655_);
									_vala_ccode_node_unref0 (_tmp653_);
									_g_free0 (_tmp651_);
								}
							}
						}
						_g_free0 (length_ctype);
					}
					_tmp656_ = vala_callable_get_return_type ((ValaCallable*) m);
					_tmp657_ = _tmp656_;
					_tmp658_ = vala_ccode_identifier_new ("_reply_message");
					_tmp659_ = _tmp658_;
					_tmp660_ = vala_ccode_identifier_new ("_reply_iter");
					_tmp661_ = _tmp660_;
					_tmp662_ = vala_ccode_identifier_new ("_result");
					_tmp663_ = _tmp662_;
					_tmp664_ = vala_ccode_identifier_new ("error");
					_tmp665_ = _tmp664_;
					vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp657_, (ValaCCodeExpression*) _tmp659_, (ValaCCodeExpression*) _tmp661_, (ValaCCodeExpression*) _tmp663_, (ValaSymbol*) m, (ValaCCodeExpression*) _tmp665_, &_tmp666_);
					may_fail = _tmp666_;
					_vala_ccode_node_unref0 (_tmp665_);
					_vala_ccode_node_unref0 (_tmp663_);
					_vala_ccode_node_unref0 (_tmp661_);
					_vala_ccode_node_unref0 (_tmp659_);
					_tmp667_ = array_type;
					if (_tmp667_ != NULL) {
						{
							gint dim = 0;
							dim = 1;
							{
								gboolean _tmp668_ = FALSE;
								_tmp668_ = TRUE;
								while (TRUE) {
									ValaArrayType* _tmp670_;
									gint _tmp671_;
									gint _tmp672_;
									ValaCCodeFunction* _tmp673_;
									ValaCCodeFunction* _tmp674_;
									gchar* _tmp675_;
									gchar* _tmp676_;
									ValaCCodeIdentifier* _tmp677_;
									ValaCCodeIdentifier* _tmp678_;
									ValaCCodeUnaryExpression* _tmp679_;
									ValaCCodeUnaryExpression* _tmp680_;
									gchar* _tmp681_;
									gchar* _tmp682_;
									ValaCCodeIdentifier* _tmp683_;
									ValaCCodeIdentifier* _tmp684_;
									if (!_tmp668_) {
										gint _tmp669_;
										_tmp669_ = dim;
										dim = _tmp669_ + 1;
									}
									_tmp668_ = FALSE;
									_tmp670_ = array_type;
									_tmp671_ = vala_array_type_get_rank (_tmp670_);
									_tmp672_ = _tmp671_;
									if (!(dim <= _tmp672_)) {
										break;
									}
									_tmp673_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
									_tmp674_ = _tmp673_;
									_tmp675_ = g_strdup_printf ("result_length%d", dim);
									_tmp676_ = _tmp675_;
									_tmp677_ = vala_ccode_identifier_new (_tmp676_);
									_tmp678_ = _tmp677_;
									_tmp679_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp678_);
									_tmp680_ = _tmp679_;
									_tmp681_ = g_strdup_printf ("_result_length%d", dim);
									_tmp682_ = _tmp681_;
									_tmp683_ = vala_ccode_identifier_new (_tmp682_);
									_tmp684_ = _tmp683_;
									vala_ccode_function_add_assignment (_tmp674_, (ValaCCodeExpression*) _tmp680_, (ValaCCodeExpression*) _tmp684_);
									_vala_ccode_node_unref0 (_tmp684_);
									_g_free0 (_tmp682_);
									_vala_ccode_node_unref0 (_tmp680_);
									_vala_ccode_node_unref0 (_tmp678_);
									_g_free0 (_tmp676_);
								}
							}
						}
					}
					if (may_fail) {
						ValaCCodeFunction* _tmp685_;
						ValaCCodeFunction* _tmp686_;
						ValaCCodeIdentifier* _tmp687_;
						ValaCCodeIdentifier* _tmp688_;
						ValaCCodeIdentifier* _tmp689_;
						ValaCCodeIdentifier* _tmp690_;
						ValaCCodeUnaryExpression* _tmp691_;
						ValaCCodeUnaryExpression* _tmp692_;
						ValaCCodeBinaryExpression* _tmp693_;
						ValaCCodeBinaryExpression* _tmp694_;
						ValaCCodeFunction* _tmp695_;
						ValaCCodeFunction* _tmp696_;
						ValaCCodeFunctionCall* _tmp697_;
						ValaDataType* _tmp698_;
						ValaDataType* _tmp699_;
						ValaCCodeFunction* _tmp700_;
						ValaCCodeFunction* _tmp701_;
						_tmp685_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp686_ = _tmp685_;
						_tmp687_ = vala_ccode_identifier_new ("error");
						_tmp688_ = _tmp687_;
						_tmp689_ = vala_ccode_identifier_new ("error");
						_tmp690_ = _tmp689_;
						_tmp691_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp690_);
						_tmp692_ = _tmp691_;
						_tmp693_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) _tmp688_, (ValaCCodeExpression*) _tmp692_);
						_tmp694_ = _tmp693_;
						vala_ccode_function_open_if (_tmp686_, (ValaCCodeExpression*) _tmp694_);
						_vala_ccode_node_unref0 (_tmp694_);
						_vala_ccode_node_unref0 (_tmp692_);
						_vala_ccode_node_unref0 (_tmp690_);
						_vala_ccode_node_unref0 (_tmp688_);
						_tmp695_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp696_ = _tmp695_;
						_tmp697_ = unref_reply;
						vala_ccode_function_add_expression (_tmp696_, (ValaCCodeExpression*) _tmp697_);
						_tmp698_ = vala_callable_get_return_type ((ValaCallable*) m);
						_tmp699_ = _tmp698_;
						vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp699_, FALSE);
						_tmp700_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp701_ = _tmp700_;
						vala_ccode_function_close (_tmp701_);
					}
					_vala_code_node_unref0 (array_type);
				}
			}
			_vala_ccode_node_unref0 (iter_init);
		}
		_tmp702_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp703_ = _tmp702_;
		_tmp704_ = unref_reply;
		vala_ccode_function_add_expression (_tmp703_, (ValaCCodeExpression*) _tmp704_);
		_tmp706_ = vala_callable_get_return_type ((ValaCallable*) m);
		_tmp707_ = _tmp706_;
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp707_, VALA_TYPE_VOID_TYPE)) {
			_tmp705_ = TRUE;
		} else {
			ValaDataType* _tmp708_;
			ValaDataType* _tmp709_;
			_tmp708_ = vala_callable_get_return_type ((ValaCallable*) m);
			_tmp709_ = _tmp708_;
			_tmp705_ = vala_data_type_is_real_non_null_struct_type (_tmp709_);
		}
		if (!_tmp705_) {
			ValaCCodeFunction* _tmp710_;
			ValaCCodeFunction* _tmp711_;
			ValaCCodeIdentifier* _tmp712_;
			ValaCCodeIdentifier* _tmp713_;
			_tmp710_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp711_ = _tmp710_;
			_tmp712_ = vala_ccode_identifier_new ("_result");
			_tmp713_ = _tmp712_;
			vala_ccode_function_add_return (_tmp711_, (ValaCCodeExpression*) _tmp713_);
			_vala_ccode_node_unref0 (_tmp713_);
		}
		_vala_ccode_node_unref0 (ccall);
		_vala_ccode_node_unref0 (reply_is_null);
		_vala_ccode_node_unref0 (unref_reply);
	}
	_vala_ccode_node_unref0 (error_argument);
	_vala_ccode_node_unref0 (connection);
	_vala_ccode_node_unref0 (gdbusproxy);
}

static gchar*
vala_gd_bus_client_module_generate_dbus_proxy_method (ValaGDBusClientModule* self,
                                                      ValaInterface* main_iface,
                                                      ValaInterface* iface,
                                                      ValaMethod* m)
{
	gchar* proxy_name = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* dbus_iface_name = NULL;
	gchar* _tmp6_;
	gboolean no_reply = FALSE;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp7_;
	ValaCCodeFunction* _tmp8_;
	ValaCCodeFunction* _tmp9_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp10_;
	GEqualFunc _tmp11_;
	GEqualFunc _tmp12_;
	ValaHashMap* _tmp13_;
	ValaCCodeFile* _tmp14_;
	ValaHashMap* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaCCodeFunction* _tmp17_;
	ValaGDBusClientModuleCallType _tmp18_ = 0;
	const gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	ValaCCodeFile* _tmp22_;
	ValaCCodeFunction* _tmp23_;
	ValaCCodeFile* _tmp24_;
	ValaCCodeFunction* _tmp25_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) main_iface);
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup_printf ("%sproxy_%s", _tmp1_, _tmp3_);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp1_);
	proxy_name = _tmp5_;
	_tmp6_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
	dbus_iface_name = _tmp6_;
	no_reply = vala_gd_bus_module_is_dbus_no_reply (m);
	_tmp7_ = proxy_name;
	_tmp8_ = vala_ccode_function_new (_tmp7_, "void");
	function = _tmp8_;
	_tmp9_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp9_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp10_ = g_direct_hash;
	_tmp11_ = g_direct_equal;
	_tmp12_ = g_direct_equal;
	_tmp13_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp10_, _tmp11_, _tmp12_);
	cparam_map = _tmp13_;
	_tmp14_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp15_ = cparam_map;
	_tmp16_ = function;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, _tmp14_, (ValaMap*) _tmp15_, _tmp16_, NULL, NULL, NULL, 3);
	_tmp17_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp17_);
	if (no_reply) {
		_tmp18_ = VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY;
	} else {
		_tmp18_ = VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC;
	}
	_tmp19_ = dbus_iface_name;
	_tmp20_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) m);
	_tmp21_ = _tmp20_;
	vala_gd_bus_client_module_generate_marshalling (self, m, _tmp18_, _tmp19_, _tmp21_, vala_gd_bus_module_get_dbus_timeout_for_member ((ValaSymbol*) m));
	_g_free0 (_tmp21_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp22_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp23_ = function;
	vala_ccode_file_add_function_declaration (_tmp22_, _tmp23_);
	_tmp24_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp25_ = function;
	vala_ccode_file_add_function (_tmp24_, _tmp25_);
	result = proxy_name;
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (function);
	_g_free0 (dbus_iface_name);
	return result;
}

static gchar*
vala_gd_bus_client_module_generate_async_dbus_proxy_method (ValaGDBusClientModule* self,
                                                            ValaInterface* main_iface,
                                                            ValaInterface* iface,
                                                            ValaMethod* m)
{
	gchar* proxy_name = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* dbus_iface_name = NULL;
	gchar* _tmp6_;
	ValaCCodeFunction* function = NULL;
	ValaCCodeFunction* _tmp7_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp8_;
	GEqualFunc _tmp9_;
	GEqualFunc _tmp10_;
	ValaHashMap* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeParameter* _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaCCodeFile* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	ValaCCodeFile* _tmp19_;
	ValaCCodeFile* _tmp20_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) main_iface);
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup_printf ("%sproxy_%s_async", _tmp1_, _tmp3_);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp1_);
	proxy_name = _tmp5_;
	_tmp6_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
	dbus_iface_name = _tmp6_;
	_tmp7_ = vala_ccode_function_new (proxy_name, "void");
	function = _tmp7_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) function, VALA_CCODE_MODIFIERS_STATIC);
	_tmp8_ = g_direct_hash;
	_tmp9_ = g_direct_equal;
	_tmp10_ = g_direct_equal;
	_tmp11_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp8_, _tmp9_, _tmp10_);
	cparam_map = _tmp11_;
	_tmp12_ = vala_ccode_parameter_new ("_callback_", "GAsyncReadyCallback");
	_tmp13_ = _tmp12_;
	vala_map_set ((ValaMap*) cparam_map, (gpointer) ((gintptr) vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, (gdouble) -1, FALSE)), _tmp13_);
	_vala_ccode_node_unref0 (_tmp13_);
	_tmp14_ = vala_ccode_parameter_new ("_user_data_", "gpointer");
	_tmp15_ = _tmp14_;
	vala_map_set ((ValaMap*) cparam_map, (gpointer) ((gintptr) vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, -0.9, FALSE)), _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_tmp16_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, _tmp16_, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 1);
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
	_tmp17_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) m);
	_tmp18_ = _tmp17_;
	vala_gd_bus_client_module_generate_marshalling (self, m, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC, dbus_iface_name, _tmp18_, vala_gd_bus_module_get_dbus_timeout_for_member ((ValaSymbol*) m));
	_g_free0 (_tmp18_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp19_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function_declaration (_tmp19_, function);
	_tmp20_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function (_tmp20_, function);
	result = proxy_name;
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (function);
	_g_free0 (dbus_iface_name);
	return result;
}

static gchar*
vala_gd_bus_client_module_generate_finish_dbus_proxy_method (ValaGDBusClientModule* self,
                                                             ValaInterface* main_iface,
                                                             ValaInterface* iface,
                                                             ValaMethod* m)
{
	gchar* proxy_name = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	ValaCCodeFunction* function = NULL;
	ValaCCodeFunction* _tmp6_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp7_;
	GEqualFunc _tmp8_;
	GEqualFunc _tmp9_;
	ValaHashMap* _tmp10_;
	ValaCCodeParameter* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeFile* _tmp13_;
	ValaCCodeFile* _tmp14_;
	ValaCCodeFile* _tmp15_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) main_iface);
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup_printf ("%sproxy_%s_finish", _tmp1_, _tmp3_);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp1_);
	proxy_name = _tmp5_;
	_tmp6_ = vala_ccode_function_new (proxy_name, "void");
	function = _tmp6_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) function, VALA_CCODE_MODIFIERS_STATIC);
	_tmp7_ = g_direct_hash;
	_tmp8_ = g_direct_equal;
	_tmp9_ = g_direct_equal;
	_tmp10_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp7_, _tmp8_, _tmp9_);
	cparam_map = _tmp10_;
	_tmp11_ = vala_ccode_parameter_new ("_res_", "GAsyncResult*");
	_tmp12_ = _tmp11_;
	vala_map_set ((ValaMap*) cparam_map, (gpointer) ((gintptr) vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, vala_get_ccode_async_result_pos (m), FALSE)), _tmp12_);
	_vala_ccode_node_unref0 (_tmp12_);
	_tmp13_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, _tmp13_, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 2);
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
	vala_gd_bus_client_module_generate_marshalling (self, m, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH, NULL, NULL, -1);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp14_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function_declaration (_tmp14_, function);
	_tmp15_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function (_tmp15_, function);
	result = proxy_name;
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (function);
	return result;
}

static gchar*
vala_gd_bus_client_module_generate_dbus_proxy_property_get (ValaGDBusClientModule* self,
                                                            ValaInterface* main_iface,
                                                            ValaInterface* iface,
                                                            ValaProperty* prop)
{
	gchar* proxy_name = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* dbus_iface_name = NULL;
	gchar* _tmp6_;
	ValaDataType* owned_type = NULL;
	ValaPropertyAccessor* _tmp7_;
	ValaPropertyAccessor* _tmp8_;
	ValaDataType* _tmp9_;
	ValaDataType* _tmp10_;
	ValaDataType* _tmp11_;
	ValaDataType* _tmp12_;
	gboolean _tmp13_ = FALSE;
	ValaDataType* _tmp14_;
	ValaArrayType* array_type = NULL;
	ValaPropertyAccessor* _tmp27_;
	ValaPropertyAccessor* _tmp28_;
	ValaDataType* _tmp29_;
	ValaDataType* _tmp30_;
	ValaArrayType* _tmp31_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp32_;
	ValaCCodeFunction* _tmp33_;
	ValaCCodeFunction* _tmp34_;
	ValaCCodeFunction* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	ValaCCodeParameter* _tmp40_;
	ValaCCodeParameter* _tmp41_;
	ValaDataType* _tmp42_;
	ValaDataType* _tmp43_;
	ValaCCodeFunction* _tmp79_;
	ValaCCodeFunction* _tmp80_;
	ValaCCodeFunction* _tmp81_;
	ValaCCodeVariableDeclarator* _tmp82_;
	ValaCCodeVariableDeclarator* _tmp83_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp84_;
	ValaCCodeIdentifier* _tmp85_;
	ValaCCodeFunctionCall* _tmp86_;
	ValaCCodeFunctionCall* _tmp87_;
	ValaCCodeFunctionCall* _tmp88_;
	ValaCCodeIdentifier* _tmp89_;
	ValaCCodeIdentifier* _tmp90_;
	ValaCCodeCastExpression* _tmp91_;
	ValaCCodeCastExpression* _tmp92_;
	ValaCCodeFunctionCall* _tmp93_;
	gchar* _tmp94_;
	gchar* _tmp95_;
	gchar* _tmp96_;
	gchar* _tmp97_;
	ValaCCodeConstant* _tmp98_;
	ValaCCodeConstant* _tmp99_;
	ValaCCodeFunction* _tmp100_;
	ValaCCodeFunction* _tmp101_;
	ValaCCodeIdentifier* _tmp102_;
	ValaCCodeIdentifier* _tmp103_;
	ValaCCodeFunctionCall* _tmp104_;
	ValaCCodeFunction* _tmp105_;
	ValaCCodeFunction* _tmp106_;
	ValaCCodeIdentifier* _tmp107_;
	ValaCCodeIdentifier* _tmp108_;
	ValaCCodeUnaryExpression* _tmp109_;
	ValaCCodeUnaryExpression* _tmp110_;
	ValaCCodeFunction* _tmp111_;
	ValaCCodeFunction* _tmp112_;
	ValaCCodeVariableDeclarator* _tmp113_;
	ValaCCodeVariableDeclarator* _tmp114_;
	ValaCCodeFunction* _tmp115_;
	ValaCCodeFunction* _tmp116_;
	ValaCCodeVariableDeclarator* _tmp117_;
	ValaCCodeVariableDeclarator* _tmp118_;
	ValaCCodeFunction* _tmp119_;
	ValaCCodeFunction* _tmp120_;
	ValaCCodeVariableDeclarator* _tmp121_;
	ValaCCodeVariableDeclarator* _tmp122_;
	ValaCCodeFunctionCall* builder_init = NULL;
	ValaCCodeIdentifier* _tmp123_;
	ValaCCodeIdentifier* _tmp124_;
	ValaCCodeFunctionCall* _tmp125_;
	ValaCCodeFunctionCall* _tmp126_;
	ValaCCodeFunctionCall* _tmp127_;
	ValaCCodeIdentifier* _tmp128_;
	ValaCCodeIdentifier* _tmp129_;
	ValaCCodeUnaryExpression* _tmp130_;
	ValaCCodeUnaryExpression* _tmp131_;
	ValaCCodeFunctionCall* _tmp132_;
	ValaCCodeIdentifier* _tmp133_;
	ValaCCodeIdentifier* _tmp134_;
	ValaCCodeFunction* _tmp135_;
	ValaCCodeFunction* _tmp136_;
	ValaCCodeFunctionCall* _tmp137_;
	ValaDataType* _tmp138_;
	ValaCCodeIdentifier* _tmp139_;
	ValaCCodeIdentifier* _tmp140_;
	const gchar* _tmp141_;
	gchar* _tmp142_;
	gchar* _tmp143_;
	ValaCCodeConstant* _tmp144_;
	ValaCCodeConstant* _tmp145_;
	ValaDataType* _tmp146_;
	ValaCCodeIdentifier* _tmp147_;
	ValaCCodeIdentifier* _tmp148_;
	gchar* _tmp149_;
	gchar* _tmp150_;
	gchar* _tmp151_;
	gchar* _tmp152_;
	ValaCCodeConstant* _tmp153_;
	ValaCCodeConstant* _tmp154_;
	ValaCCodeFunctionCall* builder_end = NULL;
	ValaCCodeIdentifier* _tmp155_;
	ValaCCodeIdentifier* _tmp156_;
	ValaCCodeFunctionCall* _tmp157_;
	ValaCCodeFunctionCall* _tmp158_;
	ValaCCodeFunctionCall* _tmp159_;
	ValaCCodeIdentifier* _tmp160_;
	ValaCCodeIdentifier* _tmp161_;
	ValaCCodeUnaryExpression* _tmp162_;
	ValaCCodeUnaryExpression* _tmp163_;
	ValaCCodeFunction* _tmp164_;
	ValaCCodeFunction* _tmp165_;
	ValaCCodeIdentifier* _tmp166_;
	ValaCCodeIdentifier* _tmp167_;
	ValaCCodeFunctionCall* _tmp168_;
	ValaCCodeIdentifier* _tmp169_;
	ValaCCodeIdentifier* _tmp170_;
	ValaCCodeFunctionCall* _tmp171_;
	ValaCCodeFunctionCall* _tmp172_;
	ValaCCodeIdentifier* _tmp173_;
	ValaCCodeIdentifier* _tmp174_;
	ValaCCodeCastExpression* _tmp175_;
	ValaCCodeCastExpression* _tmp176_;
	ValaCCodeFunctionCall* _tmp177_;
	ValaCCodeConstant* _tmp178_;
	ValaCCodeConstant* _tmp179_;
	ValaCCodeFunctionCall* _tmp180_;
	ValaCCodeIdentifier* _tmp181_;
	ValaCCodeIdentifier* _tmp182_;
	ValaCCodeFunctionCall* _tmp183_;
	ValaCCodeConstant* _tmp184_;
	ValaCCodeConstant* _tmp185_;
	ValaCCodeFunctionCall* _tmp186_;
	ValaCCodeConstant* _tmp187_;
	ValaCCodeConstant* _tmp188_;
	ValaCCodeFunctionCall* _tmp189_;
	ValaCCodeConstant* _tmp190_;
	ValaCCodeConstant* _tmp191_;
	ValaCCodeFunctionCall* _tmp192_;
	ValaCCodeConstant* _tmp193_;
	ValaCCodeConstant* _tmp194_;
	ValaCCodeFunction* _tmp195_;
	ValaCCodeFunction* _tmp196_;
	ValaCCodeIdentifier* _tmp197_;
	ValaCCodeIdentifier* _tmp198_;
	ValaCCodeFunctionCall* _tmp199_;
	ValaCCodeFunction* _tmp200_;
	ValaCCodeFunction* _tmp201_;
	ValaCCodeIdentifier* _tmp202_;
	ValaCCodeIdentifier* _tmp203_;
	ValaCCodeUnaryExpression* _tmp204_;
	ValaCCodeUnaryExpression* _tmp205_;
	ValaDataType* _tmp206_;
	ValaDataType* _tmp207_;
	ValaCCodeFunction* _tmp208_;
	ValaCCodeFunction* _tmp209_;
	ValaCCodeFunctionCall* get_variant = NULL;
	ValaCCodeIdentifier* _tmp210_;
	ValaCCodeIdentifier* _tmp211_;
	ValaCCodeFunctionCall* _tmp212_;
	ValaCCodeFunctionCall* _tmp213_;
	ValaCCodeFunctionCall* _tmp214_;
	ValaCCodeIdentifier* _tmp215_;
	ValaCCodeIdentifier* _tmp216_;
	ValaCCodeFunctionCall* _tmp217_;
	ValaCCodeConstant* _tmp218_;
	ValaCCodeConstant* _tmp219_;
	ValaCCodeFunctionCall* _tmp220_;
	ValaCCodeIdentifier* _tmp221_;
	ValaCCodeIdentifier* _tmp222_;
	ValaCCodeUnaryExpression* _tmp223_;
	ValaCCodeUnaryExpression* _tmp224_;
	ValaCCodeFunction* _tmp225_;
	ValaCCodeFunction* _tmp226_;
	ValaCCodeFunctionCall* _tmp227_;
	ValaCCodeFunctionCall* unref_reply = NULL;
	ValaCCodeIdentifier* _tmp228_;
	ValaCCodeIdentifier* _tmp229_;
	ValaCCodeFunctionCall* _tmp230_;
	ValaCCodeFunctionCall* _tmp231_;
	ValaCCodeFunctionCall* _tmp232_;
	ValaCCodeIdentifier* _tmp233_;
	ValaCCodeIdentifier* _tmp234_;
	ValaCCodeFunction* _tmp235_;
	ValaCCodeFunction* _tmp236_;
	ValaCCodeFunctionCall* _tmp237_;
	ValaCCodeFunction* _tmp238_;
	ValaCCodeFunction* _tmp239_;
	ValaDataType* _tmp240_;
	ValaDataType* _tmp241_;
	gboolean _tmp328_ = FALSE;
	ValaDataType* _tmp329_;
	ValaDataType* _tmp330_;
	ValaDataType* _tmp342_;
	ValaDataType* _tmp343_;
	ValaCCodeFile* _tmp350_;
	ValaCCodeFunction* _tmp351_;
	ValaCCodeFile* _tmp352_;
	ValaCCodeFunction* _tmp353_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (prop != NULL, NULL);
	_tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) main_iface);
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_symbol_get_name ((ValaSymbol*) prop);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup_printf ("%sdbus_proxy_get_%s", _tmp1_, _tmp3_);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp1_);
	proxy_name = _tmp5_;
	_tmp6_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
	dbus_iface_name = _tmp6_;
	_tmp7_ = vala_property_get_get_accessor (prop);
	_tmp8_ = _tmp7_;
	_tmp9_ = vala_property_accessor_get_value_type (_tmp8_);
	_tmp10_ = _tmp9_;
	_tmp11_ = vala_data_type_copy (_tmp10_);
	owned_type = _tmp11_;
	_tmp12_ = owned_type;
	vala_data_type_set_value_owned (_tmp12_, TRUE);
	_tmp14_ = owned_type;
	if (vala_data_type_is_disposable (_tmp14_)) {
		ValaPropertyAccessor* _tmp15_;
		ValaPropertyAccessor* _tmp16_;
		ValaDataType* _tmp17_;
		ValaDataType* _tmp18_;
		gboolean _tmp19_;
		gboolean _tmp20_;
		_tmp15_ = vala_property_get_get_accessor (prop);
		_tmp16_ = _tmp15_;
		_tmp17_ = vala_property_accessor_get_value_type (_tmp16_);
		_tmp18_ = _tmp17_;
		_tmp19_ = vala_data_type_get_value_owned (_tmp18_);
		_tmp20_ = _tmp19_;
		_tmp13_ = !_tmp20_;
	} else {
		_tmp13_ = FALSE;
	}
	if (_tmp13_) {
		ValaPropertyAccessor* _tmp21_;
		ValaPropertyAccessor* _tmp22_;
		ValaDataType* _tmp23_;
		ValaDataType* _tmp24_;
		ValaSourceReference* _tmp25_;
		ValaSourceReference* _tmp26_;
		_tmp21_ = vala_property_get_get_accessor (prop);
		_tmp22_ = _tmp21_;
		_tmp23_ = vala_property_accessor_get_value_type (_tmp22_);
		_tmp24_ = _tmp23_;
		_tmp25_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp24_);
		_tmp26_ = _tmp25_;
		vala_report_error (_tmp26_, "Properties used in D-Bus clients require owned get accessor");
	}
	_tmp27_ = vala_property_get_get_accessor (prop);
	_tmp28_ = _tmp27_;
	_tmp29_ = vala_property_accessor_get_value_type (_tmp28_);
	_tmp30_ = _tmp29_;
	_tmp31_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp30_) : NULL);
	array_type = _tmp31_;
	_tmp32_ = proxy_name;
	_tmp33_ = vala_ccode_function_new (_tmp32_, "void");
	function = _tmp33_;
	_tmp34_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp34_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp35_ = function;
	_tmp36_ = vala_get_ccode_name ((ValaCodeNode*) iface);
	_tmp37_ = _tmp36_;
	_tmp38_ = g_strdup_printf ("%s*", _tmp37_);
	_tmp39_ = _tmp38_;
	_tmp40_ = vala_ccode_parameter_new ("self", _tmp39_);
	_tmp41_ = _tmp40_;
	vala_ccode_function_add_parameter (_tmp35_, _tmp41_);
	_vala_ccode_node_unref0 (_tmp41_);
	_g_free0 (_tmp39_);
	_g_free0 (_tmp37_);
	_tmp42_ = vala_property_get_property_type (prop);
	_tmp43_ = _tmp42_;
	if (vala_data_type_is_real_non_null_struct_type (_tmp43_)) {
		ValaCCodeFunction* _tmp44_;
		ValaPropertyAccessor* _tmp45_;
		ValaPropertyAccessor* _tmp46_;
		ValaDataType* _tmp47_;
		ValaDataType* _tmp48_;
		gchar* _tmp49_;
		gchar* _tmp50_;
		gchar* _tmp51_;
		gchar* _tmp52_;
		ValaCCodeParameter* _tmp53_;
		ValaCCodeParameter* _tmp54_;
		_tmp44_ = function;
		_tmp45_ = vala_property_get_get_accessor (prop);
		_tmp46_ = _tmp45_;
		_tmp47_ = vala_property_accessor_get_value_type (_tmp46_);
		_tmp48_ = _tmp47_;
		_tmp49_ = vala_get_ccode_name ((ValaCodeNode*) _tmp48_);
		_tmp50_ = _tmp49_;
		_tmp51_ = g_strdup_printf ("%s*", _tmp50_);
		_tmp52_ = _tmp51_;
		_tmp53_ = vala_ccode_parameter_new ("result", _tmp52_);
		_tmp54_ = _tmp53_;
		vala_ccode_function_add_parameter (_tmp44_, _tmp54_);
		_vala_ccode_node_unref0 (_tmp54_);
		_g_free0 (_tmp52_);
		_g_free0 (_tmp50_);
	} else {
		ValaArrayType* _tmp55_;
		ValaCCodeFunction* _tmp72_;
		ValaPropertyAccessor* _tmp73_;
		ValaPropertyAccessor* _tmp74_;
		ValaDataType* _tmp75_;
		ValaDataType* _tmp76_;
		gchar* _tmp77_;
		gchar* _tmp78_;
		_tmp55_ = array_type;
		if (_tmp55_ != NULL) {
			gchar* length_ctype = NULL;
			ValaArrayType* _tmp56_;
			gchar* _tmp57_;
			gchar* _tmp58_;
			gchar* _tmp59_;
			gchar* _tmp60_;
			_tmp56_ = array_type;
			_tmp57_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp56_);
			_tmp58_ = _tmp57_;
			_tmp59_ = g_strconcat (_tmp58_, "*", NULL);
			_tmp60_ = _tmp59_;
			_g_free0 (_tmp58_);
			length_ctype = _tmp60_;
			{
				gint dim = 0;
				dim = 1;
				{
					gboolean _tmp61_ = FALSE;
					_tmp61_ = TRUE;
					while (TRUE) {
						ValaArrayType* _tmp63_;
						gint _tmp64_;
						gint _tmp65_;
						ValaCCodeFunction* _tmp66_;
						gchar* _tmp67_;
						gchar* _tmp68_;
						const gchar* _tmp69_;
						ValaCCodeParameter* _tmp70_;
						ValaCCodeParameter* _tmp71_;
						if (!_tmp61_) {
							gint _tmp62_;
							_tmp62_ = dim;
							dim = _tmp62_ + 1;
						}
						_tmp61_ = FALSE;
						_tmp63_ = array_type;
						_tmp64_ = vala_array_type_get_rank (_tmp63_);
						_tmp65_ = _tmp64_;
						if (!(dim <= _tmp65_)) {
							break;
						}
						_tmp66_ = function;
						_tmp67_ = g_strdup_printf ("result_length%d", dim);
						_tmp68_ = _tmp67_;
						_tmp69_ = length_ctype;
						_tmp70_ = vala_ccode_parameter_new (_tmp68_, _tmp69_);
						_tmp71_ = _tmp70_;
						vala_ccode_function_add_parameter (_tmp66_, _tmp71_);
						_vala_ccode_node_unref0 (_tmp71_);
						_g_free0 (_tmp68_);
					}
				}
			}
			_g_free0 (length_ctype);
		}
		_tmp72_ = function;
		_tmp73_ = vala_property_get_get_accessor (prop);
		_tmp74_ = _tmp73_;
		_tmp75_ = vala_property_accessor_get_value_type (_tmp74_);
		_tmp76_ = _tmp75_;
		_tmp77_ = vala_get_ccode_name ((ValaCodeNode*) _tmp76_);
		_tmp78_ = _tmp77_;
		vala_ccode_function_set_return_type (_tmp72_, _tmp78_);
		_g_free0 (_tmp78_);
	}
	_tmp79_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp79_);
	_tmp80_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp81_ = _tmp80_;
	_tmp82_ = vala_ccode_variable_declarator_new ("*_inner_reply", NULL, NULL);
	_tmp83_ = _tmp82_;
	vala_ccode_function_add_declaration (_tmp81_, "GVariant", (ValaCCodeDeclarator*) _tmp83_, 0);
	_vala_ccode_node_unref0 (_tmp83_);
	_tmp84_ = vala_ccode_identifier_new ("g_dbus_proxy_get_cached_property");
	_tmp85_ = _tmp84_;
	_tmp86_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp85_);
	_tmp87_ = _tmp86_;
	_vala_ccode_node_unref0 (_tmp85_);
	ccall = _tmp87_;
	_tmp88_ = ccall;
	_tmp89_ = vala_ccode_identifier_new ("self");
	_tmp90_ = _tmp89_;
	_tmp91_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp90_, "GDBusProxy *");
	_tmp92_ = _tmp91_;
	vala_ccode_function_call_add_argument (_tmp88_, (ValaCCodeExpression*) _tmp92_);
	_vala_ccode_node_unref0 (_tmp92_);
	_vala_ccode_node_unref0 (_tmp90_);
	_tmp93_ = ccall;
	_tmp94_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
	_tmp95_ = _tmp94_;
	_tmp96_ = g_strdup_printf ("\"%s\"", _tmp95_);
	_tmp97_ = _tmp96_;
	_tmp98_ = vala_ccode_constant_new (_tmp97_);
	_tmp99_ = _tmp98_;
	vala_ccode_function_call_add_argument (_tmp93_, (ValaCCodeExpression*) _tmp99_);
	_vala_ccode_node_unref0 (_tmp99_);
	_g_free0 (_tmp97_);
	_g_free0 (_tmp95_);
	_tmp100_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp101_ = _tmp100_;
	_tmp102_ = vala_ccode_identifier_new ("_inner_reply");
	_tmp103_ = _tmp102_;
	_tmp104_ = ccall;
	vala_ccode_function_add_assignment (_tmp101_, (ValaCCodeExpression*) _tmp103_, (ValaCCodeExpression*) _tmp104_);
	_vala_ccode_node_unref0 (_tmp103_);
	_tmp105_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp106_ = _tmp105_;
	_tmp107_ = vala_ccode_identifier_new ("_inner_reply");
	_tmp108_ = _tmp107_;
	_tmp109_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp108_);
	_tmp110_ = _tmp109_;
	vala_ccode_function_open_if (_tmp106_, (ValaCCodeExpression*) _tmp110_);
	_vala_ccode_node_unref0 (_tmp110_);
	_vala_ccode_node_unref0 (_tmp108_);
	_tmp111_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp112_ = _tmp111_;
	_tmp113_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
	_tmp114_ = _tmp113_;
	vala_ccode_function_add_declaration (_tmp112_, "GVariant", (ValaCCodeDeclarator*) _tmp114_, 0);
	_vala_ccode_node_unref0 (_tmp114_);
	_tmp115_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp116_ = _tmp115_;
	_tmp117_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
	_tmp118_ = _tmp117_;
	vala_ccode_function_add_declaration (_tmp116_, "GVariant", (ValaCCodeDeclarator*) _tmp118_, 0);
	_vala_ccode_node_unref0 (_tmp118_);
	_tmp119_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp120_ = _tmp119_;
	_tmp121_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
	_tmp122_ = _tmp121_;
	vala_ccode_function_add_declaration (_tmp120_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp122_, 0);
	_vala_ccode_node_unref0 (_tmp122_);
	_tmp123_ = vala_ccode_identifier_new ("g_variant_builder_init");
	_tmp124_ = _tmp123_;
	_tmp125_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp124_);
	_tmp126_ = _tmp125_;
	_vala_ccode_node_unref0 (_tmp124_);
	builder_init = _tmp126_;
	_tmp127_ = builder_init;
	_tmp128_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp129_ = _tmp128_;
	_tmp130_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp129_);
	_tmp131_ = _tmp130_;
	vala_ccode_function_call_add_argument (_tmp127_, (ValaCCodeExpression*) _tmp131_);
	_vala_ccode_node_unref0 (_tmp131_);
	_vala_ccode_node_unref0 (_tmp129_);
	_tmp132_ = builder_init;
	_tmp133_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
	_tmp134_ = _tmp133_;
	vala_ccode_function_call_add_argument (_tmp132_, (ValaCCodeExpression*) _tmp134_);
	_vala_ccode_node_unref0 (_tmp134_);
	_tmp135_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp136_ = _tmp135_;
	_tmp137_ = builder_init;
	vala_ccode_function_add_expression (_tmp136_, (ValaCCodeExpression*) _tmp137_);
	_tmp138_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp139_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp140_ = _tmp139_;
	_tmp141_ = dbus_iface_name;
	_tmp142_ = g_strdup_printf ("\"%s\"", _tmp141_);
	_tmp143_ = _tmp142_;
	_tmp144_ = vala_ccode_constant_new (_tmp143_);
	_tmp145_ = _tmp144_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp138_, (ValaCCodeExpression*) _tmp140_, (ValaCCodeExpression*) _tmp145_, NULL);
	_vala_ccode_node_unref0 (_tmp145_);
	_g_free0 (_tmp143_);
	_vala_ccode_node_unref0 (_tmp140_);
	_tmp146_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp147_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp148_ = _tmp147_;
	_tmp149_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
	_tmp150_ = _tmp149_;
	_tmp151_ = g_strdup_printf ("\"%s\"", _tmp150_);
	_tmp152_ = _tmp151_;
	_tmp153_ = vala_ccode_constant_new (_tmp152_);
	_tmp154_ = _tmp153_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp146_, (ValaCCodeExpression*) _tmp148_, (ValaCCodeExpression*) _tmp154_, NULL);
	_vala_ccode_node_unref0 (_tmp154_);
	_g_free0 (_tmp152_);
	_g_free0 (_tmp150_);
	_vala_ccode_node_unref0 (_tmp148_);
	_tmp155_ = vala_ccode_identifier_new ("g_variant_builder_end");
	_tmp156_ = _tmp155_;
	_tmp157_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp156_);
	_tmp158_ = _tmp157_;
	_vala_ccode_node_unref0 (_tmp156_);
	builder_end = _tmp158_;
	_tmp159_ = builder_end;
	_tmp160_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp161_ = _tmp160_;
	_tmp162_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp161_);
	_tmp163_ = _tmp162_;
	vala_ccode_function_call_add_argument (_tmp159_, (ValaCCodeExpression*) _tmp163_);
	_vala_ccode_node_unref0 (_tmp163_);
	_vala_ccode_node_unref0 (_tmp161_);
	_tmp164_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp165_ = _tmp164_;
	_tmp166_ = vala_ccode_identifier_new ("_arguments");
	_tmp167_ = _tmp166_;
	_tmp168_ = builder_end;
	vala_ccode_function_add_assignment (_tmp165_, (ValaCCodeExpression*) _tmp167_, (ValaCCodeExpression*) _tmp168_);
	_vala_ccode_node_unref0 (_tmp167_);
	_tmp169_ = vala_ccode_identifier_new ("g_dbus_proxy_call_sync");
	_tmp170_ = _tmp169_;
	_tmp171_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp170_);
	_vala_ccode_node_unref0 (ccall);
	ccall = _tmp171_;
	_vala_ccode_node_unref0 (_tmp170_);
	_tmp172_ = ccall;
	_tmp173_ = vala_ccode_identifier_new ("self");
	_tmp174_ = _tmp173_;
	_tmp175_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp174_, "GDBusProxy *");
	_tmp176_ = _tmp175_;
	vala_ccode_function_call_add_argument (_tmp172_, (ValaCCodeExpression*) _tmp176_);
	_vala_ccode_node_unref0 (_tmp176_);
	_vala_ccode_node_unref0 (_tmp174_);
	_tmp177_ = ccall;
	_tmp178_ = vala_ccode_constant_new ("\"org.freedesktop.DBus.Properties.Get\"");
	_tmp179_ = _tmp178_;
	vala_ccode_function_call_add_argument (_tmp177_, (ValaCCodeExpression*) _tmp179_);
	_vala_ccode_node_unref0 (_tmp179_);
	_tmp180_ = ccall;
	_tmp181_ = vala_ccode_identifier_new ("_arguments");
	_tmp182_ = _tmp181_;
	vala_ccode_function_call_add_argument (_tmp180_, (ValaCCodeExpression*) _tmp182_);
	_vala_ccode_node_unref0 (_tmp182_);
	_tmp183_ = ccall;
	_tmp184_ = vala_ccode_constant_new ("G_DBUS_CALL_FLAGS_NONE");
	_tmp185_ = _tmp184_;
	vala_ccode_function_call_add_argument (_tmp183_, (ValaCCodeExpression*) _tmp185_);
	_vala_ccode_node_unref0 (_tmp185_);
	_tmp186_ = ccall;
	_tmp187_ = vala_gd_bus_client_module_get_dbus_timeout (self, (ValaSymbol*) prop);
	_tmp188_ = _tmp187_;
	vala_ccode_function_call_add_argument (_tmp186_, (ValaCCodeExpression*) _tmp188_);
	_vala_ccode_node_unref0 (_tmp188_);
	_tmp189_ = ccall;
	_tmp190_ = vala_ccode_constant_new ("NULL");
	_tmp191_ = _tmp190_;
	vala_ccode_function_call_add_argument (_tmp189_, (ValaCCodeExpression*) _tmp191_);
	_vala_ccode_node_unref0 (_tmp191_);
	_tmp192_ = ccall;
	_tmp193_ = vala_ccode_constant_new ("NULL");
	_tmp194_ = _tmp193_;
	vala_ccode_function_call_add_argument (_tmp192_, (ValaCCodeExpression*) _tmp194_);
	_vala_ccode_node_unref0 (_tmp194_);
	_tmp195_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp196_ = _tmp195_;
	_tmp197_ = vala_ccode_identifier_new ("_reply");
	_tmp198_ = _tmp197_;
	_tmp199_ = ccall;
	vala_ccode_function_add_assignment (_tmp196_, (ValaCCodeExpression*) _tmp198_, (ValaCCodeExpression*) _tmp199_);
	_vala_ccode_node_unref0 (_tmp198_);
	_tmp200_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp201_ = _tmp200_;
	_tmp202_ = vala_ccode_identifier_new ("_reply");
	_tmp203_ = _tmp202_;
	_tmp204_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp203_);
	_tmp205_ = _tmp204_;
	vala_ccode_function_open_if (_tmp201_, (ValaCCodeExpression*) _tmp205_);
	_vala_ccode_node_unref0 (_tmp205_);
	_vala_ccode_node_unref0 (_tmp203_);
	_tmp206_ = vala_property_get_property_type (prop);
	_tmp207_ = _tmp206_;
	vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp207_, FALSE);
	_tmp208_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp209_ = _tmp208_;
	vala_ccode_function_close (_tmp209_);
	_tmp210_ = vala_ccode_identifier_new ("g_variant_get");
	_tmp211_ = _tmp210_;
	_tmp212_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp211_);
	_tmp213_ = _tmp212_;
	_vala_ccode_node_unref0 (_tmp211_);
	get_variant = _tmp213_;
	_tmp214_ = get_variant;
	_tmp215_ = vala_ccode_identifier_new ("_reply");
	_tmp216_ = _tmp215_;
	vala_ccode_function_call_add_argument (_tmp214_, (ValaCCodeExpression*) _tmp216_);
	_vala_ccode_node_unref0 (_tmp216_);
	_tmp217_ = get_variant;
	_tmp218_ = vala_ccode_constant_new ("\"(v)\"");
	_tmp219_ = _tmp218_;
	vala_ccode_function_call_add_argument (_tmp217_, (ValaCCodeExpression*) _tmp219_);
	_vala_ccode_node_unref0 (_tmp219_);
	_tmp220_ = get_variant;
	_tmp221_ = vala_ccode_identifier_new ("_inner_reply");
	_tmp222_ = _tmp221_;
	_tmp223_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp222_);
	_tmp224_ = _tmp223_;
	vala_ccode_function_call_add_argument (_tmp220_, (ValaCCodeExpression*) _tmp224_);
	_vala_ccode_node_unref0 (_tmp224_);
	_vala_ccode_node_unref0 (_tmp222_);
	_tmp225_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp226_ = _tmp225_;
	_tmp227_ = get_variant;
	vala_ccode_function_add_expression (_tmp226_, (ValaCCodeExpression*) _tmp227_);
	_tmp228_ = vala_ccode_identifier_new ("g_variant_unref");
	_tmp229_ = _tmp228_;
	_tmp230_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp229_);
	_tmp231_ = _tmp230_;
	_vala_ccode_node_unref0 (_tmp229_);
	unref_reply = _tmp231_;
	_tmp232_ = unref_reply;
	_tmp233_ = vala_ccode_identifier_new ("_reply");
	_tmp234_ = _tmp233_;
	vala_ccode_function_call_add_argument (_tmp232_, (ValaCCodeExpression*) _tmp234_);
	_vala_ccode_node_unref0 (_tmp234_);
	_tmp235_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp236_ = _tmp235_;
	_tmp237_ = unref_reply;
	vala_ccode_function_add_expression (_tmp236_, (ValaCCodeExpression*) _tmp237_);
	_tmp238_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp239_ = _tmp238_;
	vala_ccode_function_close (_tmp239_);
	_tmp240_ = vala_property_get_property_type (prop);
	_tmp241_ = _tmp240_;
	if (vala_data_type_is_real_non_null_struct_type (_tmp241_)) {
		ValaCCodeUnaryExpression* target = NULL;
		ValaCCodeIdentifier* _tmp242_;
		ValaCCodeIdentifier* _tmp243_;
		ValaCCodeUnaryExpression* _tmp244_;
		ValaCCodeUnaryExpression* _tmp245_;
		ValaCCodeExpression* _result_ = NULL;
		ValaPropertyAccessor* _tmp246_;
		ValaPropertyAccessor* _tmp247_;
		ValaDataType* _tmp248_;
		ValaDataType* _tmp249_;
		ValaCCodeIdentifier* _tmp250_;
		ValaCCodeIdentifier* _tmp251_;
		ValaCCodeUnaryExpression* _tmp252_;
		ValaCCodeExpression* _tmp253_;
		ValaCCodeExpression* _tmp254_;
		ValaCCodeFunction* _tmp255_;
		ValaCCodeFunction* _tmp256_;
		ValaCCodeUnaryExpression* _tmp257_;
		ValaCCodeExpression* _tmp258_;
		_tmp242_ = vala_ccode_identifier_new ("result");
		_tmp243_ = _tmp242_;
		_tmp244_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp243_);
		_tmp245_ = _tmp244_;
		_vala_ccode_node_unref0 (_tmp243_);
		target = _tmp245_;
		_tmp246_ = vala_property_get_get_accessor (prop);
		_tmp247_ = _tmp246_;
		_tmp248_ = vala_property_accessor_get_value_type (_tmp247_);
		_tmp249_ = _tmp248_;
		_tmp250_ = vala_ccode_identifier_new ("_inner_reply");
		_tmp251_ = _tmp250_;
		_tmp252_ = target;
		_tmp253_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp249_, (ValaCCodeExpression*) _tmp251_, (ValaCCodeExpression*) _tmp252_, NULL, NULL);
		_tmp254_ = _tmp253_;
		_vala_ccode_node_unref0 (_tmp251_);
		_result_ = _tmp254_;
		_tmp255_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp256_ = _tmp255_;
		_tmp257_ = target;
		_tmp258_ = _result_;
		vala_ccode_function_add_assignment (_tmp256_, (ValaCCodeExpression*) _tmp257_, _tmp258_);
		_vala_ccode_node_unref0 (_result_);
		_vala_ccode_node_unref0 (target);
	} else {
		ValaCCodeFunction* _tmp259_;
		ValaCCodeFunction* _tmp260_;
		ValaPropertyAccessor* _tmp261_;
		ValaPropertyAccessor* _tmp262_;
		ValaDataType* _tmp263_;
		ValaDataType* _tmp264_;
		gchar* _tmp265_;
		gchar* _tmp266_;
		ValaCCodeVariableDeclarator* _tmp267_;
		ValaCCodeVariableDeclarator* _tmp268_;
		gchar* _tmp269_;
		gchar* _tmp270_;
		gboolean _tmp271_;
		_tmp259_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp260_ = _tmp259_;
		_tmp261_ = vala_property_get_get_accessor (prop);
		_tmp262_ = _tmp261_;
		_tmp263_ = vala_property_accessor_get_value_type (_tmp262_);
		_tmp264_ = _tmp263_;
		_tmp265_ = vala_get_ccode_name ((ValaCodeNode*) _tmp264_);
		_tmp266_ = _tmp265_;
		_tmp267_ = vala_ccode_variable_declarator_new ("_result", NULL, NULL);
		_tmp268_ = _tmp267_;
		vala_ccode_function_add_declaration (_tmp260_, _tmp266_, (ValaCCodeDeclarator*) _tmp268_, 0);
		_vala_ccode_node_unref0 (_tmp268_);
		_g_free0 (_tmp266_);
		_tmp269_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) prop);
		_tmp270_ = _tmp269_;
		_tmp271_ = _tmp270_ != NULL;
		_g_free0 (_tmp270_);
		if (_tmp271_) {
			ValaCCodeFunction* _tmp272_;
			ValaCCodeFunction* _tmp273_;
			ValaCCodeIdentifier* _tmp274_;
			ValaCCodeIdentifier* _tmp275_;
			ValaCCodeIdentifier* _tmp276_;
			ValaCCodeIdentifier* _tmp277_;
			_tmp272_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp273_ = _tmp272_;
			_tmp274_ = vala_ccode_identifier_new ("_result");
			_tmp275_ = _tmp274_;
			_tmp276_ = vala_ccode_identifier_new ("_inner_reply");
			_tmp277_ = _tmp276_;
			vala_ccode_function_add_assignment (_tmp273_, (ValaCCodeExpression*) _tmp275_, (ValaCCodeExpression*) _tmp277_);
			_vala_ccode_node_unref0 (_tmp277_);
			_vala_ccode_node_unref0 (_tmp275_);
		} else {
			ValaArrayType* _tmp278_;
			ValaCCodeExpression* _result_ = NULL;
			ValaPropertyAccessor* _tmp295_;
			ValaPropertyAccessor* _tmp296_;
			ValaDataType* _tmp297_;
			ValaDataType* _tmp298_;
			ValaCCodeIdentifier* _tmp299_;
			ValaCCodeIdentifier* _tmp300_;
			ValaCCodeIdentifier* _tmp301_;
			ValaCCodeIdentifier* _tmp302_;
			ValaCCodeExpression* _tmp303_;
			ValaCCodeExpression* _tmp304_;
			ValaCCodeFunction* _tmp305_;
			ValaCCodeFunction* _tmp306_;
			ValaCCodeIdentifier* _tmp307_;
			ValaCCodeIdentifier* _tmp308_;
			ValaCCodeExpression* _tmp309_;
			ValaArrayType* _tmp310_;
			_tmp278_ = array_type;
			if (_tmp278_ != NULL) {
				gchar* length_ctype = NULL;
				ValaArrayType* _tmp279_;
				gchar* _tmp280_;
				_tmp279_ = array_type;
				_tmp280_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp279_);
				length_ctype = _tmp280_;
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp281_ = FALSE;
						_tmp281_ = TRUE;
						while (TRUE) {
							ValaArrayType* _tmp283_;
							gint _tmp284_;
							gint _tmp285_;
							ValaCCodeFunction* _tmp286_;
							ValaCCodeFunction* _tmp287_;
							const gchar* _tmp288_;
							gchar* _tmp289_;
							gchar* _tmp290_;
							ValaCCodeConstant* _tmp291_;
							ValaCCodeConstant* _tmp292_;
							ValaCCodeVariableDeclarator* _tmp293_;
							ValaCCodeVariableDeclarator* _tmp294_;
							if (!_tmp281_) {
								gint _tmp282_;
								_tmp282_ = dim;
								dim = _tmp282_ + 1;
							}
							_tmp281_ = FALSE;
							_tmp283_ = array_type;
							_tmp284_ = vala_array_type_get_rank (_tmp283_);
							_tmp285_ = _tmp284_;
							if (!(dim <= _tmp285_)) {
								break;
							}
							_tmp286_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp287_ = _tmp286_;
							_tmp288_ = length_ctype;
							_tmp289_ = g_strdup_printf ("_result_length%d", dim);
							_tmp290_ = _tmp289_;
							_tmp291_ = vala_ccode_constant_new ("0");
							_tmp292_ = _tmp291_;
							_tmp293_ = vala_ccode_variable_declarator_new (_tmp290_, (ValaCCodeExpression*) _tmp292_, NULL);
							_tmp294_ = _tmp293_;
							vala_ccode_function_add_declaration (_tmp287_, _tmp288_, (ValaCCodeDeclarator*) _tmp294_, 0);
							_vala_ccode_node_unref0 (_tmp294_);
							_vala_ccode_node_unref0 (_tmp292_);
							_g_free0 (_tmp290_);
						}
					}
				}
				_g_free0 (length_ctype);
			}
			_tmp295_ = vala_property_get_get_accessor (prop);
			_tmp296_ = _tmp295_;
			_tmp297_ = vala_property_accessor_get_value_type (_tmp296_);
			_tmp298_ = _tmp297_;
			_tmp299_ = vala_ccode_identifier_new ("_inner_reply");
			_tmp300_ = _tmp299_;
			_tmp301_ = vala_ccode_identifier_new ("_result");
			_tmp302_ = _tmp301_;
			_tmp303_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp298_, (ValaCCodeExpression*) _tmp300_, (ValaCCodeExpression*) _tmp302_, NULL, NULL);
			_tmp304_ = _tmp303_;
			_vala_ccode_node_unref0 (_tmp302_);
			_vala_ccode_node_unref0 (_tmp300_);
			_result_ = _tmp304_;
			_tmp305_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp306_ = _tmp305_;
			_tmp307_ = vala_ccode_identifier_new ("_result");
			_tmp308_ = _tmp307_;
			_tmp309_ = _result_;
			vala_ccode_function_add_assignment (_tmp306_, (ValaCCodeExpression*) _tmp308_, _tmp309_);
			_vala_ccode_node_unref0 (_tmp308_);
			_tmp310_ = array_type;
			if (_tmp310_ != NULL) {
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp311_ = FALSE;
						_tmp311_ = TRUE;
						while (TRUE) {
							ValaArrayType* _tmp313_;
							gint _tmp314_;
							gint _tmp315_;
							ValaCCodeFunction* _tmp316_;
							ValaCCodeFunction* _tmp317_;
							gchar* _tmp318_;
							gchar* _tmp319_;
							ValaCCodeIdentifier* _tmp320_;
							ValaCCodeIdentifier* _tmp321_;
							ValaCCodeUnaryExpression* _tmp322_;
							ValaCCodeUnaryExpression* _tmp323_;
							gchar* _tmp324_;
							gchar* _tmp325_;
							ValaCCodeIdentifier* _tmp326_;
							ValaCCodeIdentifier* _tmp327_;
							if (!_tmp311_) {
								gint _tmp312_;
								_tmp312_ = dim;
								dim = _tmp312_ + 1;
							}
							_tmp311_ = FALSE;
							_tmp313_ = array_type;
							_tmp314_ = vala_array_type_get_rank (_tmp313_);
							_tmp315_ = _tmp314_;
							if (!(dim <= _tmp315_)) {
								break;
							}
							_tmp316_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp317_ = _tmp316_;
							_tmp318_ = g_strdup_printf ("result_length%d", dim);
							_tmp319_ = _tmp318_;
							_tmp320_ = vala_ccode_identifier_new (_tmp319_);
							_tmp321_ = _tmp320_;
							_tmp322_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp321_);
							_tmp323_ = _tmp322_;
							_tmp324_ = g_strdup_printf ("_result_length%d", dim);
							_tmp325_ = _tmp324_;
							_tmp326_ = vala_ccode_identifier_new (_tmp325_);
							_tmp327_ = _tmp326_;
							vala_ccode_function_add_assignment (_tmp317_, (ValaCCodeExpression*) _tmp323_, (ValaCCodeExpression*) _tmp327_);
							_vala_ccode_node_unref0 (_tmp327_);
							_g_free0 (_tmp325_);
							_vala_ccode_node_unref0 (_tmp323_);
							_vala_ccode_node_unref0 (_tmp321_);
							_g_free0 (_tmp319_);
						}
					}
				}
			}
			_vala_ccode_node_unref0 (_result_);
		}
	}
	_tmp329_ = vala_property_get_property_type (prop);
	_tmp330_ = _tmp329_;
	if (vala_data_type_is_real_non_null_struct_type (_tmp330_)) {
		_tmp328_ = TRUE;
	} else {
		gchar* _tmp331_;
		gchar* _tmp332_;
		_tmp331_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) prop);
		_tmp332_ = _tmp331_;
		_tmp328_ = _tmp332_ == NULL;
		_g_free0 (_tmp332_);
	}
	if (_tmp328_) {
		ValaCCodeIdentifier* _tmp333_;
		ValaCCodeIdentifier* _tmp334_;
		ValaCCodeFunctionCall* _tmp335_;
		ValaCCodeFunctionCall* _tmp336_;
		ValaCCodeIdentifier* _tmp337_;
		ValaCCodeIdentifier* _tmp338_;
		ValaCCodeFunction* _tmp339_;
		ValaCCodeFunction* _tmp340_;
		ValaCCodeFunctionCall* _tmp341_;
		_tmp333_ = vala_ccode_identifier_new ("g_variant_unref");
		_tmp334_ = _tmp333_;
		_tmp335_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp334_);
		_vala_ccode_node_unref0 (unref_reply);
		unref_reply = _tmp335_;
		_vala_ccode_node_unref0 (_tmp334_);
		_tmp336_ = unref_reply;
		_tmp337_ = vala_ccode_identifier_new ("_inner_reply");
		_tmp338_ = _tmp337_;
		vala_ccode_function_call_add_argument (_tmp336_, (ValaCCodeExpression*) _tmp338_);
		_vala_ccode_node_unref0 (_tmp338_);
		_tmp339_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp340_ = _tmp339_;
		_tmp341_ = unref_reply;
		vala_ccode_function_add_expression (_tmp340_, (ValaCCodeExpression*) _tmp341_);
	}
	_tmp342_ = vala_property_get_property_type (prop);
	_tmp343_ = _tmp342_;
	if (vala_data_type_is_real_non_null_struct_type (_tmp343_)) {
		ValaCCodeFunction* _tmp344_;
		ValaCCodeFunction* _tmp345_;
		_tmp344_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp345_ = _tmp344_;
		vala_ccode_function_add_return (_tmp345_, NULL);
	} else {
		ValaCCodeFunction* _tmp346_;
		ValaCCodeFunction* _tmp347_;
		ValaCCodeIdentifier* _tmp348_;
		ValaCCodeIdentifier* _tmp349_;
		_tmp346_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp347_ = _tmp346_;
		_tmp348_ = vala_ccode_identifier_new ("_result");
		_tmp349_ = _tmp348_;
		vala_ccode_function_add_return (_tmp347_, (ValaCCodeExpression*) _tmp349_);
		_vala_ccode_node_unref0 (_tmp349_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp350_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp351_ = function;
	vala_ccode_file_add_function_declaration (_tmp350_, _tmp351_);
	_tmp352_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp353_ = function;
	vala_ccode_file_add_function (_tmp352_, _tmp353_);
	result = proxy_name;
	_vala_ccode_node_unref0 (unref_reply);
	_vala_ccode_node_unref0 (get_variant);
	_vala_ccode_node_unref0 (builder_end);
	_vala_ccode_node_unref0 (builder_init);
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (function);
	_vala_code_node_unref0 (array_type);
	_vala_code_node_unref0 (owned_type);
	_g_free0 (dbus_iface_name);
	return result;
}

static gchar*
vala_gd_bus_client_module_generate_dbus_proxy_property_set (ValaGDBusClientModule* self,
                                                            ValaInterface* main_iface,
                                                            ValaInterface* iface,
                                                            ValaProperty* prop)
{
	gchar* proxy_name = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* dbus_iface_name = NULL;
	gchar* _tmp6_;
	ValaArrayType* array_type = NULL;
	ValaPropertyAccessor* _tmp7_;
	ValaPropertyAccessor* _tmp8_;
	ValaDataType* _tmp9_;
	ValaDataType* _tmp10_;
	ValaArrayType* _tmp11_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp12_;
	ValaCCodeFunction* _tmp13_;
	ValaCCodeFunction* _tmp14_;
	ValaCCodeFunction* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaCCodeParameter* _tmp21_;
	ValaDataType* _tmp22_;
	ValaDataType* _tmp23_;
	ValaCCodeFunction* _tmp58_;
	ValaCCodeFunction* _tmp59_;
	ValaCCodeFunction* _tmp60_;
	ValaCCodeVariableDeclarator* _tmp61_;
	ValaCCodeVariableDeclarator* _tmp62_;
	ValaCCodeFunction* _tmp63_;
	ValaCCodeFunction* _tmp64_;
	ValaCCodeVariableDeclarator* _tmp65_;
	ValaCCodeVariableDeclarator* _tmp66_;
	ValaCCodeFunction* _tmp67_;
	ValaCCodeFunction* _tmp68_;
	ValaCCodeVariableDeclarator* _tmp69_;
	ValaCCodeVariableDeclarator* _tmp70_;
	ValaCCodeFunctionCall* builder_init = NULL;
	ValaCCodeIdentifier* _tmp71_;
	ValaCCodeIdentifier* _tmp72_;
	ValaCCodeFunctionCall* _tmp73_;
	ValaCCodeFunctionCall* _tmp74_;
	ValaCCodeFunctionCall* _tmp75_;
	ValaCCodeIdentifier* _tmp76_;
	ValaCCodeIdentifier* _tmp77_;
	ValaCCodeUnaryExpression* _tmp78_;
	ValaCCodeUnaryExpression* _tmp79_;
	ValaCCodeFunctionCall* _tmp80_;
	ValaCCodeIdentifier* _tmp81_;
	ValaCCodeIdentifier* _tmp82_;
	ValaCCodeFunction* _tmp83_;
	ValaCCodeFunction* _tmp84_;
	ValaCCodeFunctionCall* _tmp85_;
	ValaDataType* _tmp86_;
	ValaCCodeIdentifier* _tmp87_;
	ValaCCodeIdentifier* _tmp88_;
	const gchar* _tmp89_;
	gchar* _tmp90_;
	gchar* _tmp91_;
	ValaCCodeConstant* _tmp92_;
	ValaCCodeConstant* _tmp93_;
	ValaDataType* _tmp94_;
	ValaCCodeIdentifier* _tmp95_;
	ValaCCodeIdentifier* _tmp96_;
	gchar* _tmp97_;
	gchar* _tmp98_;
	gchar* _tmp99_;
	gchar* _tmp100_;
	ValaCCodeConstant* _tmp101_;
	ValaCCodeConstant* _tmp102_;
	ValaCCodeFunctionCall* builder_open = NULL;
	ValaCCodeIdentifier* _tmp103_;
	ValaCCodeIdentifier* _tmp104_;
	ValaCCodeFunctionCall* _tmp105_;
	ValaCCodeFunctionCall* _tmp106_;
	ValaCCodeFunctionCall* _tmp107_;
	ValaCCodeIdentifier* _tmp108_;
	ValaCCodeIdentifier* _tmp109_;
	ValaCCodeUnaryExpression* _tmp110_;
	ValaCCodeUnaryExpression* _tmp111_;
	ValaCCodeFunctionCall* _tmp112_;
	ValaCCodeIdentifier* _tmp113_;
	ValaCCodeIdentifier* _tmp114_;
	ValaCCodeFunction* _tmp115_;
	ValaCCodeFunction* _tmp116_;
	ValaCCodeFunctionCall* _tmp117_;
	ValaDataType* _tmp118_;
	ValaDataType* _tmp119_;
	ValaCCodeFunctionCall* builder_close = NULL;
	ValaCCodeIdentifier* _tmp138_;
	ValaCCodeIdentifier* _tmp139_;
	ValaCCodeFunctionCall* _tmp140_;
	ValaCCodeFunctionCall* _tmp141_;
	ValaCCodeIdentifier* _tmp142_;
	ValaCCodeIdentifier* _tmp143_;
	ValaCCodeUnaryExpression* _tmp144_;
	ValaCCodeUnaryExpression* _tmp145_;
	ValaCCodeFunction* _tmp146_;
	ValaCCodeFunction* _tmp147_;
	ValaCCodeFunctionCall* builder_end = NULL;
	ValaCCodeIdentifier* _tmp148_;
	ValaCCodeIdentifier* _tmp149_;
	ValaCCodeFunctionCall* _tmp150_;
	ValaCCodeFunctionCall* _tmp151_;
	ValaCCodeIdentifier* _tmp152_;
	ValaCCodeIdentifier* _tmp153_;
	ValaCCodeUnaryExpression* _tmp154_;
	ValaCCodeUnaryExpression* _tmp155_;
	ValaCCodeFunction* _tmp156_;
	ValaCCodeFunction* _tmp157_;
	ValaCCodeIdentifier* _tmp158_;
	ValaCCodeIdentifier* _tmp159_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp160_;
	ValaCCodeIdentifier* _tmp161_;
	ValaCCodeFunctionCall* _tmp162_;
	ValaCCodeFunctionCall* _tmp163_;
	ValaCCodeIdentifier* _tmp164_;
	ValaCCodeIdentifier* _tmp165_;
	ValaCCodeCastExpression* _tmp166_;
	ValaCCodeCastExpression* _tmp167_;
	ValaCCodeConstant* _tmp168_;
	ValaCCodeConstant* _tmp169_;
	ValaCCodeIdentifier* _tmp170_;
	ValaCCodeIdentifier* _tmp171_;
	ValaCCodeConstant* _tmp172_;
	ValaCCodeConstant* _tmp173_;
	ValaCCodeConstant* _tmp174_;
	ValaCCodeConstant* _tmp175_;
	ValaCCodeConstant* _tmp176_;
	ValaCCodeConstant* _tmp177_;
	ValaCCodeConstant* _tmp178_;
	ValaCCodeConstant* _tmp179_;
	ValaCCodeFunction* _tmp180_;
	ValaCCodeFunction* _tmp181_;
	ValaCCodeIdentifier* _tmp182_;
	ValaCCodeIdentifier* _tmp183_;
	ValaCCodeFunction* _tmp184_;
	ValaCCodeFunction* _tmp185_;
	ValaCCodeIdentifier* _tmp186_;
	ValaCCodeIdentifier* _tmp187_;
	ValaCCodeUnaryExpression* _tmp188_;
	ValaCCodeUnaryExpression* _tmp189_;
	ValaCCodeFunction* _tmp190_;
	ValaCCodeFunction* _tmp191_;
	ValaCCodeFunction* _tmp192_;
	ValaCCodeFunction* _tmp193_;
	ValaCCodeFunctionCall* unref_reply = NULL;
	ValaCCodeIdentifier* _tmp194_;
	ValaCCodeIdentifier* _tmp195_;
	ValaCCodeFunctionCall* _tmp196_;
	ValaCCodeFunctionCall* _tmp197_;
	ValaCCodeIdentifier* _tmp198_;
	ValaCCodeIdentifier* _tmp199_;
	ValaCCodeFunction* _tmp200_;
	ValaCCodeFunction* _tmp201_;
	ValaCCodeFile* _tmp202_;
	ValaCCodeFunction* _tmp203_;
	ValaCCodeFile* _tmp204_;
	ValaCCodeFunction* _tmp205_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (prop != NULL, NULL);
	_tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) main_iface);
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_symbol_get_name ((ValaSymbol*) prop);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup_printf ("%sdbus_proxy_set_%s", _tmp1_, _tmp3_);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp1_);
	proxy_name = _tmp5_;
	_tmp6_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
	dbus_iface_name = _tmp6_;
	_tmp7_ = vala_property_get_set_accessor (prop);
	_tmp8_ = _tmp7_;
	_tmp9_ = vala_property_accessor_get_value_type (_tmp8_);
	_tmp10_ = _tmp9_;
	_tmp11_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp10_) : NULL);
	array_type = _tmp11_;
	_tmp12_ = proxy_name;
	_tmp13_ = vala_ccode_function_new (_tmp12_, "void");
	function = _tmp13_;
	_tmp14_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp14_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp15_ = function;
	_tmp16_ = vala_get_ccode_name ((ValaCodeNode*) iface);
	_tmp17_ = _tmp16_;
	_tmp18_ = g_strdup_printf ("%s*", _tmp17_);
	_tmp19_ = _tmp18_;
	_tmp20_ = vala_ccode_parameter_new ("self", _tmp19_);
	_tmp21_ = _tmp20_;
	vala_ccode_function_add_parameter (_tmp15_, _tmp21_);
	_vala_ccode_node_unref0 (_tmp21_);
	_g_free0 (_tmp19_);
	_g_free0 (_tmp17_);
	_tmp22_ = vala_property_get_property_type (prop);
	_tmp23_ = _tmp22_;
	if (vala_data_type_is_real_non_null_struct_type (_tmp23_)) {
		ValaCCodeFunction* _tmp24_;
		ValaPropertyAccessor* _tmp25_;
		ValaPropertyAccessor* _tmp26_;
		ValaDataType* _tmp27_;
		ValaDataType* _tmp28_;
		gchar* _tmp29_;
		gchar* _tmp30_;
		gchar* _tmp31_;
		gchar* _tmp32_;
		ValaCCodeParameter* _tmp33_;
		ValaCCodeParameter* _tmp34_;
		_tmp24_ = function;
		_tmp25_ = vala_property_get_set_accessor (prop);
		_tmp26_ = _tmp25_;
		_tmp27_ = vala_property_accessor_get_value_type (_tmp26_);
		_tmp28_ = _tmp27_;
		_tmp29_ = vala_get_ccode_name ((ValaCodeNode*) _tmp28_);
		_tmp30_ = _tmp29_;
		_tmp31_ = g_strdup_printf ("%s*", _tmp30_);
		_tmp32_ = _tmp31_;
		_tmp33_ = vala_ccode_parameter_new ("value", _tmp32_);
		_tmp34_ = _tmp33_;
		vala_ccode_function_add_parameter (_tmp24_, _tmp34_);
		_vala_ccode_node_unref0 (_tmp34_);
		_g_free0 (_tmp32_);
		_g_free0 (_tmp30_);
	} else {
		ValaCCodeFunction* _tmp35_;
		ValaPropertyAccessor* _tmp36_;
		ValaPropertyAccessor* _tmp37_;
		ValaDataType* _tmp38_;
		ValaDataType* _tmp39_;
		gchar* _tmp40_;
		gchar* _tmp41_;
		ValaCCodeParameter* _tmp42_;
		ValaCCodeParameter* _tmp43_;
		ValaArrayType* _tmp44_;
		_tmp35_ = function;
		_tmp36_ = vala_property_get_set_accessor (prop);
		_tmp37_ = _tmp36_;
		_tmp38_ = vala_property_accessor_get_value_type (_tmp37_);
		_tmp39_ = _tmp38_;
		_tmp40_ = vala_get_ccode_name ((ValaCodeNode*) _tmp39_);
		_tmp41_ = _tmp40_;
		_tmp42_ = vala_ccode_parameter_new ("value", _tmp41_);
		_tmp43_ = _tmp42_;
		vala_ccode_function_add_parameter (_tmp35_, _tmp43_);
		_vala_ccode_node_unref0 (_tmp43_);
		_g_free0 (_tmp41_);
		_tmp44_ = array_type;
		if (_tmp44_ != NULL) {
			gchar* length_ctype = NULL;
			ValaArrayType* _tmp45_;
			gchar* _tmp46_;
			_tmp45_ = array_type;
			_tmp46_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp45_);
			length_ctype = _tmp46_;
			{
				gint dim = 0;
				dim = 1;
				{
					gboolean _tmp47_ = FALSE;
					_tmp47_ = TRUE;
					while (TRUE) {
						ValaArrayType* _tmp49_;
						gint _tmp50_;
						gint _tmp51_;
						ValaCCodeFunction* _tmp52_;
						gchar* _tmp53_;
						gchar* _tmp54_;
						const gchar* _tmp55_;
						ValaCCodeParameter* _tmp56_;
						ValaCCodeParameter* _tmp57_;
						if (!_tmp47_) {
							gint _tmp48_;
							_tmp48_ = dim;
							dim = _tmp48_ + 1;
						}
						_tmp47_ = FALSE;
						_tmp49_ = array_type;
						_tmp50_ = vala_array_type_get_rank (_tmp49_);
						_tmp51_ = _tmp50_;
						if (!(dim <= _tmp51_)) {
							break;
						}
						_tmp52_ = function;
						_tmp53_ = g_strdup_printf ("value_length%d", dim);
						_tmp54_ = _tmp53_;
						_tmp55_ = length_ctype;
						_tmp56_ = vala_ccode_parameter_new (_tmp54_, _tmp55_);
						_tmp57_ = _tmp56_;
						vala_ccode_function_add_parameter (_tmp52_, _tmp57_);
						_vala_ccode_node_unref0 (_tmp57_);
						_g_free0 (_tmp54_);
					}
				}
			}
			_g_free0 (length_ctype);
		}
	}
	_tmp58_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp58_);
	_tmp59_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp60_ = _tmp59_;
	_tmp61_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
	_tmp62_ = _tmp61_;
	vala_ccode_function_add_declaration (_tmp60_, "GVariant", (ValaCCodeDeclarator*) _tmp62_, 0);
	_vala_ccode_node_unref0 (_tmp62_);
	_tmp63_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp64_ = _tmp63_;
	_tmp65_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
	_tmp66_ = _tmp65_;
	vala_ccode_function_add_declaration (_tmp64_, "GVariant", (ValaCCodeDeclarator*) _tmp66_, 0);
	_vala_ccode_node_unref0 (_tmp66_);
	_tmp67_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp68_ = _tmp67_;
	_tmp69_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
	_tmp70_ = _tmp69_;
	vala_ccode_function_add_declaration (_tmp68_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp70_, 0);
	_vala_ccode_node_unref0 (_tmp70_);
	_tmp71_ = vala_ccode_identifier_new ("g_variant_builder_init");
	_tmp72_ = _tmp71_;
	_tmp73_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp72_);
	_tmp74_ = _tmp73_;
	_vala_ccode_node_unref0 (_tmp72_);
	builder_init = _tmp74_;
	_tmp75_ = builder_init;
	_tmp76_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp77_ = _tmp76_;
	_tmp78_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp77_);
	_tmp79_ = _tmp78_;
	vala_ccode_function_call_add_argument (_tmp75_, (ValaCCodeExpression*) _tmp79_);
	_vala_ccode_node_unref0 (_tmp79_);
	_vala_ccode_node_unref0 (_tmp77_);
	_tmp80_ = builder_init;
	_tmp81_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
	_tmp82_ = _tmp81_;
	vala_ccode_function_call_add_argument (_tmp80_, (ValaCCodeExpression*) _tmp82_);
	_vala_ccode_node_unref0 (_tmp82_);
	_tmp83_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp84_ = _tmp83_;
	_tmp85_ = builder_init;
	vala_ccode_function_add_expression (_tmp84_, (ValaCCodeExpression*) _tmp85_);
	_tmp86_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp87_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp88_ = _tmp87_;
	_tmp89_ = dbus_iface_name;
	_tmp90_ = g_strdup_printf ("\"%s\"", _tmp89_);
	_tmp91_ = _tmp90_;
	_tmp92_ = vala_ccode_constant_new (_tmp91_);
	_tmp93_ = _tmp92_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp86_, (ValaCCodeExpression*) _tmp88_, (ValaCCodeExpression*) _tmp93_, NULL);
	_vala_ccode_node_unref0 (_tmp93_);
	_g_free0 (_tmp91_);
	_vala_ccode_node_unref0 (_tmp88_);
	_tmp94_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp95_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp96_ = _tmp95_;
	_tmp97_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
	_tmp98_ = _tmp97_;
	_tmp99_ = g_strdup_printf ("\"%s\"", _tmp98_);
	_tmp100_ = _tmp99_;
	_tmp101_ = vala_ccode_constant_new (_tmp100_);
	_tmp102_ = _tmp101_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp94_, (ValaCCodeExpression*) _tmp96_, (ValaCCodeExpression*) _tmp102_, NULL);
	_vala_ccode_node_unref0 (_tmp102_);
	_g_free0 (_tmp100_);
	_g_free0 (_tmp98_);
	_vala_ccode_node_unref0 (_tmp96_);
	_tmp103_ = vala_ccode_identifier_new ("g_variant_builder_open");
	_tmp104_ = _tmp103_;
	_tmp105_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp104_);
	_tmp106_ = _tmp105_;
	_vala_ccode_node_unref0 (_tmp104_);
	builder_open = _tmp106_;
	_tmp107_ = builder_open;
	_tmp108_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp109_ = _tmp108_;
	_tmp110_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp109_);
	_tmp111_ = _tmp110_;
	vala_ccode_function_call_add_argument (_tmp107_, (ValaCCodeExpression*) _tmp111_);
	_vala_ccode_node_unref0 (_tmp111_);
	_vala_ccode_node_unref0 (_tmp109_);
	_tmp112_ = builder_open;
	_tmp113_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_VARIANT");
	_tmp114_ = _tmp113_;
	vala_ccode_function_call_add_argument (_tmp112_, (ValaCCodeExpression*) _tmp114_);
	_vala_ccode_node_unref0 (_tmp114_);
	_tmp115_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp116_ = _tmp115_;
	_tmp117_ = builder_open;
	vala_ccode_function_add_expression (_tmp116_, (ValaCCodeExpression*) _tmp117_);
	_tmp118_ = vala_property_get_property_type (prop);
	_tmp119_ = _tmp118_;
	if (vala_data_type_is_real_non_null_struct_type (_tmp119_)) {
		ValaPropertyAccessor* _tmp120_;
		ValaPropertyAccessor* _tmp121_;
		ValaDataType* _tmp122_;
		ValaDataType* _tmp123_;
		ValaCCodeIdentifier* _tmp124_;
		ValaCCodeIdentifier* _tmp125_;
		ValaCCodeIdentifier* _tmp126_;
		ValaCCodeIdentifier* _tmp127_;
		ValaCCodeUnaryExpression* _tmp128_;
		ValaCCodeUnaryExpression* _tmp129_;
		_tmp120_ = vala_property_get_set_accessor (prop);
		_tmp121_ = _tmp120_;
		_tmp122_ = vala_property_accessor_get_value_type (_tmp121_);
		_tmp123_ = _tmp122_;
		_tmp124_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp125_ = _tmp124_;
		_tmp126_ = vala_ccode_identifier_new ("value");
		_tmp127_ = _tmp126_;
		_tmp128_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp127_);
		_tmp129_ = _tmp128_;
		vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp123_, (ValaCCodeExpression*) _tmp125_, (ValaCCodeExpression*) _tmp129_, (ValaSymbol*) prop);
		_vala_ccode_node_unref0 (_tmp129_);
		_vala_ccode_node_unref0 (_tmp127_);
		_vala_ccode_node_unref0 (_tmp125_);
	} else {
		ValaPropertyAccessor* _tmp130_;
		ValaPropertyAccessor* _tmp131_;
		ValaDataType* _tmp132_;
		ValaDataType* _tmp133_;
		ValaCCodeIdentifier* _tmp134_;
		ValaCCodeIdentifier* _tmp135_;
		ValaCCodeIdentifier* _tmp136_;
		ValaCCodeIdentifier* _tmp137_;
		_tmp130_ = vala_property_get_set_accessor (prop);
		_tmp131_ = _tmp130_;
		_tmp132_ = vala_property_accessor_get_value_type (_tmp131_);
		_tmp133_ = _tmp132_;
		_tmp134_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp135_ = _tmp134_;
		_tmp136_ = vala_ccode_identifier_new ("value");
		_tmp137_ = _tmp136_;
		vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp133_, (ValaCCodeExpression*) _tmp135_, (ValaCCodeExpression*) _tmp137_, (ValaSymbol*) prop);
		_vala_ccode_node_unref0 (_tmp137_);
		_vala_ccode_node_unref0 (_tmp135_);
	}
	_tmp138_ = vala_ccode_identifier_new ("g_variant_builder_close");
	_tmp139_ = _tmp138_;
	_tmp140_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp139_);
	_tmp141_ = _tmp140_;
	_vala_ccode_node_unref0 (_tmp139_);
	builder_close = _tmp141_;
	_tmp142_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp143_ = _tmp142_;
	_tmp144_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp143_);
	_tmp145_ = _tmp144_;
	vala_ccode_function_call_add_argument (builder_close, (ValaCCodeExpression*) _tmp145_);
	_vala_ccode_node_unref0 (_tmp145_);
	_vala_ccode_node_unref0 (_tmp143_);
	_tmp146_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp147_ = _tmp146_;
	vala_ccode_function_add_expression (_tmp147_, (ValaCCodeExpression*) builder_close);
	_tmp148_ = vala_ccode_identifier_new ("g_variant_builder_end");
	_tmp149_ = _tmp148_;
	_tmp150_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp149_);
	_tmp151_ = _tmp150_;
	_vala_ccode_node_unref0 (_tmp149_);
	builder_end = _tmp151_;
	_tmp152_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp153_ = _tmp152_;
	_tmp154_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp153_);
	_tmp155_ = _tmp154_;
	vala_ccode_function_call_add_argument (builder_end, (ValaCCodeExpression*) _tmp155_);
	_vala_ccode_node_unref0 (_tmp155_);
	_vala_ccode_node_unref0 (_tmp153_);
	_tmp156_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp157_ = _tmp156_;
	_tmp158_ = vala_ccode_identifier_new ("_arguments");
	_tmp159_ = _tmp158_;
	vala_ccode_function_add_assignment (_tmp157_, (ValaCCodeExpression*) _tmp159_, (ValaCCodeExpression*) builder_end);
	_vala_ccode_node_unref0 (_tmp159_);
	_tmp160_ = vala_ccode_identifier_new ("g_dbus_proxy_call_sync");
	_tmp161_ = _tmp160_;
	_tmp162_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp161_);
	_tmp163_ = _tmp162_;
	_vala_ccode_node_unref0 (_tmp161_);
	ccall = _tmp163_;
	_tmp164_ = vala_ccode_identifier_new ("self");
	_tmp165_ = _tmp164_;
	_tmp166_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp165_, "GDBusProxy *");
	_tmp167_ = _tmp166_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp167_);
	_vala_ccode_node_unref0 (_tmp167_);
	_vala_ccode_node_unref0 (_tmp165_);
	_tmp168_ = vala_ccode_constant_new ("\"org.freedesktop.DBus.Properties.Set\"");
	_tmp169_ = _tmp168_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp169_);
	_vala_ccode_node_unref0 (_tmp169_);
	_tmp170_ = vala_ccode_identifier_new ("_arguments");
	_tmp171_ = _tmp170_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp171_);
	_vala_ccode_node_unref0 (_tmp171_);
	_tmp172_ = vala_ccode_constant_new ("G_DBUS_CALL_FLAGS_NONE");
	_tmp173_ = _tmp172_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp173_);
	_vala_ccode_node_unref0 (_tmp173_);
	_tmp174_ = vala_gd_bus_client_module_get_dbus_timeout (self, (ValaSymbol*) prop);
	_tmp175_ = _tmp174_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp175_);
	_vala_ccode_node_unref0 (_tmp175_);
	_tmp176_ = vala_ccode_constant_new ("NULL");
	_tmp177_ = _tmp176_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp177_);
	_vala_ccode_node_unref0 (_tmp177_);
	_tmp178_ = vala_ccode_constant_new ("NULL");
	_tmp179_ = _tmp178_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp179_);
	_vala_ccode_node_unref0 (_tmp179_);
	_tmp180_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp181_ = _tmp180_;
	_tmp182_ = vala_ccode_identifier_new ("_reply");
	_tmp183_ = _tmp182_;
	vala_ccode_function_add_assignment (_tmp181_, (ValaCCodeExpression*) _tmp183_, (ValaCCodeExpression*) ccall);
	_vala_ccode_node_unref0 (_tmp183_);
	_tmp184_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp185_ = _tmp184_;
	_tmp186_ = vala_ccode_identifier_new ("_reply");
	_tmp187_ = _tmp186_;
	_tmp188_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp187_);
	_tmp189_ = _tmp188_;
	vala_ccode_function_open_if (_tmp185_, (ValaCCodeExpression*) _tmp189_);
	_vala_ccode_node_unref0 (_tmp189_);
	_vala_ccode_node_unref0 (_tmp187_);
	_tmp190_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp191_ = _tmp190_;
	vala_ccode_function_add_return (_tmp191_, NULL);
	_tmp192_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp193_ = _tmp192_;
	vala_ccode_function_close (_tmp193_);
	_tmp194_ = vala_ccode_identifier_new ("g_variant_unref");
	_tmp195_ = _tmp194_;
	_tmp196_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp195_);
	_tmp197_ = _tmp196_;
	_vala_ccode_node_unref0 (_tmp195_);
	unref_reply = _tmp197_;
	_tmp198_ = vala_ccode_identifier_new ("_reply");
	_tmp199_ = _tmp198_;
	vala_ccode_function_call_add_argument (unref_reply, (ValaCCodeExpression*) _tmp199_);
	_vala_ccode_node_unref0 (_tmp199_);
	_tmp200_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp201_ = _tmp200_;
	vala_ccode_function_add_expression (_tmp201_, (ValaCCodeExpression*) unref_reply);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp202_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp203_ = function;
	vala_ccode_file_add_function_declaration (_tmp202_, _tmp203_);
	_tmp204_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp205_ = function;
	vala_ccode_file_add_function (_tmp204_, _tmp205_);
	result = proxy_name;
	_vala_ccode_node_unref0 (unref_reply);
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (builder_end);
	_vala_ccode_node_unref0 (builder_close);
	_vala_ccode_node_unref0 (builder_open);
	_vala_ccode_node_unref0 (builder_init);
	_vala_ccode_node_unref0 (function);
	_vala_code_node_unref0 (array_type);
	_g_free0 (dbus_iface_name);
	return result;
}

static void
vala_gd_bus_client_module_real_register_dbus_info (ValaCCodeBaseModule* base,
                                                   ValaCCodeBlock* block,
                                                   ValaObjectTypeSymbol* sym)
{
	ValaGDBusClientModule * self;
	gchar* dbus_iface_name = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	ValaCCodeFunctionCall* quark = NULL;
	ValaCCodeIdentifier* _tmp2_;
	ValaCCodeIdentifier* _tmp3_;
	ValaCCodeFunctionCall* _tmp4_;
	ValaCCodeFunctionCall* _tmp5_;
	ValaCCodeFunctionCall* _tmp6_;
	ValaCCodeConstant* _tmp7_;
	ValaCCodeConstant* _tmp8_;
	ValaCCodeIdentifier* proxy_type = NULL;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	ValaCCodeIdentifier* _tmp13_;
	ValaCCodeIdentifier* _tmp14_;
	ValaCCodeFunctionCall* set_qdata = NULL;
	ValaCCodeIdentifier* _tmp15_;
	ValaCCodeIdentifier* _tmp16_;
	ValaCCodeFunctionCall* _tmp17_;
	ValaCCodeFunctionCall* _tmp18_;
	ValaCCodeFunctionCall* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	ValaCCodeIdentifier* _tmp24_;
	ValaCCodeIdentifier* _tmp25_;
	ValaCCodeFunctionCall* _tmp26_;
	ValaCCodeFunctionCall* _tmp27_;
	ValaCCodeFunctionCall* _tmp28_;
	ValaCCodeIdentifier* _tmp29_;
	ValaCCodeCastExpression* _tmp30_;
	ValaCCodeCastExpression* _tmp31_;
	ValaCCodeFunctionCall* _tmp32_;
	ValaCCodeExpressionStatement* _tmp33_;
	ValaCCodeExpressionStatement* _tmp34_;
	ValaCCodeIdentifier* _tmp35_;
	ValaCCodeIdentifier* _tmp36_;
	ValaCCodeFunctionCall* _tmp37_;
	ValaCCodeFunctionCall* _tmp38_;
	ValaCCodeConstant* _tmp39_;
	ValaCCodeConstant* _tmp40_;
	ValaCCodeIdentifier* _tmp41_;
	ValaCCodeIdentifier* _tmp42_;
	ValaCCodeFunctionCall* _tmp43_;
	ValaCCodeFunctionCall* _tmp44_;
	gchar* _tmp45_;
	gchar* _tmp46_;
	gchar* _tmp47_;
	gchar* _tmp48_;
	ValaCCodeIdentifier* _tmp49_;
	ValaCCodeIdentifier* _tmp50_;
	ValaCCodeFunctionCall* _tmp51_;
	ValaCCodeFunctionCall* _tmp52_;
	ValaCCodeFunctionCall* _tmp53_;
	const gchar* _tmp54_;
	gchar* _tmp55_;
	gchar* _tmp56_;
	ValaCCodeConstant* _tmp57_;
	ValaCCodeConstant* _tmp58_;
	ValaCCodeFunctionCall* _tmp59_;
	ValaCCodeExpressionStatement* _tmp60_;
	ValaCCodeExpressionStatement* _tmp61_;
	ValaCCodeIdentifier* _tmp62_;
	ValaCCodeIdentifier* _tmp63_;
	ValaCCodeFunctionCall* _tmp64_;
	ValaCCodeFunctionCall* _tmp65_;
	ValaCCodeConstant* _tmp66_;
	ValaCCodeConstant* _tmp67_;
	ValaCCodeIdentifier* _tmp68_;
	ValaCCodeIdentifier* _tmp69_;
	ValaCCodeFunctionCall* _tmp70_;
	ValaCCodeFunctionCall* _tmp71_;
	gchar* _tmp72_;
	gchar* _tmp73_;
	gchar* _tmp74_;
	gchar* _tmp75_;
	ValaCCodeIdentifier* _tmp76_;
	ValaCCodeIdentifier* _tmp77_;
	ValaCCodeFunctionCall* _tmp78_;
	ValaCCodeFunctionCall* _tmp79_;
	ValaCCodeFunctionCall* _tmp80_;
	ValaCCodeExpression* _tmp81_;
	ValaCCodeExpression* _tmp82_;
	ValaCCodeUnaryExpression* _tmp83_;
	ValaCCodeUnaryExpression* _tmp84_;
	ValaCCodeCastExpression* _tmp85_;
	ValaCCodeCastExpression* _tmp86_;
	ValaCCodeFunctionCall* _tmp87_;
	ValaCCodeExpressionStatement* _tmp88_;
	ValaCCodeExpressionStatement* _tmp89_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (block != NULL);
	g_return_if_fail (sym != NULL);
	if (!G_TYPE_CHECK_INSTANCE_TYPE (sym, VALA_TYPE_INTERFACE)) {
		return;
	}
	_tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) sym);
	dbus_iface_name = _tmp0_;
	_tmp1_ = dbus_iface_name;
	if (_tmp1_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp2_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp3_ = _tmp2_;
	_tmp4_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp3_);
	_tmp5_ = _tmp4_;
	_vala_ccode_node_unref0 (_tmp3_);
	quark = _tmp5_;
	_tmp6_ = quark;
	_tmp7_ = vala_ccode_constant_new ("\"vala-dbus-proxy-type\"");
	_tmp8_ = _tmp7_;
	vala_ccode_function_call_add_argument (_tmp6_, (ValaCCodeExpression*) _tmp8_);
	_vala_ccode_node_unref0 (_tmp8_);
	_tmp9_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, "proxy_get_type", NULL);
	_tmp12_ = _tmp11_;
	_tmp13_ = vala_ccode_identifier_new (_tmp12_);
	_tmp14_ = _tmp13_;
	_g_free0 (_tmp12_);
	_g_free0 (_tmp10_);
	proxy_type = _tmp14_;
	_tmp15_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp16_ = _tmp15_;
	_tmp17_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp16_);
	_tmp18_ = _tmp17_;
	_vala_ccode_node_unref0 (_tmp16_);
	set_qdata = _tmp18_;
	_tmp19_ = set_qdata;
	_tmp20_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) sym, NULL);
	_tmp21_ = _tmp20_;
	_tmp22_ = g_strdup_printf ("%s_type_id", _tmp21_);
	_tmp23_ = _tmp22_;
	_tmp24_ = vala_ccode_identifier_new (_tmp23_);
	_tmp25_ = _tmp24_;
	vala_ccode_function_call_add_argument (_tmp19_, (ValaCCodeExpression*) _tmp25_);
	_vala_ccode_node_unref0 (_tmp25_);
	_g_free0 (_tmp23_);
	_g_free0 (_tmp21_);
	_tmp26_ = set_qdata;
	_tmp27_ = quark;
	vala_ccode_function_call_add_argument (_tmp26_, (ValaCCodeExpression*) _tmp27_);
	_tmp28_ = set_qdata;
	_tmp29_ = proxy_type;
	_tmp30_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp29_, "void*");
	_tmp31_ = _tmp30_;
	vala_ccode_function_call_add_argument (_tmp28_, (ValaCCodeExpression*) _tmp31_);
	_vala_ccode_node_unref0 (_tmp31_);
	_tmp32_ = set_qdata;
	_tmp33_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp32_);
	_tmp34_ = _tmp33_;
	vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp34_);
	_vala_ccode_node_unref0 (_tmp34_);
	_tmp35_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp36_ = _tmp35_;
	_tmp37_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp36_);
	_vala_ccode_node_unref0 (quark);
	quark = _tmp37_;
	_vala_ccode_node_unref0 (_tmp36_);
	_tmp38_ = quark;
	_tmp39_ = vala_ccode_constant_new ("\"vala-dbus-interface-name\"");
	_tmp40_ = _tmp39_;
	vala_ccode_function_call_add_argument (_tmp38_, (ValaCCodeExpression*) _tmp40_);
	_vala_ccode_node_unref0 (_tmp40_);
	_tmp41_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp42_ = _tmp41_;
	_tmp43_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp42_);
	_vala_ccode_node_unref0 (set_qdata);
	set_qdata = _tmp43_;
	_vala_ccode_node_unref0 (_tmp42_);
	_tmp44_ = set_qdata;
	_tmp45_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) sym, NULL);
	_tmp46_ = _tmp45_;
	_tmp47_ = g_strdup_printf ("%s_type_id", _tmp46_);
	_tmp48_ = _tmp47_;
	_tmp49_ = vala_ccode_identifier_new (_tmp48_);
	_tmp50_ = _tmp49_;
	vala_ccode_function_call_add_argument (_tmp44_, (ValaCCodeExpression*) _tmp50_);
	_vala_ccode_node_unref0 (_tmp50_);
	_g_free0 (_tmp48_);
	_g_free0 (_tmp46_);
	_tmp51_ = set_qdata;
	_tmp52_ = quark;
	vala_ccode_function_call_add_argument (_tmp51_, (ValaCCodeExpression*) _tmp52_);
	_tmp53_ = set_qdata;
	_tmp54_ = dbus_iface_name;
	_tmp55_ = g_strdup_printf ("\"%s\"", _tmp54_);
	_tmp56_ = _tmp55_;
	_tmp57_ = vala_ccode_constant_new (_tmp56_);
	_tmp58_ = _tmp57_;
	vala_ccode_function_call_add_argument (_tmp53_, (ValaCCodeExpression*) _tmp58_);
	_vala_ccode_node_unref0 (_tmp58_);
	_g_free0 (_tmp56_);
	_tmp59_ = set_qdata;
	_tmp60_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp59_);
	_tmp61_ = _tmp60_;
	vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp61_);
	_vala_ccode_node_unref0 (_tmp61_);
	_tmp62_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp63_ = _tmp62_;
	_tmp64_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp63_);
	_vala_ccode_node_unref0 (quark);
	quark = _tmp64_;
	_vala_ccode_node_unref0 (_tmp63_);
	_tmp65_ = quark;
	_tmp66_ = vala_ccode_constant_new ("\"vala-dbus-interface-info\"");
	_tmp67_ = _tmp66_;
	vala_ccode_function_call_add_argument (_tmp65_, (ValaCCodeExpression*) _tmp67_);
	_vala_ccode_node_unref0 (_tmp67_);
	_tmp68_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp69_ = _tmp68_;
	_tmp70_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp69_);
	_vala_ccode_node_unref0 (set_qdata);
	set_qdata = _tmp70_;
	_vala_ccode_node_unref0 (_tmp69_);
	_tmp71_ = set_qdata;
	_tmp72_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) sym, NULL);
	_tmp73_ = _tmp72_;
	_tmp74_ = g_strdup_printf ("%s_type_id", _tmp73_);
	_tmp75_ = _tmp74_;
	_tmp76_ = vala_ccode_identifier_new (_tmp75_);
	_tmp77_ = _tmp76_;
	vala_ccode_function_call_add_argument (_tmp71_, (ValaCCodeExpression*) _tmp77_);
	_vala_ccode_node_unref0 (_tmp77_);
	_g_free0 (_tmp75_);
	_g_free0 (_tmp73_);
	_tmp78_ = set_qdata;
	_tmp79_ = quark;
	vala_ccode_function_call_add_argument (_tmp78_, (ValaCCodeExpression*) _tmp79_);
	_tmp80_ = set_qdata;
	_tmp81_ = vala_gd_bus_module_get_interface_info ((ValaGDBusModule*) self, sym);
	_tmp82_ = _tmp81_;
	_tmp83_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp82_);
	_tmp84_ = _tmp83_;
	_tmp85_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp84_, "void*");
	_tmp86_ = _tmp85_;
	vala_ccode_function_call_add_argument (_tmp80_, (ValaCCodeExpression*) _tmp86_);
	_vala_ccode_node_unref0 (_tmp86_);
	_vala_ccode_node_unref0 (_tmp84_);
	_vala_ccode_node_unref0 (_tmp82_);
	_tmp87_ = set_qdata;
	_tmp88_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp87_);
	_tmp89_ = _tmp88_;
	vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp89_);
	_vala_ccode_node_unref0 (_tmp89_);
	_vala_ccode_node_unref0 (set_qdata);
	_vala_ccode_node_unref0 (proxy_type);
	_vala_ccode_node_unref0 (quark);
	_g_free0 (dbus_iface_name);
}

ValaGDBusClientModule*
vala_gd_bus_client_module_construct (GType object_type)
{
	ValaGDBusClientModule* self = NULL;
	self = (ValaGDBusClientModule*) vala_gd_bus_module_construct (object_type);
	return self;
}

ValaGDBusClientModule*
vala_gd_bus_client_module_new (void)
{
	return vala_gd_bus_client_module_construct (VALA_TYPE_GD_BUS_CLIENT_MODULE);
}

static void
vala_gd_bus_client_module_class_init (ValaGDBusClientModuleClass * klass,
                                      gpointer klass_data)
{
	vala_gd_bus_client_module_parent_class = g_type_class_peek_parent (klass);
	((ValaCCodeBaseModuleClass *) klass)->generate_dynamic_method_wrapper = (void (*) (ValaCCodeBaseModule*, ValaDynamicMethod*)) vala_gd_bus_client_module_real_generate_dynamic_method_wrapper;
	((ValaCCodeBaseModuleClass *) klass)->generate_interface_declaration = (void (*) (ValaCCodeBaseModule*, ValaInterface*, ValaCCodeFile*)) vala_gd_bus_client_module_real_generate_interface_declaration;
	((ValaCodeVisitorClass *) klass)->visit_interface = (void (*) (ValaCodeVisitor*, ValaInterface*)) vala_gd_bus_client_module_real_visit_interface;
	((ValaCodeVisitorClass *) klass)->visit_method_call = (void (*) (ValaCodeVisitor*, ValaMethodCall*)) vala_gd_bus_client_module_real_visit_method_call;
	((ValaCCodeBaseModuleClass *) klass)->register_dbus_info = (void (*) (ValaCCodeBaseModule*, ValaCCodeBlock*, ValaObjectTypeSymbol*)) vala_gd_bus_client_module_real_register_dbus_info;
}

static void
vala_gd_bus_client_module_instance_init (ValaGDBusClientModule * self,
                                         gpointer klass)
{
}

GType
vala_gd_bus_client_module_get_type (void)
{
	static volatile gsize vala_gd_bus_client_module_type_id__volatile = 0;
	if (g_once_init_enter (&vala_gd_bus_client_module_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ValaGDBusClientModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_gd_bus_client_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaGDBusClientModule), 0, (GInstanceInitFunc) vala_gd_bus_client_module_instance_init, NULL };
		GType vala_gd_bus_client_module_type_id;
		vala_gd_bus_client_module_type_id = g_type_register_static (VALA_TYPE_GD_BUS_MODULE, "ValaGDBusClientModule", &g_define_type_info, 0);
		g_once_init_leave (&vala_gd_bus_client_module_type_id__volatile, vala_gd_bus_client_module_type_id);
	}
	return vala_gd_bus_client_module_type_id__volatile;
}

