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

/* valagdbusmodule.vala
 *
 * Copyright (C) 2010-2012  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>
 */

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

#define _g_free0(var) (var = (g_free (var), NULL))
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
#define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))

static gpointer vala_gd_bus_module_parent_class = NULL;

static void vala_gd_bus_module_real_visit_error_domain (ValaCodeVisitor* base,
                                                 ValaErrorDomain* edomain);
static gboolean vala_gd_bus_module_is_file_descriptor (ValaGDBusModule* self,
                                                ValaDataType* type);
static ValaCCodeExpression* vala_gd_bus_module_get_file_descriptor (ValaGDBusModule* self,
                                                             ValaDataType* type,
                                                             ValaCCodeExpression* expr);
static ValaCCodeExpression* vala_gd_bus_module_create_from_file_descriptor (ValaGDBusModule* self,
                                                                     ValaDataType* type,
                                                                     ValaCCodeExpression* expr);
static ValaCCodeExpression* vala_gd_bus_module_get_method_info (ValaGDBusModule* self,
                                                         ValaObjectTypeSymbol* sym);
static ValaCCodeExpression* vala_gd_bus_module_get_signal_info (ValaGDBusModule* self,
                                                         ValaObjectTypeSymbol* sym);
static ValaCCodeExpression* vala_gd_bus_module_get_property_info (ValaGDBusModule* self,
                                                           ValaObjectTypeSymbol* sym);
static void vala_gd_bus_module_declare_interface_info (ValaGDBusModule* self,
                                                ValaObjectTypeSymbol* sym);
static void vala_gd_bus_module_real_visit_class (ValaCodeVisitor* base,
                                          ValaClass* cl);
static void vala_gd_bus_module_visit_object_type_symbol (ValaGDBusModule* self,
                                                  ValaObjectTypeSymbol* sym);
static void vala_gd_bus_module_real_visit_interface (ValaCodeVisitor* base,
                                              ValaInterface* iface);
static GType vala_gd_bus_module_get_type_once (void);

gchar*
vala_gd_bus_module_get_dbus_name (ValaTypeSymbol* symbol)
{
	gchar* _tmp0_;
	gchar* result;
	g_return_val_if_fail (symbol != NULL, NULL);
	_tmp0_ = vala_code_node_get_attribute_string ((ValaCodeNode*) symbol, "DBus", "name", NULL);
	result = _tmp0_;
	return result;
}

gchar*
vala_gd_bus_module_get_dbus_name_for_member (ValaSymbol* symbol)
{
	gchar* dbus_name = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* result;
	g_return_val_if_fail (symbol != NULL, NULL);
	_tmp0_ = vala_code_node_get_attribute_string ((ValaCodeNode*) symbol, "DBus", "name", NULL);
	dbus_name = _tmp0_;
	_tmp1_ = dbus_name;
	if (_tmp1_ != NULL) {
		result = dbus_name;
		return result;
	}
	_tmp2_ = vala_symbol_get_name (symbol);
	_tmp3_ = _tmp2_;
	_tmp4_ = vala_symbol_lower_case_to_camel_case (_tmp3_);
	result = _tmp4_;
	_g_free0 (dbus_name);
	return result;
}

gint
vala_gd_bus_module_get_dbus_timeout_for_member (ValaSymbol* symbol)
{
	gint result;
	g_return_val_if_fail (symbol != NULL, 0);
	result = vala_code_node_get_attribute_integer ((ValaCodeNode*) symbol, "DBus", "timeout", -1);
	return result;
}

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

gboolean
vala_gd_bus_module_is_dbus_visible (ValaCodeNode* node)
{
	ValaAttribute* dbus_attribute = NULL;
	ValaAttribute* _tmp0_;
	ValaAttribute* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	ValaAttribute* _tmp4_;
	gboolean result;
	g_return_val_if_fail (node != NULL, FALSE);
	_tmp0_ = vala_code_node_get_attribute (node, "DBus");
	_tmp1_ = _vala_code_node_ref0 (_tmp0_);
	dbus_attribute = _tmp1_;
	_tmp4_ = dbus_attribute;
	if (_tmp4_ != NULL) {
		ValaAttribute* _tmp5_;
		_tmp5_ = dbus_attribute;
		_tmp3_ = vala_attribute_has_argument (_tmp5_, "visible");
	} else {
		_tmp3_ = FALSE;
	}
	if (_tmp3_) {
		ValaAttribute* _tmp6_;
		_tmp6_ = dbus_attribute;
		_tmp2_ = !vala_attribute_get_bool (_tmp6_, "visible", FALSE);
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		result = FALSE;
		_vala_code_node_unref0 (dbus_attribute);
		return result;
	}
	result = TRUE;
	_vala_code_node_unref0 (dbus_attribute);
	return result;
}

gboolean
vala_gd_bus_module_is_dbus_no_reply (ValaMethod* m)
{
	gboolean result;
	g_return_val_if_fail (m != NULL, FALSE);
	result = vala_code_node_get_attribute_bool ((ValaCodeNode*) m, "DBus", "no_reply", FALSE);
	return result;
}

gchar*
vala_gd_bus_module_dbus_result_name (ValaMethod* m)
{
	gchar* dbus_name = NULL;
	gchar* _tmp0_;
	gboolean _tmp1_ = FALSE;
	const gchar* _tmp2_;
	gchar* _tmp4_;
	gchar* result;
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = vala_code_node_get_attribute_string ((ValaCodeNode*) m, "DBus", "result", NULL);
	dbus_name = _tmp0_;
	_tmp2_ = dbus_name;
	if (_tmp2_ != NULL) {
		const gchar* _tmp3_;
		_tmp3_ = dbus_name;
		_tmp1_ = g_strcmp0 (_tmp3_, "") != 0;
	} else {
		_tmp1_ = FALSE;
	}
	if (_tmp1_) {
		result = dbus_name;
		return result;
	}
	_tmp4_ = g_strdup ("result");
	result = _tmp4_;
	_g_free0 (dbus_name);
	return result;
}

static void
vala_gd_bus_module_real_visit_error_domain (ValaCodeVisitor* base,
                                            ValaErrorDomain* edomain)
{
	ValaGDBusModule * self;
	gchar* edomain_dbus_name = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	ValaCCodeFile* _tmp2_;
	ValaCCodeFile* _tmp3_;
	ValaCCodeInitializerList* error_entries = NULL;
	ValaCCodeInitializerList* _tmp6_;
	ValaCCodeDeclaration* _cdecl_ = NULL;
	ValaCCodeDeclaration* _tmp40_;
	ValaCCodeDeclaration* _tmp41_;
	gchar* _tmp42_;
	gchar* _tmp43_;
	gchar* _tmp44_;
	gchar* _tmp45_;
	ValaCCodeInitializerList* _tmp46_;
	ValaCCodeVariableDeclarator* _tmp47_;
	ValaCCodeVariableDeclarator* _tmp48_;
	ValaCCodeDeclaration* _tmp49_;
	ValaCCodeFile* _tmp50_;
	ValaCCodeDeclaration* _tmp51_;
	gchar* quark_fun_name = NULL;
	gchar* _tmp52_;
	gchar* _tmp53_;
	gchar* _tmp54_;
	gchar* _tmp55_;
	ValaCCodeFunction* cquark_fun = NULL;
	const gchar* _tmp56_;
	ValaDataType* _tmp57_;
	ValaTypeSymbol* _tmp58_;
	ValaTypeSymbol* _tmp59_;
	gchar* _tmp60_;
	gchar* _tmp61_;
	ValaCCodeFunction* _tmp62_;
	ValaCCodeFunction* _tmp63_;
	ValaCCodeFunction* _tmp64_;
	gchar* quark_name = NULL;
	gchar* _tmp65_;
	gchar* _tmp66_;
	gchar* _tmp67_;
	gchar* _tmp68_;
	ValaCCodeFunction* _tmp69_;
	ValaCCodeFunction* _tmp70_;
	const gchar* _tmp71_;
	ValaCCodeConstant* _tmp72_;
	ValaCCodeConstant* _tmp73_;
	ValaCCodeVariableDeclarator* _tmp74_;
	ValaCCodeVariableDeclarator* _tmp75_;
	ValaCCodeFunctionCall* register_call = NULL;
	ValaCCodeIdentifier* _tmp76_;
	ValaCCodeIdentifier* _tmp77_;
	ValaCCodeFunctionCall* _tmp78_;
	ValaCCodeFunctionCall* _tmp79_;
	ValaCCodeFunctionCall* _tmp80_;
	gchar* _tmp81_;
	gchar* _tmp82_;
	gchar* _tmp83_;
	gchar* _tmp84_;
	gchar* _tmp85_;
	gchar* _tmp86_;
	ValaCCodeConstant* _tmp87_;
	ValaCCodeConstant* _tmp88_;
	ValaCCodeFunctionCall* _tmp89_;
	const gchar* _tmp90_;
	ValaCCodeIdentifier* _tmp91_;
	ValaCCodeIdentifier* _tmp92_;
	ValaCCodeUnaryExpression* _tmp93_;
	ValaCCodeUnaryExpression* _tmp94_;
	ValaCCodeFunctionCall* _tmp95_;
	gchar* _tmp96_;
	gchar* _tmp97_;
	gchar* _tmp98_;
	gchar* _tmp99_;
	ValaCCodeIdentifier* _tmp100_;
	ValaCCodeIdentifier* _tmp101_;
	ValaCCodeFunctionCall* nentries = NULL;
	ValaCCodeIdentifier* _tmp102_;
	ValaCCodeIdentifier* _tmp103_;
	ValaCCodeFunctionCall* _tmp104_;
	ValaCCodeFunctionCall* _tmp105_;
	ValaCCodeFunctionCall* _tmp106_;
	gchar* _tmp107_;
	gchar* _tmp108_;
	gchar* _tmp109_;
	gchar* _tmp110_;
	ValaCCodeIdentifier* _tmp111_;
	ValaCCodeIdentifier* _tmp112_;
	ValaCCodeFunctionCall* _tmp113_;
	ValaCCodeFunctionCall* _tmp114_;
	ValaCCodeFunction* _tmp115_;
	ValaCCodeFunction* _tmp116_;
	ValaCCodeFunctionCall* _tmp117_;
	ValaCCodeFunction* _tmp118_;
	ValaCCodeFunction* _tmp119_;
	const gchar* _tmp120_;
	ValaCCodeIdentifier* _tmp121_;
	ValaCCodeIdentifier* _tmp122_;
	ValaCCodeCastExpression* _tmp123_;
	ValaCCodeCastExpression* _tmp124_;
	ValaCCodeFile* _tmp125_;
	ValaCCodeFunction* _tmp126_;
	self = (ValaGDBusModule*) base;
	g_return_if_fail (edomain != NULL);
	_tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) edomain);
	edomain_dbus_name = _tmp0_;
	_tmp1_ = edomain_dbus_name;
	if (_tmp1_ == NULL) {
		VALA_CODE_VISITOR_CLASS (vala_gd_bus_module_parent_class)->visit_error_domain ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GVARIANT_MODULE, ValaGVariantModule), edomain);
		_g_free0 (edomain_dbus_name);
		return;
	}
	_tmp2_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_include (_tmp2_, "gio/gio.h", FALSE);
	_tmp3_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_base_module_generate_error_domain_declaration ((ValaCCodeBaseModule*) self, edomain, _tmp3_);
	if (!vala_symbol_is_internal_symbol ((ValaSymbol*) edomain)) {
		ValaCCodeFile* _tmp4_;
		_tmp4_ = ((ValaCCodeBaseModule*) self)->header_file;
		vala_ccode_base_module_generate_error_domain_declaration ((ValaCCodeBaseModule*) self, edomain, _tmp4_);
	}
	if (!vala_symbol_is_private_symbol ((ValaSymbol*) edomain)) {
		ValaCCodeFile* _tmp5_;
		_tmp5_ = ((ValaCCodeBaseModule*) self)->internal_header_file;
		vala_ccode_base_module_generate_error_domain_declaration ((ValaCCodeBaseModule*) self, edomain, _tmp5_);
	}
	_tmp6_ = vala_ccode_initializer_list_new ();
	error_entries = _tmp6_;
	{
		ValaList* _ecode_list = NULL;
		ValaList* _tmp7_;
		gint _ecode_size = 0;
		ValaList* _tmp8_;
		gint _tmp9_;
		gint _tmp10_;
		gint _ecode_index = 0;
		_tmp7_ = vala_error_domain_get_codes (edomain);
		_ecode_list = _tmp7_;
		_tmp8_ = _ecode_list;
		_tmp9_ = vala_collection_get_size ((ValaCollection*) _tmp8_);
		_tmp10_ = _tmp9_;
		_ecode_size = _tmp10_;
		_ecode_index = -1;
		while (TRUE) {
			gint _tmp11_;
			gint _tmp12_;
			ValaErrorCode* ecode = NULL;
			ValaList* _tmp13_;
			gpointer _tmp14_;
			gchar* ecode_dbus_name = NULL;
			ValaErrorCode* _tmp15_;
			gchar* _tmp16_;
			const gchar* _tmp17_;
			ValaCCodeInitializerList* error_entry = NULL;
			ValaCCodeInitializerList* _tmp24_;
			ValaCCodeInitializerList* _tmp25_;
			ValaErrorCode* _tmp26_;
			gchar* _tmp27_;
			gchar* _tmp28_;
			ValaCCodeIdentifier* _tmp29_;
			ValaCCodeIdentifier* _tmp30_;
			ValaCCodeInitializerList* _tmp31_;
			const gchar* _tmp32_;
			const gchar* _tmp33_;
			gchar* _tmp34_;
			gchar* _tmp35_;
			ValaCCodeConstant* _tmp36_;
			ValaCCodeConstant* _tmp37_;
			ValaCCodeInitializerList* _tmp38_;
			ValaCCodeInitializerList* _tmp39_;
			_ecode_index = _ecode_index + 1;
			_tmp11_ = _ecode_index;
			_tmp12_ = _ecode_size;
			if (!(_tmp11_ < _tmp12_)) {
				break;
			}
			_tmp13_ = _ecode_list;
			_tmp14_ = vala_list_get (_tmp13_, _ecode_index);
			ecode = (ValaErrorCode*) _tmp14_;
			_tmp15_ = ecode;
			_tmp16_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp15_);
			ecode_dbus_name = _tmp16_;
			_tmp17_ = ecode_dbus_name;
			if (_tmp17_ == NULL) {
				ValaErrorCode* _tmp18_;
				const gchar* _tmp19_;
				const gchar* _tmp20_;
				gchar* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				_tmp18_ = ecode;
				_tmp19_ = vala_symbol_get_name ((ValaSymbol*) _tmp18_);
				_tmp20_ = _tmp19_;
				_tmp21_ = g_ascii_strdown (_tmp20_, (gssize) -1);
				_tmp22_ = _tmp21_;
				_tmp23_ = vala_symbol_lower_case_to_camel_case (_tmp22_);
				_g_free0 (ecode_dbus_name);
				ecode_dbus_name = _tmp23_;
				_g_free0 (_tmp22_);
			}
			_tmp24_ = vala_ccode_initializer_list_new ();
			error_entry = _tmp24_;
			_tmp25_ = error_entry;
			_tmp26_ = ecode;
			_tmp27_ = vala_get_ccode_name ((ValaCodeNode*) _tmp26_);
			_tmp28_ = _tmp27_;
			_tmp29_ = vala_ccode_identifier_new (_tmp28_);
			_tmp30_ = _tmp29_;
			vala_ccode_initializer_list_append (_tmp25_, (ValaCCodeExpression*) _tmp30_);
			_vala_ccode_node_unref0 (_tmp30_);
			_g_free0 (_tmp28_);
			_tmp31_ = error_entry;
			_tmp32_ = edomain_dbus_name;
			_tmp33_ = ecode_dbus_name;
			_tmp34_ = g_strdup_printf ("\"%s.%s\"", _tmp32_, _tmp33_);
			_tmp35_ = _tmp34_;
			_tmp36_ = vala_ccode_constant_new (_tmp35_);
			_tmp37_ = _tmp36_;
			vala_ccode_initializer_list_append (_tmp31_, (ValaCCodeExpression*) _tmp37_);
			_vala_ccode_node_unref0 (_tmp37_);
			_g_free0 (_tmp35_);
			_tmp38_ = error_entries;
			_tmp39_ = error_entry;
			vala_ccode_initializer_list_append (_tmp38_, (ValaCCodeExpression*) _tmp39_);
			_vala_ccode_node_unref0 (error_entry);
			_g_free0 (ecode_dbus_name);
			_vala_code_node_unref0 (ecode);
		}
	}
	_tmp40_ = vala_ccode_declaration_new ("const GDBusErrorEntry");
	_cdecl_ = _tmp40_;
	_tmp41_ = _cdecl_;
	_tmp42_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) edomain, NULL);
	_tmp43_ = _tmp42_;
	_tmp44_ = g_strconcat (_tmp43_, "_entries[]", NULL);
	_tmp45_ = _tmp44_;
	_tmp46_ = error_entries;
	_tmp47_ = vala_ccode_variable_declarator_new (_tmp45_, (ValaCCodeExpression*) _tmp46_, NULL);
	_tmp48_ = _tmp47_;
	vala_ccode_declaration_add_declarator (_tmp41_, (ValaCCodeDeclarator*) _tmp48_);
	_vala_ccode_node_unref0 (_tmp48_);
	_g_free0 (_tmp45_);
	_g_free0 (_tmp43_);
	_tmp49_ = _cdecl_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp49_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp50_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp51_ = _cdecl_;
	vala_ccode_file_add_constant_declaration (_tmp50_, (ValaCCodeNode*) _tmp51_);
	_tmp52_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) edomain);
	_tmp53_ = _tmp52_;
	_tmp54_ = g_strconcat (_tmp53_, "quark", NULL);
	_tmp55_ = _tmp54_;
	_g_free0 (_tmp53_);
	quark_fun_name = _tmp55_;
	_tmp56_ = quark_fun_name;
	_tmp57_ = ((ValaCCodeBaseModule*) self)->gquark_type;
	_tmp58_ = vala_data_type_get_type_symbol (_tmp57_);
	_tmp59_ = _tmp58_;
	_tmp60_ = vala_get_ccode_name ((ValaCodeNode*) _tmp59_);
	_tmp61_ = _tmp60_;
	_tmp62_ = vala_ccode_function_new (_tmp56_, _tmp61_);
	_tmp63_ = _tmp62_;
	_g_free0 (_tmp61_);
	cquark_fun = _tmp63_;
	_tmp64_ = cquark_fun;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp64_);
	_tmp65_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) edomain);
	_tmp66_ = _tmp65_;
	_tmp67_ = g_strdup_printf ("%squark_volatile", _tmp66_);
	_tmp68_ = _tmp67_;
	_g_free0 (_tmp66_);
	quark_name = _tmp68_;
	_tmp69_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp70_ = _tmp69_;
	_tmp71_ = quark_name;
	_tmp72_ = vala_ccode_constant_new ("0");
	_tmp73_ = _tmp72_;
	_tmp74_ = vala_ccode_variable_declarator_new (_tmp71_, (ValaCCodeExpression*) _tmp73_, NULL);
	_tmp75_ = _tmp74_;
	vala_ccode_function_add_declaration (_tmp70_, "gsize", (ValaCCodeDeclarator*) _tmp75_, VALA_CCODE_MODIFIERS_STATIC | VALA_CCODE_MODIFIERS_VOLATILE);
	_vala_ccode_node_unref0 (_tmp75_);
	_vala_ccode_node_unref0 (_tmp73_);
	_tmp76_ = vala_ccode_identifier_new ("g_dbus_error_register_error_domain");
	_tmp77_ = _tmp76_;
	_tmp78_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp77_);
	_tmp79_ = _tmp78_;
	_vala_ccode_node_unref0 (_tmp77_);
	register_call = _tmp79_;
	_tmp80_ = register_call;
	_tmp81_ = vala_get_ccode_quark_name (edomain);
	_tmp82_ = _tmp81_;
	_tmp83_ = g_strconcat ("\"", _tmp82_, NULL);
	_tmp84_ = _tmp83_;
	_tmp85_ = g_strconcat (_tmp84_, "\"", NULL);
	_tmp86_ = _tmp85_;
	_tmp87_ = vala_ccode_constant_new (_tmp86_);
	_tmp88_ = _tmp87_;
	vala_ccode_function_call_add_argument (_tmp80_, (ValaCCodeExpression*) _tmp88_);
	_vala_ccode_node_unref0 (_tmp88_);
	_g_free0 (_tmp86_);
	_g_free0 (_tmp84_);
	_g_free0 (_tmp82_);
	_tmp89_ = register_call;
	_tmp90_ = quark_name;
	_tmp91_ = vala_ccode_identifier_new (_tmp90_);
	_tmp92_ = _tmp91_;
	_tmp93_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp92_);
	_tmp94_ = _tmp93_;
	vala_ccode_function_call_add_argument (_tmp89_, (ValaCCodeExpression*) _tmp94_);
	_vala_ccode_node_unref0 (_tmp94_);
	_vala_ccode_node_unref0 (_tmp92_);
	_tmp95_ = register_call;
	_tmp96_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) edomain, NULL);
	_tmp97_ = _tmp96_;
	_tmp98_ = g_strconcat (_tmp97_, "_entries", NULL);
	_tmp99_ = _tmp98_;
	_tmp100_ = vala_ccode_identifier_new (_tmp99_);
	_tmp101_ = _tmp100_;
	vala_ccode_function_call_add_argument (_tmp95_, (ValaCCodeExpression*) _tmp101_);
	_vala_ccode_node_unref0 (_tmp101_);
	_g_free0 (_tmp99_);
	_g_free0 (_tmp97_);
	_tmp102_ = vala_ccode_identifier_new ("G_N_ELEMENTS");
	_tmp103_ = _tmp102_;
	_tmp104_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp103_);
	_tmp105_ = _tmp104_;
	_vala_ccode_node_unref0 (_tmp103_);
	nentries = _tmp105_;
	_tmp106_ = nentries;
	_tmp107_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) edomain, NULL);
	_tmp108_ = _tmp107_;
	_tmp109_ = g_strconcat (_tmp108_, "_entries", NULL);
	_tmp110_ = _tmp109_;
	_tmp111_ = vala_ccode_identifier_new (_tmp110_);
	_tmp112_ = _tmp111_;
	vala_ccode_function_call_add_argument (_tmp106_, (ValaCCodeExpression*) _tmp112_);
	_vala_ccode_node_unref0 (_tmp112_);
	_g_free0 (_tmp110_);
	_g_free0 (_tmp108_);
	_tmp113_ = register_call;
	_tmp114_ = nentries;
	vala_ccode_function_call_add_argument (_tmp113_, (ValaCCodeExpression*) _tmp114_);
	_tmp115_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp116_ = _tmp115_;
	_tmp117_ = register_call;
	vala_ccode_function_add_expression (_tmp116_, (ValaCCodeExpression*) _tmp117_);
	_tmp118_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp119_ = _tmp118_;
	_tmp120_ = quark_name;
	_tmp121_ = vala_ccode_identifier_new (_tmp120_);
	_tmp122_ = _tmp121_;
	_tmp123_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp122_, "GQuark");
	_tmp124_ = _tmp123_;
	vala_ccode_function_add_return (_tmp119_, (ValaCCodeExpression*) _tmp124_);
	_vala_ccode_node_unref0 (_tmp124_);
	_vala_ccode_node_unref0 (_tmp122_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp125_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp126_ = cquark_fun;
	vala_ccode_file_add_function (_tmp125_, _tmp126_);
	_vala_ccode_node_unref0 (nentries);
	_vala_ccode_node_unref0 (register_call);
	_g_free0 (quark_name);
	_vala_ccode_node_unref0 (cquark_fun);
	_g_free0 (quark_fun_name);
	_vala_ccode_node_unref0 (_cdecl_);
	_vala_ccode_node_unref0 (error_entries);
	_g_free0 (edomain_dbus_name);
}

static gboolean
vala_gd_bus_module_is_file_descriptor (ValaGDBusModule* self,
                                       ValaDataType* type)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (type != NULL, FALSE);
	if (G_TYPE_CHECK_INSTANCE_TYPE (type, VALA_TYPE_OBJECT_TYPE)) {
		gboolean _tmp0_ = FALSE;
		gboolean _tmp1_ = FALSE;
		gboolean _tmp2_ = FALSE;
		ValaTypeSymbol* _tmp3_;
		ValaTypeSymbol* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
		gboolean _tmp7_;
		_tmp3_ = vala_data_type_get_type_symbol (type);
		_tmp4_ = _tmp3_;
		_tmp5_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp4_);
		_tmp6_ = _tmp5_;
		_tmp7_ = g_strcmp0 (_tmp6_, "GLib.UnixInputStream") == 0;
		_g_free0 (_tmp6_);
		if (_tmp7_) {
			_tmp2_ = TRUE;
		} else {
			ValaTypeSymbol* _tmp8_;
			ValaTypeSymbol* _tmp9_;
			gchar* _tmp10_;
			gchar* _tmp11_;
			_tmp8_ = vala_data_type_get_type_symbol (type);
			_tmp9_ = _tmp8_;
			_tmp10_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp9_);
			_tmp11_ = _tmp10_;
			_tmp2_ = g_strcmp0 (_tmp11_, "GLib.UnixOutputStream") == 0;
			_g_free0 (_tmp11_);
		}
		if (_tmp2_) {
			_tmp1_ = TRUE;
		} else {
			ValaTypeSymbol* _tmp12_;
			ValaTypeSymbol* _tmp13_;
			gchar* _tmp14_;
			gchar* _tmp15_;
			_tmp12_ = vala_data_type_get_type_symbol (type);
			_tmp13_ = _tmp12_;
			_tmp14_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp13_);
			_tmp15_ = _tmp14_;
			_tmp1_ = g_strcmp0 (_tmp15_, "GLib.Socket") == 0;
			_g_free0 (_tmp15_);
		}
		if (_tmp1_) {
			_tmp0_ = TRUE;
		} else {
			ValaTypeSymbol* _tmp16_;
			ValaTypeSymbol* _tmp17_;
			gchar* _tmp18_;
			gchar* _tmp19_;
			_tmp16_ = vala_data_type_get_type_symbol (type);
			_tmp17_ = _tmp16_;
			_tmp18_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp17_);
			_tmp19_ = _tmp18_;
			_tmp0_ = g_strcmp0 (_tmp19_, "GLib.FileDescriptorBased") == 0;
			_g_free0 (_tmp19_);
		}
		if (_tmp0_) {
			result = TRUE;
			return result;
		}
	}
	result = FALSE;
	return result;
}

gboolean
vala_gd_bus_module_dbus_method_uses_file_descriptor (ValaGDBusModule* self,
                                                     ValaMethod* method)
{
	ValaDataType* _tmp11_;
	ValaDataType* _tmp12_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (method != NULL, FALSE);
	{
		ValaList* _param_list = NULL;
		ValaList* _tmp0_;
		gint _param_size = 0;
		ValaList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
		gint _param_index = 0;
		_tmp0_ = vala_callable_get_parameters ((ValaCallable*) method);
		_param_list = _tmp0_;
		_tmp1_ = _param_list;
		_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
		_tmp3_ = _tmp2_;
		_param_size = _tmp3_;
		_param_index = -1;
		while (TRUE) {
			gint _tmp4_;
			gint _tmp5_;
			ValaParameter* param = NULL;
			ValaList* _tmp6_;
			gpointer _tmp7_;
			ValaParameter* _tmp8_;
			ValaDataType* _tmp9_;
			ValaDataType* _tmp10_;
			_param_index = _param_index + 1;
			_tmp4_ = _param_index;
			_tmp5_ = _param_size;
			if (!(_tmp4_ < _tmp5_)) {
				break;
			}
			_tmp6_ = _param_list;
			_tmp7_ = vala_list_get (_tmp6_, _param_index);
			param = (ValaParameter*) _tmp7_;
			_tmp8_ = param;
			_tmp9_ = vala_variable_get_variable_type ((ValaVariable*) _tmp8_);
			_tmp10_ = _tmp9_;
			if (vala_gd_bus_module_is_file_descriptor (self, _tmp10_)) {
				result = TRUE;
				_vala_code_node_unref0 (param);
				return result;
			}
			_vala_code_node_unref0 (param);
		}
	}
	_tmp11_ = vala_callable_get_return_type ((ValaCallable*) method);
	_tmp12_ = _tmp11_;
	if (vala_gd_bus_module_is_file_descriptor (self, _tmp12_)) {
		result = TRUE;
		return result;
	}
	result = FALSE;
	return result;
}

static ValaCCodeExpression*
vala_gd_bus_module_get_file_descriptor (ValaGDBusModule* self,
                                        ValaDataType* type,
                                        ValaCCodeExpression* expr)
{
	ValaCCodeExpression* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (type != NULL, NULL);
	g_return_val_if_fail (expr != NULL, NULL);
	if (G_TYPE_CHECK_INSTANCE_TYPE (type, VALA_TYPE_OBJECT_TYPE)) {
		ValaTypeSymbol* _tmp0_;
		ValaTypeSymbol* _tmp1_;
		gchar* _tmp2_;
		gchar* _tmp3_;
		gboolean _tmp4_;
		_tmp0_ = vala_data_type_get_type_symbol (type);
		_tmp1_ = _tmp0_;
		_tmp2_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp1_);
		_tmp3_ = _tmp2_;
		_tmp4_ = g_strcmp0 (_tmp3_, "GLib.UnixInputStream") == 0;
		_g_free0 (_tmp3_);
		if (_tmp4_) {
			ValaCCodeFunctionCall* _result_ = NULL;
			ValaCCodeIdentifier* _tmp5_;
			ValaCCodeIdentifier* _tmp6_;
			ValaCCodeFunctionCall* _tmp7_;
			ValaCCodeFunctionCall* _tmp8_;
			ValaCCodeFunctionCall* _tmp9_;
			_tmp5_ = vala_ccode_identifier_new ("g_unix_input_stream_get_fd");
			_tmp6_ = _tmp5_;
			_tmp7_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp6_);
			_tmp8_ = _tmp7_;
			_vala_ccode_node_unref0 (_tmp6_);
			_result_ = _tmp8_;
			_tmp9_ = _result_;
			vala_ccode_function_call_add_argument (_tmp9_, expr);
			result = (ValaCCodeExpression*) _result_;
			return result;
		} else {
			ValaTypeSymbol* _tmp10_;
			ValaTypeSymbol* _tmp11_;
			gchar* _tmp12_;
			gchar* _tmp13_;
			gboolean _tmp14_;
			_tmp10_ = vala_data_type_get_type_symbol (type);
			_tmp11_ = _tmp10_;
			_tmp12_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp11_);
			_tmp13_ = _tmp12_;
			_tmp14_ = g_strcmp0 (_tmp13_, "GLib.UnixOutputStream") == 0;
			_g_free0 (_tmp13_);
			if (_tmp14_) {
				ValaCCodeFunctionCall* _result_ = NULL;
				ValaCCodeIdentifier* _tmp15_;
				ValaCCodeIdentifier* _tmp16_;
				ValaCCodeFunctionCall* _tmp17_;
				ValaCCodeFunctionCall* _tmp18_;
				ValaCCodeFunctionCall* _tmp19_;
				_tmp15_ = vala_ccode_identifier_new ("g_unix_output_stream_get_fd");
				_tmp16_ = _tmp15_;
				_tmp17_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp16_);
				_tmp18_ = _tmp17_;
				_vala_ccode_node_unref0 (_tmp16_);
				_result_ = _tmp18_;
				_tmp19_ = _result_;
				vala_ccode_function_call_add_argument (_tmp19_, expr);
				result = (ValaCCodeExpression*) _result_;
				return result;
			} else {
				ValaTypeSymbol* _tmp20_;
				ValaTypeSymbol* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				gboolean _tmp24_;
				_tmp20_ = vala_data_type_get_type_symbol (type);
				_tmp21_ = _tmp20_;
				_tmp22_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp21_);
				_tmp23_ = _tmp22_;
				_tmp24_ = g_strcmp0 (_tmp23_, "GLib.Socket") == 0;
				_g_free0 (_tmp23_);
				if (_tmp24_) {
					ValaCCodeFunctionCall* _result_ = NULL;
					ValaCCodeIdentifier* _tmp25_;
					ValaCCodeIdentifier* _tmp26_;
					ValaCCodeFunctionCall* _tmp27_;
					ValaCCodeFunctionCall* _tmp28_;
					ValaCCodeFunctionCall* _tmp29_;
					_tmp25_ = vala_ccode_identifier_new ("g_socket_get_fd");
					_tmp26_ = _tmp25_;
					_tmp27_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp26_);
					_tmp28_ = _tmp27_;
					_vala_ccode_node_unref0 (_tmp26_);
					_result_ = _tmp28_;
					_tmp29_ = _result_;
					vala_ccode_function_call_add_argument (_tmp29_, expr);
					result = (ValaCCodeExpression*) _result_;
					return result;
				} else {
					ValaTypeSymbol* _tmp30_;
					ValaTypeSymbol* _tmp31_;
					gchar* _tmp32_;
					gchar* _tmp33_;
					gboolean _tmp34_;
					_tmp30_ = vala_data_type_get_type_symbol (type);
					_tmp31_ = _tmp30_;
					_tmp32_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp31_);
					_tmp33_ = _tmp32_;
					_tmp34_ = g_strcmp0 (_tmp33_, "GLib.FileDescriptorBased") == 0;
					_g_free0 (_tmp33_);
					if (_tmp34_) {
						ValaCCodeFunctionCall* _result_ = NULL;
						ValaCCodeIdentifier* _tmp35_;
						ValaCCodeIdentifier* _tmp36_;
						ValaCCodeFunctionCall* _tmp37_;
						ValaCCodeFunctionCall* _tmp38_;
						ValaCCodeFunctionCall* _tmp39_;
						_tmp35_ = vala_ccode_identifier_new ("g_file_descriptor_based_get_fd");
						_tmp36_ = _tmp35_;
						_tmp37_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp36_);
						_tmp38_ = _tmp37_;
						_vala_ccode_node_unref0 (_tmp36_);
						_result_ = _tmp38_;
						_tmp39_ = _result_;
						vala_ccode_function_call_add_argument (_tmp39_, expr);
						result = (ValaCCodeExpression*) _result_;
						return result;
					}
				}
			}
		}
	}
	result = NULL;
	return result;
}

void
vala_gd_bus_module_send_dbus_value (ValaGDBusModule* self,
                                    ValaDataType* type,
                                    ValaCCodeExpression* builder_expr,
                                    ValaCCodeExpression* expr,
                                    ValaSymbol* sym)
{
	ValaCCodeExpression* fd = NULL;
	ValaCCodeExpression* _tmp0_;
	ValaCCodeExpression* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (type != NULL);
	g_return_if_fail (builder_expr != NULL);
	g_return_if_fail (expr != NULL);
	_tmp0_ = vala_gd_bus_module_get_file_descriptor (self, type, expr);
	fd = _tmp0_;
	_tmp1_ = fd;
	if (_tmp1_ != NULL) {
		ValaCCodeFunctionCall* fd_append = NULL;
		ValaCCodeIdentifier* _tmp2_;
		ValaCCodeIdentifier* _tmp3_;
		ValaCCodeFunctionCall* _tmp4_;
		ValaCCodeFunctionCall* _tmp5_;
		ValaCCodeFunctionCall* _tmp6_;
		ValaCCodeIdentifier* _tmp7_;
		ValaCCodeIdentifier* _tmp8_;
		ValaCCodeFunctionCall* _tmp9_;
		ValaCCodeExpression* _tmp10_;
		ValaCCodeFunctionCall* _tmp11_;
		ValaCCodeConstant* _tmp12_;
		ValaCCodeConstant* _tmp13_;
		ValaCCodeFunctionCall* builder_add = NULL;
		ValaCCodeIdentifier* _tmp14_;
		ValaCCodeIdentifier* _tmp15_;
		ValaCCodeFunctionCall* _tmp16_;
		ValaCCodeFunctionCall* _tmp17_;
		ValaCCodeFunctionCall* _tmp18_;
		ValaCCodeUnaryExpression* _tmp19_;
		ValaCCodeUnaryExpression* _tmp20_;
		ValaCCodeFunctionCall* _tmp21_;
		ValaCCodeConstant* _tmp22_;
		ValaCCodeConstant* _tmp23_;
		ValaCCodeFunctionCall* _tmp24_;
		ValaCCodeFunctionCall* _tmp25_;
		ValaCCodeFunction* _tmp26_;
		ValaCCodeFunction* _tmp27_;
		ValaCCodeFunctionCall* _tmp28_;
		_tmp2_ = vala_ccode_identifier_new ("g_unix_fd_list_append");
		_tmp3_ = _tmp2_;
		_tmp4_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp3_);
		_tmp5_ = _tmp4_;
		_vala_ccode_node_unref0 (_tmp3_);
		fd_append = _tmp5_;
		_tmp6_ = fd_append;
		_tmp7_ = vala_ccode_identifier_new ("_fd_list");
		_tmp8_ = _tmp7_;
		vala_ccode_function_call_add_argument (_tmp6_, (ValaCCodeExpression*) _tmp8_);
		_vala_ccode_node_unref0 (_tmp8_);
		_tmp9_ = fd_append;
		_tmp10_ = fd;
		vala_ccode_function_call_add_argument (_tmp9_, _tmp10_);
		_tmp11_ = fd_append;
		_tmp12_ = vala_ccode_constant_new ("NULL");
		_tmp13_ = _tmp12_;
		vala_ccode_function_call_add_argument (_tmp11_, (ValaCCodeExpression*) _tmp13_);
		_vala_ccode_node_unref0 (_tmp13_);
		_tmp14_ = vala_ccode_identifier_new ("g_variant_builder_add");
		_tmp15_ = _tmp14_;
		_tmp16_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp15_);
		_tmp17_ = _tmp16_;
		_vala_ccode_node_unref0 (_tmp15_);
		builder_add = _tmp17_;
		_tmp18_ = builder_add;
		_tmp19_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, builder_expr);
		_tmp20_ = _tmp19_;
		vala_ccode_function_call_add_argument (_tmp18_, (ValaCCodeExpression*) _tmp20_);
		_vala_ccode_node_unref0 (_tmp20_);
		_tmp21_ = builder_add;
		_tmp22_ = vala_ccode_constant_new ("\"h\"");
		_tmp23_ = _tmp22_;
		vala_ccode_function_call_add_argument (_tmp21_, (ValaCCodeExpression*) _tmp23_);
		_vala_ccode_node_unref0 (_tmp23_);
		_tmp24_ = builder_add;
		_tmp25_ = fd_append;
		vala_ccode_function_call_add_argument (_tmp24_, (ValaCCodeExpression*) _tmp25_);
		_tmp26_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp27_ = _tmp26_;
		_tmp28_ = builder_add;
		vala_ccode_function_add_expression (_tmp27_, (ValaCCodeExpression*) _tmp28_);
		_vala_ccode_node_unref0 (builder_add);
		_vala_ccode_node_unref0 (fd_append);
	} else {
		vala_gvariant_module_write_expression ((ValaGVariantModule*) self, type, builder_expr, expr, sym);
	}
	_vala_ccode_node_unref0 (fd);
}

static ValaCCodeExpression*
vala_gd_bus_module_create_from_file_descriptor (ValaGDBusModule* self,
                                                ValaDataType* type,
                                                ValaCCodeExpression* expr)
{
	ValaCCodeExpression* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (type != NULL, NULL);
	g_return_val_if_fail (expr != NULL, NULL);
	if (G_TYPE_CHECK_INSTANCE_TYPE (type, VALA_TYPE_OBJECT_TYPE)) {
		ValaTypeSymbol* _tmp0_;
		ValaTypeSymbol* _tmp1_;
		gchar* _tmp2_;
		gchar* _tmp3_;
		gboolean _tmp4_;
		_tmp0_ = vala_data_type_get_type_symbol (type);
		_tmp1_ = _tmp0_;
		_tmp2_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp1_);
		_tmp3_ = _tmp2_;
		_tmp4_ = g_strcmp0 (_tmp3_, "GLib.UnixInputStream") == 0;
		_g_free0 (_tmp3_);
		if (_tmp4_) {
			ValaCCodeFunctionCall* _result_ = NULL;
			ValaCCodeIdentifier* _tmp5_;
			ValaCCodeIdentifier* _tmp6_;
			ValaCCodeFunctionCall* _tmp7_;
			ValaCCodeFunctionCall* _tmp8_;
			ValaCCodeFunctionCall* _tmp9_;
			ValaCCodeFunctionCall* _tmp10_;
			ValaCCodeConstant* _tmp11_;
			ValaCCodeConstant* _tmp12_;
			ValaCCodeFunctionCall* _tmp13_;
			ValaCCodeCastExpression* _tmp14_;
			_tmp5_ = vala_ccode_identifier_new ("g_unix_input_stream_new");
			_tmp6_ = _tmp5_;
			_tmp7_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp6_);
			_tmp8_ = _tmp7_;
			_vala_ccode_node_unref0 (_tmp6_);
			_result_ = _tmp8_;
			_tmp9_ = _result_;
			vala_ccode_function_call_add_argument (_tmp9_, expr);
			_tmp10_ = _result_;
			_tmp11_ = vala_ccode_constant_new ("TRUE");
			_tmp12_ = _tmp11_;
			vala_ccode_function_call_add_argument (_tmp10_, (ValaCCodeExpression*) _tmp12_);
			_vala_ccode_node_unref0 (_tmp12_);
			_tmp13_ = _result_;
			_tmp14_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp13_, "GUnixInputStream *");
			result = (ValaCCodeExpression*) _tmp14_;
			_vala_ccode_node_unref0 (_result_);
			return result;
		} else {
			ValaTypeSymbol* _tmp15_;
			ValaTypeSymbol* _tmp16_;
			gchar* _tmp17_;
			gchar* _tmp18_;
			gboolean _tmp19_;
			_tmp15_ = vala_data_type_get_type_symbol (type);
			_tmp16_ = _tmp15_;
			_tmp17_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp16_);
			_tmp18_ = _tmp17_;
			_tmp19_ = g_strcmp0 (_tmp18_, "GLib.UnixOutputStream") == 0;
			_g_free0 (_tmp18_);
			if (_tmp19_) {
				ValaCCodeFunctionCall* _result_ = NULL;
				ValaCCodeIdentifier* _tmp20_;
				ValaCCodeIdentifier* _tmp21_;
				ValaCCodeFunctionCall* _tmp22_;
				ValaCCodeFunctionCall* _tmp23_;
				ValaCCodeFunctionCall* _tmp24_;
				ValaCCodeFunctionCall* _tmp25_;
				ValaCCodeConstant* _tmp26_;
				ValaCCodeConstant* _tmp27_;
				ValaCCodeFunctionCall* _tmp28_;
				ValaCCodeCastExpression* _tmp29_;
				_tmp20_ = vala_ccode_identifier_new ("g_unix_output_stream_new");
				_tmp21_ = _tmp20_;
				_tmp22_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp21_);
				_tmp23_ = _tmp22_;
				_vala_ccode_node_unref0 (_tmp21_);
				_result_ = _tmp23_;
				_tmp24_ = _result_;
				vala_ccode_function_call_add_argument (_tmp24_, expr);
				_tmp25_ = _result_;
				_tmp26_ = vala_ccode_constant_new ("TRUE");
				_tmp27_ = _tmp26_;
				vala_ccode_function_call_add_argument (_tmp25_, (ValaCCodeExpression*) _tmp27_);
				_vala_ccode_node_unref0 (_tmp27_);
				_tmp28_ = _result_;
				_tmp29_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp28_, "GUnixOutputStream *");
				result = (ValaCCodeExpression*) _tmp29_;
				_vala_ccode_node_unref0 (_result_);
				return result;
			} else {
				ValaTypeSymbol* _tmp30_;
				ValaTypeSymbol* _tmp31_;
				gchar* _tmp32_;
				gchar* _tmp33_;
				gboolean _tmp34_;
				_tmp30_ = vala_data_type_get_type_symbol (type);
				_tmp31_ = _tmp30_;
				_tmp32_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp31_);
				_tmp33_ = _tmp32_;
				_tmp34_ = g_strcmp0 (_tmp33_, "GLib.Socket") == 0;
				_g_free0 (_tmp33_);
				if (_tmp34_) {
					ValaCCodeFunctionCall* _result_ = NULL;
					ValaCCodeIdentifier* _tmp35_;
					ValaCCodeIdentifier* _tmp36_;
					ValaCCodeFunctionCall* _tmp37_;
					ValaCCodeFunctionCall* _tmp38_;
					ValaCCodeFunctionCall* _tmp39_;
					ValaCCodeFunctionCall* _tmp40_;
					ValaCCodeConstant* _tmp41_;
					ValaCCodeConstant* _tmp42_;
					_tmp35_ = vala_ccode_identifier_new ("g_socket_new_from_fd");
					_tmp36_ = _tmp35_;
					_tmp37_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp36_);
					_tmp38_ = _tmp37_;
					_vala_ccode_node_unref0 (_tmp36_);
					_result_ = _tmp38_;
					_tmp39_ = _result_;
					vala_ccode_function_call_add_argument (_tmp39_, expr);
					_tmp40_ = _result_;
					_tmp41_ = vala_ccode_constant_new ("NULL");
					_tmp42_ = _tmp41_;
					vala_ccode_function_call_add_argument (_tmp40_, (ValaCCodeExpression*) _tmp42_);
					_vala_ccode_node_unref0 (_tmp42_);
					result = (ValaCCodeExpression*) _result_;
					return result;
				}
			}
		}
	}
	result = NULL;
	return result;
}

void
vala_gd_bus_module_receive_dbus_value (ValaGDBusModule* self,
                                       ValaDataType* type,
                                       ValaCCodeExpression* message_expr,
                                       ValaCCodeExpression* iter_expr,
                                       ValaCCodeExpression* target_expr,
                                       ValaSymbol* sym,
                                       ValaCCodeExpression* error_expr,
                                       gboolean* may_fail)
{
	gboolean _vala_may_fail = FALSE;
	ValaCCodeFunctionCall* fd_list = NULL;
	ValaCCodeIdentifier* _tmp0_;
	ValaCCodeIdentifier* _tmp1_;
	ValaCCodeFunctionCall* _tmp2_;
	ValaCCodeFunctionCall* _tmp3_;
	ValaCCodeFunctionCall* _tmp4_;
	ValaCCodeIdentifier* fd_var = NULL;
	ValaCCodeIdentifier* _tmp5_;
	ValaCCodeExpression* stream = NULL;
	ValaCCodeIdentifier* _tmp6_;
	ValaCCodeExpression* _tmp7_;
	ValaCCodeExpression* _tmp8_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (type != NULL);
	g_return_if_fail (message_expr != NULL);
	g_return_if_fail (iter_expr != NULL);
	g_return_if_fail (target_expr != NULL);
	_tmp0_ = vala_ccode_identifier_new ("g_dbus_message_get_unix_fd_list");
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp1_);
	_tmp3_ = _tmp2_;
	_vala_ccode_node_unref0 (_tmp1_);
	fd_list = _tmp3_;
	_tmp4_ = fd_list;
	vala_ccode_function_call_add_argument (_tmp4_, message_expr);
	_tmp5_ = vala_ccode_identifier_new ("_fd");
	fd_var = _tmp5_;
	_tmp6_ = fd_var;
	_tmp7_ = vala_gd_bus_module_create_from_file_descriptor (self, type, (ValaCCodeExpression*) _tmp6_);
	stream = _tmp7_;
	_tmp8_ = stream;
	if (_tmp8_ != NULL) {
		ValaCCodeIdentifier* fd_list_var = NULL;
		ValaCCodeIdentifier* _tmp9_;
		ValaCCodeFunctionCall* fd = NULL;
		ValaCCodeIdentifier* _tmp10_;
		ValaCCodeIdentifier* _tmp11_;
		ValaCCodeFunctionCall* _tmp12_;
		ValaCCodeFunctionCall* _tmp13_;
		ValaCCodeFunctionCall* _tmp14_;
		ValaCCodeIdentifier* _tmp15_;
		ValaCCodeFunctionCall* _tmp16_;
		ValaCCodeIdentifier* _tmp17_;
		ValaCCodeIdentifier* _tmp18_;
		ValaCCodeFunctionCall* _tmp19_;
		ValaCCodeFunction* _tmp20_;
		ValaCCodeFunction* _tmp21_;
		ValaCCodeIdentifier* _tmp22_;
		ValaCCodeFunctionCall* _tmp23_;
		ValaCCodeFunction* _tmp24_;
		ValaCCodeFunction* _tmp25_;
		ValaCCodeIdentifier* _tmp26_;
		ValaCCodeFunctionCall* get_fd = NULL;
		ValaCCodeIdentifier* _tmp27_;
		ValaCCodeIdentifier* _tmp28_;
		ValaCCodeFunctionCall* _tmp29_;
		ValaCCodeFunctionCall* _tmp30_;
		ValaCCodeFunctionCall* _tmp31_;
		ValaCCodeUnaryExpression* _tmp32_;
		ValaCCodeUnaryExpression* _tmp33_;
		ValaCCodeFunctionCall* _tmp34_;
		ValaCCodeConstant* _tmp35_;
		ValaCCodeConstant* _tmp36_;
		ValaCCodeFunctionCall* _tmp37_;
		ValaCCodeIdentifier* _tmp38_;
		ValaCCodeIdentifier* _tmp39_;
		ValaCCodeUnaryExpression* _tmp40_;
		ValaCCodeUnaryExpression* _tmp41_;
		ValaCCodeFunction* _tmp42_;
		ValaCCodeFunction* _tmp43_;
		ValaCCodeFunctionCall* _tmp44_;
		ValaCCodeFunction* _tmp45_;
		ValaCCodeFunction* _tmp46_;
		ValaCCodeIdentifier* _tmp47_;
		ValaCCodeFunctionCall* _tmp48_;
		ValaCCodeFunction* _tmp49_;
		ValaCCodeFunction* _tmp50_;
		ValaCCodeIdentifier* _tmp51_;
		ValaCCodeConstant* _tmp52_;
		ValaCCodeConstant* _tmp53_;
		ValaCCodeBinaryExpression* _tmp54_;
		ValaCCodeBinaryExpression* _tmp55_;
		ValaCCodeFunction* _tmp56_;
		ValaCCodeFunction* _tmp57_;
		ValaCCodeExpression* _tmp58_;
		ValaCCodeFunction* _tmp59_;
		ValaCCodeFunction* _tmp60_;
		ValaCCodeFunction* _tmp61_;
		ValaCCodeFunction* _tmp62_;
		ValaCCodeFunctionCall* set_error = NULL;
		ValaCCodeIdentifier* _tmp63_;
		ValaCCodeIdentifier* _tmp64_;
		ValaCCodeFunctionCall* _tmp65_;
		ValaCCodeFunctionCall* _tmp66_;
		ValaCCodeFunctionCall* _tmp67_;
		ValaCCodeFunctionCall* _tmp68_;
		ValaCCodeIdentifier* _tmp69_;
		ValaCCodeIdentifier* _tmp70_;
		ValaCCodeFunctionCall* _tmp71_;
		ValaCCodeIdentifier* _tmp72_;
		ValaCCodeIdentifier* _tmp73_;
		ValaCCodeFunctionCall* _tmp74_;
		ValaCCodeConstant* _tmp75_;
		ValaCCodeConstant* _tmp76_;
		ValaCCodeFunction* _tmp77_;
		ValaCCodeFunction* _tmp78_;
		ValaCCodeFunctionCall* _tmp79_;
		ValaCCodeFunction* _tmp80_;
		ValaCCodeFunction* _tmp81_;
		_tmp9_ = vala_ccode_identifier_new ("_fd_list");
		fd_list_var = _tmp9_;
		_tmp10_ = vala_ccode_identifier_new ("g_unix_fd_list_get");
		_tmp11_ = _tmp10_;
		_tmp12_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp11_);
		_tmp13_ = _tmp12_;
		_vala_ccode_node_unref0 (_tmp11_);
		fd = _tmp13_;
		_tmp14_ = fd;
		_tmp15_ = fd_list_var;
		vala_ccode_function_call_add_argument (_tmp14_, (ValaCCodeExpression*) _tmp15_);
		_tmp16_ = fd;
		_tmp17_ = vala_ccode_identifier_new ("_fd_index");
		_tmp18_ = _tmp17_;
		vala_ccode_function_call_add_argument (_tmp16_, (ValaCCodeExpression*) _tmp18_);
		_vala_ccode_node_unref0 (_tmp18_);
		_tmp19_ = fd;
		vala_ccode_function_call_add_argument (_tmp19_, error_expr);
		_tmp20_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp21_ = _tmp20_;
		_tmp22_ = fd_list_var;
		_tmp23_ = fd_list;
		vala_ccode_function_add_assignment (_tmp21_, (ValaCCodeExpression*) _tmp22_, (ValaCCodeExpression*) _tmp23_);
		_tmp24_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp25_ = _tmp24_;
		_tmp26_ = fd_list_var;
		vala_ccode_function_open_if (_tmp25_, (ValaCCodeExpression*) _tmp26_);
		_tmp27_ = vala_ccode_identifier_new ("g_variant_iter_next");
		_tmp28_ = _tmp27_;
		_tmp29_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp28_);
		_tmp30_ = _tmp29_;
		_vala_ccode_node_unref0 (_tmp28_);
		get_fd = _tmp30_;
		_tmp31_ = get_fd;
		_tmp32_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, iter_expr);
		_tmp33_ = _tmp32_;
		vala_ccode_function_call_add_argument (_tmp31_, (ValaCCodeExpression*) _tmp33_);
		_vala_ccode_node_unref0 (_tmp33_);
		_tmp34_ = get_fd;
		_tmp35_ = vala_ccode_constant_new ("\"h\"");
		_tmp36_ = _tmp35_;
		vala_ccode_function_call_add_argument (_tmp34_, (ValaCCodeExpression*) _tmp36_);
		_vala_ccode_node_unref0 (_tmp36_);
		_tmp37_ = get_fd;
		_tmp38_ = vala_ccode_identifier_new ("_fd_index");
		_tmp39_ = _tmp38_;
		_tmp40_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp39_);
		_tmp41_ = _tmp40_;
		vala_ccode_function_call_add_argument (_tmp37_, (ValaCCodeExpression*) _tmp41_);
		_vala_ccode_node_unref0 (_tmp41_);
		_vala_ccode_node_unref0 (_tmp39_);
		_tmp42_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp43_ = _tmp42_;
		_tmp44_ = get_fd;
		vala_ccode_function_add_expression (_tmp43_, (ValaCCodeExpression*) _tmp44_);
		_tmp45_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp46_ = _tmp45_;
		_tmp47_ = fd_var;
		_tmp48_ = fd;
		vala_ccode_function_add_assignment (_tmp46_, (ValaCCodeExpression*) _tmp47_, (ValaCCodeExpression*) _tmp48_);
		_tmp49_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp50_ = _tmp49_;
		_tmp51_ = fd_var;
		_tmp52_ = vala_ccode_constant_new ("0");
		_tmp53_ = _tmp52_;
		_tmp54_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_GREATER_THAN_OR_EQUAL, (ValaCCodeExpression*) _tmp51_, (ValaCCodeExpression*) _tmp53_);
		_tmp55_ = _tmp54_;
		vala_ccode_function_open_if (_tmp50_, (ValaCCodeExpression*) _tmp55_);
		_vala_ccode_node_unref0 (_tmp55_);
		_vala_ccode_node_unref0 (_tmp53_);
		_tmp56_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp57_ = _tmp56_;
		_tmp58_ = stream;
		vala_ccode_function_add_assignment (_tmp57_, target_expr, _tmp58_);
		_vala_may_fail = TRUE;
		_tmp59_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp60_ = _tmp59_;
		vala_ccode_function_close (_tmp60_);
		_tmp61_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp62_ = _tmp61_;
		vala_ccode_function_add_else (_tmp62_);
		_tmp63_ = vala_ccode_identifier_new ("g_set_error_literal");
		_tmp64_ = _tmp63_;
		_tmp65_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp64_);
		_tmp66_ = _tmp65_;
		_vala_ccode_node_unref0 (_tmp64_);
		set_error = _tmp66_;
		_tmp67_ = set_error;
		vala_ccode_function_call_add_argument (_tmp67_, error_expr);
		_tmp68_ = set_error;
		_tmp69_ = vala_ccode_identifier_new ("G_IO_ERROR");
		_tmp70_ = _tmp69_;
		vala_ccode_function_call_add_argument (_tmp68_, (ValaCCodeExpression*) _tmp70_);
		_vala_ccode_node_unref0 (_tmp70_);
		_tmp71_ = set_error;
		_tmp72_ = vala_ccode_identifier_new ("G_IO_ERROR_FAILED");
		_tmp73_ = _tmp72_;
		vala_ccode_function_call_add_argument (_tmp71_, (ValaCCodeExpression*) _tmp73_);
		_vala_ccode_node_unref0 (_tmp73_);
		_tmp74_ = set_error;
		_tmp75_ = vala_ccode_constant_new ("\"FD List is NULL\"");
		_tmp76_ = _tmp75_;
		vala_ccode_function_call_add_argument (_tmp74_, (ValaCCodeExpression*) _tmp76_);
		_vala_ccode_node_unref0 (_tmp76_);
		_tmp77_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp78_ = _tmp77_;
		_tmp79_ = set_error;
		vala_ccode_function_add_expression (_tmp78_, (ValaCCodeExpression*) _tmp79_);
		_tmp80_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp81_ = _tmp80_;
		vala_ccode_function_close (_tmp81_);
		_vala_ccode_node_unref0 (set_error);
		_vala_ccode_node_unref0 (get_fd);
		_vala_ccode_node_unref0 (fd);
		_vala_ccode_node_unref0 (fd_list_var);
	} else {
		gboolean _tmp82_ = FALSE;
		vala_gvariant_module_read_expression ((ValaGVariantModule*) self, type, iter_expr, target_expr, sym, error_expr, &_tmp82_);
		_vala_may_fail = _tmp82_;
	}
	_vala_ccode_node_unref0 (stream);
	_vala_ccode_node_unref0 (fd_var);
	_vala_ccode_node_unref0 (fd_list);
	if (may_fail) {
		*may_fail = _vala_may_fail;
	}
}

static ValaCCodeExpression*
vala_gd_bus_module_get_method_info (ValaGDBusModule* self,
                                    ValaObjectTypeSymbol* sym)
{
	ValaCCodeInitializerList* infos = NULL;
	ValaCCodeInitializerList* _tmp0_;
	ValaCCodeInitializerList* _tmp363_;
	ValaCCodeConstant* _tmp364_;
	ValaCCodeConstant* _tmp365_;
	ValaCCodeDeclaration* _cdecl_ = NULL;
	ValaCCodeDeclaration* _tmp366_;
	gchar* _tmp367_;
	gchar* _tmp368_;
	gchar* _tmp369_;
	gchar* _tmp370_;
	gchar* _tmp371_;
	gchar* _tmp372_;
	ValaCCodeInitializerList* _tmp373_;
	ValaCCodeVariableDeclarator* _tmp374_;
	ValaCCodeVariableDeclarator* _tmp375_;
	ValaCCodeFile* _tmp376_;
	gchar* _tmp377_;
	gchar* _tmp378_;
	gchar* _tmp379_;
	gchar* _tmp380_;
	gchar* _tmp381_;
	gchar* _tmp382_;
	ValaCCodeIdentifier* _tmp383_;
	ValaCCodeExpression* _tmp384_;
	ValaCCodeExpression* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = vala_ccode_initializer_list_new ();
	infos = _tmp0_;
	{
		ValaList* _m_list = NULL;
		ValaList* _tmp1_;
		gint _m_size = 0;
		ValaList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _m_index = 0;
		_tmp1_ = vala_object_type_symbol_get_methods (sym);
		_m_list = _tmp1_;
		_tmp2_ = _m_list;
		_tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
		_tmp4_ = _tmp3_;
		_m_size = _tmp4_;
		_m_index = -1;
		while (TRUE) {
			gint _tmp5_;
			gint _tmp6_;
			ValaMethod* m = NULL;
			ValaList* _tmp7_;
			gpointer _tmp8_;
			gboolean _tmp9_ = FALSE;
			gboolean _tmp10_ = FALSE;
			gboolean _tmp11_ = FALSE;
			ValaMethod* _tmp12_;
			ValaMethod* _tmp22_;
			ValaCCodeInitializerList* in_args_info = NULL;
			ValaCCodeInitializerList* _tmp23_;
			ValaCCodeInitializerList* out_args_info = NULL;
			ValaCCodeInitializerList* _tmp24_;
			ValaMethod* _tmp157_;
			ValaDataType* _tmp158_;
			ValaDataType* _tmp159_;
			ValaCCodeInitializerList* _tmp225_;
			ValaCCodeConstant* _tmp226_;
			ValaCCodeConstant* _tmp227_;
			ValaCCodeInitializerList* _tmp228_;
			ValaCCodeConstant* _tmp229_;
			ValaCCodeConstant* _tmp230_;
			ValaCCodeDeclaration* _cdecl_ = NULL;
			ValaCCodeDeclaration* _tmp231_;
			ValaCCodeDeclaration* _tmp232_;
			gchar* _tmp233_;
			gchar* _tmp234_;
			gchar* _tmp235_;
			gchar* _tmp236_;
			gchar* _tmp237_;
			gchar* _tmp238_;
			ValaMethod* _tmp239_;
			const gchar* _tmp240_;
			const gchar* _tmp241_;
			gchar* _tmp242_;
			gchar* _tmp243_;
			gchar* _tmp244_;
			gchar* _tmp245_;
			ValaCCodeInitializerList* _tmp246_;
			ValaCCodeVariableDeclarator* _tmp247_;
			ValaCCodeVariableDeclarator* _tmp248_;
			ValaCCodeDeclaration* _tmp249_;
			ValaCCodeFile* _tmp250_;
			ValaCCodeDeclaration* _tmp251_;
			ValaCCodeDeclaration* _tmp252_;
			ValaCCodeDeclaration* _tmp253_;
			gchar* _tmp254_;
			gchar* _tmp255_;
			gchar* _tmp256_;
			gchar* _tmp257_;
			gchar* _tmp258_;
			gchar* _tmp259_;
			ValaMethod* _tmp260_;
			const gchar* _tmp261_;
			const gchar* _tmp262_;
			gchar* _tmp263_;
			gchar* _tmp264_;
			gchar* _tmp265_;
			gchar* _tmp266_;
			ValaCCodeInitializerList* _tmp267_;
			ValaCCodeVariableDeclarator* _tmp268_;
			ValaCCodeVariableDeclarator* _tmp269_;
			ValaCCodeDeclaration* _tmp270_;
			ValaCCodeFile* _tmp271_;
			ValaCCodeDeclaration* _tmp272_;
			ValaCCodeInitializerList* info = NULL;
			ValaCCodeInitializerList* _tmp273_;
			ValaCCodeInitializerList* _tmp274_;
			ValaCCodeConstant* _tmp275_;
			ValaCCodeConstant* _tmp276_;
			ValaCCodeInitializerList* _tmp277_;
			ValaMethod* _tmp278_;
			gchar* _tmp279_;
			gchar* _tmp280_;
			gchar* _tmp281_;
			gchar* _tmp282_;
			ValaCCodeConstant* _tmp283_;
			ValaCCodeConstant* _tmp284_;
			ValaCCodeInitializerList* _tmp285_;
			gchar* _tmp286_;
			gchar* _tmp287_;
			gchar* _tmp288_;
			gchar* _tmp289_;
			gchar* _tmp290_;
			gchar* _tmp291_;
			ValaMethod* _tmp292_;
			const gchar* _tmp293_;
			const gchar* _tmp294_;
			gchar* _tmp295_;
			gchar* _tmp296_;
			gchar* _tmp297_;
			gchar* _tmp298_;
			ValaCCodeIdentifier* _tmp299_;
			ValaCCodeIdentifier* _tmp300_;
			ValaCCodeUnaryExpression* _tmp301_;
			ValaCCodeUnaryExpression* _tmp302_;
			ValaCCodeCastExpression* _tmp303_;
			ValaCCodeCastExpression* _tmp304_;
			ValaCCodeInitializerList* _tmp305_;
			gchar* _tmp306_;
			gchar* _tmp307_;
			gchar* _tmp308_;
			gchar* _tmp309_;
			gchar* _tmp310_;
			gchar* _tmp311_;
			ValaMethod* _tmp312_;
			const gchar* _tmp313_;
			const gchar* _tmp314_;
			gchar* _tmp315_;
			gchar* _tmp316_;
			gchar* _tmp317_;
			gchar* _tmp318_;
			ValaCCodeIdentifier* _tmp319_;
			ValaCCodeIdentifier* _tmp320_;
			ValaCCodeUnaryExpression* _tmp321_;
			ValaCCodeUnaryExpression* _tmp322_;
			ValaCCodeCastExpression* _tmp323_;
			ValaCCodeCastExpression* _tmp324_;
			ValaCCodeInitializerList* _tmp325_;
			ValaCCodeConstant* _tmp326_;
			ValaCCodeConstant* _tmp327_;
			ValaCCodeDeclaration* _tmp328_;
			ValaCCodeDeclaration* _tmp329_;
			gchar* _tmp330_;
			gchar* _tmp331_;
			gchar* _tmp332_;
			gchar* _tmp333_;
			gchar* _tmp334_;
			gchar* _tmp335_;
			ValaMethod* _tmp336_;
			const gchar* _tmp337_;
			const gchar* _tmp338_;
			gchar* _tmp339_;
			gchar* _tmp340_;
			ValaCCodeInitializerList* _tmp341_;
			ValaCCodeVariableDeclarator* _tmp342_;
			ValaCCodeVariableDeclarator* _tmp343_;
			ValaCCodeDeclaration* _tmp344_;
			ValaCCodeFile* _tmp345_;
			ValaCCodeDeclaration* _tmp346_;
			ValaCCodeInitializerList* _tmp347_;
			gchar* _tmp348_;
			gchar* _tmp349_;
			gchar* _tmp350_;
			gchar* _tmp351_;
			gchar* _tmp352_;
			gchar* _tmp353_;
			ValaMethod* _tmp354_;
			const gchar* _tmp355_;
			const gchar* _tmp356_;
			gchar* _tmp357_;
			gchar* _tmp358_;
			ValaCCodeIdentifier* _tmp359_;
			ValaCCodeIdentifier* _tmp360_;
			ValaCCodeUnaryExpression* _tmp361_;
			ValaCCodeUnaryExpression* _tmp362_;
			_m_index = _m_index + 1;
			_tmp5_ = _m_index;
			_tmp6_ = _m_size;
			if (!(_tmp5_ < _tmp6_)) {
				break;
			}
			_tmp7_ = _m_list;
			_tmp8_ = vala_list_get (_tmp7_, _m_index);
			m = (ValaMethod*) _tmp8_;
			_tmp12_ = m;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, VALA_TYPE_CREATION_METHOD)) {
				_tmp11_ = TRUE;
			} else {
				ValaMethod* _tmp13_;
				ValaMemberBinding _tmp14_;
				ValaMemberBinding _tmp15_;
				_tmp13_ = m;
				_tmp14_ = vala_method_get_binding (_tmp13_);
				_tmp15_ = _tmp14_;
				_tmp11_ = _tmp15_ != VALA_MEMBER_BINDING_INSTANCE;
			}
			if (_tmp11_) {
				_tmp10_ = TRUE;
			} else {
				ValaMethod* _tmp16_;
				gboolean _tmp17_;
				gboolean _tmp18_;
				_tmp16_ = m;
				_tmp17_ = vala_method_get_overrides (_tmp16_);
				_tmp18_ = _tmp17_;
				_tmp10_ = _tmp18_;
			}
			if (_tmp10_) {
				_tmp9_ = TRUE;
			} else {
				ValaMethod* _tmp19_;
				ValaSymbolAccessibility _tmp20_;
				ValaSymbolAccessibility _tmp21_;
				_tmp19_ = m;
				_tmp20_ = vala_symbol_get_access ((ValaSymbol*) _tmp19_);
				_tmp21_ = _tmp20_;
				_tmp9_ = _tmp21_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
			}
			if (_tmp9_) {
				_vala_code_node_unref0 (m);
				continue;
			}
			_tmp22_ = m;
			if (!vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp22_)) {
				_vala_code_node_unref0 (m);
				continue;
			}
			_tmp23_ = vala_ccode_initializer_list_new ();
			in_args_info = _tmp23_;
			_tmp24_ = vala_ccode_initializer_list_new ();
			out_args_info = _tmp24_;
			{
				ValaList* _param_list = NULL;
				ValaMethod* _tmp25_;
				ValaList* _tmp26_;
				gint _param_size = 0;
				ValaList* _tmp27_;
				gint _tmp28_;
				gint _tmp29_;
				gint _param_index = 0;
				_tmp25_ = m;
				_tmp26_ = vala_callable_get_parameters ((ValaCallable*) _tmp25_);
				_param_list = _tmp26_;
				_tmp27_ = _param_list;
				_tmp28_ = vala_collection_get_size ((ValaCollection*) _tmp27_);
				_tmp29_ = _tmp28_;
				_param_size = _tmp29_;
				_param_index = -1;
				while (TRUE) {
					gint _tmp30_;
					gint _tmp31_;
					ValaParameter* param = NULL;
					ValaList* _tmp32_;
					gpointer _tmp33_;
					gboolean _tmp34_ = FALSE;
					ValaParameter* _tmp35_;
					ValaDataType* _tmp36_;
					ValaDataType* _tmp37_;
					gboolean _tmp45_ = FALSE;
					ValaParameter* _tmp46_;
					ValaDataType* _tmp47_;
					ValaDataType* _tmp48_;
					ValaCCodeInitializerList* info = NULL;
					ValaCCodeInitializerList* _tmp56_;
					ValaCCodeInitializerList* _tmp57_;
					ValaCCodeConstant* _tmp58_;
					ValaCCodeConstant* _tmp59_;
					ValaCCodeInitializerList* _tmp60_;
					ValaParameter* _tmp61_;
					const gchar* _tmp62_;
					const gchar* _tmp63_;
					gchar* _tmp64_;
					gchar* _tmp65_;
					ValaCCodeConstant* _tmp66_;
					ValaCCodeConstant* _tmp67_;
					ValaCCodeInitializerList* _tmp68_;
					ValaParameter* _tmp69_;
					ValaDataType* _tmp70_;
					ValaDataType* _tmp71_;
					ValaParameter* _tmp72_;
					gchar* _tmp73_;
					gchar* _tmp74_;
					gchar* _tmp75_;
					gchar* _tmp76_;
					ValaCCodeConstant* _tmp77_;
					ValaCCodeConstant* _tmp78_;
					ValaCCodeInitializerList* _tmp79_;
					ValaCCodeConstant* _tmp80_;
					ValaCCodeConstant* _tmp81_;
					ValaCCodeDeclaration* _cdecl_ = NULL;
					ValaCCodeDeclaration* _tmp82_;
					ValaCCodeDeclaration* _tmp83_;
					gchar* _tmp84_;
					gchar* _tmp85_;
					gchar* _tmp86_;
					gchar* _tmp87_;
					gchar* _tmp88_;
					gchar* _tmp89_;
					ValaMethod* _tmp90_;
					const gchar* _tmp91_;
					const gchar* _tmp92_;
					gchar* _tmp93_;
					gchar* _tmp94_;
					gchar* _tmp95_;
					gchar* _tmp96_;
					ValaParameter* _tmp97_;
					const gchar* _tmp98_;
					const gchar* _tmp99_;
					gchar* _tmp100_;
					gchar* _tmp101_;
					ValaCCodeInitializerList* _tmp102_;
					ValaCCodeVariableDeclarator* _tmp103_;
					ValaCCodeVariableDeclarator* _tmp104_;
					ValaCCodeDeclaration* _tmp105_;
					ValaCCodeFile* _tmp106_;
					ValaCCodeDeclaration* _tmp107_;
					ValaParameter* _tmp108_;
					ValaParameterDirection _tmp109_;
					ValaParameterDirection _tmp110_;
					_param_index = _param_index + 1;
					_tmp30_ = _param_index;
					_tmp31_ = _param_size;
					if (!(_tmp30_ < _tmp31_)) {
						break;
					}
					_tmp32_ = _param_list;
					_tmp33_ = vala_list_get (_tmp32_, _param_index);
					param = (ValaParameter*) _tmp33_;
					_tmp35_ = param;
					_tmp36_ = vala_variable_get_variable_type ((ValaVariable*) _tmp35_);
					_tmp37_ = _tmp36_;
					if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp37_, VALA_TYPE_OBJECT_TYPE)) {
						ValaParameter* _tmp38_;
						ValaDataType* _tmp39_;
						ValaDataType* _tmp40_;
						ValaTypeSymbol* _tmp41_;
						ValaTypeSymbol* _tmp42_;
						gchar* _tmp43_;
						gchar* _tmp44_;
						_tmp38_ = param;
						_tmp39_ = vala_variable_get_variable_type ((ValaVariable*) _tmp38_);
						_tmp40_ = _tmp39_;
						_tmp41_ = vala_data_type_get_type_symbol (_tmp40_);
						_tmp42_ = _tmp41_;
						_tmp43_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp42_);
						_tmp44_ = _tmp43_;
						_tmp34_ = g_strcmp0 (_tmp44_, "GLib.Cancellable") == 0;
						_g_free0 (_tmp44_);
					} else {
						_tmp34_ = FALSE;
					}
					if (_tmp34_) {
						_vala_code_node_unref0 (param);
						continue;
					}
					_tmp46_ = param;
					_tmp47_ = vala_variable_get_variable_type ((ValaVariable*) _tmp46_);
					_tmp48_ = _tmp47_;
					if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp48_, VALA_TYPE_OBJECT_TYPE)) {
						ValaParameter* _tmp49_;
						ValaDataType* _tmp50_;
						ValaDataType* _tmp51_;
						ValaTypeSymbol* _tmp52_;
						ValaTypeSymbol* _tmp53_;
						gchar* _tmp54_;
						gchar* _tmp55_;
						_tmp49_ = param;
						_tmp50_ = vala_variable_get_variable_type ((ValaVariable*) _tmp49_);
						_tmp51_ = _tmp50_;
						_tmp52_ = vala_data_type_get_type_symbol (_tmp51_);
						_tmp53_ = _tmp52_;
						_tmp54_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp53_);
						_tmp55_ = _tmp54_;
						_tmp45_ = g_strcmp0 (_tmp55_, "GLib.BusName") == 0;
						_g_free0 (_tmp55_);
					} else {
						_tmp45_ = FALSE;
					}
					if (_tmp45_) {
						_vala_code_node_unref0 (param);
						continue;
					}
					_tmp56_ = vala_ccode_initializer_list_new ();
					info = _tmp56_;
					_tmp57_ = info;
					_tmp58_ = vala_ccode_constant_new ("-1");
					_tmp59_ = _tmp58_;
					vala_ccode_initializer_list_append (_tmp57_, (ValaCCodeExpression*) _tmp59_);
					_vala_ccode_node_unref0 (_tmp59_);
					_tmp60_ = info;
					_tmp61_ = param;
					_tmp62_ = vala_symbol_get_name ((ValaSymbol*) _tmp61_);
					_tmp63_ = _tmp62_;
					_tmp64_ = g_strdup_printf ("\"%s\"", _tmp63_);
					_tmp65_ = _tmp64_;
					_tmp66_ = vala_ccode_constant_new (_tmp65_);
					_tmp67_ = _tmp66_;
					vala_ccode_initializer_list_append (_tmp60_, (ValaCCodeExpression*) _tmp67_);
					_vala_ccode_node_unref0 (_tmp67_);
					_g_free0 (_tmp65_);
					_tmp68_ = info;
					_tmp69_ = param;
					_tmp70_ = vala_variable_get_variable_type ((ValaVariable*) _tmp69_);
					_tmp71_ = _tmp70_;
					_tmp72_ = param;
					_tmp73_ = vala_data_type_get_type_signature (_tmp71_, (ValaSymbol*) _tmp72_);
					_tmp74_ = _tmp73_;
					_tmp75_ = g_strdup_printf ("\"%s\"", _tmp74_);
					_tmp76_ = _tmp75_;
					_tmp77_ = vala_ccode_constant_new (_tmp76_);
					_tmp78_ = _tmp77_;
					vala_ccode_initializer_list_append (_tmp68_, (ValaCCodeExpression*) _tmp78_);
					_vala_ccode_node_unref0 (_tmp78_);
					_g_free0 (_tmp76_);
					_g_free0 (_tmp74_);
					_tmp79_ = info;
					_tmp80_ = vala_ccode_constant_new ("NULL");
					_tmp81_ = _tmp80_;
					vala_ccode_initializer_list_append (_tmp79_, (ValaCCodeExpression*) _tmp81_);
					_vala_ccode_node_unref0 (_tmp81_);
					_tmp82_ = vala_ccode_declaration_new ("const GDBusArgInfo");
					_cdecl_ = _tmp82_;
					_tmp83_ = _cdecl_;
					_tmp84_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
					_tmp85_ = _tmp84_;
					_tmp86_ = g_strconcat ("_", _tmp85_, NULL);
					_tmp87_ = _tmp86_;
					_tmp88_ = g_strconcat (_tmp87_, "dbus_arg_info_", NULL);
					_tmp89_ = _tmp88_;
					_tmp90_ = m;
					_tmp91_ = vala_symbol_get_name ((ValaSymbol*) _tmp90_);
					_tmp92_ = _tmp91_;
					_tmp93_ = g_strconcat (_tmp89_, _tmp92_, NULL);
					_tmp94_ = _tmp93_;
					_tmp95_ = g_strconcat (_tmp94_, "_", NULL);
					_tmp96_ = _tmp95_;
					_tmp97_ = param;
					_tmp98_ = vala_symbol_get_name ((ValaSymbol*) _tmp97_);
					_tmp99_ = _tmp98_;
					_tmp100_ = g_strconcat (_tmp96_, _tmp99_, NULL);
					_tmp101_ = _tmp100_;
					_tmp102_ = info;
					_tmp103_ = vala_ccode_variable_declarator_new (_tmp101_, (ValaCCodeExpression*) _tmp102_, NULL);
					_tmp104_ = _tmp103_;
					vala_ccode_declaration_add_declarator (_tmp83_, (ValaCCodeDeclarator*) _tmp104_);
					_vala_ccode_node_unref0 (_tmp104_);
					_g_free0 (_tmp101_);
					_g_free0 (_tmp96_);
					_g_free0 (_tmp94_);
					_g_free0 (_tmp89_);
					_g_free0 (_tmp87_);
					_g_free0 (_tmp85_);
					_tmp105_ = _cdecl_;
					vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp105_, VALA_CCODE_MODIFIERS_STATIC);
					_tmp106_ = ((ValaCCodeBaseModule*) self)->cfile;
					_tmp107_ = _cdecl_;
					vala_ccode_file_add_constant_declaration (_tmp106_, (ValaCCodeNode*) _tmp107_);
					_tmp108_ = param;
					_tmp109_ = vala_parameter_get_direction (_tmp108_);
					_tmp110_ = _tmp109_;
					if (_tmp110_ == VALA_PARAMETER_DIRECTION_IN) {
						ValaCCodeInitializerList* _tmp111_;
						gchar* _tmp112_;
						gchar* _tmp113_;
						gchar* _tmp114_;
						gchar* _tmp115_;
						gchar* _tmp116_;
						gchar* _tmp117_;
						ValaMethod* _tmp118_;
						const gchar* _tmp119_;
						const gchar* _tmp120_;
						gchar* _tmp121_;
						gchar* _tmp122_;
						gchar* _tmp123_;
						gchar* _tmp124_;
						ValaParameter* _tmp125_;
						const gchar* _tmp126_;
						const gchar* _tmp127_;
						gchar* _tmp128_;
						gchar* _tmp129_;
						ValaCCodeIdentifier* _tmp130_;
						ValaCCodeIdentifier* _tmp131_;
						ValaCCodeUnaryExpression* _tmp132_;
						ValaCCodeUnaryExpression* _tmp133_;
						_tmp111_ = in_args_info;
						_tmp112_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
						_tmp113_ = _tmp112_;
						_tmp114_ = g_strconcat ("_", _tmp113_, NULL);
						_tmp115_ = _tmp114_;
						_tmp116_ = g_strconcat (_tmp115_, "dbus_arg_info_", NULL);
						_tmp117_ = _tmp116_;
						_tmp118_ = m;
						_tmp119_ = vala_symbol_get_name ((ValaSymbol*) _tmp118_);
						_tmp120_ = _tmp119_;
						_tmp121_ = g_strconcat (_tmp117_, _tmp120_, NULL);
						_tmp122_ = _tmp121_;
						_tmp123_ = g_strconcat (_tmp122_, "_", NULL);
						_tmp124_ = _tmp123_;
						_tmp125_ = param;
						_tmp126_ = vala_symbol_get_name ((ValaSymbol*) _tmp125_);
						_tmp127_ = _tmp126_;
						_tmp128_ = g_strconcat (_tmp124_, _tmp127_, NULL);
						_tmp129_ = _tmp128_;
						_tmp130_ = vala_ccode_identifier_new (_tmp129_);
						_tmp131_ = _tmp130_;
						_tmp132_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp131_);
						_tmp133_ = _tmp132_;
						vala_ccode_initializer_list_append (_tmp111_, (ValaCCodeExpression*) _tmp133_);
						_vala_ccode_node_unref0 (_tmp133_);
						_vala_ccode_node_unref0 (_tmp131_);
						_g_free0 (_tmp129_);
						_g_free0 (_tmp124_);
						_g_free0 (_tmp122_);
						_g_free0 (_tmp117_);
						_g_free0 (_tmp115_);
						_g_free0 (_tmp113_);
					} else {
						ValaCCodeInitializerList* _tmp134_;
						gchar* _tmp135_;
						gchar* _tmp136_;
						gchar* _tmp137_;
						gchar* _tmp138_;
						gchar* _tmp139_;
						gchar* _tmp140_;
						ValaMethod* _tmp141_;
						const gchar* _tmp142_;
						const gchar* _tmp143_;
						gchar* _tmp144_;
						gchar* _tmp145_;
						gchar* _tmp146_;
						gchar* _tmp147_;
						ValaParameter* _tmp148_;
						const gchar* _tmp149_;
						const gchar* _tmp150_;
						gchar* _tmp151_;
						gchar* _tmp152_;
						ValaCCodeIdentifier* _tmp153_;
						ValaCCodeIdentifier* _tmp154_;
						ValaCCodeUnaryExpression* _tmp155_;
						ValaCCodeUnaryExpression* _tmp156_;
						_tmp134_ = out_args_info;
						_tmp135_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
						_tmp136_ = _tmp135_;
						_tmp137_ = g_strconcat ("_", _tmp136_, NULL);
						_tmp138_ = _tmp137_;
						_tmp139_ = g_strconcat (_tmp138_, "dbus_arg_info_", NULL);
						_tmp140_ = _tmp139_;
						_tmp141_ = m;
						_tmp142_ = vala_symbol_get_name ((ValaSymbol*) _tmp141_);
						_tmp143_ = _tmp142_;
						_tmp144_ = g_strconcat (_tmp140_, _tmp143_, NULL);
						_tmp145_ = _tmp144_;
						_tmp146_ = g_strconcat (_tmp145_, "_", NULL);
						_tmp147_ = _tmp146_;
						_tmp148_ = param;
						_tmp149_ = vala_symbol_get_name ((ValaSymbol*) _tmp148_);
						_tmp150_ = _tmp149_;
						_tmp151_ = g_strconcat (_tmp147_, _tmp150_, NULL);
						_tmp152_ = _tmp151_;
						_tmp153_ = vala_ccode_identifier_new (_tmp152_);
						_tmp154_ = _tmp153_;
						_tmp155_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp154_);
						_tmp156_ = _tmp155_;
						vala_ccode_initializer_list_append (_tmp134_, (ValaCCodeExpression*) _tmp156_);
						_vala_ccode_node_unref0 (_tmp156_);
						_vala_ccode_node_unref0 (_tmp154_);
						_g_free0 (_tmp152_);
						_g_free0 (_tmp147_);
						_g_free0 (_tmp145_);
						_g_free0 (_tmp140_);
						_g_free0 (_tmp138_);
						_g_free0 (_tmp136_);
					}
					_vala_ccode_node_unref0 (_cdecl_);
					_vala_ccode_node_unref0 (info);
					_vala_code_node_unref0 (param);
				}
			}
			_tmp157_ = m;
			_tmp158_ = vala_callable_get_return_type ((ValaCallable*) _tmp157_);
			_tmp159_ = _tmp158_;
			if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp159_, VALA_TYPE_VOID_TYPE)) {
				ValaCCodeInitializerList* info = NULL;
				ValaCCodeInitializerList* _tmp160_;
				ValaCCodeInitializerList* _tmp161_;
				ValaCCodeConstant* _tmp162_;
				ValaCCodeConstant* _tmp163_;
				ValaCCodeInitializerList* _tmp164_;
				ValaMethod* _tmp165_;
				gchar* _tmp166_;
				gchar* _tmp167_;
				gchar* _tmp168_;
				gchar* _tmp169_;
				ValaCCodeConstant* _tmp170_;
				ValaCCodeConstant* _tmp171_;
				ValaCCodeInitializerList* _tmp172_;
				ValaMethod* _tmp173_;
				ValaDataType* _tmp174_;
				ValaDataType* _tmp175_;
				ValaMethod* _tmp176_;
				gchar* _tmp177_;
				gchar* _tmp178_;
				gchar* _tmp179_;
				gchar* _tmp180_;
				ValaCCodeConstant* _tmp181_;
				ValaCCodeConstant* _tmp182_;
				ValaCCodeInitializerList* _tmp183_;
				ValaCCodeConstant* _tmp184_;
				ValaCCodeConstant* _tmp185_;
				ValaCCodeDeclaration* _cdecl_ = NULL;
				ValaCCodeDeclaration* _tmp186_;
				ValaCCodeDeclaration* _tmp187_;
				gchar* _tmp188_;
				gchar* _tmp189_;
				gchar* _tmp190_;
				gchar* _tmp191_;
				gchar* _tmp192_;
				gchar* _tmp193_;
				ValaMethod* _tmp194_;
				const gchar* _tmp195_;
				const gchar* _tmp196_;
				gchar* _tmp197_;
				gchar* _tmp198_;
				gchar* _tmp199_;
				gchar* _tmp200_;
				ValaCCodeInitializerList* _tmp201_;
				ValaCCodeVariableDeclarator* _tmp202_;
				ValaCCodeVariableDeclarator* _tmp203_;
				ValaCCodeDeclaration* _tmp204_;
				ValaCCodeFile* _tmp205_;
				ValaCCodeDeclaration* _tmp206_;
				ValaCCodeInitializerList* _tmp207_;
				gchar* _tmp208_;
				gchar* _tmp209_;
				gchar* _tmp210_;
				gchar* _tmp211_;
				gchar* _tmp212_;
				gchar* _tmp213_;
				ValaMethod* _tmp214_;
				const gchar* _tmp215_;
				const gchar* _tmp216_;
				gchar* _tmp217_;
				gchar* _tmp218_;
				gchar* _tmp219_;
				gchar* _tmp220_;
				ValaCCodeIdentifier* _tmp221_;
				ValaCCodeIdentifier* _tmp222_;
				ValaCCodeUnaryExpression* _tmp223_;
				ValaCCodeUnaryExpression* _tmp224_;
				_tmp160_ = vala_ccode_initializer_list_new ();
				info = _tmp160_;
				_tmp161_ = info;
				_tmp162_ = vala_ccode_constant_new ("-1");
				_tmp163_ = _tmp162_;
				vala_ccode_initializer_list_append (_tmp161_, (ValaCCodeExpression*) _tmp163_);
				_vala_ccode_node_unref0 (_tmp163_);
				_tmp164_ = info;
				_tmp165_ = m;
				_tmp166_ = vala_gd_bus_module_dbus_result_name (_tmp165_);
				_tmp167_ = _tmp166_;
				_tmp168_ = g_strdup_printf ("\"%s\"", _tmp167_);
				_tmp169_ = _tmp168_;
				_tmp170_ = vala_ccode_constant_new (_tmp169_);
				_tmp171_ = _tmp170_;
				vala_ccode_initializer_list_append (_tmp164_, (ValaCCodeExpression*) _tmp171_);
				_vala_ccode_node_unref0 (_tmp171_);
				_g_free0 (_tmp169_);
				_g_free0 (_tmp167_);
				_tmp172_ = info;
				_tmp173_ = m;
				_tmp174_ = vala_callable_get_return_type ((ValaCallable*) _tmp173_);
				_tmp175_ = _tmp174_;
				_tmp176_ = m;
				_tmp177_ = vala_data_type_get_type_signature (_tmp175_, (ValaSymbol*) _tmp176_);
				_tmp178_ = _tmp177_;
				_tmp179_ = g_strdup_printf ("\"%s\"", _tmp178_);
				_tmp180_ = _tmp179_;
				_tmp181_ = vala_ccode_constant_new (_tmp180_);
				_tmp182_ = _tmp181_;
				vala_ccode_initializer_list_append (_tmp172_, (ValaCCodeExpression*) _tmp182_);
				_vala_ccode_node_unref0 (_tmp182_);
				_g_free0 (_tmp180_);
				_g_free0 (_tmp178_);
				_tmp183_ = info;
				_tmp184_ = vala_ccode_constant_new ("NULL");
				_tmp185_ = _tmp184_;
				vala_ccode_initializer_list_append (_tmp183_, (ValaCCodeExpression*) _tmp185_);
				_vala_ccode_node_unref0 (_tmp185_);
				_tmp186_ = vala_ccode_declaration_new ("const GDBusArgInfo");
				_cdecl_ = _tmp186_;
				_tmp187_ = _cdecl_;
				_tmp188_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
				_tmp189_ = _tmp188_;
				_tmp190_ = g_strconcat ("_", _tmp189_, NULL);
				_tmp191_ = _tmp190_;
				_tmp192_ = g_strconcat (_tmp191_, "dbus_arg_info_", NULL);
				_tmp193_ = _tmp192_;
				_tmp194_ = m;
				_tmp195_ = vala_symbol_get_name ((ValaSymbol*) _tmp194_);
				_tmp196_ = _tmp195_;
				_tmp197_ = g_strconcat (_tmp193_, _tmp196_, NULL);
				_tmp198_ = _tmp197_;
				_tmp199_ = g_strconcat (_tmp198_, "_result", NULL);
				_tmp200_ = _tmp199_;
				_tmp201_ = info;
				_tmp202_ = vala_ccode_variable_declarator_new (_tmp200_, (ValaCCodeExpression*) _tmp201_, NULL);
				_tmp203_ = _tmp202_;
				vala_ccode_declaration_add_declarator (_tmp187_, (ValaCCodeDeclarator*) _tmp203_);
				_vala_ccode_node_unref0 (_tmp203_);
				_g_free0 (_tmp200_);
				_g_free0 (_tmp198_);
				_g_free0 (_tmp193_);
				_g_free0 (_tmp191_);
				_g_free0 (_tmp189_);
				_tmp204_ = _cdecl_;
				vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp204_, VALA_CCODE_MODIFIERS_STATIC);
				_tmp205_ = ((ValaCCodeBaseModule*) self)->cfile;
				_tmp206_ = _cdecl_;
				vala_ccode_file_add_constant_declaration (_tmp205_, (ValaCCodeNode*) _tmp206_);
				_tmp207_ = out_args_info;
				_tmp208_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
				_tmp209_ = _tmp208_;
				_tmp210_ = g_strconcat ("_", _tmp209_, NULL);
				_tmp211_ = _tmp210_;
				_tmp212_ = g_strconcat (_tmp211_, "dbus_arg_info_", NULL);
				_tmp213_ = _tmp212_;
				_tmp214_ = m;
				_tmp215_ = vala_symbol_get_name ((ValaSymbol*) _tmp214_);
				_tmp216_ = _tmp215_;
				_tmp217_ = g_strconcat (_tmp213_, _tmp216_, NULL);
				_tmp218_ = _tmp217_;
				_tmp219_ = g_strconcat (_tmp218_, "_result", NULL);
				_tmp220_ = _tmp219_;
				_tmp221_ = vala_ccode_identifier_new (_tmp220_);
				_tmp222_ = _tmp221_;
				_tmp223_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp222_);
				_tmp224_ = _tmp223_;
				vala_ccode_initializer_list_append (_tmp207_, (ValaCCodeExpression*) _tmp224_);
				_vala_ccode_node_unref0 (_tmp224_);
				_vala_ccode_node_unref0 (_tmp222_);
				_g_free0 (_tmp220_);
				_g_free0 (_tmp218_);
				_g_free0 (_tmp213_);
				_g_free0 (_tmp211_);
				_g_free0 (_tmp209_);
				_vala_ccode_node_unref0 (_cdecl_);
				_vala_ccode_node_unref0 (info);
			}
			_tmp225_ = in_args_info;
			_tmp226_ = vala_ccode_constant_new ("NULL");
			_tmp227_ = _tmp226_;
			vala_ccode_initializer_list_append (_tmp225_, (ValaCCodeExpression*) _tmp227_);
			_vala_ccode_node_unref0 (_tmp227_);
			_tmp228_ = out_args_info;
			_tmp229_ = vala_ccode_constant_new ("NULL");
			_tmp230_ = _tmp229_;
			vala_ccode_initializer_list_append (_tmp228_, (ValaCCodeExpression*) _tmp230_);
			_vala_ccode_node_unref0 (_tmp230_);
			_tmp231_ = vala_ccode_declaration_new ("const GDBusArgInfo * const");
			_cdecl_ = _tmp231_;
			_tmp232_ = _cdecl_;
			_tmp233_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp234_ = _tmp233_;
			_tmp235_ = g_strconcat ("_", _tmp234_, NULL);
			_tmp236_ = _tmp235_;
			_tmp237_ = g_strconcat (_tmp236_, "dbus_arg_info_", NULL);
			_tmp238_ = _tmp237_;
			_tmp239_ = m;
			_tmp240_ = vala_symbol_get_name ((ValaSymbol*) _tmp239_);
			_tmp241_ = _tmp240_;
			_tmp242_ = g_strconcat (_tmp238_, _tmp241_, NULL);
			_tmp243_ = _tmp242_;
			_tmp244_ = g_strconcat (_tmp243_, "_in[]", NULL);
			_tmp245_ = _tmp244_;
			_tmp246_ = in_args_info;
			_tmp247_ = vala_ccode_variable_declarator_new (_tmp245_, (ValaCCodeExpression*) _tmp246_, NULL);
			_tmp248_ = _tmp247_;
			vala_ccode_declaration_add_declarator (_tmp232_, (ValaCCodeDeclarator*) _tmp248_);
			_vala_ccode_node_unref0 (_tmp248_);
			_g_free0 (_tmp245_);
			_g_free0 (_tmp243_);
			_g_free0 (_tmp238_);
			_g_free0 (_tmp236_);
			_g_free0 (_tmp234_);
			_tmp249_ = _cdecl_;
			vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp249_, VALA_CCODE_MODIFIERS_STATIC);
			_tmp250_ = ((ValaCCodeBaseModule*) self)->cfile;
			_tmp251_ = _cdecl_;
			vala_ccode_file_add_constant_declaration (_tmp250_, (ValaCCodeNode*) _tmp251_);
			_tmp252_ = vala_ccode_declaration_new ("const GDBusArgInfo * const");
			_vala_ccode_node_unref0 (_cdecl_);
			_cdecl_ = _tmp252_;
			_tmp253_ = _cdecl_;
			_tmp254_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp255_ = _tmp254_;
			_tmp256_ = g_strconcat ("_", _tmp255_, NULL);
			_tmp257_ = _tmp256_;
			_tmp258_ = g_strconcat (_tmp257_, "dbus_arg_info_", NULL);
			_tmp259_ = _tmp258_;
			_tmp260_ = m;
			_tmp261_ = vala_symbol_get_name ((ValaSymbol*) _tmp260_);
			_tmp262_ = _tmp261_;
			_tmp263_ = g_strconcat (_tmp259_, _tmp262_, NULL);
			_tmp264_ = _tmp263_;
			_tmp265_ = g_strconcat (_tmp264_, "_out[]", NULL);
			_tmp266_ = _tmp265_;
			_tmp267_ = out_args_info;
			_tmp268_ = vala_ccode_variable_declarator_new (_tmp266_, (ValaCCodeExpression*) _tmp267_, NULL);
			_tmp269_ = _tmp268_;
			vala_ccode_declaration_add_declarator (_tmp253_, (ValaCCodeDeclarator*) _tmp269_);
			_vala_ccode_node_unref0 (_tmp269_);
			_g_free0 (_tmp266_);
			_g_free0 (_tmp264_);
			_g_free0 (_tmp259_);
			_g_free0 (_tmp257_);
			_g_free0 (_tmp255_);
			_tmp270_ = _cdecl_;
			vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp270_, VALA_CCODE_MODIFIERS_STATIC);
			_tmp271_ = ((ValaCCodeBaseModule*) self)->cfile;
			_tmp272_ = _cdecl_;
			vala_ccode_file_add_constant_declaration (_tmp271_, (ValaCCodeNode*) _tmp272_);
			_tmp273_ = vala_ccode_initializer_list_new ();
			info = _tmp273_;
			_tmp274_ = info;
			_tmp275_ = vala_ccode_constant_new ("-1");
			_tmp276_ = _tmp275_;
			vala_ccode_initializer_list_append (_tmp274_, (ValaCCodeExpression*) _tmp276_);
			_vala_ccode_node_unref0 (_tmp276_);
			_tmp277_ = info;
			_tmp278_ = m;
			_tmp279_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp278_);
			_tmp280_ = _tmp279_;
			_tmp281_ = g_strdup_printf ("\"%s\"", _tmp280_);
			_tmp282_ = _tmp281_;
			_tmp283_ = vala_ccode_constant_new (_tmp282_);
			_tmp284_ = _tmp283_;
			vala_ccode_initializer_list_append (_tmp277_, (ValaCCodeExpression*) _tmp284_);
			_vala_ccode_node_unref0 (_tmp284_);
			_g_free0 (_tmp282_);
			_g_free0 (_tmp280_);
			_tmp285_ = info;
			_tmp286_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp287_ = _tmp286_;
			_tmp288_ = g_strconcat ("_", _tmp287_, NULL);
			_tmp289_ = _tmp288_;
			_tmp290_ = g_strconcat (_tmp289_, "dbus_arg_info_", NULL);
			_tmp291_ = _tmp290_;
			_tmp292_ = m;
			_tmp293_ = vala_symbol_get_name ((ValaSymbol*) _tmp292_);
			_tmp294_ = _tmp293_;
			_tmp295_ = g_strconcat (_tmp291_, _tmp294_, NULL);
			_tmp296_ = _tmp295_;
			_tmp297_ = g_strconcat (_tmp296_, "_in", NULL);
			_tmp298_ = _tmp297_;
			_tmp299_ = vala_ccode_identifier_new (_tmp298_);
			_tmp300_ = _tmp299_;
			_tmp301_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp300_);
			_tmp302_ = _tmp301_;
			_tmp303_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp302_, "GDBusArgInfo **");
			_tmp304_ = _tmp303_;
			vala_ccode_initializer_list_append (_tmp285_, (ValaCCodeExpression*) _tmp304_);
			_vala_ccode_node_unref0 (_tmp304_);
			_vala_ccode_node_unref0 (_tmp302_);
			_vala_ccode_node_unref0 (_tmp300_);
			_g_free0 (_tmp298_);
			_g_free0 (_tmp296_);
			_g_free0 (_tmp291_);
			_g_free0 (_tmp289_);
			_g_free0 (_tmp287_);
			_tmp305_ = info;
			_tmp306_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp307_ = _tmp306_;
			_tmp308_ = g_strconcat ("_", _tmp307_, NULL);
			_tmp309_ = _tmp308_;
			_tmp310_ = g_strconcat (_tmp309_, "dbus_arg_info_", NULL);
			_tmp311_ = _tmp310_;
			_tmp312_ = m;
			_tmp313_ = vala_symbol_get_name ((ValaSymbol*) _tmp312_);
			_tmp314_ = _tmp313_;
			_tmp315_ = g_strconcat (_tmp311_, _tmp314_, NULL);
			_tmp316_ = _tmp315_;
			_tmp317_ = g_strconcat (_tmp316_, "_out", NULL);
			_tmp318_ = _tmp317_;
			_tmp319_ = vala_ccode_identifier_new (_tmp318_);
			_tmp320_ = _tmp319_;
			_tmp321_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp320_);
			_tmp322_ = _tmp321_;
			_tmp323_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp322_, "GDBusArgInfo **");
			_tmp324_ = _tmp323_;
			vala_ccode_initializer_list_append (_tmp305_, (ValaCCodeExpression*) _tmp324_);
			_vala_ccode_node_unref0 (_tmp324_);
			_vala_ccode_node_unref0 (_tmp322_);
			_vala_ccode_node_unref0 (_tmp320_);
			_g_free0 (_tmp318_);
			_g_free0 (_tmp316_);
			_g_free0 (_tmp311_);
			_g_free0 (_tmp309_);
			_g_free0 (_tmp307_);
			_tmp325_ = info;
			_tmp326_ = vala_ccode_constant_new ("NULL");
			_tmp327_ = _tmp326_;
			vala_ccode_initializer_list_append (_tmp325_, (ValaCCodeExpression*) _tmp327_);
			_vala_ccode_node_unref0 (_tmp327_);
			_tmp328_ = vala_ccode_declaration_new ("const GDBusMethodInfo");
			_vala_ccode_node_unref0 (_cdecl_);
			_cdecl_ = _tmp328_;
			_tmp329_ = _cdecl_;
			_tmp330_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp331_ = _tmp330_;
			_tmp332_ = g_strconcat ("_", _tmp331_, NULL);
			_tmp333_ = _tmp332_;
			_tmp334_ = g_strconcat (_tmp333_, "dbus_method_info_", NULL);
			_tmp335_ = _tmp334_;
			_tmp336_ = m;
			_tmp337_ = vala_symbol_get_name ((ValaSymbol*) _tmp336_);
			_tmp338_ = _tmp337_;
			_tmp339_ = g_strconcat (_tmp335_, _tmp338_, NULL);
			_tmp340_ = _tmp339_;
			_tmp341_ = info;
			_tmp342_ = vala_ccode_variable_declarator_new (_tmp340_, (ValaCCodeExpression*) _tmp341_, NULL);
			_tmp343_ = _tmp342_;
			vala_ccode_declaration_add_declarator (_tmp329_, (ValaCCodeDeclarator*) _tmp343_);
			_vala_ccode_node_unref0 (_tmp343_);
			_g_free0 (_tmp340_);
			_g_free0 (_tmp335_);
			_g_free0 (_tmp333_);
			_g_free0 (_tmp331_);
			_tmp344_ = _cdecl_;
			vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp344_, VALA_CCODE_MODIFIERS_STATIC);
			_tmp345_ = ((ValaCCodeBaseModule*) self)->cfile;
			_tmp346_ = _cdecl_;
			vala_ccode_file_add_constant_declaration (_tmp345_, (ValaCCodeNode*) _tmp346_);
			_tmp347_ = infos;
			_tmp348_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp349_ = _tmp348_;
			_tmp350_ = g_strconcat ("_", _tmp349_, NULL);
			_tmp351_ = _tmp350_;
			_tmp352_ = g_strconcat (_tmp351_, "dbus_method_info_", NULL);
			_tmp353_ = _tmp352_;
			_tmp354_ = m;
			_tmp355_ = vala_symbol_get_name ((ValaSymbol*) _tmp354_);
			_tmp356_ = _tmp355_;
			_tmp357_ = g_strconcat (_tmp353_, _tmp356_, NULL);
			_tmp358_ = _tmp357_;
			_tmp359_ = vala_ccode_identifier_new (_tmp358_);
			_tmp360_ = _tmp359_;
			_tmp361_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp360_);
			_tmp362_ = _tmp361_;
			vala_ccode_initializer_list_append (_tmp347_, (ValaCCodeExpression*) _tmp362_);
			_vala_ccode_node_unref0 (_tmp362_);
			_vala_ccode_node_unref0 (_tmp360_);
			_g_free0 (_tmp358_);
			_g_free0 (_tmp353_);
			_g_free0 (_tmp351_);
			_g_free0 (_tmp349_);
			_vala_ccode_node_unref0 (info);
			_vala_ccode_node_unref0 (_cdecl_);
			_vala_ccode_node_unref0 (out_args_info);
			_vala_ccode_node_unref0 (in_args_info);
			_vala_code_node_unref0 (m);
		}
	}
	_tmp363_ = infos;
	_tmp364_ = vala_ccode_constant_new ("NULL");
	_tmp365_ = _tmp364_;
	vala_ccode_initializer_list_append (_tmp363_, (ValaCCodeExpression*) _tmp365_);
	_vala_ccode_node_unref0 (_tmp365_);
	_tmp366_ = vala_ccode_declaration_new ("const GDBusMethodInfo * const");
	_cdecl_ = _tmp366_;
	_tmp367_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp368_ = _tmp367_;
	_tmp369_ = g_strconcat ("_", _tmp368_, NULL);
	_tmp370_ = _tmp369_;
	_tmp371_ = g_strconcat (_tmp370_, "dbus_method_info[]", NULL);
	_tmp372_ = _tmp371_;
	_tmp373_ = infos;
	_tmp374_ = vala_ccode_variable_declarator_new (_tmp372_, (ValaCCodeExpression*) _tmp373_, NULL);
	_tmp375_ = _tmp374_;
	vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp375_);
	_vala_ccode_node_unref0 (_tmp375_);
	_g_free0 (_tmp372_);
	_g_free0 (_tmp370_);
	_g_free0 (_tmp368_);
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _cdecl_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp376_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_constant_declaration (_tmp376_, (ValaCCodeNode*) _cdecl_);
	_tmp377_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp378_ = _tmp377_;
	_tmp379_ = g_strconcat ("_", _tmp378_, NULL);
	_tmp380_ = _tmp379_;
	_tmp381_ = g_strconcat (_tmp380_, "dbus_method_info", NULL);
	_tmp382_ = _tmp381_;
	_tmp383_ = vala_ccode_identifier_new (_tmp382_);
	_tmp384_ = (ValaCCodeExpression*) _tmp383_;
	_g_free0 (_tmp382_);
	_g_free0 (_tmp380_);
	_g_free0 (_tmp378_);
	result = _tmp384_;
	_vala_ccode_node_unref0 (_cdecl_);
	_vala_ccode_node_unref0 (infos);
	return result;
}

static ValaCCodeExpression*
vala_gd_bus_module_get_signal_info (ValaGDBusModule* self,
                                    ValaObjectTypeSymbol* sym)
{
	ValaCCodeInitializerList* infos = NULL;
	ValaCCodeInitializerList* _tmp0_;
	ValaCCodeInitializerList* _tmp190_;
	ValaCCodeConstant* _tmp191_;
	ValaCCodeConstant* _tmp192_;
	ValaCCodeDeclaration* _cdecl_ = NULL;
	ValaCCodeDeclaration* _tmp193_;
	gchar* _tmp194_;
	gchar* _tmp195_;
	gchar* _tmp196_;
	gchar* _tmp197_;
	gchar* _tmp198_;
	gchar* _tmp199_;
	ValaCCodeInitializerList* _tmp200_;
	ValaCCodeVariableDeclarator* _tmp201_;
	ValaCCodeVariableDeclarator* _tmp202_;
	ValaCCodeFile* _tmp203_;
	gchar* _tmp204_;
	gchar* _tmp205_;
	gchar* _tmp206_;
	gchar* _tmp207_;
	gchar* _tmp208_;
	gchar* _tmp209_;
	ValaCCodeIdentifier* _tmp210_;
	ValaCCodeExpression* _tmp211_;
	ValaCCodeExpression* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = vala_ccode_initializer_list_new ();
	infos = _tmp0_;
	{
		ValaList* _sig_list = NULL;
		ValaList* _tmp1_;
		gint _sig_size = 0;
		ValaList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _sig_index = 0;
		_tmp1_ = vala_object_type_symbol_get_signals (sym);
		_sig_list = _tmp1_;
		_tmp2_ = _sig_list;
		_tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
		_tmp4_ = _tmp3_;
		_sig_size = _tmp4_;
		_sig_index = -1;
		while (TRUE) {
			gint _tmp5_;
			gint _tmp6_;
			ValaSignal* sig = NULL;
			ValaList* _tmp7_;
			gpointer _tmp8_;
			ValaSignal* _tmp9_;
			ValaSymbolAccessibility _tmp10_;
			ValaSymbolAccessibility _tmp11_;
			ValaSignal* _tmp12_;
			ValaCCodeInitializerList* args_info = NULL;
			ValaCCodeInitializerList* _tmp13_;
			ValaCCodeInitializerList* _tmp98_;
			ValaCCodeConstant* _tmp99_;
			ValaCCodeConstant* _tmp100_;
			ValaCCodeDeclaration* _cdecl_ = NULL;
			ValaCCodeDeclaration* _tmp101_;
			ValaCCodeDeclaration* _tmp102_;
			gchar* _tmp103_;
			gchar* _tmp104_;
			gchar* _tmp105_;
			gchar* _tmp106_;
			gchar* _tmp107_;
			gchar* _tmp108_;
			ValaSignal* _tmp109_;
			gchar* _tmp110_;
			gchar* _tmp111_;
			gchar* _tmp112_;
			gchar* _tmp113_;
			gchar* _tmp114_;
			gchar* _tmp115_;
			ValaCCodeInitializerList* _tmp116_;
			ValaCCodeVariableDeclarator* _tmp117_;
			ValaCCodeVariableDeclarator* _tmp118_;
			ValaCCodeDeclaration* _tmp119_;
			ValaCCodeFile* _tmp120_;
			ValaCCodeDeclaration* _tmp121_;
			ValaCCodeInitializerList* info = NULL;
			ValaCCodeInitializerList* _tmp122_;
			ValaCCodeInitializerList* _tmp123_;
			ValaCCodeConstant* _tmp124_;
			ValaCCodeConstant* _tmp125_;
			ValaCCodeInitializerList* _tmp126_;
			ValaSignal* _tmp127_;
			gchar* _tmp128_;
			gchar* _tmp129_;
			gchar* _tmp130_;
			gchar* _tmp131_;
			ValaCCodeConstant* _tmp132_;
			ValaCCodeConstant* _tmp133_;
			ValaCCodeInitializerList* _tmp134_;
			gchar* _tmp135_;
			gchar* _tmp136_;
			gchar* _tmp137_;
			gchar* _tmp138_;
			gchar* _tmp139_;
			gchar* _tmp140_;
			ValaSignal* _tmp141_;
			gchar* _tmp142_;
			gchar* _tmp143_;
			gchar* _tmp144_;
			gchar* _tmp145_;
			ValaCCodeIdentifier* _tmp146_;
			ValaCCodeIdentifier* _tmp147_;
			ValaCCodeUnaryExpression* _tmp148_;
			ValaCCodeUnaryExpression* _tmp149_;
			ValaCCodeCastExpression* _tmp150_;
			ValaCCodeCastExpression* _tmp151_;
			ValaCCodeInitializerList* _tmp152_;
			ValaCCodeConstant* _tmp153_;
			ValaCCodeConstant* _tmp154_;
			ValaCCodeDeclaration* _tmp155_;
			ValaCCodeDeclaration* _tmp156_;
			gchar* _tmp157_;
			gchar* _tmp158_;
			gchar* _tmp159_;
			gchar* _tmp160_;
			gchar* _tmp161_;
			gchar* _tmp162_;
			ValaSignal* _tmp163_;
			gchar* _tmp164_;
			gchar* _tmp165_;
			gchar* _tmp166_;
			gchar* _tmp167_;
			ValaCCodeInitializerList* _tmp168_;
			ValaCCodeVariableDeclarator* _tmp169_;
			ValaCCodeVariableDeclarator* _tmp170_;
			ValaCCodeDeclaration* _tmp171_;
			ValaCCodeFile* _tmp172_;
			ValaCCodeDeclaration* _tmp173_;
			ValaCCodeInitializerList* _tmp174_;
			gchar* _tmp175_;
			gchar* _tmp176_;
			gchar* _tmp177_;
			gchar* _tmp178_;
			gchar* _tmp179_;
			gchar* _tmp180_;
			ValaSignal* _tmp181_;
			gchar* _tmp182_;
			gchar* _tmp183_;
			gchar* _tmp184_;
			gchar* _tmp185_;
			ValaCCodeIdentifier* _tmp186_;
			ValaCCodeIdentifier* _tmp187_;
			ValaCCodeUnaryExpression* _tmp188_;
			ValaCCodeUnaryExpression* _tmp189_;
			_sig_index = _sig_index + 1;
			_tmp5_ = _sig_index;
			_tmp6_ = _sig_size;
			if (!(_tmp5_ < _tmp6_)) {
				break;
			}
			_tmp7_ = _sig_list;
			_tmp8_ = vala_list_get (_tmp7_, _sig_index);
			sig = (ValaSignal*) _tmp8_;
			_tmp9_ = sig;
			_tmp10_ = vala_symbol_get_access ((ValaSymbol*) _tmp9_);
			_tmp11_ = _tmp10_;
			if (_tmp11_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
				_vala_code_node_unref0 (sig);
				continue;
			}
			_tmp12_ = sig;
			if (!vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp12_)) {
				_vala_code_node_unref0 (sig);
				continue;
			}
			_tmp13_ = vala_ccode_initializer_list_new ();
			args_info = _tmp13_;
			{
				ValaList* _param_list = NULL;
				ValaSignal* _tmp14_;
				ValaList* _tmp15_;
				gint _param_size = 0;
				ValaList* _tmp16_;
				gint _tmp17_;
				gint _tmp18_;
				gint _param_index = 0;
				_tmp14_ = sig;
				_tmp15_ = vala_callable_get_parameters ((ValaCallable*) _tmp14_);
				_param_list = _tmp15_;
				_tmp16_ = _param_list;
				_tmp17_ = vala_collection_get_size ((ValaCollection*) _tmp16_);
				_tmp18_ = _tmp17_;
				_param_size = _tmp18_;
				_param_index = -1;
				while (TRUE) {
					gint _tmp19_;
					gint _tmp20_;
					ValaParameter* param = NULL;
					ValaList* _tmp21_;
					gpointer _tmp22_;
					ValaCCodeInitializerList* info = NULL;
					ValaCCodeInitializerList* _tmp23_;
					ValaCCodeInitializerList* _tmp24_;
					ValaCCodeConstant* _tmp25_;
					ValaCCodeConstant* _tmp26_;
					ValaCCodeInitializerList* _tmp27_;
					ValaParameter* _tmp28_;
					const gchar* _tmp29_;
					const gchar* _tmp30_;
					gchar* _tmp31_;
					gchar* _tmp32_;
					ValaCCodeConstant* _tmp33_;
					ValaCCodeConstant* _tmp34_;
					ValaCCodeInitializerList* _tmp35_;
					ValaParameter* _tmp36_;
					ValaDataType* _tmp37_;
					ValaDataType* _tmp38_;
					ValaParameter* _tmp39_;
					gchar* _tmp40_;
					gchar* _tmp41_;
					gchar* _tmp42_;
					gchar* _tmp43_;
					ValaCCodeConstant* _tmp44_;
					ValaCCodeConstant* _tmp45_;
					ValaCCodeInitializerList* _tmp46_;
					ValaCCodeConstant* _tmp47_;
					ValaCCodeConstant* _tmp48_;
					ValaCCodeDeclaration* _cdecl_ = NULL;
					ValaCCodeDeclaration* _tmp49_;
					ValaCCodeDeclaration* _tmp50_;
					gchar* _tmp51_;
					gchar* _tmp52_;
					gchar* _tmp53_;
					gchar* _tmp54_;
					gchar* _tmp55_;
					gchar* _tmp56_;
					ValaSignal* _tmp57_;
					gchar* _tmp58_;
					gchar* _tmp59_;
					gchar* _tmp60_;
					gchar* _tmp61_;
					gchar* _tmp62_;
					gchar* _tmp63_;
					ValaParameter* _tmp64_;
					const gchar* _tmp65_;
					const gchar* _tmp66_;
					gchar* _tmp67_;
					gchar* _tmp68_;
					ValaCCodeInitializerList* _tmp69_;
					ValaCCodeVariableDeclarator* _tmp70_;
					ValaCCodeVariableDeclarator* _tmp71_;
					ValaCCodeDeclaration* _tmp72_;
					ValaCCodeFile* _tmp73_;
					ValaCCodeDeclaration* _tmp74_;
					ValaCCodeInitializerList* _tmp75_;
					gchar* _tmp76_;
					gchar* _tmp77_;
					gchar* _tmp78_;
					gchar* _tmp79_;
					gchar* _tmp80_;
					gchar* _tmp81_;
					ValaSignal* _tmp82_;
					gchar* _tmp83_;
					gchar* _tmp84_;
					gchar* _tmp85_;
					gchar* _tmp86_;
					gchar* _tmp87_;
					gchar* _tmp88_;
					ValaParameter* _tmp89_;
					const gchar* _tmp90_;
					const gchar* _tmp91_;
					gchar* _tmp92_;
					gchar* _tmp93_;
					ValaCCodeIdentifier* _tmp94_;
					ValaCCodeIdentifier* _tmp95_;
					ValaCCodeUnaryExpression* _tmp96_;
					ValaCCodeUnaryExpression* _tmp97_;
					_param_index = _param_index + 1;
					_tmp19_ = _param_index;
					_tmp20_ = _param_size;
					if (!(_tmp19_ < _tmp20_)) {
						break;
					}
					_tmp21_ = _param_list;
					_tmp22_ = vala_list_get (_tmp21_, _param_index);
					param = (ValaParameter*) _tmp22_;
					_tmp23_ = vala_ccode_initializer_list_new ();
					info = _tmp23_;
					_tmp24_ = info;
					_tmp25_ = vala_ccode_constant_new ("-1");
					_tmp26_ = _tmp25_;
					vala_ccode_initializer_list_append (_tmp24_, (ValaCCodeExpression*) _tmp26_);
					_vala_ccode_node_unref0 (_tmp26_);
					_tmp27_ = info;
					_tmp28_ = param;
					_tmp29_ = vala_symbol_get_name ((ValaSymbol*) _tmp28_);
					_tmp30_ = _tmp29_;
					_tmp31_ = g_strdup_printf ("\"%s\"", _tmp30_);
					_tmp32_ = _tmp31_;
					_tmp33_ = vala_ccode_constant_new (_tmp32_);
					_tmp34_ = _tmp33_;
					vala_ccode_initializer_list_append (_tmp27_, (ValaCCodeExpression*) _tmp34_);
					_vala_ccode_node_unref0 (_tmp34_);
					_g_free0 (_tmp32_);
					_tmp35_ = info;
					_tmp36_ = param;
					_tmp37_ = vala_variable_get_variable_type ((ValaVariable*) _tmp36_);
					_tmp38_ = _tmp37_;
					_tmp39_ = param;
					_tmp40_ = vala_data_type_get_type_signature (_tmp38_, (ValaSymbol*) _tmp39_);
					_tmp41_ = _tmp40_;
					_tmp42_ = g_strdup_printf ("\"%s\"", _tmp41_);
					_tmp43_ = _tmp42_;
					_tmp44_ = vala_ccode_constant_new (_tmp43_);
					_tmp45_ = _tmp44_;
					vala_ccode_initializer_list_append (_tmp35_, (ValaCCodeExpression*) _tmp45_);
					_vala_ccode_node_unref0 (_tmp45_);
					_g_free0 (_tmp43_);
					_g_free0 (_tmp41_);
					_tmp46_ = info;
					_tmp47_ = vala_ccode_constant_new ("NULL");
					_tmp48_ = _tmp47_;
					vala_ccode_initializer_list_append (_tmp46_, (ValaCCodeExpression*) _tmp48_);
					_vala_ccode_node_unref0 (_tmp48_);
					_tmp49_ = vala_ccode_declaration_new ("const GDBusArgInfo");
					_cdecl_ = _tmp49_;
					_tmp50_ = _cdecl_;
					_tmp51_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
					_tmp52_ = _tmp51_;
					_tmp53_ = g_strconcat ("_", _tmp52_, NULL);
					_tmp54_ = _tmp53_;
					_tmp55_ = g_strconcat (_tmp54_, "dbus_arg_info_", NULL);
					_tmp56_ = _tmp55_;
					_tmp57_ = sig;
					_tmp58_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp57_, NULL);
					_tmp59_ = _tmp58_;
					_tmp60_ = g_strconcat (_tmp56_, _tmp59_, NULL);
					_tmp61_ = _tmp60_;
					_tmp62_ = g_strconcat (_tmp61_, "_", NULL);
					_tmp63_ = _tmp62_;
					_tmp64_ = param;
					_tmp65_ = vala_symbol_get_name ((ValaSymbol*) _tmp64_);
					_tmp66_ = _tmp65_;
					_tmp67_ = g_strconcat (_tmp63_, _tmp66_, NULL);
					_tmp68_ = _tmp67_;
					_tmp69_ = info;
					_tmp70_ = vala_ccode_variable_declarator_new (_tmp68_, (ValaCCodeExpression*) _tmp69_, NULL);
					_tmp71_ = _tmp70_;
					vala_ccode_declaration_add_declarator (_tmp50_, (ValaCCodeDeclarator*) _tmp71_);
					_vala_ccode_node_unref0 (_tmp71_);
					_g_free0 (_tmp68_);
					_g_free0 (_tmp63_);
					_g_free0 (_tmp61_);
					_g_free0 (_tmp59_);
					_g_free0 (_tmp56_);
					_g_free0 (_tmp54_);
					_g_free0 (_tmp52_);
					_tmp72_ = _cdecl_;
					vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp72_, VALA_CCODE_MODIFIERS_STATIC);
					_tmp73_ = ((ValaCCodeBaseModule*) self)->cfile;
					_tmp74_ = _cdecl_;
					vala_ccode_file_add_constant_declaration (_tmp73_, (ValaCCodeNode*) _tmp74_);
					_tmp75_ = args_info;
					_tmp76_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
					_tmp77_ = _tmp76_;
					_tmp78_ = g_strconcat ("_", _tmp77_, NULL);
					_tmp79_ = _tmp78_;
					_tmp80_ = g_strconcat (_tmp79_, "dbus_arg_info_", NULL);
					_tmp81_ = _tmp80_;
					_tmp82_ = sig;
					_tmp83_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp82_, NULL);
					_tmp84_ = _tmp83_;
					_tmp85_ = g_strconcat (_tmp81_, _tmp84_, NULL);
					_tmp86_ = _tmp85_;
					_tmp87_ = g_strconcat (_tmp86_, "_", NULL);
					_tmp88_ = _tmp87_;
					_tmp89_ = param;
					_tmp90_ = vala_symbol_get_name ((ValaSymbol*) _tmp89_);
					_tmp91_ = _tmp90_;
					_tmp92_ = g_strconcat (_tmp88_, _tmp91_, NULL);
					_tmp93_ = _tmp92_;
					_tmp94_ = vala_ccode_identifier_new (_tmp93_);
					_tmp95_ = _tmp94_;
					_tmp96_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp95_);
					_tmp97_ = _tmp96_;
					vala_ccode_initializer_list_append (_tmp75_, (ValaCCodeExpression*) _tmp97_);
					_vala_ccode_node_unref0 (_tmp97_);
					_vala_ccode_node_unref0 (_tmp95_);
					_g_free0 (_tmp93_);
					_g_free0 (_tmp88_);
					_g_free0 (_tmp86_);
					_g_free0 (_tmp84_);
					_g_free0 (_tmp81_);
					_g_free0 (_tmp79_);
					_g_free0 (_tmp77_);
					_vala_ccode_node_unref0 (_cdecl_);
					_vala_ccode_node_unref0 (info);
					_vala_code_node_unref0 (param);
				}
			}
			_tmp98_ = args_info;
			_tmp99_ = vala_ccode_constant_new ("NULL");
			_tmp100_ = _tmp99_;
			vala_ccode_initializer_list_append (_tmp98_, (ValaCCodeExpression*) _tmp100_);
			_vala_ccode_node_unref0 (_tmp100_);
			_tmp101_ = vala_ccode_declaration_new ("const GDBusArgInfo * const");
			_cdecl_ = _tmp101_;
			_tmp102_ = _cdecl_;
			_tmp103_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp104_ = _tmp103_;
			_tmp105_ = g_strconcat ("_", _tmp104_, NULL);
			_tmp106_ = _tmp105_;
			_tmp107_ = g_strconcat (_tmp106_, "dbus_arg_info_", NULL);
			_tmp108_ = _tmp107_;
			_tmp109_ = sig;
			_tmp110_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp109_, NULL);
			_tmp111_ = _tmp110_;
			_tmp112_ = g_strconcat (_tmp108_, _tmp111_, NULL);
			_tmp113_ = _tmp112_;
			_tmp114_ = g_strconcat (_tmp113_, "[]", NULL);
			_tmp115_ = _tmp114_;
			_tmp116_ = args_info;
			_tmp117_ = vala_ccode_variable_declarator_new (_tmp115_, (ValaCCodeExpression*) _tmp116_, NULL);
			_tmp118_ = _tmp117_;
			vala_ccode_declaration_add_declarator (_tmp102_, (ValaCCodeDeclarator*) _tmp118_);
			_vala_ccode_node_unref0 (_tmp118_);
			_g_free0 (_tmp115_);
			_g_free0 (_tmp113_);
			_g_free0 (_tmp111_);
			_g_free0 (_tmp108_);
			_g_free0 (_tmp106_);
			_g_free0 (_tmp104_);
			_tmp119_ = _cdecl_;
			vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp119_, VALA_CCODE_MODIFIERS_STATIC);
			_tmp120_ = ((ValaCCodeBaseModule*) self)->cfile;
			_tmp121_ = _cdecl_;
			vala_ccode_file_add_constant_declaration (_tmp120_, (ValaCCodeNode*) _tmp121_);
			_tmp122_ = vala_ccode_initializer_list_new ();
			info = _tmp122_;
			_tmp123_ = info;
			_tmp124_ = vala_ccode_constant_new ("-1");
			_tmp125_ = _tmp124_;
			vala_ccode_initializer_list_append (_tmp123_, (ValaCCodeExpression*) _tmp125_);
			_vala_ccode_node_unref0 (_tmp125_);
			_tmp126_ = info;
			_tmp127_ = sig;
			_tmp128_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp127_);
			_tmp129_ = _tmp128_;
			_tmp130_ = g_strdup_printf ("\"%s\"", _tmp129_);
			_tmp131_ = _tmp130_;
			_tmp132_ = vala_ccode_constant_new (_tmp131_);
			_tmp133_ = _tmp132_;
			vala_ccode_initializer_list_append (_tmp126_, (ValaCCodeExpression*) _tmp133_);
			_vala_ccode_node_unref0 (_tmp133_);
			_g_free0 (_tmp131_);
			_g_free0 (_tmp129_);
			_tmp134_ = info;
			_tmp135_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp136_ = _tmp135_;
			_tmp137_ = g_strconcat ("_", _tmp136_, NULL);
			_tmp138_ = _tmp137_;
			_tmp139_ = g_strconcat (_tmp138_, "dbus_arg_info_", NULL);
			_tmp140_ = _tmp139_;
			_tmp141_ = sig;
			_tmp142_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp141_, NULL);
			_tmp143_ = _tmp142_;
			_tmp144_ = g_strconcat (_tmp140_, _tmp143_, NULL);
			_tmp145_ = _tmp144_;
			_tmp146_ = vala_ccode_identifier_new (_tmp145_);
			_tmp147_ = _tmp146_;
			_tmp148_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp147_);
			_tmp149_ = _tmp148_;
			_tmp150_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp149_, "GDBusArgInfo **");
			_tmp151_ = _tmp150_;
			vala_ccode_initializer_list_append (_tmp134_, (ValaCCodeExpression*) _tmp151_);
			_vala_ccode_node_unref0 (_tmp151_);
			_vala_ccode_node_unref0 (_tmp149_);
			_vala_ccode_node_unref0 (_tmp147_);
			_g_free0 (_tmp145_);
			_g_free0 (_tmp143_);
			_g_free0 (_tmp140_);
			_g_free0 (_tmp138_);
			_g_free0 (_tmp136_);
			_tmp152_ = info;
			_tmp153_ = vala_ccode_constant_new ("NULL");
			_tmp154_ = _tmp153_;
			vala_ccode_initializer_list_append (_tmp152_, (ValaCCodeExpression*) _tmp154_);
			_vala_ccode_node_unref0 (_tmp154_);
			_tmp155_ = vala_ccode_declaration_new ("const GDBusSignalInfo");
			_vala_ccode_node_unref0 (_cdecl_);
			_cdecl_ = _tmp155_;
			_tmp156_ = _cdecl_;
			_tmp157_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp158_ = _tmp157_;
			_tmp159_ = g_strconcat ("_", _tmp158_, NULL);
			_tmp160_ = _tmp159_;
			_tmp161_ = g_strconcat (_tmp160_, "dbus_signal_info_", NULL);
			_tmp162_ = _tmp161_;
			_tmp163_ = sig;
			_tmp164_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp163_, NULL);
			_tmp165_ = _tmp164_;
			_tmp166_ = g_strconcat (_tmp162_, _tmp165_, NULL);
			_tmp167_ = _tmp166_;
			_tmp168_ = info;
			_tmp169_ = vala_ccode_variable_declarator_new (_tmp167_, (ValaCCodeExpression*) _tmp168_, NULL);
			_tmp170_ = _tmp169_;
			vala_ccode_declaration_add_declarator (_tmp156_, (ValaCCodeDeclarator*) _tmp170_);
			_vala_ccode_node_unref0 (_tmp170_);
			_g_free0 (_tmp167_);
			_g_free0 (_tmp165_);
			_g_free0 (_tmp162_);
			_g_free0 (_tmp160_);
			_g_free0 (_tmp158_);
			_tmp171_ = _cdecl_;
			vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp171_, VALA_CCODE_MODIFIERS_STATIC);
			_tmp172_ = ((ValaCCodeBaseModule*) self)->cfile;
			_tmp173_ = _cdecl_;
			vala_ccode_file_add_constant_declaration (_tmp172_, (ValaCCodeNode*) _tmp173_);
			_tmp174_ = infos;
			_tmp175_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp176_ = _tmp175_;
			_tmp177_ = g_strconcat ("_", _tmp176_, NULL);
			_tmp178_ = _tmp177_;
			_tmp179_ = g_strconcat (_tmp178_, "dbus_signal_info_", NULL);
			_tmp180_ = _tmp179_;
			_tmp181_ = sig;
			_tmp182_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp181_, NULL);
			_tmp183_ = _tmp182_;
			_tmp184_ = g_strconcat (_tmp180_, _tmp183_, NULL);
			_tmp185_ = _tmp184_;
			_tmp186_ = vala_ccode_identifier_new (_tmp185_);
			_tmp187_ = _tmp186_;
			_tmp188_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp187_);
			_tmp189_ = _tmp188_;
			vala_ccode_initializer_list_append (_tmp174_, (ValaCCodeExpression*) _tmp189_);
			_vala_ccode_node_unref0 (_tmp189_);
			_vala_ccode_node_unref0 (_tmp187_);
			_g_free0 (_tmp185_);
			_g_free0 (_tmp183_);
			_g_free0 (_tmp180_);
			_g_free0 (_tmp178_);
			_g_free0 (_tmp176_);
			_vala_ccode_node_unref0 (info);
			_vala_ccode_node_unref0 (_cdecl_);
			_vala_ccode_node_unref0 (args_info);
			_vala_code_node_unref0 (sig);
		}
	}
	_tmp190_ = infos;
	_tmp191_ = vala_ccode_constant_new ("NULL");
	_tmp192_ = _tmp191_;
	vala_ccode_initializer_list_append (_tmp190_, (ValaCCodeExpression*) _tmp192_);
	_vala_ccode_node_unref0 (_tmp192_);
	_tmp193_ = vala_ccode_declaration_new ("const GDBusSignalInfo * const");
	_cdecl_ = _tmp193_;
	_tmp194_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp195_ = _tmp194_;
	_tmp196_ = g_strconcat ("_", _tmp195_, NULL);
	_tmp197_ = _tmp196_;
	_tmp198_ = g_strconcat (_tmp197_, "dbus_signal_info[]", NULL);
	_tmp199_ = _tmp198_;
	_tmp200_ = infos;
	_tmp201_ = vala_ccode_variable_declarator_new (_tmp199_, (ValaCCodeExpression*) _tmp200_, NULL);
	_tmp202_ = _tmp201_;
	vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp202_);
	_vala_ccode_node_unref0 (_tmp202_);
	_g_free0 (_tmp199_);
	_g_free0 (_tmp197_);
	_g_free0 (_tmp195_);
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _cdecl_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp203_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_constant_declaration (_tmp203_, (ValaCCodeNode*) _cdecl_);
	_tmp204_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp205_ = _tmp204_;
	_tmp206_ = g_strconcat ("_", _tmp205_, NULL);
	_tmp207_ = _tmp206_;
	_tmp208_ = g_strconcat (_tmp207_, "dbus_signal_info", NULL);
	_tmp209_ = _tmp208_;
	_tmp210_ = vala_ccode_identifier_new (_tmp209_);
	_tmp211_ = (ValaCCodeExpression*) _tmp210_;
	_g_free0 (_tmp209_);
	_g_free0 (_tmp207_);
	_g_free0 (_tmp205_);
	result = _tmp211_;
	_vala_ccode_node_unref0 (_cdecl_);
	_vala_ccode_node_unref0 (infos);
	return result;
}

static ValaCCodeExpression*
vala_gd_bus_module_get_property_info (ValaGDBusModule* self,
                                      ValaObjectTypeSymbol* sym)
{
	ValaCCodeInitializerList* infos = NULL;
	ValaCCodeInitializerList* _tmp0_;
	ValaCCodeInitializerList* _tmp107_;
	ValaCCodeConstant* _tmp108_;
	ValaCCodeConstant* _tmp109_;
	ValaCCodeDeclaration* _cdecl_ = NULL;
	ValaCCodeDeclaration* _tmp110_;
	gchar* _tmp111_;
	gchar* _tmp112_;
	gchar* _tmp113_;
	gchar* _tmp114_;
	gchar* _tmp115_;
	gchar* _tmp116_;
	ValaCCodeInitializerList* _tmp117_;
	ValaCCodeVariableDeclarator* _tmp118_;
	ValaCCodeVariableDeclarator* _tmp119_;
	ValaCCodeFile* _tmp120_;
	gchar* _tmp121_;
	gchar* _tmp122_;
	gchar* _tmp123_;
	gchar* _tmp124_;
	gchar* _tmp125_;
	gchar* _tmp126_;
	ValaCCodeIdentifier* _tmp127_;
	ValaCCodeExpression* _tmp128_;
	ValaCCodeExpression* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = vala_ccode_initializer_list_new ();
	infos = _tmp0_;
	{
		ValaList* _prop_list = NULL;
		ValaList* _tmp1_;
		gint _prop_size = 0;
		ValaList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _prop_index = 0;
		_tmp1_ = vala_object_type_symbol_get_properties (sym);
		_prop_list = _tmp1_;
		_tmp2_ = _prop_list;
		_tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
		_tmp4_ = _tmp3_;
		_prop_size = _tmp4_;
		_prop_index = -1;
		while (TRUE) {
			gint _tmp5_;
			gint _tmp6_;
			ValaProperty* prop = NULL;
			ValaList* _tmp7_;
			gpointer _tmp8_;
			gboolean _tmp9_ = FALSE;
			gboolean _tmp10_ = FALSE;
			ValaProperty* _tmp11_;
			ValaMemberBinding _tmp12_;
			ValaMemberBinding _tmp13_;
			ValaProperty* _tmp20_;
			ValaCCodeInitializerList* info = NULL;
			ValaCCodeInitializerList* _tmp21_;
			ValaCCodeInitializerList* _tmp22_;
			ValaCCodeConstant* _tmp23_;
			ValaCCodeConstant* _tmp24_;
			ValaCCodeInitializerList* _tmp25_;
			ValaProperty* _tmp26_;
			gchar* _tmp27_;
			gchar* _tmp28_;
			gchar* _tmp29_;
			gchar* _tmp30_;
			ValaCCodeConstant* _tmp31_;
			ValaCCodeConstant* _tmp32_;
			ValaCCodeInitializerList* _tmp33_;
			ValaProperty* _tmp34_;
			ValaDataType* _tmp35_;
			ValaDataType* _tmp36_;
			ValaProperty* _tmp37_;
			gchar* _tmp38_;
			gchar* _tmp39_;
			gchar* _tmp40_;
			gchar* _tmp41_;
			ValaCCodeConstant* _tmp42_;
			ValaCCodeConstant* _tmp43_;
			gboolean _tmp44_ = FALSE;
			ValaProperty* _tmp45_;
			ValaPropertyAccessor* _tmp46_;
			ValaPropertyAccessor* _tmp47_;
			ValaCCodeInitializerList* _tmp69_;
			ValaCCodeConstant* _tmp70_;
			ValaCCodeConstant* _tmp71_;
			ValaCCodeDeclaration* _cdecl_ = NULL;
			ValaCCodeDeclaration* _tmp72_;
			ValaCCodeDeclaration* _tmp73_;
			gchar* _tmp74_;
			gchar* _tmp75_;
			gchar* _tmp76_;
			gchar* _tmp77_;
			gchar* _tmp78_;
			gchar* _tmp79_;
			ValaProperty* _tmp80_;
			const gchar* _tmp81_;
			const gchar* _tmp82_;
			gchar* _tmp83_;
			gchar* _tmp84_;
			ValaCCodeInitializerList* _tmp85_;
			ValaCCodeVariableDeclarator* _tmp86_;
			ValaCCodeVariableDeclarator* _tmp87_;
			ValaCCodeDeclaration* _tmp88_;
			ValaCCodeFile* _tmp89_;
			ValaCCodeDeclaration* _tmp90_;
			ValaCCodeInitializerList* _tmp91_;
			gchar* _tmp92_;
			gchar* _tmp93_;
			gchar* _tmp94_;
			gchar* _tmp95_;
			gchar* _tmp96_;
			gchar* _tmp97_;
			ValaProperty* _tmp98_;
			const gchar* _tmp99_;
			const gchar* _tmp100_;
			gchar* _tmp101_;
			gchar* _tmp102_;
			ValaCCodeIdentifier* _tmp103_;
			ValaCCodeIdentifier* _tmp104_;
			ValaCCodeUnaryExpression* _tmp105_;
			ValaCCodeUnaryExpression* _tmp106_;
			_prop_index = _prop_index + 1;
			_tmp5_ = _prop_index;
			_tmp6_ = _prop_size;
			if (!(_tmp5_ < _tmp6_)) {
				break;
			}
			_tmp7_ = _prop_list;
			_tmp8_ = vala_list_get (_tmp7_, _prop_index);
			prop = (ValaProperty*) _tmp8_;
			_tmp11_ = prop;
			_tmp12_ = vala_property_get_binding (_tmp11_);
			_tmp13_ = _tmp12_;
			if (_tmp13_ != VALA_MEMBER_BINDING_INSTANCE) {
				_tmp10_ = TRUE;
			} else {
				ValaProperty* _tmp14_;
				gboolean _tmp15_;
				gboolean _tmp16_;
				_tmp14_ = prop;
				_tmp15_ = vala_property_get_overrides (_tmp14_);
				_tmp16_ = _tmp15_;
				_tmp10_ = _tmp16_;
			}
			if (_tmp10_) {
				_tmp9_ = TRUE;
			} else {
				ValaProperty* _tmp17_;
				ValaSymbolAccessibility _tmp18_;
				ValaSymbolAccessibility _tmp19_;
				_tmp17_ = prop;
				_tmp18_ = vala_symbol_get_access ((ValaSymbol*) _tmp17_);
				_tmp19_ = _tmp18_;
				_tmp9_ = _tmp19_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
			}
			if (_tmp9_) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp20_ = prop;
			if (!vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp20_)) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp21_ = vala_ccode_initializer_list_new ();
			info = _tmp21_;
			_tmp22_ = info;
			_tmp23_ = vala_ccode_constant_new ("-1");
			_tmp24_ = _tmp23_;
			vala_ccode_initializer_list_append (_tmp22_, (ValaCCodeExpression*) _tmp24_);
			_vala_ccode_node_unref0 (_tmp24_);
			_tmp25_ = info;
			_tmp26_ = prop;
			_tmp27_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp26_);
			_tmp28_ = _tmp27_;
			_tmp29_ = g_strdup_printf ("\"%s\"", _tmp28_);
			_tmp30_ = _tmp29_;
			_tmp31_ = vala_ccode_constant_new (_tmp30_);
			_tmp32_ = _tmp31_;
			vala_ccode_initializer_list_append (_tmp25_, (ValaCCodeExpression*) _tmp32_);
			_vala_ccode_node_unref0 (_tmp32_);
			_g_free0 (_tmp30_);
			_g_free0 (_tmp28_);
			_tmp33_ = info;
			_tmp34_ = prop;
			_tmp35_ = vala_property_get_property_type (_tmp34_);
			_tmp36_ = _tmp35_;
			_tmp37_ = prop;
			_tmp38_ = vala_data_type_get_type_signature (_tmp36_, (ValaSymbol*) _tmp37_);
			_tmp39_ = _tmp38_;
			_tmp40_ = g_strdup_printf ("\"%s\"", _tmp39_);
			_tmp41_ = _tmp40_;
			_tmp42_ = vala_ccode_constant_new (_tmp41_);
			_tmp43_ = _tmp42_;
			vala_ccode_initializer_list_append (_tmp33_, (ValaCCodeExpression*) _tmp43_);
			_vala_ccode_node_unref0 (_tmp43_);
			_g_free0 (_tmp41_);
			_g_free0 (_tmp39_);
			_tmp45_ = prop;
			_tmp46_ = vala_property_get_get_accessor (_tmp45_);
			_tmp47_ = _tmp46_;
			if (_tmp47_ != NULL) {
				ValaProperty* _tmp48_;
				ValaPropertyAccessor* _tmp49_;
				ValaPropertyAccessor* _tmp50_;
				_tmp48_ = prop;
				_tmp49_ = vala_property_get_set_accessor (_tmp48_);
				_tmp50_ = _tmp49_;
				_tmp44_ = _tmp50_ != NULL;
			} else {
				_tmp44_ = FALSE;
			}
			if (_tmp44_) {
				ValaCCodeInitializerList* _tmp51_;
				ValaCCodeConstant* _tmp52_;
				ValaCCodeConstant* _tmp53_;
				_tmp51_ = info;
				_tmp52_ = vala_ccode_constant_new ("G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITA" \
"BLE");
				_tmp53_ = _tmp52_;
				vala_ccode_initializer_list_append (_tmp51_, (ValaCCodeExpression*) _tmp53_);
				_vala_ccode_node_unref0 (_tmp53_);
			} else {
				ValaProperty* _tmp54_;
				ValaPropertyAccessor* _tmp55_;
				ValaPropertyAccessor* _tmp56_;
				_tmp54_ = prop;
				_tmp55_ = vala_property_get_get_accessor (_tmp54_);
				_tmp56_ = _tmp55_;
				if (_tmp56_ != NULL) {
					ValaCCodeInitializerList* _tmp57_;
					ValaCCodeConstant* _tmp58_;
					ValaCCodeConstant* _tmp59_;
					_tmp57_ = info;
					_tmp58_ = vala_ccode_constant_new ("G_DBUS_PROPERTY_INFO_FLAGS_READABLE");
					_tmp59_ = _tmp58_;
					vala_ccode_initializer_list_append (_tmp57_, (ValaCCodeExpression*) _tmp59_);
					_vala_ccode_node_unref0 (_tmp59_);
				} else {
					ValaProperty* _tmp60_;
					ValaPropertyAccessor* _tmp61_;
					ValaPropertyAccessor* _tmp62_;
					_tmp60_ = prop;
					_tmp61_ = vala_property_get_set_accessor (_tmp60_);
					_tmp62_ = _tmp61_;
					if (_tmp62_ != NULL) {
						ValaCCodeInitializerList* _tmp63_;
						ValaCCodeConstant* _tmp64_;
						ValaCCodeConstant* _tmp65_;
						_tmp63_ = info;
						_tmp64_ = vala_ccode_constant_new ("G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE");
						_tmp65_ = _tmp64_;
						vala_ccode_initializer_list_append (_tmp63_, (ValaCCodeExpression*) _tmp65_);
						_vala_ccode_node_unref0 (_tmp65_);
					} else {
						ValaCCodeInitializerList* _tmp66_;
						ValaCCodeConstant* _tmp67_;
						ValaCCodeConstant* _tmp68_;
						_tmp66_ = info;
						_tmp67_ = vala_ccode_constant_new ("G_DBUS_PROPERTY_INFO_FLAGS_NONE");
						_tmp68_ = _tmp67_;
						vala_ccode_initializer_list_append (_tmp66_, (ValaCCodeExpression*) _tmp68_);
						_vala_ccode_node_unref0 (_tmp68_);
					}
				}
			}
			_tmp69_ = info;
			_tmp70_ = vala_ccode_constant_new ("NULL");
			_tmp71_ = _tmp70_;
			vala_ccode_initializer_list_append (_tmp69_, (ValaCCodeExpression*) _tmp71_);
			_vala_ccode_node_unref0 (_tmp71_);
			_tmp72_ = vala_ccode_declaration_new ("const GDBusPropertyInfo");
			_cdecl_ = _tmp72_;
			_tmp73_ = _cdecl_;
			_tmp74_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp75_ = _tmp74_;
			_tmp76_ = g_strconcat ("_", _tmp75_, NULL);
			_tmp77_ = _tmp76_;
			_tmp78_ = g_strconcat (_tmp77_, "dbus_property_info_", NULL);
			_tmp79_ = _tmp78_;
			_tmp80_ = prop;
			_tmp81_ = vala_symbol_get_name ((ValaSymbol*) _tmp80_);
			_tmp82_ = _tmp81_;
			_tmp83_ = g_strconcat (_tmp79_, _tmp82_, NULL);
			_tmp84_ = _tmp83_;
			_tmp85_ = info;
			_tmp86_ = vala_ccode_variable_declarator_new (_tmp84_, (ValaCCodeExpression*) _tmp85_, NULL);
			_tmp87_ = _tmp86_;
			vala_ccode_declaration_add_declarator (_tmp73_, (ValaCCodeDeclarator*) _tmp87_);
			_vala_ccode_node_unref0 (_tmp87_);
			_g_free0 (_tmp84_);
			_g_free0 (_tmp79_);
			_g_free0 (_tmp77_);
			_g_free0 (_tmp75_);
			_tmp88_ = _cdecl_;
			vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp88_, VALA_CCODE_MODIFIERS_STATIC);
			_tmp89_ = ((ValaCCodeBaseModule*) self)->cfile;
			_tmp90_ = _cdecl_;
			vala_ccode_file_add_constant_declaration (_tmp89_, (ValaCCodeNode*) _tmp90_);
			_tmp91_ = infos;
			_tmp92_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
			_tmp93_ = _tmp92_;
			_tmp94_ = g_strconcat ("_", _tmp93_, NULL);
			_tmp95_ = _tmp94_;
			_tmp96_ = g_strconcat (_tmp95_, "dbus_property_info_", NULL);
			_tmp97_ = _tmp96_;
			_tmp98_ = prop;
			_tmp99_ = vala_symbol_get_name ((ValaSymbol*) _tmp98_);
			_tmp100_ = _tmp99_;
			_tmp101_ = g_strconcat (_tmp97_, _tmp100_, NULL);
			_tmp102_ = _tmp101_;
			_tmp103_ = vala_ccode_identifier_new (_tmp102_);
			_tmp104_ = _tmp103_;
			_tmp105_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp104_);
			_tmp106_ = _tmp105_;
			vala_ccode_initializer_list_append (_tmp91_, (ValaCCodeExpression*) _tmp106_);
			_vala_ccode_node_unref0 (_tmp106_);
			_vala_ccode_node_unref0 (_tmp104_);
			_g_free0 (_tmp102_);
			_g_free0 (_tmp97_);
			_g_free0 (_tmp95_);
			_g_free0 (_tmp93_);
			_vala_ccode_node_unref0 (_cdecl_);
			_vala_ccode_node_unref0 (info);
			_vala_code_node_unref0 (prop);
		}
	}
	_tmp107_ = infos;
	_tmp108_ = vala_ccode_constant_new ("NULL");
	_tmp109_ = _tmp108_;
	vala_ccode_initializer_list_append (_tmp107_, (ValaCCodeExpression*) _tmp109_);
	_vala_ccode_node_unref0 (_tmp109_);
	_tmp110_ = vala_ccode_declaration_new ("const GDBusPropertyInfo * const");
	_cdecl_ = _tmp110_;
	_tmp111_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp112_ = _tmp111_;
	_tmp113_ = g_strconcat ("_", _tmp112_, NULL);
	_tmp114_ = _tmp113_;
	_tmp115_ = g_strconcat (_tmp114_, "dbus_property_info[]", NULL);
	_tmp116_ = _tmp115_;
	_tmp117_ = infos;
	_tmp118_ = vala_ccode_variable_declarator_new (_tmp116_, (ValaCCodeExpression*) _tmp117_, NULL);
	_tmp119_ = _tmp118_;
	vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp119_);
	_vala_ccode_node_unref0 (_tmp119_);
	_g_free0 (_tmp116_);
	_g_free0 (_tmp114_);
	_g_free0 (_tmp112_);
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _cdecl_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp120_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_constant_declaration (_tmp120_, (ValaCCodeNode*) _cdecl_);
	_tmp121_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp122_ = _tmp121_;
	_tmp123_ = g_strconcat ("_", _tmp122_, NULL);
	_tmp124_ = _tmp123_;
	_tmp125_ = g_strconcat (_tmp124_, "dbus_property_info", NULL);
	_tmp126_ = _tmp125_;
	_tmp127_ = vala_ccode_identifier_new (_tmp126_);
	_tmp128_ = (ValaCCodeExpression*) _tmp127_;
	_g_free0 (_tmp126_);
	_g_free0 (_tmp124_);
	_g_free0 (_tmp122_);
	result = _tmp128_;
	_vala_ccode_node_unref0 (_cdecl_);
	_vala_ccode_node_unref0 (infos);
	return result;
}

static void
vala_gd_bus_module_declare_interface_info (ValaGDBusModule* self,
                                           ValaObjectTypeSymbol* sym)
{
	ValaCCodeInitializerList* info = NULL;
	ValaCCodeInitializerList* _tmp0_;
	ValaCCodeConstant* _tmp1_;
	ValaCCodeConstant* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	ValaCCodeConstant* _tmp7_;
	ValaCCodeConstant* _tmp8_;
	ValaCCodeExpression* _tmp9_;
	ValaCCodeExpression* _tmp10_;
	ValaCCodeUnaryExpression* _tmp11_;
	ValaCCodeUnaryExpression* _tmp12_;
	ValaCCodeCastExpression* _tmp13_;
	ValaCCodeCastExpression* _tmp14_;
	ValaCCodeExpression* _tmp15_;
	ValaCCodeExpression* _tmp16_;
	ValaCCodeUnaryExpression* _tmp17_;
	ValaCCodeUnaryExpression* _tmp18_;
	ValaCCodeCastExpression* _tmp19_;
	ValaCCodeCastExpression* _tmp20_;
	ValaCCodeExpression* _tmp21_;
	ValaCCodeExpression* _tmp22_;
	ValaCCodeUnaryExpression* _tmp23_;
	ValaCCodeUnaryExpression* _tmp24_;
	ValaCCodeCastExpression* _tmp25_;
	ValaCCodeCastExpression* _tmp26_;
	ValaCCodeConstant* _tmp27_;
	ValaCCodeConstant* _tmp28_;
	ValaCCodeDeclaration* _cdecl_ = NULL;
	ValaCCodeDeclaration* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	gchar* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	gchar* _tmp35_;
	ValaCCodeVariableDeclarator* _tmp36_;
	ValaCCodeVariableDeclarator* _tmp37_;
	ValaCCodeFile* _tmp38_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = vala_ccode_initializer_list_new ();
	info = _tmp0_;
	_tmp1_ = vala_ccode_constant_new ("-1");
	_tmp2_ = _tmp1_;
	vala_ccode_initializer_list_append (info, (ValaCCodeExpression*) _tmp2_);
	_vala_ccode_node_unref0 (_tmp2_);
	_tmp3_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) sym);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_strdup_printf ("\"%s\"", _tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = vala_ccode_constant_new (_tmp6_);
	_tmp8_ = _tmp7_;
	vala_ccode_initializer_list_append (info, (ValaCCodeExpression*) _tmp8_);
	_vala_ccode_node_unref0 (_tmp8_);
	_g_free0 (_tmp6_);
	_g_free0 (_tmp4_);
	_tmp9_ = vala_gd_bus_module_get_method_info (self, sym);
	_tmp10_ = _tmp9_;
	_tmp11_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp12_, "GDBusMethodInfo **");
	_tmp14_ = _tmp13_;
	vala_ccode_initializer_list_append (info, (ValaCCodeExpression*) _tmp14_);
	_vala_ccode_node_unref0 (_tmp14_);
	_vala_ccode_node_unref0 (_tmp12_);
	_vala_ccode_node_unref0 (_tmp10_);
	_tmp15_ = vala_gd_bus_module_get_signal_info (self, sym);
	_tmp16_ = _tmp15_;
	_tmp17_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp16_);
	_tmp18_ = _tmp17_;
	_tmp19_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp18_, "GDBusSignalInfo **");
	_tmp20_ = _tmp19_;
	vala_ccode_initializer_list_append (info, (ValaCCodeExpression*) _tmp20_);
	_vala_ccode_node_unref0 (_tmp20_);
	_vala_ccode_node_unref0 (_tmp18_);
	_vala_ccode_node_unref0 (_tmp16_);
	_tmp21_ = vala_gd_bus_module_get_property_info (self, sym);
	_tmp22_ = _tmp21_;
	_tmp23_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp24_, "GDBusPropertyInfo **");
	_tmp26_ = _tmp25_;
	vala_ccode_initializer_list_append (info, (ValaCCodeExpression*) _tmp26_);
	_vala_ccode_node_unref0 (_tmp26_);
	_vala_ccode_node_unref0 (_tmp24_);
	_vala_ccode_node_unref0 (_tmp22_);
	_tmp27_ = vala_ccode_constant_new ("NULL");
	_tmp28_ = _tmp27_;
	vala_ccode_initializer_list_append (info, (ValaCCodeExpression*) _tmp28_);
	_vala_ccode_node_unref0 (_tmp28_);
	_tmp29_ = vala_ccode_declaration_new ("const GDBusInterfaceInfo");
	_cdecl_ = _tmp29_;
	_tmp30_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp31_ = _tmp30_;
	_tmp32_ = g_strconcat ("_", _tmp31_, NULL);
	_tmp33_ = _tmp32_;
	_tmp34_ = g_strconcat (_tmp33_, "dbus_interface_info", NULL);
	_tmp35_ = _tmp34_;
	_tmp36_ = vala_ccode_variable_declarator_new (_tmp35_, (ValaCCodeExpression*) info, NULL);
	_tmp37_ = _tmp36_;
	vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp37_);
	_vala_ccode_node_unref0 (_tmp37_);
	_g_free0 (_tmp35_);
	_g_free0 (_tmp33_);
	_g_free0 (_tmp31_);
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _cdecl_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp38_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_constant_declaration (_tmp38_, (ValaCCodeNode*) _cdecl_);
	_vala_ccode_node_unref0 (_cdecl_);
	_vala_ccode_node_unref0 (info);
}

ValaCCodeExpression*
vala_gd_bus_module_get_interface_info (ValaGDBusModule* self,
                                       ValaObjectTypeSymbol* sym)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	ValaCCodeIdentifier* _tmp6_;
	ValaCCodeExpression* _tmp7_;
	ValaCCodeExpression* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat ("_", _tmp1_, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, "dbus_interface_info", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = vala_ccode_identifier_new (_tmp5_);
	_tmp7_ = (ValaCCodeExpression*) _tmp6_;
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	result = _tmp7_;
	return result;
}

static void
vala_gd_bus_module_real_visit_class (ValaCodeVisitor* base,
                                     ValaClass* cl)
{
	ValaGDBusModule * self;
	self = (ValaGDBusModule*) base;
	g_return_if_fail (cl != NULL);
	VALA_CODE_VISITOR_CLASS (vala_gd_bus_module_parent_class)->visit_class ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GVARIANT_MODULE, ValaGVariantModule), cl);
	vala_gd_bus_module_visit_object_type_symbol (self, (ValaObjectTypeSymbol*) cl);
}

static void
vala_gd_bus_module_real_visit_interface (ValaCodeVisitor* base,
                                         ValaInterface* iface)
{
	ValaGDBusModule * self;
	self = (ValaGDBusModule*) base;
	g_return_if_fail (iface != NULL);
	VALA_CODE_VISITOR_CLASS (vala_gd_bus_module_parent_class)->visit_interface ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GVARIANT_MODULE, ValaGVariantModule), iface);
	vala_gd_bus_module_visit_object_type_symbol (self, (ValaObjectTypeSymbol*) iface);
}

static void
vala_gd_bus_module_visit_object_type_symbol (ValaGDBusModule* self,
                                             ValaObjectTypeSymbol* sym)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) sym);
	_tmp1_ = _tmp0_;
	_tmp2_ = _tmp1_ == NULL;
	_g_free0 (_tmp1_);
	if (_tmp2_) {
		return;
	}
	vala_gd_bus_module_declare_interface_info (self, sym);
}

ValaGDBusModule*
vala_gd_bus_module_construct (GType object_type)
{
	ValaGDBusModule* self = NULL;
	self = (ValaGDBusModule*) vala_gvariant_module_construct (object_type);
	return self;
}

ValaGDBusModule*
vala_gd_bus_module_new (void)
{
	return vala_gd_bus_module_construct (VALA_TYPE_GD_BUS_MODULE);
}

static void
vala_gd_bus_module_class_init (ValaGDBusModuleClass * klass,
                               gpointer klass_data)
{
	vala_gd_bus_module_parent_class = g_type_class_peek_parent (klass);
	((ValaCodeVisitorClass *) klass)->visit_error_domain = (void (*) (ValaCodeVisitor*, ValaErrorDomain*)) vala_gd_bus_module_real_visit_error_domain;
	((ValaCodeVisitorClass *) klass)->visit_class = (void (*) (ValaCodeVisitor*, ValaClass*)) vala_gd_bus_module_real_visit_class;
	((ValaCodeVisitorClass *) klass)->visit_interface = (void (*) (ValaCodeVisitor*, ValaInterface*)) vala_gd_bus_module_real_visit_interface;
}

static void
vala_gd_bus_module_instance_init (ValaGDBusModule * self,
                                  gpointer klass)
{
}

static GType
vala_gd_bus_module_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ValaGDBusModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_gd_bus_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaGDBusModule), 0, (GInstanceInitFunc) vala_gd_bus_module_instance_init, NULL };
	GType vala_gd_bus_module_type_id;
	vala_gd_bus_module_type_id = g_type_register_static (VALA_TYPE_GVARIANT_MODULE, "ValaGDBusModule", &g_define_type_info, 0);
	return vala_gd_bus_module_type_id;
}

GType
vala_gd_bus_module_get_type (void)
{
	static volatile gsize vala_gd_bus_module_type_id__once = 0;
	if (g_once_init_enter (&vala_gd_bus_module_type_id__once)) {
		GType vala_gd_bus_module_type_id;
		vala_gd_bus_module_type_id = vala_gd_bus_module_get_type_once ();
		g_once_init_leave (&vala_gd_bus_module_type_id__once, vala_gd_bus_module_type_id);
	}
	return vala_gd_bus_module_type_id__once;
}

