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

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

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

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

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

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


static gpointer vala_gd_bus_server_module_parent_class = NULL;

static gchar* vala_gd_bus_server_module_generate_dbus_wrapper (ValaGDBusServerModule* self, ValaMethod* m, ValaObjectTypeSymbol* sym, gboolean ready);
static gchar* vala_gd_bus_server_module_generate_dbus_signal_wrapper (ValaGDBusServerModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name);
static gchar* vala_gd_bus_server_module_generate_dbus_property_get_wrapper (ValaGDBusServerModule* self, ValaProperty* prop, ValaObjectTypeSymbol* sym);
static gchar* vala_gd_bus_server_module_generate_dbus_property_set_wrapper (ValaGDBusServerModule* self, ValaProperty* prop, ValaObjectTypeSymbol* sym);
static void vala_gd_bus_server_module_handle_signals (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym, gboolean connect);
static void vala_gd_bus_server_module_generate_interface_method_call_function (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym);
static void vala_gd_bus_server_module_generate_interface_get_property_function (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym);
static void vala_gd_bus_server_module_generate_interface_set_property_function (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym);
static ValaCCodeExpression* vala_gd_bus_server_module_get_interface_vtable (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym);
static gchar* vala_gd_bus_server_module_generate_register_object_function (ValaGDBusServerModule* self);
static void vala_gd_bus_server_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr);
static void vala_gd_bus_server_module_real_generate_class_declaration (ValaCCodeBaseModule* base, ValaClass* cl, ValaCCodeFile* decl_space);
static void vala_gd_bus_server_module_generate_object_type_symbol_declaration (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym, ValaCCodeFile* decl_space);
static void vala_gd_bus_server_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space);
static void vala_gd_bus_server_module_real_visit_class (ValaCodeVisitor* base, ValaClass* cl);
static void vala_gd_bus_server_module_visit_object_type_symbol (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym);
static void vala_gd_bus_server_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface);
static void vala_gd_bus_server_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym);


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


static gchar* vala_gd_bus_server_module_generate_dbus_wrapper (ValaGDBusServerModule* self, ValaMethod* m, ValaObjectTypeSymbol* sym, gboolean ready) {
	gchar* result = NULL;
	gchar* wrapper_name = NULL;
	ValaMethod* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gboolean need_goto_label = FALSE;
	ValaMethod* _tmp5_;
	ValaMethod* _tmp6_;
	ValaMethod* _tmp7_;
	gboolean _tmp17_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp20_;
	ValaCCodeFunction* _tmp21_;
	ValaCCodeFunction* _tmp22_;
	gboolean _tmp23_;
	ValaCCodeFunction* _tmp47_;
	gboolean _tmp48_;
	ValaCCodeFunctionCall* connection = NULL;
	ValaCCodeIdentifier* _tmp55_;
	ValaCCodeIdentifier* _tmp56_;
	ValaCCodeFunctionCall* _tmp57_;
	ValaCCodeFunctionCall* _tmp58_;
	ValaCCodeFunctionCall* _tmp59_;
	ValaCCodeIdentifier* _tmp60_;
	ValaCCodeIdentifier* _tmp61_;
	gboolean no_reply = FALSE;
	ValaMethod* _tmp62_;
	gboolean _tmp63_;
	gboolean uses_fd = FALSE;
	ValaMethod* _tmp64_;
	gboolean _tmp65_;
	gboolean _tmp66_;
	gboolean uses_error = FALSE;
	gboolean _tmp72_ = FALSE;
	ValaMethod* _tmp73_;
	gboolean _tmp74_;
	gboolean _tmp75_;
	gboolean _tmp83_;
	ValaCCodeFunctionCall* ccall = NULL;
	gboolean _tmp103_;
	gboolean _tmp132_;
	gboolean _tmp409_ = FALSE;
	ValaMethod* _tmp410_;
	gboolean _tmp411_;
	gboolean _tmp412_;
	gboolean _tmp445_ = FALSE;
	ValaMethod* _tmp446_;
	gboolean _tmp447_;
	gboolean _tmp448_;
	gboolean _tmp461_ = FALSE;
	ValaMethod* _tmp462_;
	gboolean _tmp463_;
	gboolean _tmp464_;
	gboolean _tmp477_ = FALSE;
	gboolean _tmp478_;
	gboolean _tmp795_ = FALSE;
	gboolean _tmp796_;
	gboolean _tmp842_;
	ValaCCodeFile* _tmp915_;
	ValaCCodeFunction* _tmp916_;
	ValaCCodeFile* _tmp917_;
	ValaCCodeFunction* _tmp918_;
	gboolean _tmp919_ = FALSE;
	ValaMethod* _tmp920_;
	gboolean _tmp921_;
	gboolean _tmp922_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = m;
	_tmp1_ = vala_get_ccode_name ((ValaCodeNode*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strdup_printf ("_dbus_%s", _tmp2_);
	_tmp4_ = _tmp3_;
	_g_free0 (_tmp2_);
	wrapper_name = _tmp4_;
	need_goto_label = FALSE;
	_tmp5_ = m;
	_tmp6_ = vala_method_get_base_method (_tmp5_);
	_tmp7_ = _tmp6_;
	if (_tmp7_ != NULL) {
		ValaMethod* _tmp8_;
		ValaMethod* _tmp9_;
		ValaMethod* _tmp10_;
		_tmp8_ = m;
		_tmp9_ = vala_method_get_base_method (_tmp8_);
		_tmp10_ = _tmp9_;
		m = _tmp10_;
	} else {
		ValaMethod* _tmp11_;
		ValaMethod* _tmp12_;
		ValaMethod* _tmp13_;
		_tmp11_ = m;
		_tmp12_ = vala_method_get_base_interface_method (_tmp11_);
		_tmp13_ = _tmp12_;
		if (_tmp13_ != NULL) {
			ValaMethod* _tmp14_;
			ValaMethod* _tmp15_;
			ValaMethod* _tmp16_;
			_tmp14_ = m;
			_tmp15_ = vala_method_get_base_interface_method (_tmp14_);
			_tmp16_ = _tmp15_;
			m = _tmp16_;
		}
	}
	_tmp17_ = ready;
	if (_tmp17_) {
		const gchar* _tmp18_;
		gchar* _tmp19_;
		_tmp18_ = wrapper_name;
		_tmp19_ = g_strconcat (_tmp18_, "_ready", NULL);
		_g_free0 (wrapper_name);
		wrapper_name = _tmp19_;
	}
	_tmp20_ = wrapper_name;
	_tmp21_ = vala_ccode_function_new (_tmp20_, "void");
	function = _tmp21_;
	_tmp22_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp22_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp23_ = ready;
	if (!_tmp23_) {
		ValaCCodeFunction* _tmp24_;
		ValaObjectTypeSymbol* _tmp25_;
		gchar* _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
		gchar* _tmp29_;
		ValaCCodeParameter* _tmp30_;
		ValaCCodeParameter* _tmp31_;
		ValaCCodeFunction* _tmp32_;
		ValaCCodeParameter* _tmp33_;
		ValaCCodeParameter* _tmp34_;
		ValaCCodeFunction* _tmp35_;
		ValaCCodeParameter* _tmp36_;
		ValaCCodeParameter* _tmp37_;
		_tmp24_ = function;
		_tmp25_ = sym;
		_tmp26_ = vala_get_ccode_name ((ValaCodeNode*) _tmp25_);
		_tmp27_ = _tmp26_;
		_tmp28_ = g_strconcat (_tmp27_, "*", NULL);
		_tmp29_ = _tmp28_;
		_tmp30_ = vala_ccode_parameter_new ("self", _tmp29_);
		_tmp31_ = _tmp30_;
		vala_ccode_function_add_parameter (_tmp24_, _tmp31_);
		_vala_ccode_node_unref0 (_tmp31_);
		_g_free0 (_tmp29_);
		_g_free0 (_tmp27_);
		_tmp32_ = function;
		_tmp33_ = vala_ccode_parameter_new ("_parameters_", "GVariant*");
		_tmp34_ = _tmp33_;
		vala_ccode_function_add_parameter (_tmp32_, _tmp34_);
		_vala_ccode_node_unref0 (_tmp34_);
		_tmp35_ = function;
		_tmp36_ = vala_ccode_parameter_new ("invocation", "GDBusMethodInvocation*");
		_tmp37_ = _tmp36_;
		vala_ccode_function_add_parameter (_tmp35_, _tmp37_);
		_vala_ccode_node_unref0 (_tmp37_);
	} else {
		ValaCCodeFunction* _tmp38_;
		ValaCCodeParameter* _tmp39_;
		ValaCCodeParameter* _tmp40_;
		ValaCCodeFunction* _tmp41_;
		ValaCCodeParameter* _tmp42_;
		ValaCCodeParameter* _tmp43_;
		ValaCCodeFunction* _tmp44_;
		ValaCCodeParameter* _tmp45_;
		ValaCCodeParameter* _tmp46_;
		_tmp38_ = function;
		_tmp39_ = vala_ccode_parameter_new ("source_object", "GObject *");
		_tmp40_ = _tmp39_;
		vala_ccode_function_add_parameter (_tmp38_, _tmp40_);
		_vala_ccode_node_unref0 (_tmp40_);
		_tmp41_ = function;
		_tmp42_ = vala_ccode_parameter_new ("_res_", "GAsyncResult *");
		_tmp43_ = _tmp42_;
		vala_ccode_function_add_parameter (_tmp41_, _tmp43_);
		_vala_ccode_node_unref0 (_tmp43_);
		_tmp44_ = function;
		_tmp45_ = vala_ccode_parameter_new ("_user_data_", "gpointer");
		_tmp46_ = _tmp45_;
		vala_ccode_function_add_parameter (_tmp44_, _tmp46_);
		_vala_ccode_node_unref0 (_tmp46_);
	}
	_tmp47_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp47_);
	_tmp48_ = ready;
	if (_tmp48_) {
		ValaCCodeFunction* _tmp49_;
		ValaCCodeFunction* _tmp50_;
		ValaCCodeIdentifier* _tmp51_;
		ValaCCodeIdentifier* _tmp52_;
		ValaCCodeVariableDeclarator* _tmp53_;
		ValaCCodeVariableDeclarator* _tmp54_;
		_tmp49_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp50_ = _tmp49_;
		_tmp51_ = vala_ccode_identifier_new ("_user_data_");
		_tmp52_ = _tmp51_;
		_tmp53_ = vala_ccode_variable_declarator_new ("invocation", (ValaCCodeExpression*) _tmp52_, NULL);
		_tmp54_ = _tmp53_;
		vala_ccode_function_add_declaration (_tmp50_, "GDBusMethodInvocation *", (ValaCCodeDeclarator*) _tmp54_, 0);
		_vala_ccode_node_unref0 (_tmp54_);
		_vala_ccode_node_unref0 (_tmp52_);
	}
	_tmp55_ = vala_ccode_identifier_new ("g_dbus_method_invocation_get_connection");
	_tmp56_ = _tmp55_;
	_tmp57_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp56_);
	_tmp58_ = _tmp57_;
	_vala_ccode_node_unref0 (_tmp56_);
	connection = _tmp58_;
	_tmp59_ = connection;
	_tmp60_ = vala_ccode_identifier_new ("invocation");
	_tmp61_ = _tmp60_;
	vala_ccode_function_call_add_argument (_tmp59_, (ValaCCodeExpression*) _tmp61_);
	_vala_ccode_node_unref0 (_tmp61_);
	_tmp62_ = m;
	_tmp63_ = vala_gd_bus_module_is_dbus_no_reply (_tmp62_);
	no_reply = _tmp63_;
	_tmp64_ = m;
	_tmp65_ = vala_gd_bus_module_dbus_method_uses_file_descriptor ((ValaGDBusModule*) self, _tmp64_);
	uses_fd = _tmp65_;
	_tmp66_ = uses_fd;
	if (_tmp66_) {
		ValaCCodeFile* _tmp67_;
		ValaCCodeFunction* _tmp68_;
		ValaCCodeFunction* _tmp69_;
		ValaCCodeVariableDeclarator* _tmp70_;
		ValaCCodeVariableDeclarator* _tmp71_;
		_tmp67_ = ((ValaCCodeBaseModule*) self)->cfile;
		vala_ccode_file_add_include (_tmp67_, "gio/gunixfdlist.h", FALSE);
		_tmp68_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp69_ = _tmp68_;
		_tmp70_ = vala_ccode_variable_declarator_new ("_fd_list", NULL, NULL);
		_tmp71_ = _tmp70_;
		vala_ccode_function_add_declaration (_tmp69_, "GUnixFDList*", (ValaCCodeDeclarator*) _tmp71_, 0);
		_vala_ccode_node_unref0 (_tmp71_);
	}
	uses_error = FALSE;
	_tmp73_ = m;
	_tmp74_ = vala_method_get_coroutine (_tmp73_);
	_tmp75_ = _tmp74_;
	if (!_tmp75_) {
		_tmp72_ = TRUE;
	} else {
		gboolean _tmp76_;
		_tmp76_ = ready;
		_tmp72_ = _tmp76_;
	}
	if (_tmp72_) {
		ValaCCodeFunction* _tmp77_;
		ValaCCodeFunction* _tmp78_;
		ValaCCodeConstant* _tmp79_;
		ValaCCodeConstant* _tmp80_;
		ValaCCodeVariableDeclarator* _tmp81_;
		ValaCCodeVariableDeclarator* _tmp82_;
		_tmp77_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp78_ = _tmp77_;
		_tmp79_ = vala_ccode_constant_new ("NULL");
		_tmp80_ = _tmp79_;
		_tmp81_ = vala_ccode_variable_declarator_new_zero ("error", (ValaCCodeExpression*) _tmp80_, NULL);
		_tmp82_ = _tmp81_;
		vala_ccode_function_add_declaration (_tmp78_, "GError*", (ValaCCodeDeclarator*) _tmp82_, 0);
		_vala_ccode_node_unref0 (_tmp82_);
		_vala_ccode_node_unref0 (_tmp80_);
		uses_error = TRUE;
	}
	_tmp83_ = ready;
	if (!_tmp83_) {
		ValaCCodeFunction* _tmp84_;
		ValaCCodeFunction* _tmp85_;
		ValaCCodeVariableDeclarator* _tmp86_;
		ValaCCodeVariableDeclarator* _tmp87_;
		ValaCCodeFunctionCall* iter_init = NULL;
		ValaCCodeIdentifier* _tmp88_;
		ValaCCodeIdentifier* _tmp89_;
		ValaCCodeFunctionCall* _tmp90_;
		ValaCCodeFunctionCall* _tmp91_;
		ValaCCodeFunctionCall* _tmp92_;
		ValaCCodeIdentifier* _tmp93_;
		ValaCCodeIdentifier* _tmp94_;
		ValaCCodeUnaryExpression* _tmp95_;
		ValaCCodeUnaryExpression* _tmp96_;
		ValaCCodeFunctionCall* _tmp97_;
		ValaCCodeIdentifier* _tmp98_;
		ValaCCodeIdentifier* _tmp99_;
		ValaCCodeFunction* _tmp100_;
		ValaCCodeFunction* _tmp101_;
		ValaCCodeFunctionCall* _tmp102_;
		_tmp84_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp85_ = _tmp84_;
		_tmp86_ = vala_ccode_variable_declarator_new ("_arguments_iter", NULL, NULL);
		_tmp87_ = _tmp86_;
		vala_ccode_function_add_declaration (_tmp85_, "GVariantIter", (ValaCCodeDeclarator*) _tmp87_, 0);
		_vala_ccode_node_unref0 (_tmp87_);
		_tmp88_ = vala_ccode_identifier_new ("g_variant_iter_init");
		_tmp89_ = _tmp88_;
		_tmp90_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp89_);
		_tmp91_ = _tmp90_;
		_vala_ccode_node_unref0 (_tmp89_);
		iter_init = _tmp91_;
		_tmp92_ = iter_init;
		_tmp93_ = vala_ccode_identifier_new ("_arguments_iter");
		_tmp94_ = _tmp93_;
		_tmp95_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp94_);
		_tmp96_ = _tmp95_;
		vala_ccode_function_call_add_argument (_tmp92_, (ValaCCodeExpression*) _tmp96_);
		_vala_ccode_node_unref0 (_tmp96_);
		_vala_ccode_node_unref0 (_tmp94_);
		_tmp97_ = iter_init;
		_tmp98_ = vala_ccode_identifier_new ("_parameters_");
		_tmp99_ = _tmp98_;
		vala_ccode_function_call_add_argument (_tmp97_, (ValaCCodeExpression*) _tmp99_);
		_vala_ccode_node_unref0 (_tmp99_);
		_tmp100_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp101_ = _tmp100_;
		_tmp102_ = iter_init;
		vala_ccode_function_add_expression (_tmp101_, (ValaCCodeExpression*) _tmp102_);
		_vala_ccode_node_unref0 (iter_init);
	}
	_tmp103_ = ready;
	if (!_tmp103_) {
		ValaMethod* _tmp104_;
		gchar* _tmp105_;
		gchar* _tmp106_;
		ValaCCodeIdentifier* _tmp107_;
		ValaCCodeIdentifier* _tmp108_;
		ValaCCodeFunctionCall* _tmp109_;
		ValaCCodeFunctionCall* _tmp110_;
		ValaCCodeIdentifier* _tmp111_;
		ValaCCodeIdentifier* _tmp112_;
		_tmp104_ = m;
		_tmp105_ = vala_get_ccode_name ((ValaCodeNode*) _tmp104_);
		_tmp106_ = _tmp105_;
		_tmp107_ = vala_ccode_identifier_new (_tmp106_);
		_tmp108_ = _tmp107_;
		_tmp109_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp108_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp109_;
		_vala_ccode_node_unref0 (_tmp108_);
		_g_free0 (_tmp106_);
		_tmp110_ = ccall;
		_tmp111_ = vala_ccode_identifier_new ("self");
		_tmp112_ = _tmp111_;
		vala_ccode_function_call_add_argument (_tmp110_, (ValaCCodeExpression*) _tmp112_);
		_vala_ccode_node_unref0 (_tmp112_);
	} else {
		ValaMethod* _tmp113_;
		gchar* _tmp114_;
		gchar* _tmp115_;
		ValaCCodeIdentifier* _tmp116_;
		ValaCCodeIdentifier* _tmp117_;
		ValaCCodeFunctionCall* _tmp118_;
		ValaCCodeFunctionCall* _tmp119_;
		ValaCCodeIdentifier* _tmp120_;
		ValaCCodeIdentifier* _tmp121_;
		ValaObjectTypeSymbol* _tmp122_;
		gchar* _tmp123_;
		gchar* _tmp124_;
		gchar* _tmp125_;
		gchar* _tmp126_;
		ValaCCodeCastExpression* _tmp127_;
		ValaCCodeCastExpression* _tmp128_;
		ValaCCodeFunctionCall* _tmp129_;
		ValaCCodeIdentifier* _tmp130_;
		ValaCCodeIdentifier* _tmp131_;
		_tmp113_ = m;
		_tmp114_ = vala_get_ccode_finish_name (_tmp113_);
		_tmp115_ = _tmp114_;
		_tmp116_ = vala_ccode_identifier_new (_tmp115_);
		_tmp117_ = _tmp116_;
		_tmp118_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp117_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp118_;
		_vala_ccode_node_unref0 (_tmp117_);
		_g_free0 (_tmp115_);
		_tmp119_ = ccall;
		_tmp120_ = vala_ccode_identifier_new ("source_object");
		_tmp121_ = _tmp120_;
		_tmp122_ = sym;
		_tmp123_ = vala_get_ccode_name ((ValaCodeNode*) _tmp122_);
		_tmp124_ = _tmp123_;
		_tmp125_ = g_strconcat (_tmp124_, "*", NULL);
		_tmp126_ = _tmp125_;
		_tmp127_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp121_, _tmp126_);
		_tmp128_ = _tmp127_;
		vala_ccode_function_call_add_argument (_tmp119_, (ValaCCodeExpression*) _tmp128_);
		_vala_ccode_node_unref0 (_tmp128_);
		_g_free0 (_tmp126_);
		_g_free0 (_tmp124_);
		_vala_ccode_node_unref0 (_tmp121_);
		_tmp129_ = ccall;
		_tmp130_ = vala_ccode_identifier_new ("_res_");
		_tmp131_ = _tmp130_;
		vala_ccode_function_call_add_argument (_tmp129_, (ValaCCodeExpression*) _tmp131_);
		_vala_ccode_node_unref0 (_tmp131_);
	}
	_tmp132_ = ready;
	if (!_tmp132_) {
		gboolean _tmp133_;
		_tmp133_ = uses_fd;
		if (_tmp133_) {
			ValaCCodeFunction* _tmp134_;
			ValaCCodeFunction* _tmp135_;
			ValaCCodeConstant* _tmp136_;
			ValaCCodeConstant* _tmp137_;
			ValaCCodeVariableDeclarator* _tmp138_;
			ValaCCodeVariableDeclarator* _tmp139_;
			ValaCCodeFunction* _tmp140_;
			ValaCCodeFunction* _tmp141_;
			ValaCCodeVariableDeclarator* _tmp142_;
			ValaCCodeVariableDeclarator* _tmp143_;
			_tmp134_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp135_ = _tmp134_;
			_tmp136_ = vala_ccode_constant_new ("0");
			_tmp137_ = _tmp136_;
			_tmp138_ = vala_ccode_variable_declarator_new_zero ("_fd_index", (ValaCCodeExpression*) _tmp137_, NULL);
			_tmp139_ = _tmp138_;
			vala_ccode_function_add_declaration (_tmp135_, "gint", (ValaCCodeDeclarator*) _tmp139_, 0);
			_vala_ccode_node_unref0 (_tmp139_);
			_vala_ccode_node_unref0 (_tmp137_);
			_tmp140_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp141_ = _tmp140_;
			_tmp142_ = vala_ccode_variable_declarator_new ("_fd", NULL, NULL);
			_tmp143_ = _tmp142_;
			vala_ccode_function_add_declaration (_tmp141_, "gint", (ValaCCodeDeclarator*) _tmp143_, 0);
			_vala_ccode_node_unref0 (_tmp143_);
		}
		{
			ValaList* _param_list = NULL;
			ValaMethod* _tmp144_;
			ValaList* _tmp145_;
			gint _param_size = 0;
			ValaList* _tmp146_;
			gint _tmp147_;
			gint _tmp148_;
			gint _param_index = 0;
			_tmp144_ = m;
			_tmp145_ = vala_callable_get_parameters ((ValaCallable*) _tmp144_);
			_param_list = _tmp145_;
			_tmp146_ = _param_list;
			_tmp147_ = vala_collection_get_size ((ValaCollection*) _tmp146_);
			_tmp148_ = _tmp147_;
			_param_size = _tmp148_;
			_param_index = -1;
			while (TRUE) {
				gint _tmp149_;
				gint _tmp150_;
				gint _tmp151_;
				ValaParameter* param = NULL;
				ValaList* _tmp152_;
				gint _tmp153_;
				gpointer _tmp154_;
				gchar* param_name = NULL;
				ValaParameter* _tmp155_;
				const gchar* _tmp156_;
				const gchar* _tmp157_;
				gchar* _tmp158_;
				ValaParameter* _tmp159_;
				ValaParameterDirection _tmp160_;
				ValaParameterDirection _tmp161_;
				gboolean _tmp162_ = FALSE;
				ValaParameter* _tmp163_;
				ValaDataType* _tmp164_;
				ValaDataType* _tmp165_;
				gboolean _tmp173_ = FALSE;
				ValaParameter* _tmp174_;
				ValaDataType* _tmp175_;
				ValaDataType* _tmp176_;
				ValaDataType* owned_type = NULL;
				ValaParameter* _tmp184_;
				ValaDataType* _tmp185_;
				ValaDataType* _tmp186_;
				ValaDataType* _tmp187_;
				ValaDataType* _tmp188_;
				ValaCCodeFunction* _tmp189_;
				ValaCCodeFunction* _tmp190_;
				ValaDataType* _tmp191_;
				gchar* _tmp192_;
				gchar* _tmp193_;
				const gchar* _tmp194_;
				ValaParameter* _tmp195_;
				ValaDataType* _tmp196_;
				ValaDataType* _tmp197_;
				ValaCCodeExpression* _tmp198_;
				ValaCCodeExpression* _tmp199_;
				ValaCCodeVariableDeclarator* _tmp200_;
				ValaCCodeVariableDeclarator* _tmp201_;
				ValaArrayType* array_type = NULL;
				ValaParameter* _tmp202_;
				ValaDataType* _tmp203_;
				ValaDataType* _tmp204_;
				ValaArrayType* _tmp205_;
				ValaArrayType* _tmp206_;
				ValaCCodeFunctionCall* message_expr = NULL;
				ValaCCodeIdentifier* _tmp223_;
				ValaCCodeIdentifier* _tmp224_;
				ValaCCodeFunctionCall* _tmp225_;
				ValaCCodeFunctionCall* _tmp226_;
				ValaCCodeFunctionCall* _tmp227_;
				ValaCCodeIdentifier* _tmp228_;
				ValaCCodeIdentifier* _tmp229_;
				gboolean may_fail = FALSE;
				ValaParameter* _tmp230_;
				ValaDataType* _tmp231_;
				ValaDataType* _tmp232_;
				ValaCCodeFunctionCall* _tmp233_;
				ValaCCodeIdentifier* _tmp234_;
				ValaCCodeIdentifier* _tmp235_;
				const gchar* _tmp236_;
				ValaCCodeIdentifier* _tmp237_;
				ValaCCodeIdentifier* _tmp238_;
				ValaParameter* _tmp239_;
				ValaCCodeIdentifier* _tmp240_;
				ValaCCodeIdentifier* _tmp241_;
				ValaCCodeUnaryExpression* _tmp242_;
				ValaCCodeUnaryExpression* _tmp243_;
				gboolean _tmp244_ = FALSE;
				gboolean _tmp245_;
				_tmp149_ = _param_index;
				_param_index = _tmp149_ + 1;
				_tmp150_ = _param_index;
				_tmp151_ = _param_size;
				if (!(_tmp150_ < _tmp151_)) {
					break;
				}
				_tmp152_ = _param_list;
				_tmp153_ = _param_index;
				_tmp154_ = vala_list_get (_tmp152_, _tmp153_);
				param = (ValaParameter*) _tmp154_;
				_tmp155_ = param;
				_tmp156_ = vala_symbol_get_name ((ValaSymbol*) _tmp155_);
				_tmp157_ = _tmp156_;
				_tmp158_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp157_);
				param_name = _tmp158_;
				_tmp159_ = param;
				_tmp160_ = vala_parameter_get_direction (_tmp159_);
				_tmp161_ = _tmp160_;
				if (_tmp161_ != VALA_PARAMETER_DIRECTION_IN) {
					_g_free0 (param_name);
					_vala_code_node_unref0 (param);
					continue;
				}
				_tmp163_ = param;
				_tmp164_ = vala_variable_get_variable_type ((ValaVariable*) _tmp163_);
				_tmp165_ = _tmp164_;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp165_, VALA_TYPE_OBJECT_TYPE)) {
					ValaParameter* _tmp166_;
					ValaDataType* _tmp167_;
					ValaDataType* _tmp168_;
					ValaTypeSymbol* _tmp169_;
					ValaTypeSymbol* _tmp170_;
					gchar* _tmp171_;
					gchar* _tmp172_;
					_tmp166_ = param;
					_tmp167_ = vala_variable_get_variable_type ((ValaVariable*) _tmp166_);
					_tmp168_ = _tmp167_;
					_tmp169_ = vala_data_type_get_data_type (_tmp168_);
					_tmp170_ = _tmp169_;
					_tmp171_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp170_);
					_tmp172_ = _tmp171_;
					_tmp162_ = g_strcmp0 (_tmp172_, "GLib.Cancellable") == 0;
					_g_free0 (_tmp172_);
				} else {
					_tmp162_ = FALSE;
				}
				if (_tmp162_) {
					_g_free0 (param_name);
					_vala_code_node_unref0 (param);
					continue;
				}
				_tmp174_ = param;
				_tmp175_ = vala_variable_get_variable_type ((ValaVariable*) _tmp174_);
				_tmp176_ = _tmp175_;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp176_, VALA_TYPE_OBJECT_TYPE)) {
					ValaParameter* _tmp177_;
					ValaDataType* _tmp178_;
					ValaDataType* _tmp179_;
					ValaTypeSymbol* _tmp180_;
					ValaTypeSymbol* _tmp181_;
					gchar* _tmp182_;
					gchar* _tmp183_;
					_tmp177_ = param;
					_tmp178_ = vala_variable_get_variable_type ((ValaVariable*) _tmp177_);
					_tmp179_ = _tmp178_;
					_tmp180_ = vala_data_type_get_data_type (_tmp179_);
					_tmp181_ = _tmp180_;
					_tmp182_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp181_);
					_tmp183_ = _tmp182_;
					_tmp173_ = g_strcmp0 (_tmp183_, "GLib.BusName") == 0;
					_g_free0 (_tmp183_);
				} else {
					_tmp173_ = FALSE;
				}
				if (_tmp173_) {
					_g_free0 (param_name);
					_vala_code_node_unref0 (param);
					continue;
				}
				_tmp184_ = param;
				_tmp185_ = vala_variable_get_variable_type ((ValaVariable*) _tmp184_);
				_tmp186_ = _tmp185_;
				_tmp187_ = vala_data_type_copy (_tmp186_);
				owned_type = _tmp187_;
				_tmp188_ = owned_type;
				vala_data_type_set_value_owned (_tmp188_, TRUE);
				_tmp189_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp190_ = _tmp189_;
				_tmp191_ = owned_type;
				_tmp192_ = vala_get_ccode_name ((ValaCodeNode*) _tmp191_);
				_tmp193_ = _tmp192_;
				_tmp194_ = param_name;
				_tmp195_ = param;
				_tmp196_ = vala_variable_get_variable_type ((ValaVariable*) _tmp195_);
				_tmp197_ = _tmp196_;
				_tmp198_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp197_, TRUE);
				_tmp199_ = _tmp198_;
				_tmp200_ = vala_ccode_variable_declarator_new_zero (_tmp194_, _tmp199_, NULL);
				_tmp201_ = _tmp200_;
				vala_ccode_function_add_declaration (_tmp190_, _tmp193_, (ValaCCodeDeclarator*) _tmp201_, 0);
				_vala_ccode_node_unref0 (_tmp201_);
				_vala_ccode_node_unref0 (_tmp199_);
				_g_free0 (_tmp193_);
				_tmp202_ = param;
				_tmp203_ = vala_variable_get_variable_type ((ValaVariable*) _tmp202_);
				_tmp204_ = _tmp203_;
				_tmp205_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp204_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp204_) : NULL);
				array_type = _tmp205_;
				_tmp206_ = array_type;
				if (_tmp206_ != NULL) {
					{
						gint dim = 0;
						dim = 1;
						{
							gboolean _tmp207_ = FALSE;
							_tmp207_ = TRUE;
							while (TRUE) {
								gint _tmp209_;
								ValaArrayType* _tmp210_;
								gint _tmp211_;
								gint _tmp212_;
								gchar* length_cname = NULL;
								ValaParameter* _tmp213_;
								gint _tmp214_;
								gchar* _tmp215_;
								ValaCCodeFunction* _tmp216_;
								ValaCCodeFunction* _tmp217_;
								const gchar* _tmp218_;
								ValaCCodeConstant* _tmp219_;
								ValaCCodeConstant* _tmp220_;
								ValaCCodeVariableDeclarator* _tmp221_;
								ValaCCodeVariableDeclarator* _tmp222_;
								if (!_tmp207_) {
									gint _tmp208_;
									_tmp208_ = dim;
									dim = _tmp208_ + 1;
								}
								_tmp207_ = FALSE;
								_tmp209_ = dim;
								_tmp210_ = array_type;
								_tmp211_ = vala_array_type_get_rank (_tmp210_);
								_tmp212_ = _tmp211_;
								if (!(_tmp209_ <= _tmp212_)) {
									break;
								}
								_tmp213_ = param;
								_tmp214_ = dim;
								_tmp215_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, _tmp213_, _tmp214_);
								length_cname = _tmp215_;
								_tmp216_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
								_tmp217_ = _tmp216_;
								_tmp218_ = length_cname;
								_tmp219_ = vala_ccode_constant_new ("0");
								_tmp220_ = _tmp219_;
								_tmp221_ = vala_ccode_variable_declarator_new_zero (_tmp218_, (ValaCCodeExpression*) _tmp220_, NULL);
								_tmp222_ = _tmp221_;
								vala_ccode_function_add_declaration (_tmp217_, "int", (ValaCCodeDeclarator*) _tmp222_, 0);
								_vala_ccode_node_unref0 (_tmp222_);
								_vala_ccode_node_unref0 (_tmp220_);
								_g_free0 (length_cname);
							}
						}
					}
				}
				_tmp223_ = vala_ccode_identifier_new ("g_dbus_method_invocation_get_message");
				_tmp224_ = _tmp223_;
				_tmp225_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp224_);
				_tmp226_ = _tmp225_;
				_vala_ccode_node_unref0 (_tmp224_);
				message_expr = _tmp226_;
				_tmp227_ = message_expr;
				_tmp228_ = vala_ccode_identifier_new ("invocation");
				_tmp229_ = _tmp228_;
				vala_ccode_function_call_add_argument (_tmp227_, (ValaCCodeExpression*) _tmp229_);
				_vala_ccode_node_unref0 (_tmp229_);
				_tmp230_ = param;
				_tmp231_ = vala_variable_get_variable_type ((ValaVariable*) _tmp230_);
				_tmp232_ = _tmp231_;
				_tmp233_ = message_expr;
				_tmp234_ = vala_ccode_identifier_new ("_arguments_iter");
				_tmp235_ = _tmp234_;
				_tmp236_ = param_name;
				_tmp237_ = vala_ccode_identifier_new (_tmp236_);
				_tmp238_ = _tmp237_;
				_tmp239_ = param;
				_tmp240_ = vala_ccode_identifier_new ("error");
				_tmp241_ = _tmp240_;
				_tmp242_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp241_);
				_tmp243_ = _tmp242_;
				vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp232_, (ValaCCodeExpression*) _tmp233_, (ValaCCodeExpression*) _tmp235_, (ValaCCodeExpression*) _tmp238_, (ValaSymbol*) _tmp239_, (ValaCCodeExpression*) _tmp243_, &_tmp244_);
				may_fail = _tmp244_;
				_vala_ccode_node_unref0 (_tmp243_);
				_vala_ccode_node_unref0 (_tmp241_);
				_vala_ccode_node_unref0 (_tmp238_);
				_vala_ccode_node_unref0 (_tmp235_);
				_tmp245_ = may_fail;
				if (_tmp245_) {
					gboolean _tmp246_;
					ValaCCodeFunction* _tmp253_;
					ValaCCodeFunction* _tmp254_;
					ValaCCodeIdentifier* _tmp255_;
					ValaCCodeIdentifier* _tmp256_;
					ValaCCodeFunctionCall* return_error = NULL;
					ValaCCodeIdentifier* _tmp257_;
					ValaCCodeIdentifier* _tmp258_;
					ValaCCodeFunctionCall* _tmp259_;
					ValaCCodeFunctionCall* _tmp260_;
					ValaCCodeFunctionCall* _tmp261_;
					ValaCCodeIdentifier* _tmp262_;
					ValaCCodeIdentifier* _tmp263_;
					ValaCCodeFunctionCall* _tmp264_;
					ValaCCodeIdentifier* _tmp265_;
					ValaCCodeIdentifier* _tmp266_;
					ValaCCodeFunction* _tmp267_;
					ValaCCodeFunction* _tmp268_;
					ValaCCodeFunctionCall* _tmp269_;
					gboolean _tmp270_ = FALSE;
					gboolean _tmp271_;
					ValaCCodeFunction* _tmp278_;
					ValaCCodeFunction* _tmp279_;
					_tmp246_ = uses_error;
					if (!_tmp246_) {
						ValaCCodeFunction* _tmp247_;
						ValaCCodeFunction* _tmp248_;
						ValaCCodeConstant* _tmp249_;
						ValaCCodeConstant* _tmp250_;
						ValaCCodeVariableDeclarator* _tmp251_;
						ValaCCodeVariableDeclarator* _tmp252_;
						_tmp247_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp248_ = _tmp247_;
						_tmp249_ = vala_ccode_constant_new ("NULL");
						_tmp250_ = _tmp249_;
						_tmp251_ = vala_ccode_variable_declarator_new_zero ("error", (ValaCCodeExpression*) _tmp250_, NULL);
						_tmp252_ = _tmp251_;
						vala_ccode_function_add_declaration (_tmp248_, "GError*", (ValaCCodeDeclarator*) _tmp252_, 0);
						_vala_ccode_node_unref0 (_tmp252_);
						_vala_ccode_node_unref0 (_tmp250_);
						uses_error = TRUE;
					}
					_tmp253_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp254_ = _tmp253_;
					_tmp255_ = vala_ccode_identifier_new ("error");
					_tmp256_ = _tmp255_;
					vala_ccode_function_open_if (_tmp254_, (ValaCCodeExpression*) _tmp256_);
					_vala_ccode_node_unref0 (_tmp256_);
					_tmp257_ = vala_ccode_identifier_new ("g_dbus_method_invocation_return_gerror");
					_tmp258_ = _tmp257_;
					_tmp259_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp258_);
					_tmp260_ = _tmp259_;
					_vala_ccode_node_unref0 (_tmp258_);
					return_error = _tmp260_;
					_tmp261_ = return_error;
					_tmp262_ = vala_ccode_identifier_new ("invocation");
					_tmp263_ = _tmp262_;
					vala_ccode_function_call_add_argument (_tmp261_, (ValaCCodeExpression*) _tmp263_);
					_vala_ccode_node_unref0 (_tmp263_);
					_tmp264_ = return_error;
					_tmp265_ = vala_ccode_identifier_new ("error");
					_tmp266_ = _tmp265_;
					vala_ccode_function_call_add_argument (_tmp264_, (ValaCCodeExpression*) _tmp266_);
					_vala_ccode_node_unref0 (_tmp266_);
					_tmp267_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp268_ = _tmp267_;
					_tmp269_ = return_error;
					vala_ccode_function_add_expression (_tmp268_, (ValaCCodeExpression*) _tmp269_);
					_tmp271_ = need_goto_label;
					if (_tmp271_) {
						_tmp270_ = TRUE;
					} else {
						ValaDataType* _tmp272_;
						gboolean _tmp273_;
						_tmp272_ = owned_type;
						_tmp273_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp272_);
						_tmp270_ = _tmp273_;
					}
					if (_tmp270_) {
						ValaCCodeFunction* _tmp274_;
						ValaCCodeFunction* _tmp275_;
						_tmp274_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp275_ = _tmp274_;
						vala_ccode_function_add_goto (_tmp275_, "_error");
						need_goto_label = TRUE;
					} else {
						ValaCCodeFunction* _tmp276_;
						ValaCCodeFunction* _tmp277_;
						_tmp276_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp277_ = _tmp276_;
						vala_ccode_function_add_return (_tmp277_, NULL);
					}
					_tmp278_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp279_ = _tmp278_;
					vala_ccode_function_close (_tmp279_);
					_vala_ccode_node_unref0 (return_error);
				}
				_vala_ccode_node_unref0 (message_expr);
				_vala_code_node_unref0 (array_type);
				_vala_code_node_unref0 (owned_type);
				_g_free0 (param_name);
				_vala_code_node_unref0 (param);
			}
			_vala_iterable_unref0 (_param_list);
		}
	}
	{
		ValaList* _param_list = NULL;
		ValaMethod* _tmp280_;
		ValaList* _tmp281_;
		gint _param_size = 0;
		ValaList* _tmp282_;
		gint _tmp283_;
		gint _tmp284_;
		gint _param_index = 0;
		_tmp280_ = m;
		_tmp281_ = vala_callable_get_parameters ((ValaCallable*) _tmp280_);
		_param_list = _tmp281_;
		_tmp282_ = _param_list;
		_tmp283_ = vala_collection_get_size ((ValaCollection*) _tmp282_);
		_tmp284_ = _tmp283_;
		_param_size = _tmp284_;
		_param_index = -1;
		while (TRUE) {
			gint _tmp285_;
			gint _tmp286_;
			gint _tmp287_;
			ValaParameter* param = NULL;
			ValaList* _tmp288_;
			gint _tmp289_;
			gpointer _tmp290_;
			gchar* param_name = NULL;
			ValaParameter* _tmp291_;
			const gchar* _tmp292_;
			const gchar* _tmp293_;
			gchar* _tmp294_;
			gboolean _tmp295_ = FALSE;
			ValaParameter* _tmp296_;
			ValaParameterDirection _tmp297_;
			ValaParameterDirection _tmp298_;
			ValaArrayType* array_type = NULL;
			ValaParameter* _tmp369_;
			ValaDataType* _tmp370_;
			ValaDataType* _tmp371_;
			ValaArrayType* _tmp372_;
			ValaArrayType* _tmp373_;
			_tmp285_ = _param_index;
			_param_index = _tmp285_ + 1;
			_tmp286_ = _param_index;
			_tmp287_ = _param_size;
			if (!(_tmp286_ < _tmp287_)) {
				break;
			}
			_tmp288_ = _param_list;
			_tmp289_ = _param_index;
			_tmp290_ = vala_list_get (_tmp288_, _tmp289_);
			param = (ValaParameter*) _tmp290_;
			_tmp291_ = param;
			_tmp292_ = vala_symbol_get_name ((ValaSymbol*) _tmp291_);
			_tmp293_ = _tmp292_;
			_tmp294_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp293_);
			param_name = _tmp294_;
			_tmp296_ = param;
			_tmp297_ = vala_parameter_get_direction (_tmp296_);
			_tmp298_ = _tmp297_;
			if (_tmp298_ == VALA_PARAMETER_DIRECTION_IN) {
				gboolean _tmp299_;
				_tmp299_ = ready;
				_tmp295_ = !_tmp299_;
			} else {
				_tmp295_ = FALSE;
			}
			if (_tmp295_) {
				gboolean _tmp300_ = FALSE;
				ValaParameter* _tmp301_;
				ValaDataType* _tmp302_;
				ValaDataType* _tmp303_;
				gboolean _tmp314_ = FALSE;
				ValaParameter* _tmp315_;
				ValaDataType* _tmp316_;
				ValaDataType* _tmp317_;
				ValaStruct* st = NULL;
				ValaParameter* _tmp334_;
				ValaDataType* _tmp335_;
				ValaDataType* _tmp336_;
				ValaTypeSymbol* _tmp337_;
				ValaTypeSymbol* _tmp338_;
				ValaStruct* _tmp339_;
				gboolean _tmp340_ = FALSE;
				ValaStruct* _tmp341_;
				_tmp301_ = param;
				_tmp302_ = vala_variable_get_variable_type ((ValaVariable*) _tmp301_);
				_tmp303_ = _tmp302_;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp303_, VALA_TYPE_OBJECT_TYPE)) {
					ValaParameter* _tmp304_;
					ValaDataType* _tmp305_;
					ValaDataType* _tmp306_;
					ValaTypeSymbol* _tmp307_;
					ValaTypeSymbol* _tmp308_;
					gchar* _tmp309_;
					gchar* _tmp310_;
					_tmp304_ = param;
					_tmp305_ = vala_variable_get_variable_type ((ValaVariable*) _tmp304_);
					_tmp306_ = _tmp305_;
					_tmp307_ = vala_data_type_get_data_type (_tmp306_);
					_tmp308_ = _tmp307_;
					_tmp309_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp308_);
					_tmp310_ = _tmp309_;
					_tmp300_ = g_strcmp0 (_tmp310_, "GLib.Cancellable") == 0;
					_g_free0 (_tmp310_);
				} else {
					_tmp300_ = FALSE;
				}
				if (_tmp300_) {
					ValaCCodeFunctionCall* _tmp311_;
					ValaCCodeConstant* _tmp312_;
					ValaCCodeConstant* _tmp313_;
					_tmp311_ = ccall;
					_tmp312_ = vala_ccode_constant_new ("NULL");
					_tmp313_ = _tmp312_;
					vala_ccode_function_call_add_argument (_tmp311_, (ValaCCodeExpression*) _tmp313_);
					_vala_ccode_node_unref0 (_tmp313_);
					_g_free0 (param_name);
					_vala_code_node_unref0 (param);
					continue;
				}
				_tmp315_ = param;
				_tmp316_ = vala_variable_get_variable_type ((ValaVariable*) _tmp315_);
				_tmp317_ = _tmp316_;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp317_, VALA_TYPE_OBJECT_TYPE)) {
					ValaParameter* _tmp318_;
					ValaDataType* _tmp319_;
					ValaDataType* _tmp320_;
					ValaTypeSymbol* _tmp321_;
					ValaTypeSymbol* _tmp322_;
					gchar* _tmp323_;
					gchar* _tmp324_;
					_tmp318_ = param;
					_tmp319_ = vala_variable_get_variable_type ((ValaVariable*) _tmp318_);
					_tmp320_ = _tmp319_;
					_tmp321_ = vala_data_type_get_data_type (_tmp320_);
					_tmp322_ = _tmp321_;
					_tmp323_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp322_);
					_tmp324_ = _tmp323_;
					_tmp314_ = g_strcmp0 (_tmp324_, "GLib.BusName") == 0;
					_g_free0 (_tmp324_);
				} else {
					_tmp314_ = FALSE;
				}
				if (_tmp314_) {
					ValaCCodeFunctionCall* sender = NULL;
					ValaCCodeIdentifier* _tmp325_;
					ValaCCodeIdentifier* _tmp326_;
					ValaCCodeFunctionCall* _tmp327_;
					ValaCCodeFunctionCall* _tmp328_;
					ValaCCodeFunctionCall* _tmp329_;
					ValaCCodeIdentifier* _tmp330_;
					ValaCCodeIdentifier* _tmp331_;
					ValaCCodeFunctionCall* _tmp332_;
					ValaCCodeFunctionCall* _tmp333_;
					_tmp325_ = vala_ccode_identifier_new ("g_dbus_method_invocation_get_sender");
					_tmp326_ = _tmp325_;
					_tmp327_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp326_);
					_tmp328_ = _tmp327_;
					_vala_ccode_node_unref0 (_tmp326_);
					sender = _tmp328_;
					_tmp329_ = sender;
					_tmp330_ = vala_ccode_identifier_new ("invocation");
					_tmp331_ = _tmp330_;
					vala_ccode_function_call_add_argument (_tmp329_, (ValaCCodeExpression*) _tmp331_);
					_vala_ccode_node_unref0 (_tmp331_);
					_tmp332_ = ccall;
					_tmp333_ = sender;
					vala_ccode_function_call_add_argument (_tmp332_, (ValaCCodeExpression*) _tmp333_);
					_vala_ccode_node_unref0 (sender);
					_g_free0 (param_name);
					_vala_code_node_unref0 (param);
					continue;
				}
				_tmp334_ = param;
				_tmp335_ = vala_variable_get_variable_type ((ValaVariable*) _tmp334_);
				_tmp336_ = _tmp335_;
				_tmp337_ = vala_data_type_get_data_type (_tmp336_);
				_tmp338_ = _tmp337_;
				_tmp339_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp338_, VALA_TYPE_STRUCT) ? ((ValaStruct*) _tmp338_) : NULL);
				st = _tmp339_;
				_tmp341_ = st;
				if (_tmp341_ != NULL) {
					ValaStruct* _tmp342_;
					gboolean _tmp343_;
					_tmp342_ = st;
					_tmp343_ = vala_struct_is_simple_type (_tmp342_);
					_tmp340_ = !_tmp343_;
				} else {
					_tmp340_ = FALSE;
				}
				if (_tmp340_) {
					ValaCCodeFunctionCall* _tmp344_;
					const gchar* _tmp345_;
					ValaCCodeIdentifier* _tmp346_;
					ValaCCodeIdentifier* _tmp347_;
					ValaCCodeUnaryExpression* _tmp348_;
					ValaCCodeUnaryExpression* _tmp349_;
					_tmp344_ = ccall;
					_tmp345_ = param_name;
					_tmp346_ = vala_ccode_identifier_new (_tmp345_);
					_tmp347_ = _tmp346_;
					_tmp348_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp347_);
					_tmp349_ = _tmp348_;
					vala_ccode_function_call_add_argument (_tmp344_, (ValaCCodeExpression*) _tmp349_);
					_vala_ccode_node_unref0 (_tmp349_);
					_vala_ccode_node_unref0 (_tmp347_);
				} else {
					ValaCCodeFunctionCall* _tmp350_;
					const gchar* _tmp351_;
					ValaCCodeIdentifier* _tmp352_;
					ValaCCodeIdentifier* _tmp353_;
					_tmp350_ = ccall;
					_tmp351_ = param_name;
					_tmp352_ = vala_ccode_identifier_new (_tmp351_);
					_tmp353_ = _tmp352_;
					vala_ccode_function_call_add_argument (_tmp350_, (ValaCCodeExpression*) _tmp353_);
					_vala_ccode_node_unref0 (_tmp353_);
				}
				_vala_code_node_unref0 (st);
			} else {
				gboolean _tmp354_ = FALSE;
				ValaParameter* _tmp355_;
				ValaParameterDirection _tmp356_;
				ValaParameterDirection _tmp357_;
				_tmp355_ = param;
				_tmp356_ = vala_parameter_get_direction (_tmp355_);
				_tmp357_ = _tmp356_;
				if (_tmp357_ == VALA_PARAMETER_DIRECTION_OUT) {
					gboolean _tmp358_ = FALSE;
					ValaMethod* _tmp359_;
					gboolean _tmp360_;
					gboolean _tmp361_;
					_tmp359_ = m;
					_tmp360_ = vala_method_get_coroutine (_tmp359_);
					_tmp361_ = _tmp360_;
					if (!_tmp361_) {
						_tmp358_ = TRUE;
					} else {
						gboolean _tmp362_;
						_tmp362_ = ready;
						_tmp358_ = _tmp362_;
					}
					_tmp354_ = _tmp358_;
				} else {
					_tmp354_ = FALSE;
				}
				if (_tmp354_) {
					ValaCCodeFunctionCall* _tmp363_;
					const gchar* _tmp364_;
					ValaCCodeIdentifier* _tmp365_;
					ValaCCodeIdentifier* _tmp366_;
					ValaCCodeUnaryExpression* _tmp367_;
					ValaCCodeUnaryExpression* _tmp368_;
					_tmp363_ = ccall;
					_tmp364_ = param_name;
					_tmp365_ = vala_ccode_identifier_new (_tmp364_);
					_tmp366_ = _tmp365_;
					_tmp367_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp366_);
					_tmp368_ = _tmp367_;
					vala_ccode_function_call_add_argument (_tmp363_, (ValaCCodeExpression*) _tmp368_);
					_vala_ccode_node_unref0 (_tmp368_);
					_vala_ccode_node_unref0 (_tmp366_);
				}
			}
			_tmp369_ = param;
			_tmp370_ = vala_variable_get_variable_type ((ValaVariable*) _tmp369_);
			_tmp371_ = _tmp370_;
			_tmp372_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp371_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp371_) : NULL);
			array_type = _tmp372_;
			_tmp373_ = array_type;
			if (_tmp373_ != NULL) {
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp374_ = FALSE;
						_tmp374_ = TRUE;
						while (TRUE) {
							gint _tmp376_;
							ValaArrayType* _tmp377_;
							gint _tmp378_;
							gint _tmp379_;
							gchar* length_cname = NULL;
							ValaParameter* _tmp380_;
							gint _tmp381_;
							gchar* _tmp382_;
							gboolean _tmp383_ = FALSE;
							ValaParameter* _tmp384_;
							ValaParameterDirection _tmp385_;
							ValaParameterDirection _tmp386_;
							if (!_tmp374_) {
								gint _tmp375_;
								_tmp375_ = dim;
								dim = _tmp375_ + 1;
							}
							_tmp374_ = FALSE;
							_tmp376_ = dim;
							_tmp377_ = array_type;
							_tmp378_ = vala_array_type_get_rank (_tmp377_);
							_tmp379_ = _tmp378_;
							if (!(_tmp376_ <= _tmp379_)) {
								break;
							}
							_tmp380_ = param;
							_tmp381_ = dim;
							_tmp382_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, _tmp380_, _tmp381_);
							length_cname = _tmp382_;
							_tmp384_ = param;
							_tmp385_ = vala_parameter_get_direction (_tmp384_);
							_tmp386_ = _tmp385_;
							if (_tmp386_ == VALA_PARAMETER_DIRECTION_IN) {
								gboolean _tmp387_;
								_tmp387_ = ready;
								_tmp383_ = !_tmp387_;
							} else {
								_tmp383_ = FALSE;
							}
							if (_tmp383_) {
								ValaCCodeFunctionCall* _tmp388_;
								const gchar* _tmp389_;
								ValaCCodeIdentifier* _tmp390_;
								ValaCCodeIdentifier* _tmp391_;
								_tmp388_ = ccall;
								_tmp389_ = length_cname;
								_tmp390_ = vala_ccode_identifier_new (_tmp389_);
								_tmp391_ = _tmp390_;
								vala_ccode_function_call_add_argument (_tmp388_, (ValaCCodeExpression*) _tmp391_);
								_vala_ccode_node_unref0 (_tmp391_);
							} else {
								gboolean _tmp392_ = FALSE;
								gboolean _tmp393_ = FALSE;
								ValaParameter* _tmp394_;
								ValaParameterDirection _tmp395_;
								ValaParameterDirection _tmp396_;
								_tmp394_ = param;
								_tmp395_ = vala_parameter_get_direction (_tmp394_);
								_tmp396_ = _tmp395_;
								if (_tmp396_ == VALA_PARAMETER_DIRECTION_OUT) {
									gboolean _tmp397_;
									_tmp397_ = no_reply;
									_tmp393_ = !_tmp397_;
								} else {
									_tmp393_ = FALSE;
								}
								if (_tmp393_) {
									gboolean _tmp398_ = FALSE;
									ValaMethod* _tmp399_;
									gboolean _tmp400_;
									gboolean _tmp401_;
									_tmp399_ = m;
									_tmp400_ = vala_method_get_coroutine (_tmp399_);
									_tmp401_ = _tmp400_;
									if (!_tmp401_) {
										_tmp398_ = TRUE;
									} else {
										gboolean _tmp402_;
										_tmp402_ = ready;
										_tmp398_ = _tmp402_;
									}
									_tmp392_ = _tmp398_;
								} else {
									_tmp392_ = FALSE;
								}
								if (_tmp392_) {
									ValaCCodeFunctionCall* _tmp403_;
									const gchar* _tmp404_;
									ValaCCodeIdentifier* _tmp405_;
									ValaCCodeIdentifier* _tmp406_;
									ValaCCodeUnaryExpression* _tmp407_;
									ValaCCodeUnaryExpression* _tmp408_;
									_tmp403_ = ccall;
									_tmp404_ = length_cname;
									_tmp405_ = vala_ccode_identifier_new (_tmp404_);
									_tmp406_ = _tmp405_;
									_tmp407_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp406_);
									_tmp408_ = _tmp407_;
									vala_ccode_function_call_add_argument (_tmp403_, (ValaCCodeExpression*) _tmp408_);
									_vala_ccode_node_unref0 (_tmp408_);
									_vala_ccode_node_unref0 (_tmp406_);
								}
							}
							_g_free0 (length_cname);
						}
					}
				}
			}
			_vala_code_node_unref0 (array_type);
			_g_free0 (param_name);
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	_tmp410_ = m;
	_tmp411_ = vala_method_get_coroutine (_tmp410_);
	_tmp412_ = _tmp411_;
	if (!_tmp412_) {
		_tmp409_ = TRUE;
	} else {
		gboolean _tmp413_;
		_tmp413_ = ready;
		_tmp409_ = _tmp413_;
	}
	if (_tmp409_) {
		ValaMethod* _tmp414_;
		ValaDataType* _tmp415_;
		ValaDataType* _tmp416_;
		_tmp414_ = m;
		_tmp415_ = vala_callable_get_return_type ((ValaCallable*) _tmp414_);
		_tmp416_ = _tmp415_;
		if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp416_, VALA_TYPE_VOID_TYPE)) {
			ValaMethod* _tmp417_;
			ValaDataType* _tmp418_;
			ValaDataType* _tmp419_;
			gboolean _tmp420_;
			_tmp417_ = m;
			_tmp418_ = vala_callable_get_return_type ((ValaCallable*) _tmp417_);
			_tmp419_ = _tmp418_;
			_tmp420_ = vala_data_type_is_real_non_null_struct_type (_tmp419_);
			if (_tmp420_) {
				ValaCCodeFunctionCall* _tmp421_;
				ValaCCodeIdentifier* _tmp422_;
				ValaCCodeIdentifier* _tmp423_;
				ValaCCodeUnaryExpression* _tmp424_;
				ValaCCodeUnaryExpression* _tmp425_;
				_tmp421_ = ccall;
				_tmp422_ = vala_ccode_identifier_new ("result");
				_tmp423_ = _tmp422_;
				_tmp424_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp423_);
				_tmp425_ = _tmp424_;
				vala_ccode_function_call_add_argument (_tmp421_, (ValaCCodeExpression*) _tmp425_);
				_vala_ccode_node_unref0 (_tmp425_);
				_vala_ccode_node_unref0 (_tmp423_);
			} else {
				ValaArrayType* array_type = NULL;
				ValaMethod* _tmp426_;
				ValaDataType* _tmp427_;
				ValaDataType* _tmp428_;
				ValaArrayType* _tmp429_;
				ValaArrayType* _tmp430_;
				_tmp426_ = m;
				_tmp427_ = vala_callable_get_return_type ((ValaCallable*) _tmp426_);
				_tmp428_ = _tmp427_;
				_tmp429_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp428_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp428_) : NULL);
				array_type = _tmp429_;
				_tmp430_ = array_type;
				if (_tmp430_ != NULL) {
					{
						gint dim = 0;
						dim = 1;
						{
							gboolean _tmp431_ = FALSE;
							_tmp431_ = TRUE;
							while (TRUE) {
								gint _tmp433_;
								ValaArrayType* _tmp434_;
								gint _tmp435_;
								gint _tmp436_;
								gchar* length_cname = NULL;
								gint _tmp437_;
								gchar* _tmp438_;
								ValaCCodeFunctionCall* _tmp439_;
								const gchar* _tmp440_;
								ValaCCodeIdentifier* _tmp441_;
								ValaCCodeIdentifier* _tmp442_;
								ValaCCodeUnaryExpression* _tmp443_;
								ValaCCodeUnaryExpression* _tmp444_;
								if (!_tmp431_) {
									gint _tmp432_;
									_tmp432_ = dim;
									dim = _tmp432_ + 1;
								}
								_tmp431_ = FALSE;
								_tmp433_ = dim;
								_tmp434_ = array_type;
								_tmp435_ = vala_array_type_get_rank (_tmp434_);
								_tmp436_ = _tmp435_;
								if (!(_tmp433_ <= _tmp436_)) {
									break;
								}
								_tmp437_ = dim;
								_tmp438_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", _tmp437_);
								length_cname = _tmp438_;
								_tmp439_ = ccall;
								_tmp440_ = length_cname;
								_tmp441_ = vala_ccode_identifier_new (_tmp440_);
								_tmp442_ = _tmp441_;
								_tmp443_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp442_);
								_tmp444_ = _tmp443_;
								vala_ccode_function_call_add_argument (_tmp439_, (ValaCCodeExpression*) _tmp444_);
								_vala_ccode_node_unref0 (_tmp444_);
								_vala_ccode_node_unref0 (_tmp442_);
								_g_free0 (length_cname);
							}
						}
					}
				}
				_vala_code_node_unref0 (array_type);
			}
		}
	}
	_tmp446_ = m;
	_tmp447_ = vala_method_get_coroutine (_tmp446_);
	_tmp448_ = _tmp447_;
	if (_tmp448_) {
		gboolean _tmp449_;
		_tmp449_ = ready;
		_tmp445_ = !_tmp449_;
	} else {
		_tmp445_ = FALSE;
	}
	if (_tmp445_) {
		ValaCCodeFunctionCall* _tmp450_;
		const gchar* _tmp451_;
		gchar* _tmp452_;
		gchar* _tmp453_;
		ValaCCodeIdentifier* _tmp454_;
		ValaCCodeIdentifier* _tmp455_;
		ValaCCodeCastExpression* _tmp456_;
		ValaCCodeCastExpression* _tmp457_;
		ValaCCodeFunctionCall* _tmp458_;
		ValaCCodeIdentifier* _tmp459_;
		ValaCCodeIdentifier* _tmp460_;
		_tmp450_ = ccall;
		_tmp451_ = wrapper_name;
		_tmp452_ = g_strconcat (_tmp451_, "_ready", NULL);
		_tmp453_ = _tmp452_;
		_tmp454_ = vala_ccode_identifier_new (_tmp453_);
		_tmp455_ = _tmp454_;
		_tmp456_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp455_, "GAsyncReadyCallback");
		_tmp457_ = _tmp456_;
		vala_ccode_function_call_add_argument (_tmp450_, (ValaCCodeExpression*) _tmp457_);
		_vala_ccode_node_unref0 (_tmp457_);
		_vala_ccode_node_unref0 (_tmp455_);
		_g_free0 (_tmp453_);
		_tmp458_ = ccall;
		_tmp459_ = vala_ccode_identifier_new ("invocation");
		_tmp460_ = _tmp459_;
		vala_ccode_function_call_add_argument (_tmp458_, (ValaCCodeExpression*) _tmp460_);
		_vala_ccode_node_unref0 (_tmp460_);
	}
	_tmp462_ = m;
	_tmp463_ = vala_method_get_coroutine (_tmp462_);
	_tmp464_ = _tmp463_;
	if (!_tmp464_) {
		_tmp461_ = TRUE;
	} else {
		gboolean _tmp465_;
		_tmp465_ = ready;
		_tmp461_ = _tmp465_;
	}
	if (_tmp461_) {
		ValaMethod* _tmp466_;
		ValaList* _tmp467_;
		ValaList* _tmp468_;
		gint _tmp469_;
		gint _tmp470_;
		gboolean _tmp471_;
		_tmp466_ = m;
		_tmp467_ = vala_code_node_get_error_types ((ValaCodeNode*) _tmp466_);
		_tmp468_ = _tmp467_;
		_tmp469_ = vala_collection_get_size ((ValaCollection*) _tmp468_);
		_tmp470_ = _tmp469_;
		_tmp471_ = _tmp470_ > 0;
		_vala_iterable_unref0 (_tmp468_);
		if (_tmp471_) {
			ValaCCodeFunctionCall* _tmp472_;
			ValaCCodeIdentifier* _tmp473_;
			ValaCCodeIdentifier* _tmp474_;
			ValaCCodeUnaryExpression* _tmp475_;
			ValaCCodeUnaryExpression* _tmp476_;
			_tmp472_ = ccall;
			_tmp473_ = vala_ccode_identifier_new ("error");
			_tmp474_ = _tmp473_;
			_tmp475_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp474_);
			_tmp476_ = _tmp475_;
			vala_ccode_function_call_add_argument (_tmp472_, (ValaCCodeExpression*) _tmp476_);
			_vala_ccode_node_unref0 (_tmp476_);
			_vala_ccode_node_unref0 (_tmp474_);
		}
	}
	_tmp478_ = no_reply;
	if (!_tmp478_) {
		gboolean _tmp479_ = FALSE;
		ValaMethod* _tmp480_;
		gboolean _tmp481_;
		gboolean _tmp482_;
		_tmp480_ = m;
		_tmp481_ = vala_method_get_coroutine (_tmp480_);
		_tmp482_ = _tmp481_;
		if (!_tmp482_) {
			_tmp479_ = TRUE;
		} else {
			gboolean _tmp483_;
			_tmp483_ = ready;
			_tmp479_ = _tmp483_;
		}
		_tmp477_ = _tmp479_;
	} else {
		_tmp477_ = FALSE;
	}
	if (_tmp477_) {
		gboolean _tmp484_ = FALSE;
		ValaMethod* _tmp485_;
		ValaDataType* _tmp486_;
		ValaDataType* _tmp487_;
		ValaMethod* _tmp500_;
		ValaList* _tmp501_;
		ValaList* _tmp502_;
		gint _tmp503_;
		gint _tmp504_;
		gboolean _tmp505_;
		ValaCCodeFunction* _tmp530_;
		ValaCCodeFunction* _tmp531_;
		ValaCCodeConstant* _tmp532_;
		ValaCCodeConstant* _tmp533_;
		ValaCCodeVariableDeclarator* _tmp534_;
		ValaCCodeVariableDeclarator* _tmp535_;
		ValaCCodeFunctionCall* message_expr = NULL;
		ValaCCodeIdentifier* _tmp536_;
		ValaCCodeIdentifier* _tmp537_;
		ValaCCodeFunctionCall* _tmp538_;
		ValaCCodeFunctionCall* _tmp539_;
		ValaCCodeFunctionCall* _tmp540_;
		ValaCCodeIdentifier* _tmp541_;
		ValaCCodeIdentifier* _tmp542_;
		ValaCCodeIdentifier* _tmp543_;
		ValaCCodeIdentifier* _tmp544_;
		ValaCCodeFunctionCall* _tmp545_;
		ValaCCodeFunctionCall* _tmp546_;
		ValaCCodeFunctionCall* _tmp547_;
		ValaCCodeFunction* _tmp548_;
		ValaCCodeFunction* _tmp549_;
		ValaCCodeIdentifier* _tmp550_;
		ValaCCodeIdentifier* _tmp551_;
		ValaCCodeFunctionCall* _tmp552_;
		ValaCCodeFunction* _tmp553_;
		ValaCCodeFunction* _tmp554_;
		ValaCCodeVariableDeclarator* _tmp555_;
		ValaCCodeVariableDeclarator* _tmp556_;
		ValaCCodeFunction* _tmp557_;
		ValaCCodeFunction* _tmp558_;
		ValaCCodeVariableDeclarator* _tmp559_;
		ValaCCodeVariableDeclarator* _tmp560_;
		ValaCCodeFunctionCall* builder_init = NULL;
		ValaCCodeIdentifier* _tmp561_;
		ValaCCodeIdentifier* _tmp562_;
		ValaCCodeFunctionCall* _tmp563_;
		ValaCCodeFunctionCall* _tmp564_;
		ValaCCodeFunctionCall* _tmp565_;
		ValaCCodeIdentifier* _tmp566_;
		ValaCCodeIdentifier* _tmp567_;
		ValaCCodeUnaryExpression* _tmp568_;
		ValaCCodeUnaryExpression* _tmp569_;
		ValaCCodeFunctionCall* _tmp570_;
		ValaCCodeIdentifier* _tmp571_;
		ValaCCodeIdentifier* _tmp572_;
		ValaCCodeFunction* _tmp573_;
		ValaCCodeFunction* _tmp574_;
		ValaCCodeFunctionCall* _tmp575_;
		gboolean _tmp576_;
		ValaMethod* _tmp651_;
		ValaDataType* _tmp652_;
		ValaDataType* _tmp653_;
		ValaCCodeFunctionCall* builder_end = NULL;
		ValaCCodeIdentifier* _tmp743_;
		ValaCCodeIdentifier* _tmp744_;
		ValaCCodeFunctionCall* _tmp745_;
		ValaCCodeFunctionCall* _tmp746_;
		ValaCCodeFunctionCall* _tmp747_;
		ValaCCodeIdentifier* _tmp748_;
		ValaCCodeIdentifier* _tmp749_;
		ValaCCodeUnaryExpression* _tmp750_;
		ValaCCodeUnaryExpression* _tmp751_;
		ValaCCodeFunction* _tmp752_;
		ValaCCodeFunction* _tmp753_;
		ValaCCodeIdentifier* _tmp754_;
		ValaCCodeIdentifier* _tmp755_;
		ValaCCodeFunctionCall* _tmp756_;
		ValaCCodeFunctionCall* set_body = NULL;
		ValaCCodeIdentifier* _tmp757_;
		ValaCCodeIdentifier* _tmp758_;
		ValaCCodeFunctionCall* _tmp759_;
		ValaCCodeFunctionCall* _tmp760_;
		ValaCCodeFunctionCall* _tmp761_;
		ValaCCodeIdentifier* _tmp762_;
		ValaCCodeIdentifier* _tmp763_;
		ValaCCodeFunctionCall* _tmp764_;
		ValaCCodeIdentifier* _tmp765_;
		ValaCCodeIdentifier* _tmp766_;
		ValaCCodeFunction* _tmp767_;
		ValaCCodeFunction* _tmp768_;
		ValaCCodeFunctionCall* _tmp769_;
		gboolean _tmp770_;
		_tmp485_ = m;
		_tmp486_ = vala_callable_get_return_type ((ValaCallable*) _tmp485_);
		_tmp487_ = _tmp486_;
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp487_, VALA_TYPE_VOID_TYPE)) {
			_tmp484_ = TRUE;
		} else {
			ValaMethod* _tmp488_;
			ValaDataType* _tmp489_;
			ValaDataType* _tmp490_;
			gboolean _tmp491_;
			_tmp488_ = m;
			_tmp489_ = vala_callable_get_return_type ((ValaCallable*) _tmp488_);
			_tmp490_ = _tmp489_;
			_tmp491_ = vala_data_type_is_real_non_null_struct_type (_tmp490_);
			_tmp484_ = _tmp491_;
		}
		if (_tmp484_) {
			ValaCCodeFunction* _tmp492_;
			ValaCCodeFunction* _tmp493_;
			ValaCCodeFunctionCall* _tmp494_;
			_tmp492_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp493_ = _tmp492_;
			_tmp494_ = ccall;
			vala_ccode_function_add_expression (_tmp493_, (ValaCCodeExpression*) _tmp494_);
		} else {
			ValaCCodeFunction* _tmp495_;
			ValaCCodeFunction* _tmp496_;
			ValaCCodeIdentifier* _tmp497_;
			ValaCCodeIdentifier* _tmp498_;
			ValaCCodeFunctionCall* _tmp499_;
			_tmp495_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp496_ = _tmp495_;
			_tmp497_ = vala_ccode_identifier_new ("result");
			_tmp498_ = _tmp497_;
			_tmp499_ = ccall;
			vala_ccode_function_add_assignment (_tmp496_, (ValaCCodeExpression*) _tmp498_, (ValaCCodeExpression*) _tmp499_);
			_vala_ccode_node_unref0 (_tmp498_);
		}
		_tmp500_ = m;
		_tmp501_ = vala_code_node_get_error_types ((ValaCodeNode*) _tmp500_);
		_tmp502_ = _tmp501_;
		_tmp503_ = vala_collection_get_size ((ValaCollection*) _tmp502_);
		_tmp504_ = _tmp503_;
		_tmp505_ = _tmp504_ > 0;
		_vala_iterable_unref0 (_tmp502_);
		if (_tmp505_) {
			ValaCCodeFunction* _tmp506_;
			ValaCCodeFunction* _tmp507_;
			ValaCCodeIdentifier* _tmp508_;
			ValaCCodeIdentifier* _tmp509_;
			ValaCCodeFunctionCall* return_error = NULL;
			ValaCCodeIdentifier* _tmp510_;
			ValaCCodeIdentifier* _tmp511_;
			ValaCCodeFunctionCall* _tmp512_;
			ValaCCodeFunctionCall* _tmp513_;
			ValaCCodeFunctionCall* _tmp514_;
			ValaCCodeIdentifier* _tmp515_;
			ValaCCodeIdentifier* _tmp516_;
			ValaCCodeFunctionCall* _tmp517_;
			ValaCCodeIdentifier* _tmp518_;
			ValaCCodeIdentifier* _tmp519_;
			ValaCCodeFunction* _tmp520_;
			ValaCCodeFunction* _tmp521_;
			ValaCCodeFunctionCall* _tmp522_;
			gboolean _tmp523_;
			ValaCCodeFunction* _tmp528_;
			ValaCCodeFunction* _tmp529_;
			_tmp506_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp507_ = _tmp506_;
			_tmp508_ = vala_ccode_identifier_new ("error");
			_tmp509_ = _tmp508_;
			vala_ccode_function_open_if (_tmp507_, (ValaCCodeExpression*) _tmp509_);
			_vala_ccode_node_unref0 (_tmp509_);
			_tmp510_ = vala_ccode_identifier_new ("g_dbus_method_invocation_return_gerror");
			_tmp511_ = _tmp510_;
			_tmp512_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp511_);
			_tmp513_ = _tmp512_;
			_vala_ccode_node_unref0 (_tmp511_);
			return_error = _tmp513_;
			_tmp514_ = return_error;
			_tmp515_ = vala_ccode_identifier_new ("invocation");
			_tmp516_ = _tmp515_;
			vala_ccode_function_call_add_argument (_tmp514_, (ValaCCodeExpression*) _tmp516_);
			_vala_ccode_node_unref0 (_tmp516_);
			_tmp517_ = return_error;
			_tmp518_ = vala_ccode_identifier_new ("error");
			_tmp519_ = _tmp518_;
			vala_ccode_function_call_add_argument (_tmp517_, (ValaCCodeExpression*) _tmp519_);
			_vala_ccode_node_unref0 (_tmp519_);
			_tmp520_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp521_ = _tmp520_;
			_tmp522_ = return_error;
			vala_ccode_function_add_expression (_tmp521_, (ValaCCodeExpression*) _tmp522_);
			_tmp523_ = need_goto_label;
			if (_tmp523_) {
				ValaCCodeFunction* _tmp524_;
				ValaCCodeFunction* _tmp525_;
				_tmp524_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp525_ = _tmp524_;
				vala_ccode_function_add_goto (_tmp525_, "_error");
			} else {
				ValaCCodeFunction* _tmp526_;
				ValaCCodeFunction* _tmp527_;
				_tmp526_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp527_ = _tmp526_;
				vala_ccode_function_add_return (_tmp527_, NULL);
			}
			_tmp528_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp529_ = _tmp528_;
			vala_ccode_function_close (_tmp529_);
			_vala_ccode_node_unref0 (return_error);
		}
		_tmp530_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp531_ = _tmp530_;
		_tmp532_ = vala_ccode_constant_new ("NULL");
		_tmp533_ = _tmp532_;
		_tmp534_ = vala_ccode_variable_declarator_new_zero ("_reply_message", (ValaCCodeExpression*) _tmp533_, NULL);
		_tmp535_ = _tmp534_;
		vala_ccode_function_add_declaration (_tmp531_, "GDBusMessage*", (ValaCCodeDeclarator*) _tmp535_, 0);
		_vala_ccode_node_unref0 (_tmp535_);
		_vala_ccode_node_unref0 (_tmp533_);
		_tmp536_ = vala_ccode_identifier_new ("g_dbus_method_invocation_get_message");
		_tmp537_ = _tmp536_;
		_tmp538_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp537_);
		_tmp539_ = _tmp538_;
		_vala_ccode_node_unref0 (_tmp537_);
		message_expr = _tmp539_;
		_tmp540_ = message_expr;
		_tmp541_ = vala_ccode_identifier_new ("invocation");
		_tmp542_ = _tmp541_;
		vala_ccode_function_call_add_argument (_tmp540_, (ValaCCodeExpression*) _tmp542_);
		_vala_ccode_node_unref0 (_tmp542_);
		_tmp543_ = vala_ccode_identifier_new ("g_dbus_message_new_method_reply");
		_tmp544_ = _tmp543_;
		_tmp545_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp544_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp545_;
		_vala_ccode_node_unref0 (_tmp544_);
		_tmp546_ = ccall;
		_tmp547_ = message_expr;
		vala_ccode_function_call_add_argument (_tmp546_, (ValaCCodeExpression*) _tmp547_);
		_tmp548_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp549_ = _tmp548_;
		_tmp550_ = vala_ccode_identifier_new ("_reply_message");
		_tmp551_ = _tmp550_;
		_tmp552_ = ccall;
		vala_ccode_function_add_assignment (_tmp549_, (ValaCCodeExpression*) _tmp551_, (ValaCCodeExpression*) _tmp552_);
		_vala_ccode_node_unref0 (_tmp551_);
		_tmp553_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp554_ = _tmp553_;
		_tmp555_ = vala_ccode_variable_declarator_new ("_reply", NULL, NULL);
		_tmp556_ = _tmp555_;
		vala_ccode_function_add_declaration (_tmp554_, "GVariant*", (ValaCCodeDeclarator*) _tmp556_, 0);
		_vala_ccode_node_unref0 (_tmp556_);
		_tmp557_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp558_ = _tmp557_;
		_tmp559_ = vala_ccode_variable_declarator_new ("_reply_builder", NULL, NULL);
		_tmp560_ = _tmp559_;
		vala_ccode_function_add_declaration (_tmp558_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp560_, 0);
		_vala_ccode_node_unref0 (_tmp560_);
		_tmp561_ = vala_ccode_identifier_new ("g_variant_builder_init");
		_tmp562_ = _tmp561_;
		_tmp563_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp562_);
		_tmp564_ = _tmp563_;
		_vala_ccode_node_unref0 (_tmp562_);
		builder_init = _tmp564_;
		_tmp565_ = builder_init;
		_tmp566_ = vala_ccode_identifier_new ("_reply_builder");
		_tmp567_ = _tmp566_;
		_tmp568_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp567_);
		_tmp569_ = _tmp568_;
		vala_ccode_function_call_add_argument (_tmp565_, (ValaCCodeExpression*) _tmp569_);
		_vala_ccode_node_unref0 (_tmp569_);
		_vala_ccode_node_unref0 (_tmp567_);
		_tmp570_ = builder_init;
		_tmp571_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
		_tmp572_ = _tmp571_;
		vala_ccode_function_call_add_argument (_tmp570_, (ValaCCodeExpression*) _tmp572_);
		_vala_ccode_node_unref0 (_tmp572_);
		_tmp573_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp574_ = _tmp573_;
		_tmp575_ = builder_init;
		vala_ccode_function_add_expression (_tmp574_, (ValaCCodeExpression*) _tmp575_);
		_tmp576_ = uses_fd;
		if (_tmp576_) {
			ValaCCodeFunction* _tmp577_;
			ValaCCodeFunction* _tmp578_;
			ValaCCodeIdentifier* _tmp579_;
			ValaCCodeIdentifier* _tmp580_;
			ValaCCodeIdentifier* _tmp581_;
			ValaCCodeIdentifier* _tmp582_;
			ValaCCodeFunctionCall* _tmp583_;
			ValaCCodeFunctionCall* _tmp584_;
			_tmp577_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp578_ = _tmp577_;
			_tmp579_ = vala_ccode_identifier_new ("_fd_list");
			_tmp580_ = _tmp579_;
			_tmp581_ = vala_ccode_identifier_new ("g_unix_fd_list_new");
			_tmp582_ = _tmp581_;
			_tmp583_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp582_);
			_tmp584_ = _tmp583_;
			vala_ccode_function_add_assignment (_tmp578_, (ValaCCodeExpression*) _tmp580_, (ValaCCodeExpression*) _tmp584_);
			_vala_ccode_node_unref0 (_tmp584_);
			_vala_ccode_node_unref0 (_tmp582_);
			_vala_ccode_node_unref0 (_tmp580_);
		}
		{
			ValaList* _param_list = NULL;
			ValaMethod* _tmp585_;
			ValaList* _tmp586_;
			gint _param_size = 0;
			ValaList* _tmp587_;
			gint _tmp588_;
			gint _tmp589_;
			gint _param_index = 0;
			_tmp585_ = m;
			_tmp586_ = vala_callable_get_parameters ((ValaCallable*) _tmp585_);
			_param_list = _tmp586_;
			_tmp587_ = _param_list;
			_tmp588_ = vala_collection_get_size ((ValaCollection*) _tmp587_);
			_tmp589_ = _tmp588_;
			_param_size = _tmp589_;
			_param_index = -1;
			while (TRUE) {
				gint _tmp590_;
				gint _tmp591_;
				gint _tmp592_;
				ValaParameter* param = NULL;
				ValaList* _tmp593_;
				gint _tmp594_;
				gpointer _tmp595_;
				ValaParameter* _tmp596_;
				ValaParameterDirection _tmp597_;
				ValaParameterDirection _tmp598_;
				gchar* param_name = NULL;
				ValaParameter* _tmp599_;
				const gchar* _tmp600_;
				const gchar* _tmp601_;
				gchar* _tmp602_;
				ValaDataType* owned_type = NULL;
				ValaParameter* _tmp603_;
				ValaDataType* _tmp604_;
				ValaDataType* _tmp605_;
				ValaDataType* _tmp606_;
				ValaDataType* _tmp607_;
				ValaCCodeFunction* _tmp608_;
				ValaCCodeFunction* _tmp609_;
				ValaDataType* _tmp610_;
				gchar* _tmp611_;
				gchar* _tmp612_;
				const gchar* _tmp613_;
				ValaParameter* _tmp614_;
				ValaDataType* _tmp615_;
				ValaDataType* _tmp616_;
				ValaCCodeExpression* _tmp617_;
				ValaCCodeExpression* _tmp618_;
				ValaCCodeVariableDeclarator* _tmp619_;
				ValaCCodeVariableDeclarator* _tmp620_;
				ValaArrayType* array_type = NULL;
				ValaParameter* _tmp621_;
				ValaDataType* _tmp622_;
				ValaDataType* _tmp623_;
				ValaArrayType* _tmp624_;
				ValaArrayType* _tmp625_;
				ValaParameter* _tmp642_;
				ValaDataType* _tmp643_;
				ValaDataType* _tmp644_;
				ValaCCodeIdentifier* _tmp645_;
				ValaCCodeIdentifier* _tmp646_;
				const gchar* _tmp647_;
				ValaCCodeIdentifier* _tmp648_;
				ValaCCodeIdentifier* _tmp649_;
				ValaParameter* _tmp650_;
				_tmp590_ = _param_index;
				_param_index = _tmp590_ + 1;
				_tmp591_ = _param_index;
				_tmp592_ = _param_size;
				if (!(_tmp591_ < _tmp592_)) {
					break;
				}
				_tmp593_ = _param_list;
				_tmp594_ = _param_index;
				_tmp595_ = vala_list_get (_tmp593_, _tmp594_);
				param = (ValaParameter*) _tmp595_;
				_tmp596_ = param;
				_tmp597_ = vala_parameter_get_direction (_tmp596_);
				_tmp598_ = _tmp597_;
				if (_tmp598_ != VALA_PARAMETER_DIRECTION_OUT) {
					_vala_code_node_unref0 (param);
					continue;
				}
				_tmp599_ = param;
				_tmp600_ = vala_symbol_get_name ((ValaSymbol*) _tmp599_);
				_tmp601_ = _tmp600_;
				_tmp602_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp601_);
				param_name = _tmp602_;
				_tmp603_ = param;
				_tmp604_ = vala_variable_get_variable_type ((ValaVariable*) _tmp603_);
				_tmp605_ = _tmp604_;
				_tmp606_ = vala_data_type_copy (_tmp605_);
				owned_type = _tmp606_;
				_tmp607_ = owned_type;
				vala_data_type_set_value_owned (_tmp607_, TRUE);
				_tmp608_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp609_ = _tmp608_;
				_tmp610_ = owned_type;
				_tmp611_ = vala_get_ccode_name ((ValaCodeNode*) _tmp610_);
				_tmp612_ = _tmp611_;
				_tmp613_ = param_name;
				_tmp614_ = param;
				_tmp615_ = vala_variable_get_variable_type ((ValaVariable*) _tmp614_);
				_tmp616_ = _tmp615_;
				_tmp617_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp616_, TRUE);
				_tmp618_ = _tmp617_;
				_tmp619_ = vala_ccode_variable_declarator_new_zero (_tmp613_, _tmp618_, NULL);
				_tmp620_ = _tmp619_;
				vala_ccode_function_add_declaration (_tmp609_, _tmp612_, (ValaCCodeDeclarator*) _tmp620_, 0);
				_vala_ccode_node_unref0 (_tmp620_);
				_vala_ccode_node_unref0 (_tmp618_);
				_g_free0 (_tmp612_);
				_tmp621_ = param;
				_tmp622_ = vala_variable_get_variable_type ((ValaVariable*) _tmp621_);
				_tmp623_ = _tmp622_;
				_tmp624_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp623_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp623_) : NULL);
				array_type = _tmp624_;
				_tmp625_ = array_type;
				if (_tmp625_ != NULL) {
					{
						gint dim = 0;
						dim = 1;
						{
							gboolean _tmp626_ = FALSE;
							_tmp626_ = TRUE;
							while (TRUE) {
								gint _tmp628_;
								ValaArrayType* _tmp629_;
								gint _tmp630_;
								gint _tmp631_;
								gchar* length_cname = NULL;
								ValaParameter* _tmp632_;
								gint _tmp633_;
								gchar* _tmp634_;
								ValaCCodeFunction* _tmp635_;
								ValaCCodeFunction* _tmp636_;
								const gchar* _tmp637_;
								ValaCCodeConstant* _tmp638_;
								ValaCCodeConstant* _tmp639_;
								ValaCCodeVariableDeclarator* _tmp640_;
								ValaCCodeVariableDeclarator* _tmp641_;
								if (!_tmp626_) {
									gint _tmp627_;
									_tmp627_ = dim;
									dim = _tmp627_ + 1;
								}
								_tmp626_ = FALSE;
								_tmp628_ = dim;
								_tmp629_ = array_type;
								_tmp630_ = vala_array_type_get_rank (_tmp629_);
								_tmp631_ = _tmp630_;
								if (!(_tmp628_ <= _tmp631_)) {
									break;
								}
								_tmp632_ = param;
								_tmp633_ = dim;
								_tmp634_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, _tmp632_, _tmp633_);
								length_cname = _tmp634_;
								_tmp635_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
								_tmp636_ = _tmp635_;
								_tmp637_ = length_cname;
								_tmp638_ = vala_ccode_constant_new ("0");
								_tmp639_ = _tmp638_;
								_tmp640_ = vala_ccode_variable_declarator_new_zero (_tmp637_, (ValaCCodeExpression*) _tmp639_, NULL);
								_tmp641_ = _tmp640_;
								vala_ccode_function_add_declaration (_tmp636_, "int", (ValaCCodeDeclarator*) _tmp641_, 0);
								_vala_ccode_node_unref0 (_tmp641_);
								_vala_ccode_node_unref0 (_tmp639_);
								_g_free0 (length_cname);
							}
						}
					}
				}
				_tmp642_ = param;
				_tmp643_ = vala_variable_get_variable_type ((ValaVariable*) _tmp642_);
				_tmp644_ = _tmp643_;
				_tmp645_ = vala_ccode_identifier_new ("_reply_builder");
				_tmp646_ = _tmp645_;
				_tmp647_ = param_name;
				_tmp648_ = vala_ccode_identifier_new (_tmp647_);
				_tmp649_ = _tmp648_;
				_tmp650_ = param;
				vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp644_, (ValaCCodeExpression*) _tmp646_, (ValaCCodeExpression*) _tmp649_, (ValaSymbol*) _tmp650_);
				_vala_ccode_node_unref0 (_tmp649_);
				_vala_ccode_node_unref0 (_tmp646_);
				_vala_code_node_unref0 (array_type);
				_vala_code_node_unref0 (owned_type);
				_g_free0 (param_name);
				_vala_code_node_unref0 (param);
			}
			_vala_iterable_unref0 (_param_list);
		}
		_tmp651_ = m;
		_tmp652_ = vala_callable_get_return_type ((ValaCallable*) _tmp651_);
		_tmp653_ = _tmp652_;
		if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp653_, VALA_TYPE_VOID_TYPE)) {
			ValaMethod* _tmp654_;
			ValaDataType* _tmp655_;
			ValaDataType* _tmp656_;
			gboolean _tmp657_;
			_tmp654_ = m;
			_tmp655_ = vala_callable_get_return_type ((ValaCallable*) _tmp654_);
			_tmp656_ = _tmp655_;
			_tmp657_ = vala_data_type_is_real_non_null_struct_type (_tmp656_);
			if (_tmp657_) {
				ValaCCodeFunction* _tmp658_;
				ValaCCodeFunction* _tmp659_;
				ValaMethod* _tmp660_;
				ValaDataType* _tmp661_;
				ValaDataType* _tmp662_;
				gchar* _tmp663_;
				gchar* _tmp664_;
				ValaMethod* _tmp665_;
				ValaDataType* _tmp666_;
				ValaDataType* _tmp667_;
				ValaCCodeExpression* _tmp668_;
				ValaCCodeExpression* _tmp669_;
				ValaCCodeVariableDeclarator* _tmp670_;
				ValaCCodeVariableDeclarator* _tmp671_;
				ValaMethod* _tmp672_;
				ValaDataType* _tmp673_;
				ValaDataType* _tmp674_;
				ValaCCodeIdentifier* _tmp675_;
				ValaCCodeIdentifier* _tmp676_;
				ValaCCodeIdentifier* _tmp677_;
				ValaCCodeIdentifier* _tmp678_;
				ValaMethod* _tmp679_;
				ValaMethod* _tmp680_;
				ValaDataType* _tmp681_;
				ValaDataType* _tmp682_;
				gboolean _tmp683_;
				_tmp658_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp659_ = _tmp658_;
				_tmp660_ = m;
				_tmp661_ = vala_callable_get_return_type ((ValaCallable*) _tmp660_);
				_tmp662_ = _tmp661_;
				_tmp663_ = vala_get_ccode_name ((ValaCodeNode*) _tmp662_);
				_tmp664_ = _tmp663_;
				_tmp665_ = m;
				_tmp666_ = vala_callable_get_return_type ((ValaCallable*) _tmp665_);
				_tmp667_ = _tmp666_;
				_tmp668_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp667_, TRUE);
				_tmp669_ = _tmp668_;
				_tmp670_ = vala_ccode_variable_declarator_new_zero ("result", _tmp669_, NULL);
				_tmp671_ = _tmp670_;
				vala_ccode_function_add_declaration (_tmp659_, _tmp664_, (ValaCCodeDeclarator*) _tmp671_, 0);
				_vala_ccode_node_unref0 (_tmp671_);
				_vala_ccode_node_unref0 (_tmp669_);
				_g_free0 (_tmp664_);
				_tmp672_ = m;
				_tmp673_ = vala_callable_get_return_type ((ValaCallable*) _tmp672_);
				_tmp674_ = _tmp673_;
				_tmp675_ = vala_ccode_identifier_new ("_reply_builder");
				_tmp676_ = _tmp675_;
				_tmp677_ = vala_ccode_identifier_new ("result");
				_tmp678_ = _tmp677_;
				_tmp679_ = m;
				vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp674_, (ValaCCodeExpression*) _tmp676_, (ValaCCodeExpression*) _tmp678_, (ValaSymbol*) _tmp679_);
				_vala_ccode_node_unref0 (_tmp678_);
				_vala_ccode_node_unref0 (_tmp676_);
				_tmp680_ = m;
				_tmp681_ = vala_callable_get_return_type ((ValaCallable*) _tmp680_);
				_tmp682_ = _tmp681_;
				_tmp683_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp682_);
				if (_tmp683_) {
					ValaLocalVariable* local = NULL;
					ValaMethod* _tmp684_;
					ValaDataType* _tmp685_;
					ValaDataType* _tmp686_;
					ValaLocalVariable* _tmp687_;
					ValaCCodeFunction* _tmp688_;
					ValaCCodeFunction* _tmp689_;
					ValaLocalVariable* _tmp690_;
					ValaCCodeExpression* _tmp691_;
					ValaCCodeExpression* _tmp692_;
					_tmp684_ = m;
					_tmp685_ = vala_callable_get_return_type ((ValaCallable*) _tmp684_);
					_tmp686_ = _tmp685_;
					_tmp687_ = vala_local_variable_new (_tmp686_, ".result", NULL, NULL);
					local = _tmp687_;
					_tmp688_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp689_ = _tmp688_;
					_tmp690_ = local;
					_tmp691_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp690_);
					_tmp692_ = _tmp691_;
					vala_ccode_function_add_expression (_tmp689_, _tmp692_);
					_vala_ccode_node_unref0 (_tmp692_);
					_vala_code_node_unref0 (local);
				}
			} else {
				ValaCCodeFunction* _tmp693_;
				ValaCCodeFunction* _tmp694_;
				ValaMethod* _tmp695_;
				ValaDataType* _tmp696_;
				ValaDataType* _tmp697_;
				gchar* _tmp698_;
				gchar* _tmp699_;
				ValaCCodeVariableDeclarator* _tmp700_;
				ValaCCodeVariableDeclarator* _tmp701_;
				ValaArrayType* array_type = NULL;
				ValaMethod* _tmp702_;
				ValaDataType* _tmp703_;
				ValaDataType* _tmp704_;
				ValaArrayType* _tmp705_;
				ValaArrayType* _tmp706_;
				ValaMethod* _tmp722_;
				ValaDataType* _tmp723_;
				ValaDataType* _tmp724_;
				ValaCCodeIdentifier* _tmp725_;
				ValaCCodeIdentifier* _tmp726_;
				ValaCCodeIdentifier* _tmp727_;
				ValaCCodeIdentifier* _tmp728_;
				ValaMethod* _tmp729_;
				ValaMethod* _tmp730_;
				ValaDataType* _tmp731_;
				ValaDataType* _tmp732_;
				gboolean _tmp733_;
				_tmp693_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp694_ = _tmp693_;
				_tmp695_ = m;
				_tmp696_ = vala_callable_get_return_type ((ValaCallable*) _tmp695_);
				_tmp697_ = _tmp696_;
				_tmp698_ = vala_get_ccode_name ((ValaCodeNode*) _tmp697_);
				_tmp699_ = _tmp698_;
				_tmp700_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
				_tmp701_ = _tmp700_;
				vala_ccode_function_add_declaration (_tmp694_, _tmp699_, (ValaCCodeDeclarator*) _tmp701_, 0);
				_vala_ccode_node_unref0 (_tmp701_);
				_g_free0 (_tmp699_);
				_tmp702_ = m;
				_tmp703_ = vala_callable_get_return_type ((ValaCallable*) _tmp702_);
				_tmp704_ = _tmp703_;
				_tmp705_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp704_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp704_) : NULL);
				array_type = _tmp705_;
				_tmp706_ = array_type;
				if (_tmp706_ != NULL) {
					{
						gint dim = 0;
						dim = 1;
						{
							gboolean _tmp707_ = FALSE;
							_tmp707_ = TRUE;
							while (TRUE) {
								gint _tmp709_;
								ValaArrayType* _tmp710_;
								gint _tmp711_;
								gint _tmp712_;
								gchar* length_cname = NULL;
								gint _tmp713_;
								gchar* _tmp714_;
								ValaCCodeFunction* _tmp715_;
								ValaCCodeFunction* _tmp716_;
								const gchar* _tmp717_;
								ValaCCodeConstant* _tmp718_;
								ValaCCodeConstant* _tmp719_;
								ValaCCodeVariableDeclarator* _tmp720_;
								ValaCCodeVariableDeclarator* _tmp721_;
								if (!_tmp707_) {
									gint _tmp708_;
									_tmp708_ = dim;
									dim = _tmp708_ + 1;
								}
								_tmp707_ = FALSE;
								_tmp709_ = dim;
								_tmp710_ = array_type;
								_tmp711_ = vala_array_type_get_rank (_tmp710_);
								_tmp712_ = _tmp711_;
								if (!(_tmp709_ <= _tmp712_)) {
									break;
								}
								_tmp713_ = dim;
								_tmp714_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", _tmp713_);
								length_cname = _tmp714_;
								_tmp715_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
								_tmp716_ = _tmp715_;
								_tmp717_ = length_cname;
								_tmp718_ = vala_ccode_constant_new ("0");
								_tmp719_ = _tmp718_;
								_tmp720_ = vala_ccode_variable_declarator_new_zero (_tmp717_, (ValaCCodeExpression*) _tmp719_, NULL);
								_tmp721_ = _tmp720_;
								vala_ccode_function_add_declaration (_tmp716_, "int", (ValaCCodeDeclarator*) _tmp721_, 0);
								_vala_ccode_node_unref0 (_tmp721_);
								_vala_ccode_node_unref0 (_tmp719_);
								_g_free0 (length_cname);
							}
						}
					}
				}
				_tmp722_ = m;
				_tmp723_ = vala_callable_get_return_type ((ValaCallable*) _tmp722_);
				_tmp724_ = _tmp723_;
				_tmp725_ = vala_ccode_identifier_new ("_reply_builder");
				_tmp726_ = _tmp725_;
				_tmp727_ = vala_ccode_identifier_new ("result");
				_tmp728_ = _tmp727_;
				_tmp729_ = m;
				vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp724_, (ValaCCodeExpression*) _tmp726_, (ValaCCodeExpression*) _tmp728_, (ValaSymbol*) _tmp729_);
				_vala_ccode_node_unref0 (_tmp728_);
				_vala_ccode_node_unref0 (_tmp726_);
				_tmp730_ = m;
				_tmp731_ = vala_callable_get_return_type ((ValaCallable*) _tmp730_);
				_tmp732_ = _tmp731_;
				_tmp733_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp732_);
				if (_tmp733_) {
					ValaLocalVariable* local = NULL;
					ValaMethod* _tmp734_;
					ValaDataType* _tmp735_;
					ValaDataType* _tmp736_;
					ValaLocalVariable* _tmp737_;
					ValaCCodeFunction* _tmp738_;
					ValaCCodeFunction* _tmp739_;
					ValaLocalVariable* _tmp740_;
					ValaCCodeExpression* _tmp741_;
					ValaCCodeExpression* _tmp742_;
					_tmp734_ = m;
					_tmp735_ = vala_callable_get_return_type ((ValaCallable*) _tmp734_);
					_tmp736_ = _tmp735_;
					_tmp737_ = vala_local_variable_new (_tmp736_, ".result", NULL, NULL);
					local = _tmp737_;
					_tmp738_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp739_ = _tmp738_;
					_tmp740_ = local;
					_tmp741_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp740_);
					_tmp742_ = _tmp741_;
					vala_ccode_function_add_expression (_tmp739_, _tmp742_);
					_vala_ccode_node_unref0 (_tmp742_);
					_vala_code_node_unref0 (local);
				}
				_vala_code_node_unref0 (array_type);
			}
		}
		_tmp743_ = vala_ccode_identifier_new ("g_variant_builder_end");
		_tmp744_ = _tmp743_;
		_tmp745_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp744_);
		_tmp746_ = _tmp745_;
		_vala_ccode_node_unref0 (_tmp744_);
		builder_end = _tmp746_;
		_tmp747_ = builder_end;
		_tmp748_ = vala_ccode_identifier_new ("_reply_builder");
		_tmp749_ = _tmp748_;
		_tmp750_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp749_);
		_tmp751_ = _tmp750_;
		vala_ccode_function_call_add_argument (_tmp747_, (ValaCCodeExpression*) _tmp751_);
		_vala_ccode_node_unref0 (_tmp751_);
		_vala_ccode_node_unref0 (_tmp749_);
		_tmp752_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp753_ = _tmp752_;
		_tmp754_ = vala_ccode_identifier_new ("_reply");
		_tmp755_ = _tmp754_;
		_tmp756_ = builder_end;
		vala_ccode_function_add_assignment (_tmp753_, (ValaCCodeExpression*) _tmp755_, (ValaCCodeExpression*) _tmp756_);
		_vala_ccode_node_unref0 (_tmp755_);
		_tmp757_ = vala_ccode_identifier_new ("g_dbus_message_set_body");
		_tmp758_ = _tmp757_;
		_tmp759_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp758_);
		_tmp760_ = _tmp759_;
		_vala_ccode_node_unref0 (_tmp758_);
		set_body = _tmp760_;
		_tmp761_ = set_body;
		_tmp762_ = vala_ccode_identifier_new ("_reply_message");
		_tmp763_ = _tmp762_;
		vala_ccode_function_call_add_argument (_tmp761_, (ValaCCodeExpression*) _tmp763_);
		_vala_ccode_node_unref0 (_tmp763_);
		_tmp764_ = set_body;
		_tmp765_ = vala_ccode_identifier_new ("_reply");
		_tmp766_ = _tmp765_;
		vala_ccode_function_call_add_argument (_tmp764_, (ValaCCodeExpression*) _tmp766_);
		_vala_ccode_node_unref0 (_tmp766_);
		_tmp767_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp768_ = _tmp767_;
		_tmp769_ = set_body;
		vala_ccode_function_add_expression (_tmp768_, (ValaCCodeExpression*) _tmp769_);
		_tmp770_ = uses_fd;
		if (_tmp770_) {
			ValaCCodeIdentifier* _tmp771_;
			ValaCCodeIdentifier* _tmp772_;
			ValaCCodeFunctionCall* _tmp773_;
			ValaCCodeFunctionCall* _tmp774_;
			ValaCCodeIdentifier* _tmp775_;
			ValaCCodeIdentifier* _tmp776_;
			ValaCCodeFunctionCall* _tmp777_;
			ValaCCodeIdentifier* _tmp778_;
			ValaCCodeIdentifier* _tmp779_;
			ValaCCodeFunction* _tmp780_;
			ValaCCodeFunction* _tmp781_;
			ValaCCodeFunctionCall* _tmp782_;
			ValaCCodeIdentifier* _tmp783_;
			ValaCCodeIdentifier* _tmp784_;
			ValaCCodeFunctionCall* _tmp785_;
			ValaCCodeFunctionCall* _tmp786_;
			ValaCCodeIdentifier* _tmp787_;
			ValaCCodeIdentifier* _tmp788_;
			ValaCCodeFunction* _tmp789_;
			ValaCCodeFunction* _tmp790_;
			ValaCCodeFunctionCall* _tmp791_;
			_tmp771_ = vala_ccode_identifier_new ("g_dbus_message_set_unix_fd_list");
			_tmp772_ = _tmp771_;
			_tmp773_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp772_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp773_;
			_vala_ccode_node_unref0 (_tmp772_);
			_tmp774_ = ccall;
			_tmp775_ = vala_ccode_identifier_new ("_reply_message");
			_tmp776_ = _tmp775_;
			vala_ccode_function_call_add_argument (_tmp774_, (ValaCCodeExpression*) _tmp776_);
			_vala_ccode_node_unref0 (_tmp776_);
			_tmp777_ = ccall;
			_tmp778_ = vala_ccode_identifier_new ("_fd_list");
			_tmp779_ = _tmp778_;
			vala_ccode_function_call_add_argument (_tmp777_, (ValaCCodeExpression*) _tmp779_);
			_vala_ccode_node_unref0 (_tmp779_);
			_tmp780_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp781_ = _tmp780_;
			_tmp782_ = ccall;
			vala_ccode_function_add_expression (_tmp781_, (ValaCCodeExpression*) _tmp782_);
			_tmp783_ = vala_ccode_identifier_new ("g_object_unref");
			_tmp784_ = _tmp783_;
			_tmp785_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp784_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp785_;
			_vala_ccode_node_unref0 (_tmp784_);
			_tmp786_ = ccall;
			_tmp787_ = vala_ccode_identifier_new ("_fd_list");
			_tmp788_ = _tmp787_;
			vala_ccode_function_call_add_argument (_tmp786_, (ValaCCodeExpression*) _tmp788_);
			_vala_ccode_node_unref0 (_tmp788_);
			_tmp789_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp790_ = _tmp789_;
			_tmp791_ = ccall;
			vala_ccode_function_add_expression (_tmp790_, (ValaCCodeExpression*) _tmp791_);
		}
		_vala_ccode_node_unref0 (set_body);
		_vala_ccode_node_unref0 (builder_end);
		_vala_ccode_node_unref0 (builder_init);
		_vala_ccode_node_unref0 (message_expr);
	} else {
		ValaCCodeFunction* _tmp792_;
		ValaCCodeFunction* _tmp793_;
		ValaCCodeFunctionCall* _tmp794_;
		_tmp792_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp793_ = _tmp792_;
		_tmp794_ = ccall;
		vala_ccode_function_add_expression (_tmp793_, (ValaCCodeExpression*) _tmp794_);
	}
	_tmp796_ = no_reply;
	if (!_tmp796_) {
		gboolean _tmp797_ = FALSE;
		ValaMethod* _tmp798_;
		gboolean _tmp799_;
		gboolean _tmp800_;
		_tmp798_ = m;
		_tmp799_ = vala_method_get_coroutine (_tmp798_);
		_tmp800_ = _tmp799_;
		if (!_tmp800_) {
			_tmp797_ = TRUE;
		} else {
			gboolean _tmp801_;
			_tmp801_ = ready;
			_tmp797_ = _tmp801_;
		}
		_tmp795_ = _tmp797_;
	} else {
		_tmp795_ = FALSE;
	}
	if (_tmp795_) {
		ValaCCodeFunctionCall* return_value = NULL;
		ValaCCodeIdentifier* _tmp802_;
		ValaCCodeIdentifier* _tmp803_;
		ValaCCodeFunctionCall* _tmp804_;
		ValaCCodeFunctionCall* _tmp805_;
		ValaCCodeFunctionCall* _tmp806_;
		ValaCCodeFunctionCall* _tmp807_;
		ValaCCodeFunctionCall* _tmp808_;
		ValaCCodeIdentifier* _tmp809_;
		ValaCCodeIdentifier* _tmp810_;
		ValaCCodeFunctionCall* _tmp811_;
		ValaCCodeConstant* _tmp812_;
		ValaCCodeConstant* _tmp813_;
		ValaCCodeFunctionCall* _tmp814_;
		ValaCCodeConstant* _tmp815_;
		ValaCCodeConstant* _tmp816_;
		ValaCCodeFunctionCall* _tmp817_;
		ValaCCodeConstant* _tmp818_;
		ValaCCodeConstant* _tmp819_;
		ValaCCodeFunction* _tmp820_;
		ValaCCodeFunction* _tmp821_;
		ValaCCodeFunctionCall* _tmp822_;
		ValaCCodeFunctionCall* unref_call = NULL;
		ValaCCodeIdentifier* _tmp823_;
		ValaCCodeIdentifier* _tmp824_;
		ValaCCodeFunctionCall* _tmp825_;
		ValaCCodeFunctionCall* _tmp826_;
		ValaCCodeFunctionCall* _tmp827_;
		ValaCCodeIdentifier* _tmp828_;
		ValaCCodeIdentifier* _tmp829_;
		ValaCCodeFunction* _tmp830_;
		ValaCCodeFunction* _tmp831_;
		ValaCCodeFunctionCall* _tmp832_;
		ValaCCodeIdentifier* _tmp833_;
		ValaCCodeIdentifier* _tmp834_;
		ValaCCodeFunctionCall* _tmp835_;
		ValaCCodeFunctionCall* _tmp836_;
		ValaCCodeIdentifier* _tmp837_;
		ValaCCodeIdentifier* _tmp838_;
		ValaCCodeFunction* _tmp839_;
		ValaCCodeFunction* _tmp840_;
		ValaCCodeFunctionCall* _tmp841_;
		_tmp802_ = vala_ccode_identifier_new ("g_dbus_connection_send_message");
		_tmp803_ = _tmp802_;
		_tmp804_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp803_);
		_tmp805_ = _tmp804_;
		_vala_ccode_node_unref0 (_tmp803_);
		return_value = _tmp805_;
		_tmp806_ = return_value;
		_tmp807_ = connection;
		vala_ccode_function_call_add_argument (_tmp806_, (ValaCCodeExpression*) _tmp807_);
		_tmp808_ = return_value;
		_tmp809_ = vala_ccode_identifier_new ("_reply_message");
		_tmp810_ = _tmp809_;
		vala_ccode_function_call_add_argument (_tmp808_, (ValaCCodeExpression*) _tmp810_);
		_vala_ccode_node_unref0 (_tmp810_);
		_tmp811_ = return_value;
		_tmp812_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
		_tmp813_ = _tmp812_;
		vala_ccode_function_call_add_argument (_tmp811_, (ValaCCodeExpression*) _tmp813_);
		_vala_ccode_node_unref0 (_tmp813_);
		_tmp814_ = return_value;
		_tmp815_ = vala_ccode_constant_new ("NULL");
		_tmp816_ = _tmp815_;
		vala_ccode_function_call_add_argument (_tmp814_, (ValaCCodeExpression*) _tmp816_);
		_vala_ccode_node_unref0 (_tmp816_);
		_tmp817_ = return_value;
		_tmp818_ = vala_ccode_constant_new ("NULL");
		_tmp819_ = _tmp818_;
		vala_ccode_function_call_add_argument (_tmp817_, (ValaCCodeExpression*) _tmp819_);
		_vala_ccode_node_unref0 (_tmp819_);
		_tmp820_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp821_ = _tmp820_;
		_tmp822_ = return_value;
		vala_ccode_function_add_expression (_tmp821_, (ValaCCodeExpression*) _tmp822_);
		_tmp823_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp824_ = _tmp823_;
		_tmp825_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp824_);
		_tmp826_ = _tmp825_;
		_vala_ccode_node_unref0 (_tmp824_);
		unref_call = _tmp826_;
		_tmp827_ = unref_call;
		_tmp828_ = vala_ccode_identifier_new ("invocation");
		_tmp829_ = _tmp828_;
		vala_ccode_function_call_add_argument (_tmp827_, (ValaCCodeExpression*) _tmp829_);
		_vala_ccode_node_unref0 (_tmp829_);
		_tmp830_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp831_ = _tmp830_;
		_tmp832_ = unref_call;
		vala_ccode_function_add_expression (_tmp831_, (ValaCCodeExpression*) _tmp832_);
		_tmp833_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp834_ = _tmp833_;
		_tmp835_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp834_);
		_vala_ccode_node_unref0 (unref_call);
		unref_call = _tmp835_;
		_vala_ccode_node_unref0 (_tmp834_);
		_tmp836_ = unref_call;
		_tmp837_ = vala_ccode_identifier_new ("_reply_message");
		_tmp838_ = _tmp837_;
		vala_ccode_function_call_add_argument (_tmp836_, (ValaCCodeExpression*) _tmp838_);
		_vala_ccode_node_unref0 (_tmp838_);
		_tmp839_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp840_ = _tmp839_;
		_tmp841_ = unref_call;
		vala_ccode_function_add_expression (_tmp840_, (ValaCCodeExpression*) _tmp841_);
		_vala_ccode_node_unref0 (unref_call);
		_vala_ccode_node_unref0 (return_value);
	}
	_tmp842_ = need_goto_label;
	if (_tmp842_) {
		ValaCCodeFunction* _tmp843_;
		ValaCCodeFunction* _tmp844_;
		_tmp843_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp844_ = _tmp843_;
		vala_ccode_function_add_label (_tmp844_, "_error");
	}
	{
		ValaList* _param_list = NULL;
		ValaMethod* _tmp845_;
		ValaList* _tmp846_;
		gint _param_size = 0;
		ValaList* _tmp847_;
		gint _tmp848_;
		gint _tmp849_;
		gint _param_index = 0;
		_tmp845_ = m;
		_tmp846_ = vala_callable_get_parameters ((ValaCallable*) _tmp845_);
		_param_list = _tmp846_;
		_tmp847_ = _param_list;
		_tmp848_ = vala_collection_get_size ((ValaCollection*) _tmp847_);
		_tmp849_ = _tmp848_;
		_param_size = _tmp849_;
		_param_index = -1;
		while (TRUE) {
			gint _tmp850_;
			gint _tmp851_;
			gint _tmp852_;
			ValaParameter* param = NULL;
			ValaList* _tmp853_;
			gint _tmp854_;
			gpointer _tmp855_;
			gboolean _tmp856_ = FALSE;
			gboolean _tmp857_ = FALSE;
			ValaParameter* _tmp858_;
			ValaParameterDirection _tmp859_;
			ValaParameterDirection _tmp860_;
			_tmp850_ = _param_index;
			_param_index = _tmp850_ + 1;
			_tmp851_ = _param_index;
			_tmp852_ = _param_size;
			if (!(_tmp851_ < _tmp852_)) {
				break;
			}
			_tmp853_ = _param_list;
			_tmp854_ = _param_index;
			_tmp855_ = vala_list_get (_tmp853_, _tmp854_);
			param = (ValaParameter*) _tmp855_;
			_tmp858_ = param;
			_tmp859_ = vala_parameter_get_direction (_tmp858_);
			_tmp860_ = _tmp859_;
			if (_tmp860_ == VALA_PARAMETER_DIRECTION_IN) {
				gboolean _tmp861_;
				_tmp861_ = ready;
				_tmp857_ = !_tmp861_;
			} else {
				_tmp857_ = FALSE;
			}
			if (_tmp857_) {
				_tmp856_ = TRUE;
			} else {
				gboolean _tmp862_ = FALSE;
				gboolean _tmp863_ = FALSE;
				ValaParameter* _tmp864_;
				ValaParameterDirection _tmp865_;
				ValaParameterDirection _tmp866_;
				_tmp864_ = param;
				_tmp865_ = vala_parameter_get_direction (_tmp864_);
				_tmp866_ = _tmp865_;
				if (_tmp866_ == VALA_PARAMETER_DIRECTION_OUT) {
					gboolean _tmp867_;
					_tmp867_ = no_reply;
					_tmp863_ = !_tmp867_;
				} else {
					_tmp863_ = FALSE;
				}
				if (_tmp863_) {
					gboolean _tmp868_ = FALSE;
					ValaMethod* _tmp869_;
					gboolean _tmp870_;
					gboolean _tmp871_;
					_tmp869_ = m;
					_tmp870_ = vala_method_get_coroutine (_tmp869_);
					_tmp871_ = _tmp870_;
					if (!_tmp871_) {
						_tmp868_ = TRUE;
					} else {
						gboolean _tmp872_;
						_tmp872_ = ready;
						_tmp868_ = _tmp872_;
					}
					_tmp862_ = _tmp868_;
				} else {
					_tmp862_ = FALSE;
				}
				_tmp856_ = _tmp862_;
			}
			if (_tmp856_) {
				gboolean _tmp873_ = FALSE;
				ValaParameter* _tmp874_;
				ValaDataType* _tmp875_;
				ValaDataType* _tmp876_;
				gboolean _tmp884_ = FALSE;
				ValaParameter* _tmp885_;
				ValaDataType* _tmp886_;
				ValaDataType* _tmp887_;
				ValaDataType* owned_type = NULL;
				ValaParameter* _tmp895_;
				ValaDataType* _tmp896_;
				ValaDataType* _tmp897_;
				ValaDataType* _tmp898_;
				ValaDataType* _tmp899_;
				ValaDataType* _tmp900_;
				gboolean _tmp901_;
				_tmp874_ = param;
				_tmp875_ = vala_variable_get_variable_type ((ValaVariable*) _tmp874_);
				_tmp876_ = _tmp875_;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp876_, VALA_TYPE_OBJECT_TYPE)) {
					ValaParameter* _tmp877_;
					ValaDataType* _tmp878_;
					ValaDataType* _tmp879_;
					ValaTypeSymbol* _tmp880_;
					ValaTypeSymbol* _tmp881_;
					gchar* _tmp882_;
					gchar* _tmp883_;
					_tmp877_ = param;
					_tmp878_ = vala_variable_get_variable_type ((ValaVariable*) _tmp877_);
					_tmp879_ = _tmp878_;
					_tmp880_ = vala_data_type_get_data_type (_tmp879_);
					_tmp881_ = _tmp880_;
					_tmp882_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp881_);
					_tmp883_ = _tmp882_;
					_tmp873_ = g_strcmp0 (_tmp883_, "GLib.Cancellable") == 0;
					_g_free0 (_tmp883_);
				} else {
					_tmp873_ = FALSE;
				}
				if (_tmp873_) {
					_vala_code_node_unref0 (param);
					continue;
				}
				_tmp885_ = param;
				_tmp886_ = vala_variable_get_variable_type ((ValaVariable*) _tmp885_);
				_tmp887_ = _tmp886_;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp887_, VALA_TYPE_OBJECT_TYPE)) {
					ValaParameter* _tmp888_;
					ValaDataType* _tmp889_;
					ValaDataType* _tmp890_;
					ValaTypeSymbol* _tmp891_;
					ValaTypeSymbol* _tmp892_;
					gchar* _tmp893_;
					gchar* _tmp894_;
					_tmp888_ = param;
					_tmp889_ = vala_variable_get_variable_type ((ValaVariable*) _tmp888_);
					_tmp890_ = _tmp889_;
					_tmp891_ = vala_data_type_get_data_type (_tmp890_);
					_tmp892_ = _tmp891_;
					_tmp893_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp892_);
					_tmp894_ = _tmp893_;
					_tmp884_ = g_strcmp0 (_tmp894_, "GLib.BusName") == 0;
					_g_free0 (_tmp894_);
				} else {
					_tmp884_ = FALSE;
				}
				if (_tmp884_) {
					_vala_code_node_unref0 (param);
					continue;
				}
				_tmp895_ = param;
				_tmp896_ = vala_variable_get_variable_type ((ValaVariable*) _tmp895_);
				_tmp897_ = _tmp896_;
				_tmp898_ = vala_data_type_copy (_tmp897_);
				owned_type = _tmp898_;
				_tmp899_ = owned_type;
				vala_data_type_set_value_owned (_tmp899_, TRUE);
				_tmp900_ = owned_type;
				_tmp901_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp900_);
				if (_tmp901_) {
					ValaLocalVariable* local = NULL;
					ValaDataType* _tmp902_;
					ValaParameter* _tmp903_;
					const gchar* _tmp904_;
					const gchar* _tmp905_;
					gchar* _tmp906_;
					gchar* _tmp907_;
					ValaLocalVariable* _tmp908_;
					ValaLocalVariable* _tmp909_;
					ValaCCodeFunction* _tmp910_;
					ValaCCodeFunction* _tmp911_;
					ValaLocalVariable* _tmp912_;
					ValaCCodeExpression* _tmp913_;
					ValaCCodeExpression* _tmp914_;
					_tmp902_ = owned_type;
					_tmp903_ = param;
					_tmp904_ = vala_symbol_get_name ((ValaSymbol*) _tmp903_);
					_tmp905_ = _tmp904_;
					_tmp906_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp905_);
					_tmp907_ = _tmp906_;
					_tmp908_ = vala_local_variable_new (_tmp902_, _tmp907_, NULL, NULL);
					_tmp909_ = _tmp908_;
					_g_free0 (_tmp907_);
					local = _tmp909_;
					_tmp910_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp911_ = _tmp910_;
					_tmp912_ = local;
					_tmp913_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp912_);
					_tmp914_ = _tmp913_;
					vala_ccode_function_add_expression (_tmp911_, _tmp914_);
					_vala_ccode_node_unref0 (_tmp914_);
					_vala_code_node_unref0 (local);
				}
				_vala_code_node_unref0 (owned_type);
			}
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp915_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp916_ = function;
	vala_ccode_file_add_function_declaration (_tmp915_, _tmp916_);
	_tmp917_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp918_ = function;
	vala_ccode_file_add_function (_tmp917_, _tmp918_);
	_tmp920_ = m;
	_tmp921_ = vala_method_get_coroutine (_tmp920_);
	_tmp922_ = _tmp921_;
	if (_tmp922_) {
		gboolean _tmp923_;
		_tmp923_ = ready;
		_tmp919_ = !_tmp923_;
	} else {
		_tmp919_ = FALSE;
	}
	if (_tmp919_) {
		ValaMethod* _tmp924_;
		ValaObjectTypeSymbol* _tmp925_;
		gchar* _tmp926_;
		gchar* _tmp927_;
		_tmp924_ = m;
		_tmp925_ = sym;
		_tmp926_ = vala_gd_bus_server_module_generate_dbus_wrapper (self, _tmp924_, _tmp925_, TRUE);
		_tmp927_ = _tmp926_;
		_g_free0 (_tmp927_);
	}
	result = wrapper_name;
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (connection);
	_vala_ccode_node_unref0 (function);
	return result;
}


static gchar* vala_gd_bus_server_module_generate_dbus_signal_wrapper (ValaGDBusServerModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name) {
	gchar* result = NULL;
	gchar* wrapper_name = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaSignal* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp8_;
	ValaCCodeFunction* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeFunction* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeParameter* _tmp13_;
	ValaCCodeFunction* _tmp56_;
	ValaCCodeParameter* _tmp57_;
	ValaCCodeParameter* _tmp58_;
	ValaCCodeFunction* _tmp59_;
	ValaCCodeFunction* _tmp60_;
	ValaCCodeFunction* _tmp61_;
	ValaCCodeIdentifier* _tmp62_;
	ValaCCodeIdentifier* _tmp63_;
	ValaCCodeConstant* _tmp64_;
	ValaCCodeConstant* _tmp65_;
	ValaCCodeElementAccess* _tmp66_;
	ValaCCodeElementAccess* _tmp67_;
	ValaCCodeVariableDeclarator* _tmp68_;
	ValaCCodeVariableDeclarator* _tmp69_;
	ValaCCodeFunction* _tmp70_;
	ValaCCodeFunction* _tmp71_;
	ValaCCodeIdentifier* _tmp72_;
	ValaCCodeIdentifier* _tmp73_;
	ValaCCodeConstant* _tmp74_;
	ValaCCodeConstant* _tmp75_;
	ValaCCodeElementAccess* _tmp76_;
	ValaCCodeElementAccess* _tmp77_;
	ValaCCodeVariableDeclarator* _tmp78_;
	ValaCCodeVariableDeclarator* _tmp79_;
	ValaCCodeFunction* _tmp80_;
	ValaCCodeFunction* _tmp81_;
	ValaCCodeVariableDeclarator* _tmp82_;
	ValaCCodeVariableDeclarator* _tmp83_;
	ValaCCodeFunction* _tmp84_;
	ValaCCodeFunction* _tmp85_;
	ValaCCodeVariableDeclarator* _tmp86_;
	ValaCCodeVariableDeclarator* _tmp87_;
	ValaCCodeFunctionCall* builder_init = NULL;
	ValaCCodeIdentifier* _tmp88_;
	ValaCCodeIdentifier* _tmp89_;
	ValaCCodeFunctionCall* _tmp90_;
	ValaCCodeFunctionCall* _tmp91_;
	ValaCCodeFunctionCall* _tmp92_;
	ValaCCodeIdentifier* _tmp93_;
	ValaCCodeIdentifier* _tmp94_;
	ValaCCodeUnaryExpression* _tmp95_;
	ValaCCodeUnaryExpression* _tmp96_;
	ValaCCodeFunctionCall* _tmp97_;
	ValaCCodeIdentifier* _tmp98_;
	ValaCCodeIdentifier* _tmp99_;
	ValaCCodeFunction* _tmp100_;
	ValaCCodeFunction* _tmp101_;
	ValaCCodeFunctionCall* _tmp102_;
	ValaCCodeFunctionCall* builder_end = NULL;
	ValaCCodeIdentifier* _tmp133_;
	ValaCCodeIdentifier* _tmp134_;
	ValaCCodeFunctionCall* _tmp135_;
	ValaCCodeFunctionCall* _tmp136_;
	ValaCCodeIdentifier* _tmp137_;
	ValaCCodeIdentifier* _tmp138_;
	ValaCCodeUnaryExpression* _tmp139_;
	ValaCCodeUnaryExpression* _tmp140_;
	ValaCCodeFunction* _tmp141_;
	ValaCCodeFunction* _tmp142_;
	ValaCCodeIdentifier* _tmp143_;
	ValaCCodeIdentifier* _tmp144_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp145_;
	ValaCCodeIdentifier* _tmp146_;
	ValaCCodeFunctionCall* _tmp147_;
	ValaCCodeFunctionCall* _tmp148_;
	ValaCCodeIdentifier* _tmp149_;
	ValaCCodeIdentifier* _tmp150_;
	ValaCCodeConstant* _tmp151_;
	ValaCCodeConstant* _tmp152_;
	ValaCCodeIdentifier* _tmp153_;
	ValaCCodeIdentifier* _tmp154_;
	const gchar* _tmp155_;
	gchar* _tmp156_;
	gchar* _tmp157_;
	ValaCCodeConstant* _tmp158_;
	ValaCCodeConstant* _tmp159_;
	ValaSignal* _tmp160_;
	gchar* _tmp161_;
	gchar* _tmp162_;
	gchar* _tmp163_;
	gchar* _tmp164_;
	ValaCCodeConstant* _tmp165_;
	ValaCCodeConstant* _tmp166_;
	ValaCCodeIdentifier* _tmp167_;
	ValaCCodeIdentifier* _tmp168_;
	ValaCCodeConstant* _tmp169_;
	ValaCCodeConstant* _tmp170_;
	ValaCCodeFunction* _tmp171_;
	ValaCCodeFunction* _tmp172_;
	ValaCCodeFile* _tmp173_;
	ValaCCodeFunction* _tmp174_;
	ValaCCodeFile* _tmp175_;
	ValaCCodeFunction* _tmp176_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sig != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	g_return_val_if_fail (dbus_iface_name != NULL, NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = sig;
	_tmp4_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("_dbus_%s_%s", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	wrapper_name = _tmp7_;
	_tmp8_ = wrapper_name;
	_tmp9_ = vala_ccode_function_new (_tmp8_, "void");
	function = _tmp9_;
	_tmp10_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp10_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp11_ = function;
	_tmp12_ = vala_ccode_parameter_new ("_sender", "GObject*");
	_tmp13_ = _tmp12_;
	vala_ccode_function_add_parameter (_tmp11_, _tmp13_);
	_vala_ccode_node_unref0 (_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_;
			gint _tmp21_;
			ValaParameter* param = NULL;
			ValaList* _tmp22_;
			gint _tmp23_;
			gpointer _tmp24_;
			ValaCCodeParameter* cparam = NULL;
			ValaParameter* _tmp25_;
			ValaCCodeFile* _tmp26_;
			GHashFunc _tmp27_;
			GEqualFunc _tmp28_;
			GEqualFunc _tmp29_;
			ValaHashMap* _tmp30_;
			ValaHashMap* _tmp31_;
			ValaCCodeParameter* _tmp32_;
			ValaCCodeParameter* _tmp33_;
			ValaCCodeFunction* _tmp34_;
			ValaCCodeParameter* _tmp35_;
			ValaParameter* _tmp36_;
			ValaDataType* _tmp37_;
			ValaDataType* _tmp38_;
			_tmp19_ = _param_index;
			_param_index = _tmp19_ + 1;
			_tmp20_ = _param_index;
			_tmp21_ = _param_size;
			if (!(_tmp20_ < _tmp21_)) {
				break;
			}
			_tmp22_ = _param_list;
			_tmp23_ = _param_index;
			_tmp24_ = vala_list_get (_tmp22_, _tmp23_);
			param = (ValaParameter*) _tmp24_;
			_tmp25_ = param;
			_tmp26_ = ((ValaCCodeBaseModule*) self)->cfile;
			_tmp27_ = g_direct_hash;
			_tmp28_ = g_direct_equal;
			_tmp29_ = g_direct_equal;
			_tmp30_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp27_, _tmp28_, _tmp29_);
			_tmp31_ = _tmp30_;
			_tmp32_ = vala_ccode_method_module_generate_parameter ((ValaCCodeMethodModule*) self, _tmp25_, _tmp26_, (ValaMap*) _tmp31_, NULL);
			_tmp33_ = _tmp32_;
			_vala_map_unref0 (_tmp31_);
			cparam = _tmp33_;
			_tmp34_ = function;
			_tmp35_ = cparam;
			vala_ccode_function_add_parameter (_tmp34_, _tmp35_);
			_tmp36_ = param;
			_tmp37_ = vala_variable_get_variable_type ((ValaVariable*) _tmp36_);
			_tmp38_ = _tmp37_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp38_, VALA_TYPE_ARRAY_TYPE)) {
				ValaArrayType* array_type = NULL;
				ValaParameter* _tmp39_;
				ValaDataType* _tmp40_;
				ValaDataType* _tmp41_;
				ValaArrayType* _tmp42_;
				_tmp39_ = param;
				_tmp40_ = vala_variable_get_variable_type ((ValaVariable*) _tmp39_);
				_tmp41_ = _tmp40_;
				_tmp42_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, VALA_TYPE_ARRAY_TYPE, ValaArrayType));
				array_type = _tmp42_;
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp43_ = FALSE;
						_tmp43_ = TRUE;
						while (TRUE) {
							gint _tmp45_;
							ValaArrayType* _tmp46_;
							gint _tmp47_;
							gint _tmp48_;
							ValaCCodeFunction* _tmp49_;
							ValaParameter* _tmp50_;
							gint _tmp51_;
							gchar* _tmp52_;
							gchar* _tmp53_;
							ValaCCodeParameter* _tmp54_;
							ValaCCodeParameter* _tmp55_;
							if (!_tmp43_) {
								gint _tmp44_;
								_tmp44_ = dim;
								dim = _tmp44_ + 1;
							}
							_tmp43_ = FALSE;
							_tmp45_ = dim;
							_tmp46_ = array_type;
							_tmp47_ = vala_array_type_get_rank (_tmp46_);
							_tmp48_ = _tmp47_;
							if (!(_tmp45_ <= _tmp48_)) {
								break;
							}
							_tmp49_ = function;
							_tmp50_ = param;
							_tmp51_ = dim;
							_tmp52_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, _tmp50_, _tmp51_);
							_tmp53_ = _tmp52_;
							_tmp54_ = vala_ccode_parameter_new (_tmp53_, "int");
							_tmp55_ = _tmp54_;
							vala_ccode_function_add_parameter (_tmp49_, _tmp55_);
							_vala_ccode_node_unref0 (_tmp55_);
							_g_free0 (_tmp53_);
						}
					}
				}
				_vala_code_node_unref0 (array_type);
			}
			_vala_ccode_node_unref0 (cparam);
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	_tmp56_ = function;
	_tmp57_ = vala_ccode_parameter_new ("_data", "gpointer*");
	_tmp58_ = _tmp57_;
	vala_ccode_function_add_parameter (_tmp56_, _tmp58_);
	_vala_ccode_node_unref0 (_tmp58_);
	_tmp59_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp59_);
	_tmp60_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp61_ = _tmp60_;
	_tmp62_ = vala_ccode_identifier_new ("_data");
	_tmp63_ = _tmp62_;
	_tmp64_ = vala_ccode_constant_new ("1");
	_tmp65_ = _tmp64_;
	_tmp66_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp63_, (ValaCCodeExpression*) _tmp65_);
	_tmp67_ = _tmp66_;
	_tmp68_ = vala_ccode_variable_declarator_new ("_connection", (ValaCCodeExpression*) _tmp67_, NULL);
	_tmp69_ = _tmp68_;
	vala_ccode_function_add_declaration (_tmp61_, "GDBusConnection *", (ValaCCodeDeclarator*) _tmp69_, 0);
	_vala_ccode_node_unref0 (_tmp69_);
	_vala_ccode_node_unref0 (_tmp67_);
	_vala_ccode_node_unref0 (_tmp65_);
	_vala_ccode_node_unref0 (_tmp63_);
	_tmp70_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp71_ = _tmp70_;
	_tmp72_ = vala_ccode_identifier_new ("_data");
	_tmp73_ = _tmp72_;
	_tmp74_ = vala_ccode_constant_new ("2");
	_tmp75_ = _tmp74_;
	_tmp76_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp73_, (ValaCCodeExpression*) _tmp75_);
	_tmp77_ = _tmp76_;
	_tmp78_ = vala_ccode_variable_declarator_new ("_path", (ValaCCodeExpression*) _tmp77_, NULL);
	_tmp79_ = _tmp78_;
	vala_ccode_function_add_declaration (_tmp71_, "const gchar *", (ValaCCodeDeclarator*) _tmp79_, 0);
	_vala_ccode_node_unref0 (_tmp79_);
	_vala_ccode_node_unref0 (_tmp77_);
	_vala_ccode_node_unref0 (_tmp75_);
	_vala_ccode_node_unref0 (_tmp73_);
	_tmp80_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp81_ = _tmp80_;
	_tmp82_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
	_tmp83_ = _tmp82_;
	vala_ccode_function_add_declaration (_tmp81_, "GVariant", (ValaCCodeDeclarator*) _tmp83_, 0);
	_vala_ccode_node_unref0 (_tmp83_);
	_tmp84_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp85_ = _tmp84_;
	_tmp86_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
	_tmp87_ = _tmp86_;
	vala_ccode_function_add_declaration (_tmp85_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp87_, 0);
	_vala_ccode_node_unref0 (_tmp87_);
	_tmp88_ = vala_ccode_identifier_new ("g_variant_builder_init");
	_tmp89_ = _tmp88_;
	_tmp90_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp89_);
	_tmp91_ = _tmp90_;
	_vala_ccode_node_unref0 (_tmp89_);
	builder_init = _tmp91_;
	_tmp92_ = builder_init;
	_tmp93_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp94_ = _tmp93_;
	_tmp95_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp94_);
	_tmp96_ = _tmp95_;
	vala_ccode_function_call_add_argument (_tmp92_, (ValaCCodeExpression*) _tmp96_);
	_vala_ccode_node_unref0 (_tmp96_);
	_vala_ccode_node_unref0 (_tmp94_);
	_tmp97_ = builder_init;
	_tmp98_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
	_tmp99_ = _tmp98_;
	vala_ccode_function_call_add_argument (_tmp97_, (ValaCCodeExpression*) _tmp99_);
	_vala_ccode_node_unref0 (_tmp99_);
	_tmp100_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp101_ = _tmp100_;
	_tmp102_ = builder_init;
	vala_ccode_function_add_expression (_tmp101_, (ValaCCodeExpression*) _tmp102_);
	{
		ValaList* _param_list = NULL;
		ValaSignal* _tmp103_;
		ValaList* _tmp104_;
		gint _param_size = 0;
		ValaList* _tmp105_;
		gint _tmp106_;
		gint _tmp107_;
		gint _param_index = 0;
		_tmp103_ = sig;
		_tmp104_ = vala_callable_get_parameters ((ValaCallable*) _tmp103_);
		_param_list = _tmp104_;
		_tmp105_ = _param_list;
		_tmp106_ = vala_collection_get_size ((ValaCollection*) _tmp105_);
		_tmp107_ = _tmp106_;
		_param_size = _tmp107_;
		_param_index = -1;
		while (TRUE) {
			gint _tmp108_;
			gint _tmp109_;
			gint _tmp110_;
			ValaParameter* param = NULL;
			ValaList* _tmp111_;
			gint _tmp112_;
			gpointer _tmp113_;
			gchar* param_name = NULL;
			ValaParameter* _tmp114_;
			const gchar* _tmp115_;
			const gchar* _tmp116_;
			gchar* _tmp117_;
			ValaCCodeExpression* expr = NULL;
			const gchar* _tmp118_;
			ValaCCodeIdentifier* _tmp119_;
			ValaParameter* _tmp120_;
			ValaDataType* _tmp121_;
			ValaDataType* _tmp122_;
			gboolean _tmp123_;
			ValaParameter* _tmp126_;
			ValaDataType* _tmp127_;
			ValaDataType* _tmp128_;
			ValaCCodeIdentifier* _tmp129_;
			ValaCCodeIdentifier* _tmp130_;
			ValaCCodeExpression* _tmp131_;
			ValaParameter* _tmp132_;
			_tmp108_ = _param_index;
			_param_index = _tmp108_ + 1;
			_tmp109_ = _param_index;
			_tmp110_ = _param_size;
			if (!(_tmp109_ < _tmp110_)) {
				break;
			}
			_tmp111_ = _param_list;
			_tmp112_ = _param_index;
			_tmp113_ = vala_list_get (_tmp111_, _tmp112_);
			param = (ValaParameter*) _tmp113_;
			_tmp114_ = param;
			_tmp115_ = vala_symbol_get_name ((ValaSymbol*) _tmp114_);
			_tmp116_ = _tmp115_;
			_tmp117_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp116_);
			param_name = _tmp117_;
			_tmp118_ = param_name;
			_tmp119_ = vala_ccode_identifier_new (_tmp118_);
			expr = (ValaCCodeExpression*) _tmp119_;
			_tmp120_ = param;
			_tmp121_ = vala_variable_get_variable_type ((ValaVariable*) _tmp120_);
			_tmp122_ = _tmp121_;
			_tmp123_ = vala_data_type_is_real_struct_type (_tmp122_);
			if (_tmp123_) {
				ValaCCodeExpression* _tmp124_;
				ValaCCodeUnaryExpression* _tmp125_;
				_tmp124_ = expr;
				_tmp125_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, _tmp124_);
				_vala_ccode_node_unref0 (expr);
				expr = (ValaCCodeExpression*) _tmp125_;
			}
			_tmp126_ = param;
			_tmp127_ = vala_variable_get_variable_type ((ValaVariable*) _tmp126_);
			_tmp128_ = _tmp127_;
			_tmp129_ = vala_ccode_identifier_new ("_arguments_builder");
			_tmp130_ = _tmp129_;
			_tmp131_ = expr;
			_tmp132_ = param;
			vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp128_, (ValaCCodeExpression*) _tmp130_, _tmp131_, (ValaSymbol*) _tmp132_);
			_vala_ccode_node_unref0 (_tmp130_);
			_vala_ccode_node_unref0 (expr);
			_g_free0 (param_name);
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	_tmp133_ = vala_ccode_identifier_new ("g_variant_builder_end");
	_tmp134_ = _tmp133_;
	_tmp135_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp134_);
	_tmp136_ = _tmp135_;
	_vala_ccode_node_unref0 (_tmp134_);
	builder_end = _tmp136_;
	_tmp137_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp138_ = _tmp137_;
	_tmp139_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp138_);
	_tmp140_ = _tmp139_;
	vala_ccode_function_call_add_argument (builder_end, (ValaCCodeExpression*) _tmp140_);
	_vala_ccode_node_unref0 (_tmp140_);
	_vala_ccode_node_unref0 (_tmp138_);
	_tmp141_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp142_ = _tmp141_;
	_tmp143_ = vala_ccode_identifier_new ("_arguments");
	_tmp144_ = _tmp143_;
	vala_ccode_function_add_assignment (_tmp142_, (ValaCCodeExpression*) _tmp144_, (ValaCCodeExpression*) builder_end);
	_vala_ccode_node_unref0 (_tmp144_);
	_tmp145_ = vala_ccode_identifier_new ("g_dbus_connection_emit_signal");
	_tmp146_ = _tmp145_;
	_tmp147_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp146_);
	_tmp148_ = _tmp147_;
	_vala_ccode_node_unref0 (_tmp146_);
	ccall = _tmp148_;
	_tmp149_ = vala_ccode_identifier_new ("_connection");
	_tmp150_ = _tmp149_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp150_);
	_vala_ccode_node_unref0 (_tmp150_);
	_tmp151_ = vala_ccode_constant_new ("NULL");
	_tmp152_ = _tmp151_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp152_);
	_vala_ccode_node_unref0 (_tmp152_);
	_tmp153_ = vala_ccode_identifier_new ("_path");
	_tmp154_ = _tmp153_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp154_);
	_vala_ccode_node_unref0 (_tmp154_);
	_tmp155_ = dbus_iface_name;
	_tmp156_ = g_strdup_printf ("\"%s\"", _tmp155_);
	_tmp157_ = _tmp156_;
	_tmp158_ = vala_ccode_constant_new (_tmp157_);
	_tmp159_ = _tmp158_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp159_);
	_vala_ccode_node_unref0 (_tmp159_);
	_g_free0 (_tmp157_);
	_tmp160_ = sig;
	_tmp161_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp160_);
	_tmp162_ = _tmp161_;
	_tmp163_ = g_strdup_printf ("\"%s\"", _tmp162_);
	_tmp164_ = _tmp163_;
	_tmp165_ = vala_ccode_constant_new (_tmp164_);
	_tmp166_ = _tmp165_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp166_);
	_vala_ccode_node_unref0 (_tmp166_);
	_g_free0 (_tmp164_);
	_g_free0 (_tmp162_);
	_tmp167_ = vala_ccode_identifier_new ("_arguments");
	_tmp168_ = _tmp167_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp168_);
	_vala_ccode_node_unref0 (_tmp168_);
	_tmp169_ = vala_ccode_constant_new ("NULL");
	_tmp170_ = _tmp169_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp170_);
	_vala_ccode_node_unref0 (_tmp170_);
	_tmp171_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp172_ = _tmp171_;
	vala_ccode_function_add_expression (_tmp172_, (ValaCCodeExpression*) ccall);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp173_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp174_ = function;
	vala_ccode_file_add_function_declaration (_tmp173_, _tmp174_);
	_tmp175_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp176_ = function;
	vala_ccode_file_add_function (_tmp175_, _tmp176_);
	result = wrapper_name;
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (builder_end);
	_vala_ccode_node_unref0 (builder_init);
	_vala_ccode_node_unref0 (function);
	return result;
}


static gchar* vala_gd_bus_server_module_generate_dbus_property_get_wrapper (ValaGDBusServerModule* self, ValaProperty* prop, ValaObjectTypeSymbol* sym) {
	gchar* result = NULL;
	gchar* wrapper_name = NULL;
	ValaProperty* _tmp0_;
	ValaPropertyAccessor* _tmp1_;
	ValaPropertyAccessor* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp7_;
	ValaCCodeFunction* _tmp8_;
	ValaCCodeFunction* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaObjectTypeSymbol* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	ValaCCodeParameter* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeFunction* _tmp18_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaProperty* _tmp19_;
	ValaPropertyAccessor* _tmp20_;
	ValaPropertyAccessor* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	ValaCCodeIdentifier* _tmp24_;
	ValaCCodeIdentifier* _tmp25_;
	ValaCCodeFunctionCall* _tmp26_;
	ValaCCodeFunctionCall* _tmp27_;
	ValaCCodeFunctionCall* _tmp28_;
	ValaCCodeIdentifier* _tmp29_;
	ValaCCodeIdentifier* _tmp30_;
	ValaProperty* _tmp31_;
	ValaPropertyAccessor* _tmp32_;
	ValaPropertyAccessor* _tmp33_;
	ValaDataType* _tmp34_;
	ValaDataType* _tmp35_;
	gboolean _tmp36_;
	ValaCCodeFunction* _tmp107_;
	ValaCCodeFunction* _tmp108_;
	ValaCCodeVariableDeclarator* _tmp109_;
	ValaCCodeVariableDeclarator* _tmp110_;
	ValaProperty* _tmp111_;
	gchar* _tmp112_;
	gchar* _tmp113_;
	gboolean _tmp114_;
	ValaCCodeFunction* _tmp152_;
	ValaCCodeFunction* _tmp153_;
	ValaCCodeIdentifier* _tmp154_;
	ValaCCodeIdentifier* _tmp155_;
	ValaCCodeFile* _tmp156_;
	ValaCCodeFunction* _tmp157_;
	ValaCCodeFile* _tmp158_;
	ValaCCodeFunction* _tmp159_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (prop != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = prop;
	_tmp1_ = vala_property_get_get_accessor (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = vala_get_ccode_name ((ValaCodeNode*) _tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_strdup_printf ("_dbus_%s", _tmp4_);
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	wrapper_name = _tmp6_;
	_tmp7_ = wrapper_name;
	_tmp8_ = vala_ccode_function_new (_tmp7_, "GVariant*");
	function = _tmp8_;
	_tmp9_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp9_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp10_ = function;
	_tmp11_ = sym;
	_tmp12_ = vala_get_ccode_name ((ValaCodeNode*) _tmp11_);
	_tmp13_ = _tmp12_;
	_tmp14_ = g_strconcat (_tmp13_, "*", NULL);
	_tmp15_ = _tmp14_;
	_tmp16_ = vala_ccode_parameter_new ("self", _tmp15_);
	_tmp17_ = _tmp16_;
	vala_ccode_function_add_parameter (_tmp10_, _tmp17_);
	_vala_ccode_node_unref0 (_tmp17_);
	_g_free0 (_tmp15_);
	_g_free0 (_tmp13_);
	_tmp18_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp18_);
	_tmp19_ = prop;
	_tmp20_ = vala_property_get_get_accessor (_tmp19_);
	_tmp21_ = _tmp20_;
	_tmp22_ = vala_get_ccode_name ((ValaCodeNode*) _tmp21_);
	_tmp23_ = _tmp22_;
	_tmp24_ = vala_ccode_identifier_new (_tmp23_);
	_tmp25_ = _tmp24_;
	_tmp26_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp25_);
	_tmp27_ = _tmp26_;
	_vala_ccode_node_unref0 (_tmp25_);
	_g_free0 (_tmp23_);
	ccall = _tmp27_;
	_tmp28_ = ccall;
	_tmp29_ = vala_ccode_identifier_new ("self");
	_tmp30_ = _tmp29_;
	vala_ccode_function_call_add_argument (_tmp28_, (ValaCCodeExpression*) _tmp30_);
	_vala_ccode_node_unref0 (_tmp30_);
	_tmp31_ = prop;
	_tmp32_ = vala_property_get_get_accessor (_tmp31_);
	_tmp33_ = _tmp32_;
	_tmp34_ = vala_property_accessor_get_value_type (_tmp33_);
	_tmp35_ = _tmp34_;
	_tmp36_ = vala_data_type_is_real_non_null_struct_type (_tmp35_);
	if (_tmp36_) {
		ValaCCodeFunction* _tmp37_;
		ValaCCodeFunction* _tmp38_;
		ValaProperty* _tmp39_;
		ValaPropertyAccessor* _tmp40_;
		ValaPropertyAccessor* _tmp41_;
		ValaDataType* _tmp42_;
		ValaDataType* _tmp43_;
		gchar* _tmp44_;
		gchar* _tmp45_;
		ValaProperty* _tmp46_;
		ValaPropertyAccessor* _tmp47_;
		ValaPropertyAccessor* _tmp48_;
		ValaDataType* _tmp49_;
		ValaDataType* _tmp50_;
		ValaCCodeExpression* _tmp51_;
		ValaCCodeExpression* _tmp52_;
		ValaCCodeVariableDeclarator* _tmp53_;
		ValaCCodeVariableDeclarator* _tmp54_;
		ValaCCodeFunctionCall* _tmp55_;
		ValaCCodeIdentifier* _tmp56_;
		ValaCCodeIdentifier* _tmp57_;
		ValaCCodeUnaryExpression* _tmp58_;
		ValaCCodeUnaryExpression* _tmp59_;
		ValaCCodeFunction* _tmp60_;
		ValaCCodeFunction* _tmp61_;
		ValaCCodeFunctionCall* _tmp62_;
		_tmp37_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp38_ = _tmp37_;
		_tmp39_ = prop;
		_tmp40_ = vala_property_get_get_accessor (_tmp39_);
		_tmp41_ = _tmp40_;
		_tmp42_ = vala_property_accessor_get_value_type (_tmp41_);
		_tmp43_ = _tmp42_;
		_tmp44_ = vala_get_ccode_name ((ValaCodeNode*) _tmp43_);
		_tmp45_ = _tmp44_;
		_tmp46_ = prop;
		_tmp47_ = vala_property_get_get_accessor (_tmp46_);
		_tmp48_ = _tmp47_;
		_tmp49_ = vala_property_accessor_get_value_type (_tmp48_);
		_tmp50_ = _tmp49_;
		_tmp51_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp50_, TRUE);
		_tmp52_ = _tmp51_;
		_tmp53_ = vala_ccode_variable_declarator_new_zero ("result", _tmp52_, NULL);
		_tmp54_ = _tmp53_;
		vala_ccode_function_add_declaration (_tmp38_, _tmp45_, (ValaCCodeDeclarator*) _tmp54_, 0);
		_vala_ccode_node_unref0 (_tmp54_);
		_vala_ccode_node_unref0 (_tmp52_);
		_g_free0 (_tmp45_);
		_tmp55_ = ccall;
		_tmp56_ = vala_ccode_identifier_new ("result");
		_tmp57_ = _tmp56_;
		_tmp58_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp57_);
		_tmp59_ = _tmp58_;
		vala_ccode_function_call_add_argument (_tmp55_, (ValaCCodeExpression*) _tmp59_);
		_vala_ccode_node_unref0 (_tmp59_);
		_vala_ccode_node_unref0 (_tmp57_);
		_tmp60_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp61_ = _tmp60_;
		_tmp62_ = ccall;
		vala_ccode_function_add_expression (_tmp61_, (ValaCCodeExpression*) _tmp62_);
	} else {
		ValaCCodeFunction* _tmp63_;
		ValaCCodeFunction* _tmp64_;
		ValaProperty* _tmp65_;
		ValaPropertyAccessor* _tmp66_;
		ValaPropertyAccessor* _tmp67_;
		ValaDataType* _tmp68_;
		ValaDataType* _tmp69_;
		gchar* _tmp70_;
		gchar* _tmp71_;
		ValaCCodeVariableDeclarator* _tmp72_;
		ValaCCodeVariableDeclarator* _tmp73_;
		ValaCCodeFunction* _tmp74_;
		ValaCCodeFunction* _tmp75_;
		ValaCCodeIdentifier* _tmp76_;
		ValaCCodeIdentifier* _tmp77_;
		ValaCCodeFunctionCall* _tmp78_;
		ValaArrayType* array_type = NULL;
		ValaProperty* _tmp79_;
		ValaPropertyAccessor* _tmp80_;
		ValaPropertyAccessor* _tmp81_;
		ValaDataType* _tmp82_;
		ValaDataType* _tmp83_;
		ValaArrayType* _tmp84_;
		ValaArrayType* _tmp85_;
		_tmp63_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp64_ = _tmp63_;
		_tmp65_ = prop;
		_tmp66_ = vala_property_get_get_accessor (_tmp65_);
		_tmp67_ = _tmp66_;
		_tmp68_ = vala_property_accessor_get_value_type (_tmp67_);
		_tmp69_ = _tmp68_;
		_tmp70_ = vala_get_ccode_name ((ValaCodeNode*) _tmp69_);
		_tmp71_ = _tmp70_;
		_tmp72_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
		_tmp73_ = _tmp72_;
		vala_ccode_function_add_declaration (_tmp64_, _tmp71_, (ValaCCodeDeclarator*) _tmp73_, 0);
		_vala_ccode_node_unref0 (_tmp73_);
		_g_free0 (_tmp71_);
		_tmp74_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp75_ = _tmp74_;
		_tmp76_ = vala_ccode_identifier_new ("result");
		_tmp77_ = _tmp76_;
		_tmp78_ = ccall;
		vala_ccode_function_add_assignment (_tmp75_, (ValaCCodeExpression*) _tmp77_, (ValaCCodeExpression*) _tmp78_);
		_vala_ccode_node_unref0 (_tmp77_);
		_tmp79_ = prop;
		_tmp80_ = vala_property_get_get_accessor (_tmp79_);
		_tmp81_ = _tmp80_;
		_tmp82_ = vala_property_accessor_get_value_type (_tmp81_);
		_tmp83_ = _tmp82_;
		_tmp84_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp83_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp83_) : NULL);
		array_type = _tmp84_;
		_tmp85_ = array_type;
		if (_tmp85_ != NULL) {
			{
				gint dim = 0;
				dim = 1;
				{
					gboolean _tmp86_ = FALSE;
					_tmp86_ = TRUE;
					while (TRUE) {
						gint _tmp88_;
						ValaArrayType* _tmp89_;
						gint _tmp90_;
						gint _tmp91_;
						gchar* length_cname = NULL;
						gint _tmp92_;
						gchar* _tmp93_;
						ValaCCodeFunction* _tmp94_;
						ValaCCodeFunction* _tmp95_;
						const gchar* _tmp96_;
						ValaCCodeConstant* _tmp97_;
						ValaCCodeConstant* _tmp98_;
						ValaCCodeVariableDeclarator* _tmp99_;
						ValaCCodeVariableDeclarator* _tmp100_;
						ValaCCodeFunctionCall* _tmp101_;
						const gchar* _tmp102_;
						ValaCCodeIdentifier* _tmp103_;
						ValaCCodeIdentifier* _tmp104_;
						ValaCCodeUnaryExpression* _tmp105_;
						ValaCCodeUnaryExpression* _tmp106_;
						if (!_tmp86_) {
							gint _tmp87_;
							_tmp87_ = dim;
							dim = _tmp87_ + 1;
						}
						_tmp86_ = FALSE;
						_tmp88_ = dim;
						_tmp89_ = array_type;
						_tmp90_ = vala_array_type_get_rank (_tmp89_);
						_tmp91_ = _tmp90_;
						if (!(_tmp88_ <= _tmp91_)) {
							break;
						}
						_tmp92_ = dim;
						_tmp93_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", _tmp92_);
						length_cname = _tmp93_;
						_tmp94_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp95_ = _tmp94_;
						_tmp96_ = length_cname;
						_tmp97_ = vala_ccode_constant_new ("0");
						_tmp98_ = _tmp97_;
						_tmp99_ = vala_ccode_variable_declarator_new_zero (_tmp96_, (ValaCCodeExpression*) _tmp98_, NULL);
						_tmp100_ = _tmp99_;
						vala_ccode_function_add_declaration (_tmp95_, "int", (ValaCCodeDeclarator*) _tmp100_, 0);
						_vala_ccode_node_unref0 (_tmp100_);
						_vala_ccode_node_unref0 (_tmp98_);
						_tmp101_ = ccall;
						_tmp102_ = length_cname;
						_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_function_call_add_argument (_tmp101_, (ValaCCodeExpression*) _tmp106_);
						_vala_ccode_node_unref0 (_tmp106_);
						_vala_ccode_node_unref0 (_tmp104_);
						_g_free0 (length_cname);
					}
				}
			}
		}
		_vala_code_node_unref0 (array_type);
	}
	_tmp107_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp108_ = _tmp107_;
	_tmp109_ = vala_ccode_variable_declarator_new ("_reply", NULL, NULL);
	_tmp110_ = _tmp109_;
	vala_ccode_function_add_declaration (_tmp108_, "GVariant*", (ValaCCodeDeclarator*) _tmp110_, 0);
	_vala_ccode_node_unref0 (_tmp110_);
	_tmp111_ = prop;
	_tmp112_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) _tmp111_);
	_tmp113_ = _tmp112_;
	_tmp114_ = _tmp113_ != NULL;
	_g_free0 (_tmp113_);
	if (_tmp114_) {
		ValaCCodeFunction* _tmp115_;
		ValaCCodeFunction* _tmp116_;
		ValaCCodeIdentifier* _tmp117_;
		ValaCCodeIdentifier* _tmp118_;
		ValaCCodeIdentifier* _tmp119_;
		ValaCCodeIdentifier* _tmp120_;
		_tmp115_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp116_ = _tmp115_;
		_tmp117_ = vala_ccode_identifier_new ("_reply");
		_tmp118_ = _tmp117_;
		_tmp119_ = vala_ccode_identifier_new ("result");
		_tmp120_ = _tmp119_;
		vala_ccode_function_add_assignment (_tmp116_, (ValaCCodeExpression*) _tmp118_, (ValaCCodeExpression*) _tmp120_);
		_vala_ccode_node_unref0 (_tmp120_);
		_vala_ccode_node_unref0 (_tmp118_);
	} else {
		ValaCCodeExpression* reply_expr = NULL;
		ValaProperty* _tmp121_;
		ValaPropertyAccessor* _tmp122_;
		ValaPropertyAccessor* _tmp123_;
		ValaDataType* _tmp124_;
		ValaDataType* _tmp125_;
		ValaCCodeIdentifier* _tmp126_;
		ValaCCodeIdentifier* _tmp127_;
		ValaCCodeExpression* _tmp128_;
		ValaCCodeExpression* _tmp129_;
		ValaCCodeFunction* _tmp130_;
		ValaCCodeFunction* _tmp131_;
		ValaCCodeIdentifier* _tmp132_;
		ValaCCodeIdentifier* _tmp133_;
		ValaCCodeExpression* _tmp134_;
		ValaProperty* _tmp135_;
		ValaPropertyAccessor* _tmp136_;
		ValaPropertyAccessor* _tmp137_;
		ValaDataType* _tmp138_;
		ValaDataType* _tmp139_;
		gboolean _tmp140_;
		_tmp121_ = prop;
		_tmp122_ = vala_property_get_get_accessor (_tmp121_);
		_tmp123_ = _tmp122_;
		_tmp124_ = vala_property_accessor_get_value_type (_tmp123_);
		_tmp125_ = _tmp124_;
		_tmp126_ = vala_ccode_identifier_new ("result");
		_tmp127_ = _tmp126_;
		_tmp128_ = vala_ccode_base_module_serialize_expression ((ValaCCodeBaseModule*) self, _tmp125_, (ValaCCodeExpression*) _tmp127_);
		_tmp129_ = _tmp128_;
		_vala_ccode_node_unref0 (_tmp127_);
		reply_expr = _tmp129_;
		_tmp130_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp131_ = _tmp130_;
		_tmp132_ = vala_ccode_identifier_new ("_reply");
		_tmp133_ = _tmp132_;
		_tmp134_ = reply_expr;
		vala_ccode_function_add_assignment (_tmp131_, (ValaCCodeExpression*) _tmp133_, _tmp134_);
		_vala_ccode_node_unref0 (_tmp133_);
		_tmp135_ = prop;
		_tmp136_ = vala_property_get_get_accessor (_tmp135_);
		_tmp137_ = _tmp136_;
		_tmp138_ = vala_property_accessor_get_value_type (_tmp137_);
		_tmp139_ = _tmp138_;
		_tmp140_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp139_);
		if (_tmp140_) {
			ValaLocalVariable* local = NULL;
			ValaProperty* _tmp141_;
			ValaPropertyAccessor* _tmp142_;
			ValaPropertyAccessor* _tmp143_;
			ValaDataType* _tmp144_;
			ValaDataType* _tmp145_;
			ValaLocalVariable* _tmp146_;
			ValaCCodeFunction* _tmp147_;
			ValaCCodeFunction* _tmp148_;
			ValaLocalVariable* _tmp149_;
			ValaCCodeExpression* _tmp150_;
			ValaCCodeExpression* _tmp151_;
			_tmp141_ = prop;
			_tmp142_ = vala_property_get_get_accessor (_tmp141_);
			_tmp143_ = _tmp142_;
			_tmp144_ = vala_property_accessor_get_value_type (_tmp143_);
			_tmp145_ = _tmp144_;
			_tmp146_ = vala_local_variable_new (_tmp145_, ".result", NULL, NULL);
			local = _tmp146_;
			_tmp147_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp148_ = _tmp147_;
			_tmp149_ = local;
			_tmp150_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp149_);
			_tmp151_ = _tmp150_;
			vala_ccode_function_add_expression (_tmp148_, _tmp151_);
			_vala_ccode_node_unref0 (_tmp151_);
			_vala_code_node_unref0 (local);
		}
		_vala_ccode_node_unref0 (reply_expr);
	}
	_tmp152_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp153_ = _tmp152_;
	_tmp154_ = vala_ccode_identifier_new ("_reply");
	_tmp155_ = _tmp154_;
	vala_ccode_function_add_return (_tmp153_, (ValaCCodeExpression*) _tmp155_);
	_vala_ccode_node_unref0 (_tmp155_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp156_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp157_ = function;
	vala_ccode_file_add_function_declaration (_tmp156_, _tmp157_);
	_tmp158_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp159_ = function;
	vala_ccode_file_add_function (_tmp158_, _tmp159_);
	result = wrapper_name;
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (function);
	return result;
}


static gchar* vala_gd_bus_server_module_generate_dbus_property_set_wrapper (ValaGDBusServerModule* self, ValaProperty* prop, ValaObjectTypeSymbol* sym) {
	gchar* result = NULL;
	gchar* wrapper_name = NULL;
	ValaProperty* _tmp0_;
	ValaPropertyAccessor* _tmp1_;
	ValaPropertyAccessor* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp7_;
	ValaCCodeFunction* _tmp8_;
	ValaCCodeFunction* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaObjectTypeSymbol* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	ValaCCodeParameter* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeFunction* _tmp18_;
	ValaCCodeParameter* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaCCodeFunction* _tmp21_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaProperty* _tmp22_;
	ValaPropertyAccessor* _tmp23_;
	ValaPropertyAccessor* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	ValaCCodeIdentifier* _tmp27_;
	ValaCCodeIdentifier* _tmp28_;
	ValaCCodeFunctionCall* _tmp29_;
	ValaCCodeFunctionCall* _tmp30_;
	ValaCCodeFunctionCall* _tmp31_;
	ValaCCodeIdentifier* _tmp32_;
	ValaCCodeIdentifier* _tmp33_;
	ValaDataType* owned_type = NULL;
	ValaProperty* _tmp34_;
	ValaDataType* _tmp35_;
	ValaDataType* _tmp36_;
	ValaDataType* _tmp37_;
	ValaDataType* _tmp38_;
	ValaCCodeFunction* _tmp39_;
	ValaCCodeFunction* _tmp40_;
	ValaDataType* _tmp41_;
	gchar* _tmp42_;
	gchar* _tmp43_;
	ValaProperty* _tmp44_;
	ValaDataType* _tmp45_;
	ValaDataType* _tmp46_;
	ValaCCodeExpression* _tmp47_;
	ValaCCodeExpression* _tmp48_;
	ValaCCodeVariableDeclarator* _tmp49_;
	ValaCCodeVariableDeclarator* _tmp50_;
	ValaStruct* st = NULL;
	ValaProperty* _tmp51_;
	ValaDataType* _tmp52_;
	ValaDataType* _tmp53_;
	ValaTypeSymbol* _tmp54_;
	ValaTypeSymbol* _tmp55_;
	ValaStruct* _tmp56_;
	gboolean _tmp57_ = FALSE;
	ValaStruct* _tmp58_;
	ValaCCodeIdentifier* target = NULL;
	ValaCCodeIdentifier* _tmp93_;
	ValaProperty* _tmp94_;
	gchar* _tmp95_;
	gchar* _tmp96_;
	gboolean _tmp97_;
	ValaCCodeFile* _tmp130_;
	ValaCCodeFunction* _tmp131_;
	ValaCCodeFile* _tmp132_;
	ValaCCodeFunction* _tmp133_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (prop != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = prop;
	_tmp1_ = vala_property_get_set_accessor (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = vala_get_ccode_name ((ValaCodeNode*) _tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_strdup_printf ("_dbus_%s", _tmp4_);
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	wrapper_name = _tmp6_;
	_tmp7_ = wrapper_name;
	_tmp8_ = vala_ccode_function_new (_tmp7_, "void");
	function = _tmp8_;
	_tmp9_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp9_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp10_ = function;
	_tmp11_ = sym;
	_tmp12_ = vala_get_ccode_name ((ValaCodeNode*) _tmp11_);
	_tmp13_ = _tmp12_;
	_tmp14_ = g_strconcat (_tmp13_, "*", NULL);
	_tmp15_ = _tmp14_;
	_tmp16_ = vala_ccode_parameter_new ("self", _tmp15_);
	_tmp17_ = _tmp16_;
	vala_ccode_function_add_parameter (_tmp10_, _tmp17_);
	_vala_ccode_node_unref0 (_tmp17_);
	_g_free0 (_tmp15_);
	_g_free0 (_tmp13_);
	_tmp18_ = function;
	_tmp19_ = vala_ccode_parameter_new ("_value", "GVariant*");
	_tmp20_ = _tmp19_;
	vala_ccode_function_add_parameter (_tmp18_, _tmp20_);
	_vala_ccode_node_unref0 (_tmp20_);
	_tmp21_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp21_);
	_tmp22_ = prop;
	_tmp23_ = vala_property_get_set_accessor (_tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_get_ccode_name ((ValaCodeNode*) _tmp24_);
	_tmp26_ = _tmp25_;
	_tmp27_ = vala_ccode_identifier_new (_tmp26_);
	_tmp28_ = _tmp27_;
	_tmp29_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp28_);
	_tmp30_ = _tmp29_;
	_vala_ccode_node_unref0 (_tmp28_);
	_g_free0 (_tmp26_);
	ccall = _tmp30_;
	_tmp31_ = ccall;
	_tmp32_ = vala_ccode_identifier_new ("self");
	_tmp33_ = _tmp32_;
	vala_ccode_function_call_add_argument (_tmp31_, (ValaCCodeExpression*) _tmp33_);
	_vala_ccode_node_unref0 (_tmp33_);
	_tmp34_ = prop;
	_tmp35_ = vala_property_get_property_type (_tmp34_);
	_tmp36_ = _tmp35_;
	_tmp37_ = vala_data_type_copy (_tmp36_);
	owned_type = _tmp37_;
	_tmp38_ = owned_type;
	vala_data_type_set_value_owned (_tmp38_, TRUE);
	_tmp39_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp40_ = _tmp39_;
	_tmp41_ = owned_type;
	_tmp42_ = vala_get_ccode_name ((ValaCodeNode*) _tmp41_);
	_tmp43_ = _tmp42_;
	_tmp44_ = prop;
	_tmp45_ = vala_property_get_property_type (_tmp44_);
	_tmp46_ = _tmp45_;
	_tmp47_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp46_, TRUE);
	_tmp48_ = _tmp47_;
	_tmp49_ = vala_ccode_variable_declarator_new_zero ("value", _tmp48_, NULL);
	_tmp50_ = _tmp49_;
	vala_ccode_function_add_declaration (_tmp40_, _tmp43_, (ValaCCodeDeclarator*) _tmp50_, 0);
	_vala_ccode_node_unref0 (_tmp50_);
	_vala_ccode_node_unref0 (_tmp48_);
	_g_free0 (_tmp43_);
	_tmp51_ = prop;
	_tmp52_ = vala_property_get_property_type (_tmp51_);
	_tmp53_ = _tmp52_;
	_tmp54_ = vala_data_type_get_data_type (_tmp53_);
	_tmp55_ = _tmp54_;
	_tmp56_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp55_, VALA_TYPE_STRUCT) ? ((ValaStruct*) _tmp55_) : NULL);
	st = _tmp56_;
	_tmp58_ = st;
	if (_tmp58_ != NULL) {
		ValaStruct* _tmp59_;
		gboolean _tmp60_;
		_tmp59_ = st;
		_tmp60_ = vala_struct_is_simple_type (_tmp59_);
		_tmp57_ = !_tmp60_;
	} else {
		_tmp57_ = FALSE;
	}
	if (_tmp57_) {
		ValaCCodeFunctionCall* _tmp61_;
		ValaCCodeIdentifier* _tmp62_;
		ValaCCodeIdentifier* _tmp63_;
		ValaCCodeUnaryExpression* _tmp64_;
		ValaCCodeUnaryExpression* _tmp65_;
		_tmp61_ = ccall;
		_tmp62_ = vala_ccode_identifier_new ("value");
		_tmp63_ = _tmp62_;
		_tmp64_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp63_);
		_tmp65_ = _tmp64_;
		vala_ccode_function_call_add_argument (_tmp61_, (ValaCCodeExpression*) _tmp65_);
		_vala_ccode_node_unref0 (_tmp65_);
		_vala_ccode_node_unref0 (_tmp63_);
	} else {
		ValaCCodeFunctionCall* _tmp66_;
		ValaCCodeIdentifier* _tmp67_;
		ValaCCodeIdentifier* _tmp68_;
		ValaArrayType* array_type = NULL;
		ValaProperty* _tmp69_;
		ValaDataType* _tmp70_;
		ValaDataType* _tmp71_;
		ValaArrayType* _tmp72_;
		ValaArrayType* _tmp73_;
		_tmp66_ = ccall;
		_tmp67_ = vala_ccode_identifier_new ("value");
		_tmp68_ = _tmp67_;
		vala_ccode_function_call_add_argument (_tmp66_, (ValaCCodeExpression*) _tmp68_);
		_vala_ccode_node_unref0 (_tmp68_);
		_tmp69_ = prop;
		_tmp70_ = vala_property_get_property_type (_tmp69_);
		_tmp71_ = _tmp70_;
		_tmp72_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp71_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp71_) : NULL);
		array_type = _tmp72_;
		_tmp73_ = array_type;
		if (_tmp73_ != NULL) {
			{
				gint dim = 0;
				dim = 1;
				{
					gboolean _tmp74_ = FALSE;
					_tmp74_ = TRUE;
					while (TRUE) {
						gint _tmp76_;
						ValaArrayType* _tmp77_;
						gint _tmp78_;
						gint _tmp79_;
						ValaCCodeFunction* _tmp80_;
						ValaCCodeFunction* _tmp81_;
						gint _tmp82_;
						gchar* _tmp83_;
						gchar* _tmp84_;
						ValaCCodeVariableDeclarator* _tmp85_;
						ValaCCodeVariableDeclarator* _tmp86_;
						ValaCCodeFunctionCall* _tmp87_;
						gint _tmp88_;
						gchar* _tmp89_;
						gchar* _tmp90_;
						ValaCCodeIdentifier* _tmp91_;
						ValaCCodeIdentifier* _tmp92_;
						if (!_tmp74_) {
							gint _tmp75_;
							_tmp75_ = dim;
							dim = _tmp75_ + 1;
						}
						_tmp74_ = FALSE;
						_tmp76_ = dim;
						_tmp77_ = array_type;
						_tmp78_ = vala_array_type_get_rank (_tmp77_);
						_tmp79_ = _tmp78_;
						if (!(_tmp76_ <= _tmp79_)) {
							break;
						}
						_tmp80_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp81_ = _tmp80_;
						_tmp82_ = dim;
						_tmp83_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", _tmp82_);
						_tmp84_ = _tmp83_;
						_tmp85_ = vala_ccode_variable_declarator_new (_tmp84_, NULL, NULL);
						_tmp86_ = _tmp85_;
						vala_ccode_function_add_declaration (_tmp81_, "int", (ValaCCodeDeclarator*) _tmp86_, 0);
						_vala_ccode_node_unref0 (_tmp86_);
						_g_free0 (_tmp84_);
						_tmp87_ = ccall;
						_tmp88_ = dim;
						_tmp89_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", _tmp88_);
						_tmp90_ = _tmp89_;
						_tmp91_ = vala_ccode_identifier_new (_tmp90_);
						_tmp92_ = _tmp91_;
						vala_ccode_function_call_add_argument (_tmp87_, (ValaCCodeExpression*) _tmp92_);
						_vala_ccode_node_unref0 (_tmp92_);
						_g_free0 (_tmp90_);
					}
				}
			}
		}
		_vala_code_node_unref0 (array_type);
	}
	_tmp93_ = vala_ccode_identifier_new ("value");
	target = _tmp93_;
	_tmp94_ = prop;
	_tmp95_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) _tmp94_);
	_tmp96_ = _tmp95_;
	_tmp97_ = _tmp96_ != NULL;
	_g_free0 (_tmp96_);
	if (_tmp97_) {
		ValaCCodeFunction* _tmp98_;
		ValaCCodeFunction* _tmp99_;
		ValaCCodeIdentifier* _tmp100_;
		ValaCCodeIdentifier* _tmp101_;
		ValaCCodeIdentifier* _tmp102_;
		ValaCCodeFunction* _tmp103_;
		ValaCCodeFunction* _tmp104_;
		ValaCCodeFunctionCall* _tmp105_;
		_tmp98_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp99_ = _tmp98_;
		_tmp100_ = target;
		_tmp101_ = vala_ccode_identifier_new ("_value");
		_tmp102_ = _tmp101_;
		vala_ccode_function_add_assignment (_tmp99_, (ValaCCodeExpression*) _tmp100_, (ValaCCodeExpression*) _tmp102_);
		_vala_ccode_node_unref0 (_tmp102_);
		_tmp103_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp104_ = _tmp103_;
		_tmp105_ = ccall;
		vala_ccode_function_add_expression (_tmp104_, (ValaCCodeExpression*) _tmp105_);
	} else {
		ValaCCodeExpression* expr = NULL;
		ValaProperty* _tmp106_;
		ValaDataType* _tmp107_;
		ValaDataType* _tmp108_;
		ValaCCodeIdentifier* _tmp109_;
		ValaCCodeIdentifier* _tmp110_;
		ValaCCodeIdentifier* _tmp111_;
		ValaCCodeExpression* _tmp112_;
		ValaCCodeExpression* _tmp113_;
		ValaCCodeFunction* _tmp114_;
		ValaCCodeFunction* _tmp115_;
		ValaCCodeIdentifier* _tmp116_;
		ValaCCodeExpression* _tmp117_;
		ValaCCodeFunction* _tmp118_;
		ValaCCodeFunction* _tmp119_;
		ValaCCodeFunctionCall* _tmp120_;
		ValaDataType* _tmp121_;
		gboolean _tmp122_;
		_tmp106_ = prop;
		_tmp107_ = vala_property_get_property_type (_tmp106_);
		_tmp108_ = _tmp107_;
		_tmp109_ = vala_ccode_identifier_new ("_value");
		_tmp110_ = _tmp109_;
		_tmp111_ = target;
		_tmp112_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp108_, (ValaCCodeExpression*) _tmp110_, (ValaCCodeExpression*) _tmp111_, NULL, NULL);
		_tmp113_ = _tmp112_;
		_vala_ccode_node_unref0 (_tmp110_);
		expr = _tmp113_;
		_tmp114_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp115_ = _tmp114_;
		_tmp116_ = target;
		_tmp117_ = expr;
		vala_ccode_function_add_assignment (_tmp115_, (ValaCCodeExpression*) _tmp116_, _tmp117_);
		_tmp118_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp119_ = _tmp118_;
		_tmp120_ = ccall;
		vala_ccode_function_add_expression (_tmp119_, (ValaCCodeExpression*) _tmp120_);
		_tmp121_ = owned_type;
		_tmp122_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp121_);
		if (_tmp122_) {
			ValaLocalVariable* local = NULL;
			ValaDataType* _tmp123_;
			ValaLocalVariable* _tmp124_;
			ValaCCodeFunction* _tmp125_;
			ValaCCodeFunction* _tmp126_;
			ValaLocalVariable* _tmp127_;
			ValaCCodeExpression* _tmp128_;
			ValaCCodeExpression* _tmp129_;
			_tmp123_ = owned_type;
			_tmp124_ = vala_local_variable_new (_tmp123_, "value", NULL, NULL);
			local = _tmp124_;
			_tmp125_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp126_ = _tmp125_;
			_tmp127_ = local;
			_tmp128_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp127_);
			_tmp129_ = _tmp128_;
			vala_ccode_function_add_expression (_tmp126_, _tmp129_);
			_vala_ccode_node_unref0 (_tmp129_);
			_vala_code_node_unref0 (local);
		}
		_vala_ccode_node_unref0 (expr);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp130_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp131_ = function;
	vala_ccode_file_add_function_declaration (_tmp130_, _tmp131_);
	_tmp132_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp133_ = function;
	vala_ccode_file_add_function (_tmp132_, _tmp133_);
	result = wrapper_name;
	_vala_ccode_node_unref0 (target);
	_vala_code_node_unref0 (st);
	_vala_code_node_unref0 (owned_type);
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (function);
	return result;
}


static void vala_gd_bus_server_module_handle_signals (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym, gboolean connect) {
	gchar* dbus_iface_name = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp0_);
	dbus_iface_name = _tmp1_;
	_tmp2_ = dbus_iface_name;
	if (_tmp2_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	{
		ValaList* _sig_list = NULL;
		ValaObjectTypeSymbol* _tmp3_;
		ValaList* _tmp4_;
		gint _sig_size = 0;
		ValaList* _tmp5_;
		gint _tmp6_;
		gint _tmp7_;
		gint _sig_index = 0;
		_tmp3_ = sym;
		_tmp4_ = vala_object_type_symbol_get_signals (_tmp3_);
		_sig_list = _tmp4_;
		_tmp5_ = _sig_list;
		_tmp6_ = vala_collection_get_size ((ValaCollection*) _tmp5_);
		_tmp7_ = _tmp6_;
		_sig_size = _tmp7_;
		_sig_index = -1;
		while (TRUE) {
			gint _tmp8_;
			gint _tmp9_;
			gint _tmp10_;
			ValaSignal* sig = NULL;
			ValaList* _tmp11_;
			gint _tmp12_;
			gpointer _tmp13_;
			ValaSignal* _tmp14_;
			ValaSymbolAccessibility _tmp15_;
			ValaSymbolAccessibility _tmp16_;
			ValaSignal* _tmp17_;
			gboolean _tmp18_;
			gboolean _tmp19_;
			_tmp8_ = _sig_index;
			_sig_index = _tmp8_ + 1;
			_tmp9_ = _sig_index;
			_tmp10_ = _sig_size;
			if (!(_tmp9_ < _tmp10_)) {
				break;
			}
			_tmp11_ = _sig_list;
			_tmp12_ = _sig_index;
			_tmp13_ = vala_list_get (_tmp11_, _tmp12_);
			sig = (ValaSignal*) _tmp13_;
			_tmp14_ = sig;
			_tmp15_ = vala_symbol_get_access ((ValaSymbol*) _tmp14_);
			_tmp16_ = _tmp15_;
			if (_tmp16_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
				_vala_code_node_unref0 (sig);
				continue;
			}
			_tmp17_ = sig;
			_tmp18_ = vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp17_);
			if (!_tmp18_) {
				_vala_code_node_unref0 (sig);
				continue;
			}
			_tmp19_ = connect;
			if (_tmp19_) {
				ValaCCodeFunctionCall* connect_call = NULL;
				ValaCCodeIdentifier* _tmp20_;
				ValaCCodeIdentifier* _tmp21_;
				ValaCCodeFunctionCall* _tmp22_;
				ValaCCodeFunctionCall* _tmp23_;
				ValaCCodeFunctionCall* _tmp24_;
				ValaCCodeIdentifier* _tmp25_;
				ValaCCodeIdentifier* _tmp26_;
				ValaCCodeFunctionCall* _tmp27_;
				ValaSignal* _tmp28_;
				ValaCCodeConstant* _tmp29_;
				ValaCCodeConstant* _tmp30_;
				ValaCCodeFunctionCall* _tmp31_;
				ValaSignal* _tmp32_;
				ValaObjectTypeSymbol* _tmp33_;
				const gchar* _tmp34_;
				gchar* _tmp35_;
				gchar* _tmp36_;
				ValaCCodeIdentifier* _tmp37_;
				ValaCCodeIdentifier* _tmp38_;
				ValaCCodeCastExpression* _tmp39_;
				ValaCCodeCastExpression* _tmp40_;
				ValaCCodeFunctionCall* _tmp41_;
				ValaCCodeIdentifier* _tmp42_;
				ValaCCodeIdentifier* _tmp43_;
				ValaCCodeFunction* _tmp44_;
				ValaCCodeFunction* _tmp45_;
				ValaCCodeFunctionCall* _tmp46_;
				_tmp20_ = vala_ccode_identifier_new ("g_signal_connect");
				_tmp21_ = _tmp20_;
				_tmp22_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp21_);
				_tmp23_ = _tmp22_;
				_vala_ccode_node_unref0 (_tmp21_);
				connect_call = _tmp23_;
				_tmp24_ = connect_call;
				_tmp25_ = vala_ccode_identifier_new ("object");
				_tmp26_ = _tmp25_;
				vala_ccode_function_call_add_argument (_tmp24_, (ValaCCodeExpression*) _tmp26_);
				_vala_ccode_node_unref0 (_tmp26_);
				_tmp27_ = connect_call;
				_tmp28_ = sig;
				_tmp29_ = vala_ccode_base_module_get_signal_canonical_constant ((ValaCCodeBaseModule*) self, _tmp28_, NULL);
				_tmp30_ = _tmp29_;
				vala_ccode_function_call_add_argument (_tmp27_, (ValaCCodeExpression*) _tmp30_);
				_vala_ccode_node_unref0 (_tmp30_);
				_tmp31_ = connect_call;
				_tmp32_ = sig;
				_tmp33_ = sym;
				_tmp34_ = dbus_iface_name;
				_tmp35_ = vala_gd_bus_server_module_generate_dbus_signal_wrapper (self, _tmp32_, _tmp33_, _tmp34_);
				_tmp36_ = _tmp35_;
				_tmp37_ = vala_ccode_identifier_new (_tmp36_);
				_tmp38_ = _tmp37_;
				_tmp39_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp38_, "GCallback");
				_tmp40_ = _tmp39_;
				vala_ccode_function_call_add_argument (_tmp31_, (ValaCCodeExpression*) _tmp40_);
				_vala_ccode_node_unref0 (_tmp40_);
				_vala_ccode_node_unref0 (_tmp38_);
				_g_free0 (_tmp36_);
				_tmp41_ = connect_call;
				_tmp42_ = vala_ccode_identifier_new ("data");
				_tmp43_ = _tmp42_;
				vala_ccode_function_call_add_argument (_tmp41_, (ValaCCodeExpression*) _tmp43_);
				_vala_ccode_node_unref0 (_tmp43_);
				_tmp44_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp45_ = _tmp44_;
				_tmp46_ = connect_call;
				vala_ccode_function_add_expression (_tmp45_, (ValaCCodeExpression*) _tmp46_);
				_vala_ccode_node_unref0 (connect_call);
			} else {
				ValaCCodeFunctionCall* disconnect_call = NULL;
				ValaCCodeIdentifier* _tmp47_;
				ValaCCodeIdentifier* _tmp48_;
				ValaCCodeFunctionCall* _tmp49_;
				ValaCCodeFunctionCall* _tmp50_;
				ValaCCodeFunctionCall* _tmp51_;
				ValaCCodeIdentifier* _tmp52_;
				ValaCCodeIdentifier* _tmp53_;
				ValaCCodeConstant* _tmp54_;
				ValaCCodeConstant* _tmp55_;
				ValaCCodeElementAccess* _tmp56_;
				ValaCCodeElementAccess* _tmp57_;
				ValaCCodeFunctionCall* _tmp58_;
				ValaObjectTypeSymbol* _tmp59_;
				gchar* _tmp60_;
				gchar* _tmp61_;
				ValaSignal* _tmp62_;
				gchar* _tmp63_;
				gchar* _tmp64_;
				gchar* _tmp65_;
				gchar* _tmp66_;
				ValaCCodeIdentifier* _tmp67_;
				ValaCCodeIdentifier* _tmp68_;
				ValaCCodeFunctionCall* _tmp69_;
				ValaCCodeIdentifier* _tmp70_;
				ValaCCodeIdentifier* _tmp71_;
				ValaCCodeFunction* _tmp72_;
				ValaCCodeFunction* _tmp73_;
				ValaCCodeFunctionCall* _tmp74_;
				_tmp47_ = vala_ccode_identifier_new ("g_signal_handlers_disconnect_by_func");
				_tmp48_ = _tmp47_;
				_tmp49_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp48_);
				_tmp50_ = _tmp49_;
				_vala_ccode_node_unref0 (_tmp48_);
				disconnect_call = _tmp50_;
				_tmp51_ = disconnect_call;
				_tmp52_ = vala_ccode_identifier_new ("data");
				_tmp53_ = _tmp52_;
				_tmp54_ = vala_ccode_constant_new ("0");
				_tmp55_ = _tmp54_;
				_tmp56_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp53_, (ValaCCodeExpression*) _tmp55_);
				_tmp57_ = _tmp56_;
				vala_ccode_function_call_add_argument (_tmp51_, (ValaCCodeExpression*) _tmp57_);
				_vala_ccode_node_unref0 (_tmp57_);
				_vala_ccode_node_unref0 (_tmp55_);
				_vala_ccode_node_unref0 (_tmp53_);
				_tmp58_ = disconnect_call;
				_tmp59_ = sym;
				_tmp60_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp59_, NULL);
				_tmp61_ = _tmp60_;
				_tmp62_ = sig;
				_tmp63_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp62_, NULL);
				_tmp64_ = _tmp63_;
				_tmp65_ = g_strdup_printf ("_dbus_%s_%s", _tmp61_, _tmp64_);
				_tmp66_ = _tmp65_;
				_tmp67_ = vala_ccode_identifier_new (_tmp66_);
				_tmp68_ = _tmp67_;
				vala_ccode_function_call_add_argument (_tmp58_, (ValaCCodeExpression*) _tmp68_);
				_vala_ccode_node_unref0 (_tmp68_);
				_g_free0 (_tmp66_);
				_g_free0 (_tmp64_);
				_g_free0 (_tmp61_);
				_tmp69_ = disconnect_call;
				_tmp70_ = vala_ccode_identifier_new ("data");
				_tmp71_ = _tmp70_;
				vala_ccode_function_call_add_argument (_tmp69_, (ValaCCodeExpression*) _tmp71_);
				_vala_ccode_node_unref0 (_tmp71_);
				_tmp72_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp73_ = _tmp72_;
				_tmp74_ = disconnect_call;
				vala_ccode_function_add_expression (_tmp73_, (ValaCCodeExpression*) _tmp74_);
				_vala_ccode_node_unref0 (disconnect_call);
			}
			_vala_code_node_unref0 (sig);
		}
		_vala_iterable_unref0 (_sig_list);
	}
	_g_free0 (dbus_iface_name);
}


static void vala_gd_bus_server_module_generate_interface_method_call_function (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym) {
	ValaCCodeFunction* cfunc = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	ValaCCodeFunction* _tmp5_;
	ValaCCodeFunction* _tmp6_;
	ValaCCodeFunction* _tmp7_;
	ValaCCodeParameter* _tmp8_;
	ValaCCodeParameter* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeParameter* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeFunction* _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaCCodeParameter* _tmp21_;
	ValaCCodeFunction* _tmp22_;
	ValaCCodeParameter* _tmp23_;
	ValaCCodeParameter* _tmp24_;
	ValaCCodeFunction* _tmp25_;
	ValaCCodeParameter* _tmp26_;
	ValaCCodeParameter* _tmp27_;
	ValaCCodeFunction* _tmp28_;
	ValaCCodeParameter* _tmp29_;
	ValaCCodeParameter* _tmp30_;
	ValaCCodeFunction* _tmp31_;
	ValaCCodeFunction* _tmp32_;
	ValaCCodeModifiers _tmp33_;
	ValaCCodeModifiers _tmp34_;
	ValaCCodeFunction* _tmp35_;
	ValaCCodeFunction* _tmp36_;
	ValaCCodeFunction* _tmp37_;
	ValaCCodeIdentifier* _tmp38_;
	ValaCCodeIdentifier* _tmp39_;
	ValaCCodeVariableDeclarator* _tmp40_;
	ValaCCodeVariableDeclarator* _tmp41_;
	ValaCCodeFunction* _tmp42_;
	ValaCCodeFunction* _tmp43_;
	ValaCCodeIdentifier* _tmp44_;
	ValaCCodeIdentifier* _tmp45_;
	ValaCCodeConstant* _tmp46_;
	ValaCCodeConstant* _tmp47_;
	ValaCCodeElementAccess* _tmp48_;
	ValaCCodeElementAccess* _tmp49_;
	ValaCCodeVariableDeclarator* _tmp50_;
	ValaCCodeVariableDeclarator* _tmp51_;
	gboolean first = FALSE;
	gboolean _tmp129_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp132_;
	ValaCCodeIdentifier* _tmp133_;
	ValaCCodeFunctionCall* _tmp134_;
	ValaCCodeFunctionCall* _tmp135_;
	ValaCCodeFunctionCall* _tmp136_;
	ValaCCodeIdentifier* _tmp137_;
	ValaCCodeIdentifier* _tmp138_;
	ValaCCodeFunction* _tmp139_;
	ValaCCodeFunction* _tmp140_;
	ValaCCodeFunctionCall* _tmp141_;
	gboolean _tmp142_;
	ValaCCodeFile* _tmp145_;
	ValaCCodeFunction* _tmp146_;
	ValaCCodeFile* _tmp147_;
	ValaCCodeFunction* _tmp148_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strconcat (_tmp2_, "dbus_interface_method_call", NULL);
	_tmp4_ = _tmp3_;
	_tmp5_ = vala_ccode_function_new (_tmp4_, "void");
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	_g_free0 (_tmp2_);
	cfunc = _tmp6_;
	_tmp7_ = cfunc;
	_tmp8_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
	_tmp9_ = _tmp8_;
	vala_ccode_function_add_parameter (_tmp7_, _tmp9_);
	_vala_ccode_node_unref0 (_tmp9_);
	_tmp10_ = cfunc;
	_tmp11_ = vala_ccode_parameter_new ("sender", "const gchar*");
	_tmp12_ = _tmp11_;
	vala_ccode_function_add_parameter (_tmp10_, _tmp12_);
	_vala_ccode_node_unref0 (_tmp12_);
	_tmp13_ = cfunc;
	_tmp14_ = vala_ccode_parameter_new ("object_path", "const gchar*");
	_tmp15_ = _tmp14_;
	vala_ccode_function_add_parameter (_tmp13_, _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_tmp16_ = cfunc;
	_tmp17_ = vala_ccode_parameter_new ("interface_name", "const gchar*");
	_tmp18_ = _tmp17_;
	vala_ccode_function_add_parameter (_tmp16_, _tmp18_);
	_vala_ccode_node_unref0 (_tmp18_);
	_tmp19_ = cfunc;
	_tmp20_ = vala_ccode_parameter_new ("method_name", "const gchar*");
	_tmp21_ = _tmp20_;
	vala_ccode_function_add_parameter (_tmp19_, _tmp21_);
	_vala_ccode_node_unref0 (_tmp21_);
	_tmp22_ = cfunc;
	_tmp23_ = vala_ccode_parameter_new ("parameters", "GVariant*");
	_tmp24_ = _tmp23_;
	vala_ccode_function_add_parameter (_tmp22_, _tmp24_);
	_vala_ccode_node_unref0 (_tmp24_);
	_tmp25_ = cfunc;
	_tmp26_ = vala_ccode_parameter_new ("invocation", "GDBusMethodInvocation*");
	_tmp27_ = _tmp26_;
	vala_ccode_function_add_parameter (_tmp25_, _tmp27_);
	_vala_ccode_node_unref0 (_tmp27_);
	_tmp28_ = cfunc;
	_tmp29_ = vala_ccode_parameter_new ("user_data", "gpointer");
	_tmp30_ = _tmp29_;
	vala_ccode_function_add_parameter (_tmp28_, _tmp30_);
	_vala_ccode_node_unref0 (_tmp30_);
	_tmp31_ = cfunc;
	_tmp32_ = cfunc;
	_tmp33_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp32_);
	_tmp34_ = _tmp33_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp32_, _tmp34_ | VALA_CCODE_MODIFIERS_STATIC);
	_tmp35_ = cfunc;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp35_);
	_tmp36_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp37_ = _tmp36_;
	_tmp38_ = vala_ccode_identifier_new ("user_data");
	_tmp39_ = _tmp38_;
	_tmp40_ = vala_ccode_variable_declarator_new ("data", (ValaCCodeExpression*) _tmp39_, NULL);
	_tmp41_ = _tmp40_;
	vala_ccode_function_add_declaration (_tmp37_, "gpointer*", (ValaCCodeDeclarator*) _tmp41_, 0);
	_vala_ccode_node_unref0 (_tmp41_);
	_vala_ccode_node_unref0 (_tmp39_);
	_tmp42_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp43_ = _tmp42_;
	_tmp44_ = vala_ccode_identifier_new ("data");
	_tmp45_ = _tmp44_;
	_tmp46_ = vala_ccode_constant_new ("0");
	_tmp47_ = _tmp46_;
	_tmp48_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp45_, (ValaCCodeExpression*) _tmp47_);
	_tmp49_ = _tmp48_;
	_tmp50_ = vala_ccode_variable_declarator_new ("object", (ValaCCodeExpression*) _tmp49_, NULL);
	_tmp51_ = _tmp50_;
	vala_ccode_function_add_declaration (_tmp43_, "gpointer", (ValaCCodeDeclarator*) _tmp51_, 0);
	_vala_ccode_node_unref0 (_tmp51_);
	_vala_ccode_node_unref0 (_tmp49_);
	_vala_ccode_node_unref0 (_tmp47_);
	_vala_ccode_node_unref0 (_tmp45_);
	first = TRUE;
	{
		ValaList* _m_list = NULL;
		ValaObjectTypeSymbol* _tmp52_;
		ValaList* _tmp53_;
		gint _m_size = 0;
		ValaList* _tmp54_;
		gint _tmp55_;
		gint _tmp56_;
		gint _m_index = 0;
		_tmp52_ = sym;
		_tmp53_ = vala_object_type_symbol_get_methods (_tmp52_);
		_m_list = _tmp53_;
		_tmp54_ = _m_list;
		_tmp55_ = vala_collection_get_size ((ValaCollection*) _tmp54_);
		_tmp56_ = _tmp55_;
		_m_size = _tmp56_;
		_m_index = -1;
		while (TRUE) {
			gint _tmp57_;
			gint _tmp58_;
			gint _tmp59_;
			ValaMethod* m = NULL;
			ValaList* _tmp60_;
			gint _tmp61_;
			gpointer _tmp62_;
			gboolean _tmp63_ = FALSE;
			gboolean _tmp64_ = FALSE;
			gboolean _tmp65_ = FALSE;
			ValaMethod* _tmp66_;
			ValaMethod* _tmp76_;
			gboolean _tmp77_;
			ValaCCodeFile* _tmp78_;
			ValaCCodeFunctionCall* ccheck = NULL;
			ValaCCodeIdentifier* _tmp79_;
			ValaCCodeIdentifier* _tmp80_;
			ValaCCodeFunctionCall* _tmp81_;
			ValaCCodeFunctionCall* _tmp82_;
			ValaCCodeFunctionCall* _tmp83_;
			ValaCCodeIdentifier* _tmp84_;
			ValaCCodeIdentifier* _tmp85_;
			ValaCCodeFunctionCall* _tmp86_;
			ValaMethod* _tmp87_;
			gchar* _tmp88_;
			gchar* _tmp89_;
			gchar* _tmp90_;
			gchar* _tmp91_;
			ValaCCodeConstant* _tmp92_;
			ValaCCodeConstant* _tmp93_;
			gboolean _tmp94_;
			ValaCCodeFunctionCall* ccall = NULL;
			ValaMethod* _tmp109_;
			ValaObjectTypeSymbol* _tmp110_;
			gchar* _tmp111_;
			gchar* _tmp112_;
			ValaCCodeIdentifier* _tmp113_;
			ValaCCodeIdentifier* _tmp114_;
			ValaCCodeFunctionCall* _tmp115_;
			ValaCCodeFunctionCall* _tmp116_;
			ValaCCodeFunctionCall* _tmp117_;
			ValaCCodeIdentifier* _tmp118_;
			ValaCCodeIdentifier* _tmp119_;
			ValaCCodeFunctionCall* _tmp120_;
			ValaCCodeIdentifier* _tmp121_;
			ValaCCodeIdentifier* _tmp122_;
			ValaCCodeFunctionCall* _tmp123_;
			ValaCCodeIdentifier* _tmp124_;
			ValaCCodeIdentifier* _tmp125_;
			ValaCCodeFunction* _tmp126_;
			ValaCCodeFunction* _tmp127_;
			ValaCCodeFunctionCall* _tmp128_;
			_tmp57_ = _m_index;
			_m_index = _tmp57_ + 1;
			_tmp58_ = _m_index;
			_tmp59_ = _m_size;
			if (!(_tmp58_ < _tmp59_)) {
				break;
			}
			_tmp60_ = _m_list;
			_tmp61_ = _m_index;
			_tmp62_ = vala_list_get (_tmp60_, _tmp61_);
			m = (ValaMethod*) _tmp62_;
			_tmp66_ = m;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp66_, VALA_TYPE_CREATION_METHOD)) {
				_tmp65_ = TRUE;
			} else {
				ValaMethod* _tmp67_;
				ValaMemberBinding _tmp68_;
				ValaMemberBinding _tmp69_;
				_tmp67_ = m;
				_tmp68_ = vala_method_get_binding (_tmp67_);
				_tmp69_ = _tmp68_;
				_tmp65_ = _tmp69_ != VALA_MEMBER_BINDING_INSTANCE;
			}
			if (_tmp65_) {
				_tmp64_ = TRUE;
			} else {
				ValaMethod* _tmp70_;
				gboolean _tmp71_;
				gboolean _tmp72_;
				_tmp70_ = m;
				_tmp71_ = vala_method_get_overrides (_tmp70_);
				_tmp72_ = _tmp71_;
				_tmp64_ = _tmp72_;
			}
			if (_tmp64_) {
				_tmp63_ = TRUE;
			} else {
				ValaMethod* _tmp73_;
				ValaSymbolAccessibility _tmp74_;
				ValaSymbolAccessibility _tmp75_;
				_tmp73_ = m;
				_tmp74_ = vala_symbol_get_access ((ValaSymbol*) _tmp73_);
				_tmp75_ = _tmp74_;
				_tmp63_ = _tmp75_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
			}
			if (_tmp63_) {
				_vala_code_node_unref0 (m);
				continue;
			}
			_tmp76_ = m;
			_tmp77_ = vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp76_);
			if (!_tmp77_) {
				_vala_code_node_unref0 (m);
				continue;
			}
			_tmp78_ = ((ValaCCodeBaseModule*) self)->cfile;
			vala_ccode_file_add_include (_tmp78_, "string.h", FALSE);
			_tmp79_ = vala_ccode_identifier_new ("strcmp");
			_tmp80_ = _tmp79_;
			_tmp81_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp80_);
			_tmp82_ = _tmp81_;
			_vala_ccode_node_unref0 (_tmp80_);
			ccheck = _tmp82_;
			_tmp83_ = ccheck;
			_tmp84_ = vala_ccode_identifier_new ("method_name");
			_tmp85_ = _tmp84_;
			vala_ccode_function_call_add_argument (_tmp83_, (ValaCCodeExpression*) _tmp85_);
			_vala_ccode_node_unref0 (_tmp85_);
			_tmp86_ = ccheck;
			_tmp87_ = m;
			_tmp88_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp87_);
			_tmp89_ = _tmp88_;
			_tmp90_ = g_strdup_printf ("\"%s\"", _tmp89_);
			_tmp91_ = _tmp90_;
			_tmp92_ = vala_ccode_constant_new (_tmp91_);
			_tmp93_ = _tmp92_;
			vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp93_);
			_vala_ccode_node_unref0 (_tmp93_);
			_g_free0 (_tmp91_);
			_g_free0 (_tmp89_);
			_tmp94_ = first;
			if (_tmp94_) {
				ValaCCodeFunction* _tmp95_;
				ValaCCodeFunction* _tmp96_;
				ValaCCodeFunctionCall* _tmp97_;
				ValaCCodeConstant* _tmp98_;
				ValaCCodeConstant* _tmp99_;
				ValaCCodeBinaryExpression* _tmp100_;
				ValaCCodeBinaryExpression* _tmp101_;
				_tmp95_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp96_ = _tmp95_;
				_tmp97_ = ccheck;
				_tmp98_ = vala_ccode_constant_new ("0");
				_tmp99_ = _tmp98_;
				_tmp100_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp97_, (ValaCCodeExpression*) _tmp99_);
				_tmp101_ = _tmp100_;
				vala_ccode_function_open_if (_tmp96_, (ValaCCodeExpression*) _tmp101_);
				_vala_ccode_node_unref0 (_tmp101_);
				_vala_ccode_node_unref0 (_tmp99_);
				first = FALSE;
			} else {
				ValaCCodeFunction* _tmp102_;
				ValaCCodeFunction* _tmp103_;
				ValaCCodeFunctionCall* _tmp104_;
				ValaCCodeConstant* _tmp105_;
				ValaCCodeConstant* _tmp106_;
				ValaCCodeBinaryExpression* _tmp107_;
				ValaCCodeBinaryExpression* _tmp108_;
				_tmp102_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp103_ = _tmp102_;
				_tmp104_ = ccheck;
				_tmp105_ = vala_ccode_constant_new ("0");
				_tmp106_ = _tmp105_;
				_tmp107_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp104_, (ValaCCodeExpression*) _tmp106_);
				_tmp108_ = _tmp107_;
				vala_ccode_function_else_if (_tmp103_, (ValaCCodeExpression*) _tmp108_);
				_vala_ccode_node_unref0 (_tmp108_);
				_vala_ccode_node_unref0 (_tmp106_);
			}
			_tmp109_ = m;
			_tmp110_ = sym;
			_tmp111_ = vala_gd_bus_server_module_generate_dbus_wrapper (self, _tmp109_, _tmp110_, FALSE);
			_tmp112_ = _tmp111_;
			_tmp113_ = vala_ccode_identifier_new (_tmp112_);
			_tmp114_ = _tmp113_;
			_tmp115_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp114_);
			_tmp116_ = _tmp115_;
			_vala_ccode_node_unref0 (_tmp114_);
			_g_free0 (_tmp112_);
			ccall = _tmp116_;
			_tmp117_ = ccall;
			_tmp118_ = vala_ccode_identifier_new ("object");
			_tmp119_ = _tmp118_;
			vala_ccode_function_call_add_argument (_tmp117_, (ValaCCodeExpression*) _tmp119_);
			_vala_ccode_node_unref0 (_tmp119_);
			_tmp120_ = ccall;
			_tmp121_ = vala_ccode_identifier_new ("parameters");
			_tmp122_ = _tmp121_;
			vala_ccode_function_call_add_argument (_tmp120_, (ValaCCodeExpression*) _tmp122_);
			_vala_ccode_node_unref0 (_tmp122_);
			_tmp123_ = ccall;
			_tmp124_ = vala_ccode_identifier_new ("invocation");
			_tmp125_ = _tmp124_;
			vala_ccode_function_call_add_argument (_tmp123_, (ValaCCodeExpression*) _tmp125_);
			_vala_ccode_node_unref0 (_tmp125_);
			_tmp126_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp127_ = _tmp126_;
			_tmp128_ = ccall;
			vala_ccode_function_add_expression (_tmp127_, (ValaCCodeExpression*) _tmp128_);
			_vala_ccode_node_unref0 (ccall);
			_vala_ccode_node_unref0 (ccheck);
			_vala_code_node_unref0 (m);
		}
		_vala_iterable_unref0 (_m_list);
	}
	_tmp129_ = first;
	if (!_tmp129_) {
		ValaCCodeFunction* _tmp130_;
		ValaCCodeFunction* _tmp131_;
		_tmp130_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp131_ = _tmp130_;
		vala_ccode_function_add_else (_tmp131_);
	}
	_tmp132_ = vala_ccode_identifier_new ("g_object_unref");
	_tmp133_ = _tmp132_;
	_tmp134_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp133_);
	_tmp135_ = _tmp134_;
	_vala_ccode_node_unref0 (_tmp133_);
	ccall = _tmp135_;
	_tmp136_ = ccall;
	_tmp137_ = vala_ccode_identifier_new ("invocation");
	_tmp138_ = _tmp137_;
	vala_ccode_function_call_add_argument (_tmp136_, (ValaCCodeExpression*) _tmp138_);
	_vala_ccode_node_unref0 (_tmp138_);
	_tmp139_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp140_ = _tmp139_;
	_tmp141_ = ccall;
	vala_ccode_function_add_expression (_tmp140_, (ValaCCodeExpression*) _tmp141_);
	_tmp142_ = first;
	if (!_tmp142_) {
		ValaCCodeFunction* _tmp143_;
		ValaCCodeFunction* _tmp144_;
		_tmp143_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp144_ = _tmp143_;
		vala_ccode_function_close (_tmp144_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp145_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp146_ = cfunc;
	vala_ccode_file_add_function_declaration (_tmp145_, _tmp146_);
	_tmp147_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp148_ = cfunc;
	vala_ccode_file_add_function (_tmp147_, _tmp148_);
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (cfunc);
}


static void vala_gd_bus_server_module_generate_interface_get_property_function (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym) {
	ValaCCodeFunction* cfunc = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	ValaCCodeFunction* _tmp5_;
	ValaCCodeFunction* _tmp6_;
	ValaCCodeFunction* _tmp7_;
	ValaCCodeParameter* _tmp8_;
	ValaCCodeParameter* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeParameter* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeFunction* _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaCCodeParameter* _tmp21_;
	ValaCCodeFunction* _tmp22_;
	ValaCCodeParameter* _tmp23_;
	ValaCCodeParameter* _tmp24_;
	ValaCCodeFunction* _tmp25_;
	ValaCCodeParameter* _tmp26_;
	ValaCCodeParameter* _tmp27_;
	ValaCCodeFunction* _tmp28_;
	ValaCCodeFunction* _tmp29_;
	ValaCCodeModifiers _tmp30_;
	ValaCCodeModifiers _tmp31_;
	ValaCCodeFile* _tmp32_;
	ValaCCodeFunction* _tmp33_;
	ValaCCodeFunction* _tmp34_;
	ValaCCodeFunction* _tmp35_;
	ValaCCodeFunction* _tmp36_;
	ValaCCodeIdentifier* _tmp37_;
	ValaCCodeIdentifier* _tmp38_;
	ValaCCodeVariableDeclarator* _tmp39_;
	ValaCCodeVariableDeclarator* _tmp40_;
	ValaCCodeFunction* _tmp41_;
	ValaCCodeFunction* _tmp42_;
	ValaCCodeIdentifier* _tmp43_;
	ValaCCodeIdentifier* _tmp44_;
	ValaCCodeConstant* _tmp45_;
	ValaCCodeConstant* _tmp46_;
	ValaCCodeElementAccess* _tmp47_;
	ValaCCodeElementAccess* _tmp48_;
	ValaCCodeVariableDeclarator* _tmp49_;
	ValaCCodeVariableDeclarator* _tmp50_;
	gboolean firstif = FALSE;
	gboolean _tmp120_;
	ValaCCodeFunction* _tmp123_;
	ValaCCodeFunction* _tmp124_;
	ValaCCodeConstant* _tmp125_;
	ValaCCodeConstant* _tmp126_;
	ValaCCodeFile* _tmp127_;
	ValaCCodeFunction* _tmp128_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strconcat (_tmp2_, "dbus_interface_get_property", NULL);
	_tmp4_ = _tmp3_;
	_tmp5_ = vala_ccode_function_new (_tmp4_, "GVariant*");
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	_g_free0 (_tmp2_);
	cfunc = _tmp6_;
	_tmp7_ = cfunc;
	_tmp8_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
	_tmp9_ = _tmp8_;
	vala_ccode_function_add_parameter (_tmp7_, _tmp9_);
	_vala_ccode_node_unref0 (_tmp9_);
	_tmp10_ = cfunc;
	_tmp11_ = vala_ccode_parameter_new ("sender", "const gchar*");
	_tmp12_ = _tmp11_;
	vala_ccode_function_add_parameter (_tmp10_, _tmp12_);
	_vala_ccode_node_unref0 (_tmp12_);
	_tmp13_ = cfunc;
	_tmp14_ = vala_ccode_parameter_new ("object_path", "const gchar*");
	_tmp15_ = _tmp14_;
	vala_ccode_function_add_parameter (_tmp13_, _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_tmp16_ = cfunc;
	_tmp17_ = vala_ccode_parameter_new ("interface_name", "const gchar*");
	_tmp18_ = _tmp17_;
	vala_ccode_function_add_parameter (_tmp16_, _tmp18_);
	_vala_ccode_node_unref0 (_tmp18_);
	_tmp19_ = cfunc;
	_tmp20_ = vala_ccode_parameter_new ("property_name", "const gchar*");
	_tmp21_ = _tmp20_;
	vala_ccode_function_add_parameter (_tmp19_, _tmp21_);
	_vala_ccode_node_unref0 (_tmp21_);
	_tmp22_ = cfunc;
	_tmp23_ = vala_ccode_parameter_new ("error", "GError**");
	_tmp24_ = _tmp23_;
	vala_ccode_function_add_parameter (_tmp22_, _tmp24_);
	_vala_ccode_node_unref0 (_tmp24_);
	_tmp25_ = cfunc;
	_tmp26_ = vala_ccode_parameter_new ("user_data", "gpointer");
	_tmp27_ = _tmp26_;
	vala_ccode_function_add_parameter (_tmp25_, _tmp27_);
	_vala_ccode_node_unref0 (_tmp27_);
	_tmp28_ = cfunc;
	_tmp29_ = cfunc;
	_tmp30_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp29_);
	_tmp31_ = _tmp30_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp29_, _tmp31_ | VALA_CCODE_MODIFIERS_STATIC);
	_tmp32_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp33_ = cfunc;
	vala_ccode_file_add_function_declaration (_tmp32_, _tmp33_);
	_tmp34_ = cfunc;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp34_);
	_tmp35_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp36_ = _tmp35_;
	_tmp37_ = vala_ccode_identifier_new ("user_data");
	_tmp38_ = _tmp37_;
	_tmp39_ = vala_ccode_variable_declarator_new ("data", (ValaCCodeExpression*) _tmp38_, NULL);
	_tmp40_ = _tmp39_;
	vala_ccode_function_add_declaration (_tmp36_, "gpointer*", (ValaCCodeDeclarator*) _tmp40_, 0);
	_vala_ccode_node_unref0 (_tmp40_);
	_vala_ccode_node_unref0 (_tmp38_);
	_tmp41_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp42_ = _tmp41_;
	_tmp43_ = vala_ccode_identifier_new ("data");
	_tmp44_ = _tmp43_;
	_tmp45_ = vala_ccode_constant_new ("0");
	_tmp46_ = _tmp45_;
	_tmp47_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp44_, (ValaCCodeExpression*) _tmp46_);
	_tmp48_ = _tmp47_;
	_tmp49_ = vala_ccode_variable_declarator_new ("object", (ValaCCodeExpression*) _tmp48_, NULL);
	_tmp50_ = _tmp49_;
	vala_ccode_function_add_declaration (_tmp42_, "gpointer", (ValaCCodeDeclarator*) _tmp50_, 0);
	_vala_ccode_node_unref0 (_tmp50_);
	_vala_ccode_node_unref0 (_tmp48_);
	_vala_ccode_node_unref0 (_tmp46_);
	_vala_ccode_node_unref0 (_tmp44_);
	firstif = TRUE;
	{
		ValaList* _prop_list = NULL;
		ValaObjectTypeSymbol* _tmp51_;
		ValaList* _tmp52_;
		gint _prop_size = 0;
		ValaList* _tmp53_;
		gint _tmp54_;
		gint _tmp55_;
		gint _prop_index = 0;
		_tmp51_ = sym;
		_tmp52_ = vala_object_type_symbol_get_properties (_tmp51_);
		_prop_list = _tmp52_;
		_tmp53_ = _prop_list;
		_tmp54_ = vala_collection_get_size ((ValaCollection*) _tmp53_);
		_tmp55_ = _tmp54_;
		_prop_size = _tmp55_;
		_prop_index = -1;
		while (TRUE) {
			gint _tmp56_;
			gint _tmp57_;
			gint _tmp58_;
			ValaProperty* prop = NULL;
			ValaList* _tmp59_;
			gint _tmp60_;
			gpointer _tmp61_;
			gboolean _tmp62_ = FALSE;
			gboolean _tmp63_ = FALSE;
			ValaProperty* _tmp64_;
			ValaMemberBinding _tmp65_;
			ValaMemberBinding _tmp66_;
			ValaProperty* _tmp73_;
			gboolean _tmp74_;
			ValaProperty* _tmp75_;
			ValaPropertyAccessor* _tmp76_;
			ValaPropertyAccessor* _tmp77_;
			ValaCCodeFile* _tmp78_;
			ValaCCodeFunctionCall* ccheck = NULL;
			ValaCCodeIdentifier* _tmp79_;
			ValaCCodeIdentifier* _tmp80_;
			ValaCCodeFunctionCall* _tmp81_;
			ValaCCodeFunctionCall* _tmp82_;
			ValaCCodeFunctionCall* _tmp83_;
			ValaCCodeIdentifier* _tmp84_;
			ValaCCodeIdentifier* _tmp85_;
			ValaCCodeFunctionCall* _tmp86_;
			ValaProperty* _tmp87_;
			gchar* _tmp88_;
			gchar* _tmp89_;
			gchar* _tmp90_;
			gchar* _tmp91_;
			ValaCCodeConstant* _tmp92_;
			ValaCCodeConstant* _tmp93_;
			ValaCCodeBinaryExpression* cond = NULL;
			ValaCCodeFunctionCall* _tmp94_;
			ValaCCodeConstant* _tmp95_;
			ValaCCodeConstant* _tmp96_;
			ValaCCodeBinaryExpression* _tmp97_;
			ValaCCodeBinaryExpression* _tmp98_;
			gboolean _tmp99_;
			ValaCCodeFunctionCall* ccall = NULL;
			ValaProperty* _tmp106_;
			ValaObjectTypeSymbol* _tmp107_;
			gchar* _tmp108_;
			gchar* _tmp109_;
			ValaCCodeIdentifier* _tmp110_;
			ValaCCodeIdentifier* _tmp111_;
			ValaCCodeFunctionCall* _tmp112_;
			ValaCCodeFunctionCall* _tmp113_;
			ValaCCodeFunctionCall* _tmp114_;
			ValaCCodeIdentifier* _tmp115_;
			ValaCCodeIdentifier* _tmp116_;
			ValaCCodeFunction* _tmp117_;
			ValaCCodeFunction* _tmp118_;
			ValaCCodeFunctionCall* _tmp119_;
			_tmp56_ = _prop_index;
			_prop_index = _tmp56_ + 1;
			_tmp57_ = _prop_index;
			_tmp58_ = _prop_size;
			if (!(_tmp57_ < _tmp58_)) {
				break;
			}
			_tmp59_ = _prop_list;
			_tmp60_ = _prop_index;
			_tmp61_ = vala_list_get (_tmp59_, _tmp60_);
			prop = (ValaProperty*) _tmp61_;
			_tmp64_ = prop;
			_tmp65_ = vala_property_get_binding (_tmp64_);
			_tmp66_ = _tmp65_;
			if (_tmp66_ != VALA_MEMBER_BINDING_INSTANCE) {
				_tmp63_ = TRUE;
			} else {
				ValaProperty* _tmp67_;
				gboolean _tmp68_;
				gboolean _tmp69_;
				_tmp67_ = prop;
				_tmp68_ = vala_property_get_overrides (_tmp67_);
				_tmp69_ = _tmp68_;
				_tmp63_ = _tmp69_;
			}
			if (_tmp63_) {
				_tmp62_ = TRUE;
			} else {
				ValaProperty* _tmp70_;
				ValaSymbolAccessibility _tmp71_;
				ValaSymbolAccessibility _tmp72_;
				_tmp70_ = prop;
				_tmp71_ = vala_symbol_get_access ((ValaSymbol*) _tmp70_);
				_tmp72_ = _tmp71_;
				_tmp62_ = _tmp72_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
			}
			if (_tmp62_) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp73_ = prop;
			_tmp74_ = vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp73_);
			if (!_tmp74_) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp75_ = prop;
			_tmp76_ = vala_property_get_get_accessor (_tmp75_);
			_tmp77_ = _tmp76_;
			if (_tmp77_ == NULL) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp78_ = ((ValaCCodeBaseModule*) self)->cfile;
			vala_ccode_file_add_include (_tmp78_, "string.h", FALSE);
			_tmp79_ = vala_ccode_identifier_new ("strcmp");
			_tmp80_ = _tmp79_;
			_tmp81_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp80_);
			_tmp82_ = _tmp81_;
			_vala_ccode_node_unref0 (_tmp80_);
			ccheck = _tmp82_;
			_tmp83_ = ccheck;
			_tmp84_ = vala_ccode_identifier_new ("property_name");
			_tmp85_ = _tmp84_;
			vala_ccode_function_call_add_argument (_tmp83_, (ValaCCodeExpression*) _tmp85_);
			_vala_ccode_node_unref0 (_tmp85_);
			_tmp86_ = ccheck;
			_tmp87_ = prop;
			_tmp88_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp87_);
			_tmp89_ = _tmp88_;
			_tmp90_ = g_strdup_printf ("\"%s\"", _tmp89_);
			_tmp91_ = _tmp90_;
			_tmp92_ = vala_ccode_constant_new (_tmp91_);
			_tmp93_ = _tmp92_;
			vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp93_);
			_vala_ccode_node_unref0 (_tmp93_);
			_g_free0 (_tmp91_);
			_g_free0 (_tmp89_);
			_tmp94_ = ccheck;
			_tmp95_ = vala_ccode_constant_new ("0");
			_tmp96_ = _tmp95_;
			_tmp97_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp94_, (ValaCCodeExpression*) _tmp96_);
			_tmp98_ = _tmp97_;
			_vala_ccode_node_unref0 (_tmp96_);
			cond = _tmp98_;
			_tmp99_ = firstif;
			if (_tmp99_) {
				ValaCCodeFunction* _tmp100_;
				ValaCCodeFunction* _tmp101_;
				ValaCCodeBinaryExpression* _tmp102_;
				_tmp100_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp101_ = _tmp100_;
				_tmp102_ = cond;
				vala_ccode_function_open_if (_tmp101_, (ValaCCodeExpression*) _tmp102_);
				firstif = FALSE;
			} else {
				ValaCCodeFunction* _tmp103_;
				ValaCCodeFunction* _tmp104_;
				ValaCCodeBinaryExpression* _tmp105_;
				_tmp103_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp104_ = _tmp103_;
				_tmp105_ = cond;
				vala_ccode_function_else_if (_tmp104_, (ValaCCodeExpression*) _tmp105_);
			}
			_tmp106_ = prop;
			_tmp107_ = sym;
			_tmp108_ = vala_gd_bus_server_module_generate_dbus_property_get_wrapper (self, _tmp106_, _tmp107_);
			_tmp109_ = _tmp108_;
			_tmp110_ = vala_ccode_identifier_new (_tmp109_);
			_tmp111_ = _tmp110_;
			_tmp112_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp111_);
			_tmp113_ = _tmp112_;
			_vala_ccode_node_unref0 (_tmp111_);
			_g_free0 (_tmp109_);
			ccall = _tmp113_;
			_tmp114_ = ccall;
			_tmp115_ = vala_ccode_identifier_new ("object");
			_tmp116_ = _tmp115_;
			vala_ccode_function_call_add_argument (_tmp114_, (ValaCCodeExpression*) _tmp116_);
			_vala_ccode_node_unref0 (_tmp116_);
			_tmp117_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp118_ = _tmp117_;
			_tmp119_ = ccall;
			vala_ccode_function_add_return (_tmp118_, (ValaCCodeExpression*) _tmp119_);
			_vala_ccode_node_unref0 (ccall);
			_vala_ccode_node_unref0 (cond);
			_vala_ccode_node_unref0 (ccheck);
			_vala_code_node_unref0 (prop);
		}
		_vala_iterable_unref0 (_prop_list);
	}
	_tmp120_ = firstif;
	if (!_tmp120_) {
		ValaCCodeFunction* _tmp121_;
		ValaCCodeFunction* _tmp122_;
		_tmp121_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp122_ = _tmp121_;
		vala_ccode_function_close (_tmp122_);
	}
	_tmp123_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp124_ = _tmp123_;
	_tmp125_ = vala_ccode_constant_new ("NULL");
	_tmp126_ = _tmp125_;
	vala_ccode_function_add_return (_tmp124_, (ValaCCodeExpression*) _tmp126_);
	_vala_ccode_node_unref0 (_tmp126_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp127_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp128_ = cfunc;
	vala_ccode_file_add_function (_tmp127_, _tmp128_);
	_vala_ccode_node_unref0 (cfunc);
}


static void vala_gd_bus_server_module_generate_interface_set_property_function (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym) {
	ValaCCodeFunction* cfunc = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	ValaCCodeFunction* _tmp5_;
	ValaCCodeFunction* _tmp6_;
	ValaCCodeFunction* _tmp7_;
	ValaCCodeParameter* _tmp8_;
	ValaCCodeParameter* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeParameter* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeFunction* _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaCCodeParameter* _tmp21_;
	ValaCCodeFunction* _tmp22_;
	ValaCCodeParameter* _tmp23_;
	ValaCCodeParameter* _tmp24_;
	ValaCCodeFunction* _tmp25_;
	ValaCCodeParameter* _tmp26_;
	ValaCCodeParameter* _tmp27_;
	ValaCCodeFunction* _tmp28_;
	ValaCCodeParameter* _tmp29_;
	ValaCCodeParameter* _tmp30_;
	ValaCCodeFunction* _tmp31_;
	ValaCCodeFunction* _tmp32_;
	ValaCCodeModifiers _tmp33_;
	ValaCCodeModifiers _tmp34_;
	ValaCCodeFile* _tmp35_;
	ValaCCodeFunction* _tmp36_;
	ValaCCodeFunction* _tmp37_;
	ValaCCodeFunction* _tmp38_;
	ValaCCodeFunction* _tmp39_;
	ValaCCodeIdentifier* _tmp40_;
	ValaCCodeIdentifier* _tmp41_;
	ValaCCodeVariableDeclarator* _tmp42_;
	ValaCCodeVariableDeclarator* _tmp43_;
	ValaCCodeFunction* _tmp44_;
	ValaCCodeFunction* _tmp45_;
	ValaCCodeIdentifier* _tmp46_;
	ValaCCodeIdentifier* _tmp47_;
	ValaCCodeConstant* _tmp48_;
	ValaCCodeConstant* _tmp49_;
	ValaCCodeElementAccess* _tmp50_;
	ValaCCodeElementAccess* _tmp51_;
	ValaCCodeVariableDeclarator* _tmp52_;
	ValaCCodeVariableDeclarator* _tmp53_;
	gboolean firstif = FALSE;
	gboolean _tmp130_;
	ValaCCodeFunction* _tmp133_;
	ValaCCodeFunction* _tmp134_;
	ValaCCodeConstant* _tmp135_;
	ValaCCodeConstant* _tmp136_;
	ValaCCodeFile* _tmp137_;
	ValaCCodeFunction* _tmp138_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strconcat (_tmp2_, "dbus_interface_set_property", NULL);
	_tmp4_ = _tmp3_;
	_tmp5_ = vala_ccode_function_new (_tmp4_, "gboolean");
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	_g_free0 (_tmp2_);
	cfunc = _tmp6_;
	_tmp7_ = cfunc;
	_tmp8_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
	_tmp9_ = _tmp8_;
	vala_ccode_function_add_parameter (_tmp7_, _tmp9_);
	_vala_ccode_node_unref0 (_tmp9_);
	_tmp10_ = cfunc;
	_tmp11_ = vala_ccode_parameter_new ("sender", "const gchar*");
	_tmp12_ = _tmp11_;
	vala_ccode_function_add_parameter (_tmp10_, _tmp12_);
	_vala_ccode_node_unref0 (_tmp12_);
	_tmp13_ = cfunc;
	_tmp14_ = vala_ccode_parameter_new ("object_path", "const gchar*");
	_tmp15_ = _tmp14_;
	vala_ccode_function_add_parameter (_tmp13_, _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_tmp16_ = cfunc;
	_tmp17_ = vala_ccode_parameter_new ("interface_name", "const gchar*");
	_tmp18_ = _tmp17_;
	vala_ccode_function_add_parameter (_tmp16_, _tmp18_);
	_vala_ccode_node_unref0 (_tmp18_);
	_tmp19_ = cfunc;
	_tmp20_ = vala_ccode_parameter_new ("property_name", "const gchar*");
	_tmp21_ = _tmp20_;
	vala_ccode_function_add_parameter (_tmp19_, _tmp21_);
	_vala_ccode_node_unref0 (_tmp21_);
	_tmp22_ = cfunc;
	_tmp23_ = vala_ccode_parameter_new ("value", "GVariant*");
	_tmp24_ = _tmp23_;
	vala_ccode_function_add_parameter (_tmp22_, _tmp24_);
	_vala_ccode_node_unref0 (_tmp24_);
	_tmp25_ = cfunc;
	_tmp26_ = vala_ccode_parameter_new ("error", "GError**");
	_tmp27_ = _tmp26_;
	vala_ccode_function_add_parameter (_tmp25_, _tmp27_);
	_vala_ccode_node_unref0 (_tmp27_);
	_tmp28_ = cfunc;
	_tmp29_ = vala_ccode_parameter_new ("user_data", "gpointer");
	_tmp30_ = _tmp29_;
	vala_ccode_function_add_parameter (_tmp28_, _tmp30_);
	_vala_ccode_node_unref0 (_tmp30_);
	_tmp31_ = cfunc;
	_tmp32_ = cfunc;
	_tmp33_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp32_);
	_tmp34_ = _tmp33_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp32_, _tmp34_ | VALA_CCODE_MODIFIERS_STATIC);
	_tmp35_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp36_ = cfunc;
	vala_ccode_file_add_function_declaration (_tmp35_, _tmp36_);
	_tmp37_ = cfunc;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp37_);
	_tmp38_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp39_ = _tmp38_;
	_tmp40_ = vala_ccode_identifier_new ("user_data");
	_tmp41_ = _tmp40_;
	_tmp42_ = vala_ccode_variable_declarator_new ("data", (ValaCCodeExpression*) _tmp41_, NULL);
	_tmp43_ = _tmp42_;
	vala_ccode_function_add_declaration (_tmp39_, "gpointer*", (ValaCCodeDeclarator*) _tmp43_, 0);
	_vala_ccode_node_unref0 (_tmp43_);
	_vala_ccode_node_unref0 (_tmp41_);
	_tmp44_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp45_ = _tmp44_;
	_tmp46_ = vala_ccode_identifier_new ("data");
	_tmp47_ = _tmp46_;
	_tmp48_ = vala_ccode_constant_new ("0");
	_tmp49_ = _tmp48_;
	_tmp50_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp47_, (ValaCCodeExpression*) _tmp49_);
	_tmp51_ = _tmp50_;
	_tmp52_ = vala_ccode_variable_declarator_new ("object", (ValaCCodeExpression*) _tmp51_, NULL);
	_tmp53_ = _tmp52_;
	vala_ccode_function_add_declaration (_tmp45_, "gpointer", (ValaCCodeDeclarator*) _tmp53_, 0);
	_vala_ccode_node_unref0 (_tmp53_);
	_vala_ccode_node_unref0 (_tmp51_);
	_vala_ccode_node_unref0 (_tmp49_);
	_vala_ccode_node_unref0 (_tmp47_);
	firstif = TRUE;
	{
		ValaList* _prop_list = NULL;
		ValaObjectTypeSymbol* _tmp54_;
		ValaList* _tmp55_;
		gint _prop_size = 0;
		ValaList* _tmp56_;
		gint _tmp57_;
		gint _tmp58_;
		gint _prop_index = 0;
		_tmp54_ = sym;
		_tmp55_ = vala_object_type_symbol_get_properties (_tmp54_);
		_prop_list = _tmp55_;
		_tmp56_ = _prop_list;
		_tmp57_ = vala_collection_get_size ((ValaCollection*) _tmp56_);
		_tmp58_ = _tmp57_;
		_prop_size = _tmp58_;
		_prop_index = -1;
		while (TRUE) {
			gint _tmp59_;
			gint _tmp60_;
			gint _tmp61_;
			ValaProperty* prop = NULL;
			ValaList* _tmp62_;
			gint _tmp63_;
			gpointer _tmp64_;
			gboolean _tmp65_ = FALSE;
			gboolean _tmp66_ = FALSE;
			ValaProperty* _tmp67_;
			ValaMemberBinding _tmp68_;
			ValaMemberBinding _tmp69_;
			ValaProperty* _tmp76_;
			gboolean _tmp77_;
			ValaProperty* _tmp78_;
			ValaPropertyAccessor* _tmp79_;
			ValaPropertyAccessor* _tmp80_;
			ValaCCodeFile* _tmp81_;
			ValaCCodeFunctionCall* ccheck = NULL;
			ValaCCodeIdentifier* _tmp82_;
			ValaCCodeIdentifier* _tmp83_;
			ValaCCodeFunctionCall* _tmp84_;
			ValaCCodeFunctionCall* _tmp85_;
			ValaCCodeFunctionCall* _tmp86_;
			ValaCCodeIdentifier* _tmp87_;
			ValaCCodeIdentifier* _tmp88_;
			ValaCCodeFunctionCall* _tmp89_;
			ValaProperty* _tmp90_;
			gchar* _tmp91_;
			gchar* _tmp92_;
			gchar* _tmp93_;
			gchar* _tmp94_;
			ValaCCodeConstant* _tmp95_;
			ValaCCodeConstant* _tmp96_;
			ValaCCodeBinaryExpression* cond = NULL;
			ValaCCodeFunctionCall* _tmp97_;
			ValaCCodeConstant* _tmp98_;
			ValaCCodeConstant* _tmp99_;
			ValaCCodeBinaryExpression* _tmp100_;
			ValaCCodeBinaryExpression* _tmp101_;
			gboolean _tmp102_;
			ValaCCodeFunctionCall* ccall = NULL;
			ValaProperty* _tmp109_;
			ValaObjectTypeSymbol* _tmp110_;
			gchar* _tmp111_;
			gchar* _tmp112_;
			ValaCCodeIdentifier* _tmp113_;
			ValaCCodeIdentifier* _tmp114_;
			ValaCCodeFunctionCall* _tmp115_;
			ValaCCodeFunctionCall* _tmp116_;
			ValaCCodeFunctionCall* _tmp117_;
			ValaCCodeIdentifier* _tmp118_;
			ValaCCodeIdentifier* _tmp119_;
			ValaCCodeFunctionCall* _tmp120_;
			ValaCCodeIdentifier* _tmp121_;
			ValaCCodeIdentifier* _tmp122_;
			ValaCCodeFunction* _tmp123_;
			ValaCCodeFunction* _tmp124_;
			ValaCCodeFunctionCall* _tmp125_;
			ValaCCodeFunction* _tmp126_;
			ValaCCodeFunction* _tmp127_;
			ValaCCodeConstant* _tmp128_;
			ValaCCodeConstant* _tmp129_;
			_tmp59_ = _prop_index;
			_prop_index = _tmp59_ + 1;
			_tmp60_ = _prop_index;
			_tmp61_ = _prop_size;
			if (!(_tmp60_ < _tmp61_)) {
				break;
			}
			_tmp62_ = _prop_list;
			_tmp63_ = _prop_index;
			_tmp64_ = vala_list_get (_tmp62_, _tmp63_);
			prop = (ValaProperty*) _tmp64_;
			_tmp67_ = prop;
			_tmp68_ = vala_property_get_binding (_tmp67_);
			_tmp69_ = _tmp68_;
			if (_tmp69_ != VALA_MEMBER_BINDING_INSTANCE) {
				_tmp66_ = TRUE;
			} else {
				ValaProperty* _tmp70_;
				gboolean _tmp71_;
				gboolean _tmp72_;
				_tmp70_ = prop;
				_tmp71_ = vala_property_get_overrides (_tmp70_);
				_tmp72_ = _tmp71_;
				_tmp66_ = _tmp72_;
			}
			if (_tmp66_) {
				_tmp65_ = TRUE;
			} else {
				ValaProperty* _tmp73_;
				ValaSymbolAccessibility _tmp74_;
				ValaSymbolAccessibility _tmp75_;
				_tmp73_ = prop;
				_tmp74_ = vala_symbol_get_access ((ValaSymbol*) _tmp73_);
				_tmp75_ = _tmp74_;
				_tmp65_ = _tmp75_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
			}
			if (_tmp65_) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp76_ = prop;
			_tmp77_ = vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp76_);
			if (!_tmp77_) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp78_ = prop;
			_tmp79_ = vala_property_get_set_accessor (_tmp78_);
			_tmp80_ = _tmp79_;
			if (_tmp80_ == NULL) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp81_ = ((ValaCCodeBaseModule*) self)->cfile;
			vala_ccode_file_add_include (_tmp81_, "string.h", FALSE);
			_tmp82_ = vala_ccode_identifier_new ("strcmp");
			_tmp83_ = _tmp82_;
			_tmp84_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp83_);
			_tmp85_ = _tmp84_;
			_vala_ccode_node_unref0 (_tmp83_);
			ccheck = _tmp85_;
			_tmp86_ = ccheck;
			_tmp87_ = vala_ccode_identifier_new ("property_name");
			_tmp88_ = _tmp87_;
			vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp88_);
			_vala_ccode_node_unref0 (_tmp88_);
			_tmp89_ = ccheck;
			_tmp90_ = prop;
			_tmp91_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp90_);
			_tmp92_ = _tmp91_;
			_tmp93_ = g_strdup_printf ("\"%s\"", _tmp92_);
			_tmp94_ = _tmp93_;
			_tmp95_ = vala_ccode_constant_new (_tmp94_);
			_tmp96_ = _tmp95_;
			vala_ccode_function_call_add_argument (_tmp89_, (ValaCCodeExpression*) _tmp96_);
			_vala_ccode_node_unref0 (_tmp96_);
			_g_free0 (_tmp94_);
			_g_free0 (_tmp92_);
			_tmp97_ = ccheck;
			_tmp98_ = vala_ccode_constant_new ("0");
			_tmp99_ = _tmp98_;
			_tmp100_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp97_, (ValaCCodeExpression*) _tmp99_);
			_tmp101_ = _tmp100_;
			_vala_ccode_node_unref0 (_tmp99_);
			cond = _tmp101_;
			_tmp102_ = firstif;
			if (_tmp102_) {
				ValaCCodeFunction* _tmp103_;
				ValaCCodeFunction* _tmp104_;
				ValaCCodeBinaryExpression* _tmp105_;
				_tmp103_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp104_ = _tmp103_;
				_tmp105_ = cond;
				vala_ccode_function_open_if (_tmp104_, (ValaCCodeExpression*) _tmp105_);
				firstif = FALSE;
			} else {
				ValaCCodeFunction* _tmp106_;
				ValaCCodeFunction* _tmp107_;
				ValaCCodeBinaryExpression* _tmp108_;
				_tmp106_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp107_ = _tmp106_;
				_tmp108_ = cond;
				vala_ccode_function_else_if (_tmp107_, (ValaCCodeExpression*) _tmp108_);
			}
			_tmp109_ = prop;
			_tmp110_ = sym;
			_tmp111_ = vala_gd_bus_server_module_generate_dbus_property_set_wrapper (self, _tmp109_, _tmp110_);
			_tmp112_ = _tmp111_;
			_tmp113_ = vala_ccode_identifier_new (_tmp112_);
			_tmp114_ = _tmp113_;
			_tmp115_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp114_);
			_tmp116_ = _tmp115_;
			_vala_ccode_node_unref0 (_tmp114_);
			_g_free0 (_tmp112_);
			ccall = _tmp116_;
			_tmp117_ = ccall;
			_tmp118_ = vala_ccode_identifier_new ("object");
			_tmp119_ = _tmp118_;
			vala_ccode_function_call_add_argument (_tmp117_, (ValaCCodeExpression*) _tmp119_);
			_vala_ccode_node_unref0 (_tmp119_);
			_tmp120_ = ccall;
			_tmp121_ = vala_ccode_identifier_new ("value");
			_tmp122_ = _tmp121_;
			vala_ccode_function_call_add_argument (_tmp120_, (ValaCCodeExpression*) _tmp122_);
			_vala_ccode_node_unref0 (_tmp122_);
			_tmp123_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp124_ = _tmp123_;
			_tmp125_ = ccall;
			vala_ccode_function_add_expression (_tmp124_, (ValaCCodeExpression*) _tmp125_);
			_tmp126_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp127_ = _tmp126_;
			_tmp128_ = vala_ccode_constant_new ("TRUE");
			_tmp129_ = _tmp128_;
			vala_ccode_function_add_return (_tmp127_, (ValaCCodeExpression*) _tmp129_);
			_vala_ccode_node_unref0 (_tmp129_);
			_vala_ccode_node_unref0 (ccall);
			_vala_ccode_node_unref0 (cond);
			_vala_ccode_node_unref0 (ccheck);
			_vala_code_node_unref0 (prop);
		}
		_vala_iterable_unref0 (_prop_list);
	}
	_tmp130_ = firstif;
	if (!_tmp130_) {
		ValaCCodeFunction* _tmp131_;
		ValaCCodeFunction* _tmp132_;
		_tmp131_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp132_ = _tmp131_;
		vala_ccode_function_close (_tmp132_);
	}
	_tmp133_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp134_ = _tmp133_;
	_tmp135_ = vala_ccode_constant_new ("FALSE");
	_tmp136_ = _tmp135_;
	vala_ccode_function_add_return (_tmp134_, (ValaCCodeExpression*) _tmp136_);
	_vala_ccode_node_unref0 (_tmp136_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp137_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp138_ = cfunc;
	vala_ccode_file_add_function (_tmp137_, _tmp138_);
	_vala_ccode_node_unref0 (cfunc);
}


static ValaCCodeExpression* vala_gd_bus_server_module_get_interface_vtable (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym) {
	ValaCCodeExpression* result = NULL;
	ValaCCodeInitializerList* vtable = NULL;
	ValaCCodeInitializerList* _tmp0_;
	ValaObjectTypeSymbol* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	ValaCCodeIdentifier* _tmp6_;
	ValaCCodeIdentifier* _tmp7_;
	ValaObjectTypeSymbol* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	ValaCCodeIdentifier* _tmp13_;
	ValaCCodeIdentifier* _tmp14_;
	ValaObjectTypeSymbol* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	ValaCCodeIdentifier* _tmp20_;
	ValaCCodeIdentifier* _tmp21_;
	ValaObjectTypeSymbol* _tmp22_;
	ValaObjectTypeSymbol* _tmp23_;
	ValaObjectTypeSymbol* _tmp24_;
	ValaCCodeDeclaration* _cdecl_ = NULL;
	ValaCCodeDeclaration* _tmp25_;
	ValaObjectTypeSymbol* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	gchar* _tmp32_;
	ValaCCodeVariableDeclarator* _tmp33_;
	ValaCCodeVariableDeclarator* _tmp34_;
	ValaCCodeFile* _tmp35_;
	ValaObjectTypeSymbol* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	gchar* _tmp40_;
	gchar* _tmp41_;
	gchar* _tmp42_;
	ValaCCodeIdentifier* _tmp43_;
	ValaCCodeExpression* _tmp44_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = vala_ccode_initializer_list_new ();
	vtable = _tmp0_;
	_tmp1_ = sym;
	_tmp2_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, "dbus_interface_method_call", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = vala_ccode_identifier_new (_tmp5_);
	_tmp7_ = _tmp6_;
	vala_ccode_initializer_list_append (vtable, (ValaCCodeExpression*) _tmp7_);
	_vala_ccode_node_unref0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_tmp8_ = sym;
	_tmp9_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp8_);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, "dbus_interface_get_property", NULL);
	_tmp12_ = _tmp11_;
	_tmp13_ = vala_ccode_identifier_new (_tmp12_);
	_tmp14_ = _tmp13_;
	vala_ccode_initializer_list_append (vtable, (ValaCCodeExpression*) _tmp14_);
	_vala_ccode_node_unref0 (_tmp14_);
	_g_free0 (_tmp12_);
	_g_free0 (_tmp10_);
	_tmp15_ = sym;
	_tmp16_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp15_);
	_tmp17_ = _tmp16_;
	_tmp18_ = g_strconcat (_tmp17_, "dbus_interface_set_property", NULL);
	_tmp19_ = _tmp18_;
	_tmp20_ = vala_ccode_identifier_new (_tmp19_);
	_tmp21_ = _tmp20_;
	vala_ccode_initializer_list_append (vtable, (ValaCCodeExpression*) _tmp21_);
	_vala_ccode_node_unref0 (_tmp21_);
	_g_free0 (_tmp19_);
	_g_free0 (_tmp17_);
	_tmp22_ = sym;
	vala_gd_bus_server_module_generate_interface_method_call_function (self, _tmp22_);
	_tmp23_ = sym;
	vala_gd_bus_server_module_generate_interface_get_property_function (self, _tmp23_);
	_tmp24_ = sym;
	vala_gd_bus_server_module_generate_interface_set_property_function (self, _tmp24_);
	_tmp25_ = vala_ccode_declaration_new ("const GDBusInterfaceVTable");
	_cdecl_ = _tmp25_;
	_tmp26_ = sym;
	_tmp27_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp26_);
	_tmp28_ = _tmp27_;
	_tmp29_ = g_strconcat ("_", _tmp28_, NULL);
	_tmp30_ = _tmp29_;
	_tmp31_ = g_strconcat (_tmp30_, "dbus_interface_vtable", NULL);
	_tmp32_ = _tmp31_;
	_tmp33_ = vala_ccode_variable_declarator_new (_tmp32_, (ValaCCodeExpression*) vtable, NULL);
	_tmp34_ = _tmp33_;
	vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp34_);
	_vala_ccode_node_unref0 (_tmp34_);
	_g_free0 (_tmp32_);
	_g_free0 (_tmp30_);
	_g_free0 (_tmp28_);
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _cdecl_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp35_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_constant_declaration (_tmp35_, (ValaCCodeNode*) _cdecl_);
	_tmp36_ = sym;
	_tmp37_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp36_);
	_tmp38_ = _tmp37_;
	_tmp39_ = g_strconcat ("_", _tmp38_, NULL);
	_tmp40_ = _tmp39_;
	_tmp41_ = g_strconcat (_tmp40_, "dbus_interface_vtable", NULL);
	_tmp42_ = _tmp41_;
	_tmp43_ = vala_ccode_identifier_new (_tmp42_);
	_tmp44_ = (ValaCCodeExpression*) _tmp43_;
	_g_free0 (_tmp42_);
	_g_free0 (_tmp40_);
	_g_free0 (_tmp38_);
	result = _tmp44_;
	_vala_ccode_node_unref0 (_cdecl_);
	_vala_ccode_node_unref0 (vtable);
	return result;
}


static gchar* vala_gd_bus_server_module_generate_register_object_function (ValaGDBusServerModule* self) {
	gchar* result = NULL;
	gchar* register_object_func = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gboolean _tmp2_;
	ValaCCodeFile* _tmp3_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp4_;
	ValaCCodeFunction* _tmp5_;
	ValaCCodeFunction* _tmp6_;
	ValaCCodeFunction* _tmp7_;
	ValaCCodeParameter* _tmp8_;
	ValaCCodeParameter* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeParameter* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeFunction* _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaCCodeParameter* _tmp21_;
	ValaCCodeFunction* _tmp22_;
	ValaCCodeFunctionCall* quark = NULL;
	ValaCCodeIdentifier* _tmp23_;
	ValaCCodeIdentifier* _tmp24_;
	ValaCCodeFunctionCall* _tmp25_;
	ValaCCodeFunctionCall* _tmp26_;
	ValaCCodeFunctionCall* _tmp27_;
	ValaCCodeConstant* _tmp28_;
	ValaCCodeConstant* _tmp29_;
	ValaCCodeFunctionCall* get_qdata = NULL;
	ValaCCodeIdentifier* _tmp30_;
	ValaCCodeIdentifier* _tmp31_;
	ValaCCodeFunctionCall* _tmp32_;
	ValaCCodeFunctionCall* _tmp33_;
	ValaCCodeFunctionCall* _tmp34_;
	ValaCCodeIdentifier* _tmp35_;
	ValaCCodeIdentifier* _tmp36_;
	ValaCCodeFunctionCall* _tmp37_;
	ValaCCodeFunctionCall* _tmp38_;
	ValaCCodeFunction* _tmp39_;
	ValaCCodeFunction* _tmp40_;
	ValaCCodeVariableDeclarator* _tmp41_;
	ValaCCodeVariableDeclarator* _tmp42_;
	ValaCCodeFunction* _tmp43_;
	ValaCCodeFunction* _tmp44_;
	ValaCCodeIdentifier* _tmp45_;
	ValaCCodeIdentifier* _tmp46_;
	ValaCCodeFunctionCall* _tmp47_;
	ValaCCodeFunction* _tmp48_;
	ValaCCodeFunction* _tmp49_;
	ValaCCodeIdentifier* _tmp50_;
	ValaCCodeIdentifier* _tmp51_;
	ValaCCodeUnaryExpression* _tmp52_;
	ValaCCodeUnaryExpression* _tmp53_;
	ValaCCodeFunctionCall* set_error = NULL;
	ValaCCodeIdentifier* _tmp54_;
	ValaCCodeIdentifier* _tmp55_;
	ValaCCodeFunctionCall* _tmp56_;
	ValaCCodeFunctionCall* _tmp57_;
	ValaCCodeFunctionCall* _tmp58_;
	ValaCCodeIdentifier* _tmp59_;
	ValaCCodeIdentifier* _tmp60_;
	ValaCCodeFunctionCall* _tmp61_;
	ValaCCodeIdentifier* _tmp62_;
	ValaCCodeIdentifier* _tmp63_;
	ValaCCodeFunctionCall* _tmp64_;
	ValaCCodeIdentifier* _tmp65_;
	ValaCCodeIdentifier* _tmp66_;
	ValaCCodeFunctionCall* _tmp67_;
	ValaCCodeConstant* _tmp68_;
	ValaCCodeConstant* _tmp69_;
	ValaCCodeFunction* _tmp70_;
	ValaCCodeFunction* _tmp71_;
	ValaCCodeFunctionCall* _tmp72_;
	ValaCCodeFunction* _tmp73_;
	ValaCCodeFunction* _tmp74_;
	ValaCCodeConstant* _tmp75_;
	ValaCCodeConstant* _tmp76_;
	ValaCCodeFunction* _tmp77_;
	ValaCCodeFunction* _tmp78_;
	ValaCCodeCastExpression* register_object = NULL;
	ValaCCodeIdentifier* _tmp79_;
	ValaCCodeIdentifier* _tmp80_;
	ValaCCodeCastExpression* _tmp81_;
	ValaCCodeCastExpression* _tmp82_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeCastExpression* _tmp83_;
	ValaCCodeFunctionCall* _tmp84_;
	ValaCCodeFunctionCall* _tmp85_;
	ValaCCodeIdentifier* _tmp86_;
	ValaCCodeIdentifier* _tmp87_;
	ValaCCodeFunctionCall* _tmp88_;
	ValaCCodeIdentifier* _tmp89_;
	ValaCCodeIdentifier* _tmp90_;
	ValaCCodeFunctionCall* _tmp91_;
	ValaCCodeIdentifier* _tmp92_;
	ValaCCodeIdentifier* _tmp93_;
	ValaCCodeFunctionCall* _tmp94_;
	ValaCCodeIdentifier* _tmp95_;
	ValaCCodeIdentifier* _tmp96_;
	ValaCCodeFunction* _tmp97_;
	ValaCCodeFunction* _tmp98_;
	ValaCCodeFunctionCall* _tmp99_;
	ValaCCodeFile* _tmp100_;
	ValaCCodeFunction* _tmp101_;
	ValaCCodeFile* _tmp102_;
	ValaCCodeFunction* _tmp103_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup ("_vala_g_dbus_connection_register_object");
	register_object_func = _tmp0_;
	_tmp1_ = register_object_func;
	_tmp2_ = vala_ccode_base_module_add_wrapper ((ValaCCodeBaseModule*) self, _tmp1_);
	if (!_tmp2_) {
		result = register_object_func;
		return result;
	}
	_tmp3_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_include (_tmp3_, "gio/gio.h", FALSE);
	_tmp4_ = register_object_func;
	_tmp5_ = vala_ccode_function_new (_tmp4_, "guint");
	function = _tmp5_;
	_tmp6_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp6_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp7_ = function;
	_tmp8_ = vala_ccode_parameter_new ("type", "GType");
	_tmp9_ = _tmp8_;
	vala_ccode_function_add_parameter (_tmp7_, _tmp9_);
	_vala_ccode_node_unref0 (_tmp9_);
	_tmp10_ = function;
	_tmp11_ = vala_ccode_parameter_new ("object", "void*");
	_tmp12_ = _tmp11_;
	vala_ccode_function_add_parameter (_tmp10_, _tmp12_);
	_vala_ccode_node_unref0 (_tmp12_);
	_tmp13_ = function;
	_tmp14_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
	_tmp15_ = _tmp14_;
	vala_ccode_function_add_parameter (_tmp13_, _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_tmp16_ = function;
	_tmp17_ = vala_ccode_parameter_new ("path", "const gchar*");
	_tmp18_ = _tmp17_;
	vala_ccode_function_add_parameter (_tmp16_, _tmp18_);
	_vala_ccode_node_unref0 (_tmp18_);
	_tmp19_ = function;
	_tmp20_ = vala_ccode_parameter_new ("error", "GError**");
	_tmp21_ = _tmp20_;
	vala_ccode_function_add_parameter (_tmp19_, _tmp21_);
	_vala_ccode_node_unref0 (_tmp21_);
	_tmp22_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp22_);
	_tmp23_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp24_);
	_tmp26_ = _tmp25_;
	_vala_ccode_node_unref0 (_tmp24_);
	quark = _tmp26_;
	_tmp27_ = quark;
	_tmp28_ = vala_ccode_constant_new ("\"vala-dbus-register-object\"");
	_tmp29_ = _tmp28_;
	vala_ccode_function_call_add_argument (_tmp27_, (ValaCCodeExpression*) _tmp29_);
	_vala_ccode_node_unref0 (_tmp29_);
	_tmp30_ = vala_ccode_identifier_new ("g_type_get_qdata");
	_tmp31_ = _tmp30_;
	_tmp32_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp31_);
	_tmp33_ = _tmp32_;
	_vala_ccode_node_unref0 (_tmp31_);
	get_qdata = _tmp33_;
	_tmp34_ = get_qdata;
	_tmp35_ = vala_ccode_identifier_new ("type");
	_tmp36_ = _tmp35_;
	vala_ccode_function_call_add_argument (_tmp34_, (ValaCCodeExpression*) _tmp36_);
	_vala_ccode_node_unref0 (_tmp36_);
	_tmp37_ = get_qdata;
	_tmp38_ = quark;
	vala_ccode_function_call_add_argument (_tmp37_, (ValaCCodeExpression*) _tmp38_);
	_tmp39_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp40_ = _tmp39_;
	_tmp41_ = vala_ccode_variable_declarator_new ("*func", NULL, NULL);
	_tmp42_ = _tmp41_;
	vala_ccode_function_add_declaration (_tmp40_, "void", (ValaCCodeDeclarator*) _tmp42_, 0);
	_vala_ccode_node_unref0 (_tmp42_);
	_tmp43_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp44_ = _tmp43_;
	_tmp45_ = vala_ccode_identifier_new ("func");
	_tmp46_ = _tmp45_;
	_tmp47_ = get_qdata;
	vala_ccode_function_add_assignment (_tmp44_, (ValaCCodeExpression*) _tmp46_, (ValaCCodeExpression*) _tmp47_);
	_vala_ccode_node_unref0 (_tmp46_);
	_tmp48_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp49_ = _tmp48_;
	_tmp50_ = vala_ccode_identifier_new ("func");
	_tmp51_ = _tmp50_;
	_tmp52_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp51_);
	_tmp53_ = _tmp52_;
	vala_ccode_function_open_if (_tmp49_, (ValaCCodeExpression*) _tmp53_);
	_vala_ccode_node_unref0 (_tmp53_);
	_vala_ccode_node_unref0 (_tmp51_);
	_tmp54_ = vala_ccode_identifier_new ("g_set_error_literal");
	_tmp55_ = _tmp54_;
	_tmp56_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp55_);
	_tmp57_ = _tmp56_;
	_vala_ccode_node_unref0 (_tmp55_);
	set_error = _tmp57_;
	_tmp58_ = set_error;
	_tmp59_ = vala_ccode_identifier_new ("error");
	_tmp60_ = _tmp59_;
	vala_ccode_function_call_add_argument (_tmp58_, (ValaCCodeExpression*) _tmp60_);
	_vala_ccode_node_unref0 (_tmp60_);
	_tmp61_ = set_error;
	_tmp62_ = vala_ccode_identifier_new ("G_IO_ERROR");
	_tmp63_ = _tmp62_;
	vala_ccode_function_call_add_argument (_tmp61_, (ValaCCodeExpression*) _tmp63_);
	_vala_ccode_node_unref0 (_tmp63_);
	_tmp64_ = set_error;
	_tmp65_ = vala_ccode_identifier_new ("G_IO_ERROR_FAILED");
	_tmp66_ = _tmp65_;
	vala_ccode_function_call_add_argument (_tmp64_, (ValaCCodeExpression*) _tmp66_);
	_vala_ccode_node_unref0 (_tmp66_);
	_tmp67_ = set_error;
	_tmp68_ = vala_ccode_constant_new ("\"The specified type does not support D-Bus registration\"");
	_tmp69_ = _tmp68_;
	vala_ccode_function_call_add_argument (_tmp67_, (ValaCCodeExpression*) _tmp69_);
	_vala_ccode_node_unref0 (_tmp69_);
	_tmp70_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp71_ = _tmp70_;
	_tmp72_ = set_error;
	vala_ccode_function_add_expression (_tmp71_, (ValaCCodeExpression*) _tmp72_);
	_tmp73_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp74_ = _tmp73_;
	_tmp75_ = vala_ccode_constant_new ("0");
	_tmp76_ = _tmp75_;
	vala_ccode_function_add_return (_tmp74_, (ValaCCodeExpression*) _tmp76_);
	_vala_ccode_node_unref0 (_tmp76_);
	_tmp77_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp78_ = _tmp77_;
	vala_ccode_function_close (_tmp78_);
	_tmp79_ = vala_ccode_identifier_new ("func");
	_tmp80_ = _tmp79_;
	_tmp81_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp80_, "guint (*) (void *, GDBusConnection *, const gchar *, GError **)");
	_tmp82_ = _tmp81_;
	_vala_ccode_node_unref0 (_tmp80_);
	register_object = _tmp82_;
	_tmp83_ = register_object;
	_tmp84_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp83_);
	ccall = _tmp84_;
	_tmp85_ = ccall;
	_tmp86_ = vala_ccode_identifier_new ("object");
	_tmp87_ = _tmp86_;
	vala_ccode_function_call_add_argument (_tmp85_, (ValaCCodeExpression*) _tmp87_);
	_vala_ccode_node_unref0 (_tmp87_);
	_tmp88_ = ccall;
	_tmp89_ = vala_ccode_identifier_new ("connection");
	_tmp90_ = _tmp89_;
	vala_ccode_function_call_add_argument (_tmp88_, (ValaCCodeExpression*) _tmp90_);
	_vala_ccode_node_unref0 (_tmp90_);
	_tmp91_ = ccall;
	_tmp92_ = vala_ccode_identifier_new ("path");
	_tmp93_ = _tmp92_;
	vala_ccode_function_call_add_argument (_tmp91_, (ValaCCodeExpression*) _tmp93_);
	_vala_ccode_node_unref0 (_tmp93_);
	_tmp94_ = ccall;
	_tmp95_ = vala_ccode_identifier_new ("error");
	_tmp96_ = _tmp95_;
	vala_ccode_function_call_add_argument (_tmp94_, (ValaCCodeExpression*) _tmp96_);
	_vala_ccode_node_unref0 (_tmp96_);
	_tmp97_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp98_ = _tmp97_;
	_tmp99_ = ccall;
	vala_ccode_function_add_return (_tmp98_, (ValaCCodeExpression*) _tmp99_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp100_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp101_ = function;
	vala_ccode_file_add_function_declaration (_tmp100_, _tmp101_);
	_tmp102_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp103_ = function;
	vala_ccode_file_add_function (_tmp102_, _tmp103_);
	result = register_object_func;
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (register_object);
	_vala_ccode_node_unref0 (set_error);
	_vala_ccode_node_unref0 (get_qdata);
	_vala_ccode_node_unref0 (quark);
	_vala_ccode_node_unref0 (function);
	return result;
}


static void vala_gd_bus_server_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr) {
	ValaGDBusServerModule * self;
	ValaMethodType* mtype = NULL;
	ValaMethodCall* _tmp0_;
	ValaExpression* _tmp1_;
	ValaExpression* _tmp2_;
	ValaDataType* _tmp3_;
	ValaDataType* _tmp4_;
	ValaMethodType* _tmp5_;
	gboolean _tmp6_ = FALSE;
	ValaMethodType* _tmp7_;
	ValaMemberAccess* ma = NULL;
	ValaMethodCall* _tmp14_;
	ValaExpression* _tmp15_;
	ValaExpression* _tmp16_;
	ValaMemberAccess* _tmp17_;
	ValaDataType* type_arg = NULL;
	ValaMemberAccess* _tmp18_;
	ValaList* _tmp19_;
	ValaList* _tmp20_;
	gpointer _tmp21_;
	ValaDataType* _tmp22_;
	ValaCCodeFunctionCall* cregister = NULL;
	ValaObjectType* object_type = NULL;
	ValaDataType* _tmp23_;
	ValaObjectType* _tmp24_;
	ValaObjectType* _tmp25_;
	ValaList* args = NULL;
	ValaMethodCall* _tmp54_;
	ValaList* _tmp55_;
	ValaExpression* path_arg = NULL;
	ValaList* _tmp56_;
	gpointer _tmp57_;
	ValaExpression* obj_arg = NULL;
	ValaList* _tmp58_;
	gpointer _tmp59_;
	ValaCCodeFunctionCall* _tmp60_;
	ValaExpression* _tmp61_;
	ValaCCodeExpression* _tmp62_;
	ValaCCodeExpression* _tmp63_;
	ValaCCodeFunctionCall* _tmp64_;
	ValaMemberAccess* _tmp65_;
	ValaExpression* _tmp66_;
	ValaExpression* _tmp67_;
	ValaCCodeExpression* _tmp68_;
	ValaCCodeExpression* _tmp69_;
	ValaCCodeFunctionCall* _tmp70_;
	ValaExpression* _tmp71_;
	ValaCCodeExpression* _tmp72_;
	ValaCCodeExpression* _tmp73_;
	ValaCCodeFunctionCall* _tmp74_;
	ValaCCodeExpression* _tmp75_;
	ValaCCodeExpression* _tmp76_;
	ValaCCodeUnaryExpression* _tmp77_;
	ValaCCodeUnaryExpression* _tmp78_;
	ValaMethodCall* _tmp79_;
	ValaCodeNode* _tmp80_;
	ValaCodeNode* _tmp81_;
	self = (ValaGDBusServerModule*) base;
	g_return_if_fail (expr != NULL);
	_tmp0_ = expr;
	_tmp1_ = vala_method_call_get_call (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = vala_expression_get_value_type (_tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, VALA_TYPE_METHOD_TYPE) ? ((ValaMethodType*) _tmp4_) : NULL);
	mtype = _tmp5_;
	_tmp7_ = mtype;
	if (_tmp7_ == NULL) {
		_tmp6_ = TRUE;
	} else {
		ValaMethodType* _tmp8_;
		ValaMethod* _tmp9_;
		ValaMethod* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		_tmp8_ = mtype;
		_tmp9_ = vala_method_type_get_method_symbol (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp11_ = vala_get_ccode_name ((ValaCodeNode*) _tmp10_);
		_tmp12_ = _tmp11_;
		_tmp6_ = g_strcmp0 (_tmp12_, "g_dbus_connection_register_object") != 0;
		_g_free0 (_tmp12_);
	}
	if (_tmp6_) {
		ValaMethodCall* _tmp13_;
		_tmp13_ = expr;
		VALA_CODE_VISITOR_CLASS (vala_gd_bus_server_module_parent_class)->visit_method_call ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), _tmp13_);
		_vala_code_node_unref0 (mtype);
		return;
	}
	_tmp14_ = expr;
	_tmp15_ = vala_method_call_get_call (_tmp14_);
	_tmp16_ = _tmp15_;
	_tmp17_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess));
	ma = _tmp17_;
	_tmp18_ = ma;
	_tmp19_ = vala_member_access_get_type_arguments (_tmp18_);
	_tmp20_ = _tmp19_;
	_tmp21_ = vala_list_get (_tmp20_, 0);
	_tmp22_ = (ValaDataType*) _tmp21_;
	_vala_iterable_unref0 (_tmp20_);
	type_arg = _tmp22_;
	_tmp23_ = type_arg;
	_tmp24_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp23_, VALA_TYPE_OBJECT_TYPE) ? ((ValaObjectType*) _tmp23_) : NULL);
	object_type = _tmp24_;
	_tmp25_ = object_type;
	if (_tmp25_ != NULL) {
		ValaObjectType* _tmp26_;
		ValaObjectTypeSymbol* _tmp27_;
		ValaObjectTypeSymbol* _tmp28_;
		gchar* _tmp29_;
		gchar* _tmp30_;
		gboolean _tmp31_;
		ValaObjectType* _tmp35_;
		ValaObjectTypeSymbol* _tmp36_;
		ValaObjectTypeSymbol* _tmp37_;
		gchar* _tmp38_;
		gchar* _tmp39_;
		gchar* _tmp40_;
		gchar* _tmp41_;
		ValaCCodeIdentifier* _tmp42_;
		ValaCCodeIdentifier* _tmp43_;
		ValaCCodeFunctionCall* _tmp44_;
		_tmp26_ = object_type;
		_tmp27_ = vala_object_type_get_type_symbol (_tmp26_);
		_tmp28_ = _tmp27_;
		_tmp29_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp28_);
		_tmp30_ = _tmp29_;
		_tmp31_ = _tmp30_ == NULL;
		_g_free0 (_tmp30_);
		if (_tmp31_) {
			ValaMethodCall* _tmp32_;
			ValaSourceReference* _tmp33_;
			ValaSourceReference* _tmp34_;
			_tmp32_ = expr;
			_tmp33_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp32_);
			_tmp34_ = _tmp33_;
			vala_report_error (_tmp34_, "DBusConnection.register_object requires type argument with [DBus (name" \
" = ...)] attribute");
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (cregister);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
		_tmp35_ = object_type;
		_tmp36_ = vala_object_type_get_type_symbol (_tmp35_);
		_tmp37_ = _tmp36_;
		_tmp38_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp37_);
		_tmp39_ = _tmp38_;
		_tmp40_ = g_strdup_printf ("%sregister_object", _tmp39_);
		_tmp41_ = _tmp40_;
		_tmp42_ = vala_ccode_identifier_new (_tmp41_);
		_tmp43_ = _tmp42_;
		_tmp44_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp43_);
		_vala_ccode_node_unref0 (cregister);
		cregister = _tmp44_;
		_vala_ccode_node_unref0 (_tmp43_);
		_g_free0 (_tmp41_);
		_g_free0 (_tmp39_);
	} else {
		gchar* _tmp45_;
		gchar* _tmp46_;
		ValaCCodeIdentifier* _tmp47_;
		ValaCCodeIdentifier* _tmp48_;
		ValaCCodeFunctionCall* _tmp49_;
		ValaCCodeFunctionCall* _tmp50_;
		ValaDataType* _tmp51_;
		ValaCCodeExpression* _tmp52_;
		ValaCCodeExpression* _tmp53_;
		_tmp45_ = vala_gd_bus_server_module_generate_register_object_function (self);
		_tmp46_ = _tmp45_;
		_tmp47_ = vala_ccode_identifier_new (_tmp46_);
		_tmp48_ = _tmp47_;
		_tmp49_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp48_);
		_vala_ccode_node_unref0 (cregister);
		cregister = _tmp49_;
		_vala_ccode_node_unref0 (_tmp48_);
		_g_free0 (_tmp46_);
		_tmp50_ = cregister;
		_tmp51_ = type_arg;
		_tmp52_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp51_, FALSE);
		_tmp53_ = _tmp52_;
		vala_ccode_function_call_add_argument (_tmp50_, _tmp53_);
		_vala_ccode_node_unref0 (_tmp53_);
	}
	_tmp54_ = expr;
	_tmp55_ = vala_method_call_get_argument_list (_tmp54_);
	args = _tmp55_;
	_tmp56_ = args;
	_tmp57_ = vala_list_get (_tmp56_, 0);
	path_arg = (ValaExpression*) _tmp57_;
	_tmp58_ = args;
	_tmp59_ = vala_list_get (_tmp58_, 1);
	obj_arg = (ValaExpression*) _tmp59_;
	vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
	_tmp60_ = cregister;
	_tmp61_ = obj_arg;
	_tmp62_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp61_);
	_tmp63_ = _tmp62_;
	vala_ccode_function_call_add_argument (_tmp60_, _tmp63_);
	_vala_ccode_node_unref0 (_tmp63_);
	_tmp64_ = cregister;
	_tmp65_ = ma;
	_tmp66_ = vala_member_access_get_inner (_tmp65_);
	_tmp67_ = _tmp66_;
	_tmp68_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp67_);
	_tmp69_ = _tmp68_;
	vala_ccode_function_call_add_argument (_tmp64_, _tmp69_);
	_vala_ccode_node_unref0 (_tmp69_);
	_tmp70_ = cregister;
	_tmp71_ = path_arg;
	_tmp72_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp71_);
	_tmp73_ = _tmp72_;
	vala_ccode_function_call_add_argument (_tmp70_, _tmp73_);
	_vala_ccode_node_unref0 (_tmp73_);
	_tmp74_ = cregister;
	_tmp75_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
	_tmp76_ = _tmp75_;
	_tmp77_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp76_);
	_tmp78_ = _tmp77_;
	vala_ccode_function_call_add_argument (_tmp74_, (ValaCCodeExpression*) _tmp78_);
	_vala_ccode_node_unref0 (_tmp78_);
	_vala_ccode_node_unref0 (_tmp76_);
	_tmp79_ = expr;
	_tmp80_ = vala_code_node_get_parent_node ((ValaCodeNode*) _tmp79_);
	_tmp81_ = _tmp80_;
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp81_, VALA_TYPE_EXPRESSION_STATEMENT)) {
		ValaCCodeFunction* _tmp82_;
		ValaCCodeFunction* _tmp83_;
		ValaCCodeFunctionCall* _tmp84_;
		_tmp82_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp83_ = _tmp82_;
		_tmp84_ = cregister;
		vala_ccode_function_add_expression (_tmp83_, (ValaCCodeExpression*) _tmp84_);
	} else {
		ValaLocalVariable* temp_var = NULL;
		ValaMethodCall* _tmp85_;
		ValaDataType* _tmp86_;
		ValaDataType* _tmp87_;
		ValaMethodCall* _tmp88_;
		ValaDataType* _tmp89_;
		ValaDataType* _tmp90_;
		gboolean _tmp91_;
		gboolean _tmp92_;
		ValaLocalVariable* _tmp93_;
		ValaCCodeExpression* temp_ref = NULL;
		ValaLocalVariable* _tmp94_;
		const gchar* _tmp95_;
		const gchar* _tmp96_;
		ValaCCodeExpression* _tmp97_;
		ValaLocalVariable* _tmp98_;
		ValaCCodeFunction* _tmp99_;
		ValaCCodeFunction* _tmp100_;
		ValaCCodeExpression* _tmp101_;
		ValaCCodeFunctionCall* _tmp102_;
		ValaMethodCall* _tmp103_;
		ValaCCodeExpression* _tmp104_;
		_tmp85_ = expr;
		_tmp86_ = vala_expression_get_value_type ((ValaExpression*) _tmp85_);
		_tmp87_ = _tmp86_;
		_tmp88_ = expr;
		_tmp89_ = vala_expression_get_value_type ((ValaExpression*) _tmp88_);
		_tmp90_ = _tmp89_;
		_tmp91_ = vala_data_type_get_value_owned (_tmp90_);
		_tmp92_ = _tmp91_;
		_tmp93_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp87_, _tmp92_, NULL, FALSE);
		temp_var = _tmp93_;
		_tmp94_ = temp_var;
		_tmp95_ = vala_symbol_get_name ((ValaSymbol*) _tmp94_);
		_tmp96_ = _tmp95_;
		_tmp97_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp96_);
		temp_ref = _tmp97_;
		_tmp98_ = temp_var;
		vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp98_);
		_tmp99_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp100_ = _tmp99_;
		_tmp101_ = temp_ref;
		_tmp102_ = cregister;
		vala_ccode_function_add_assignment (_tmp100_, _tmp101_, (ValaCCodeExpression*) _tmp102_);
		_tmp103_ = expr;
		_tmp104_ = temp_ref;
		vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) _tmp103_, _tmp104_);
		_vala_ccode_node_unref0 (temp_ref);
		_vala_code_node_unref0 (temp_var);
	}
	_vala_code_node_unref0 (obj_arg);
	_vala_code_node_unref0 (path_arg);
	_vala_iterable_unref0 (args);
	_vala_code_node_unref0 (object_type);
	_vala_ccode_node_unref0 (cregister);
	_vala_code_node_unref0 (type_arg);
	_vala_code_node_unref0 (ma);
	_vala_code_node_unref0 (mtype);
}


static void vala_gd_bus_server_module_real_generate_class_declaration (ValaCCodeBaseModule* base, ValaClass* cl, ValaCCodeFile* decl_space) {
	ValaGDBusServerModule * self;
	ValaClass* _tmp0_;
	ValaCCodeFile* _tmp1_;
	ValaClass* _tmp2_;
	ValaCCodeFile* _tmp3_;
	self = (ValaGDBusServerModule*) base;
	g_return_if_fail (cl != NULL);
	g_return_if_fail (decl_space != NULL);
	_tmp0_ = cl;
	_tmp1_ = decl_space;
	VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_server_module_parent_class)->generate_class_declaration ((ValaCCodeBaseModule*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), _tmp0_, _tmp1_);
	_tmp2_ = cl;
	_tmp3_ = decl_space;
	vala_gd_bus_server_module_generate_object_type_symbol_declaration (self, (ValaObjectTypeSymbol*) _tmp2_, _tmp3_);
}


static void vala_gd_bus_server_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space) {
	ValaGDBusServerModule * self;
	ValaInterface* _tmp0_;
	ValaCCodeFile* _tmp1_;
	ValaInterface* _tmp2_;
	ValaCCodeFile* _tmp3_;
	self = (ValaGDBusServerModule*) base;
	g_return_if_fail (iface != NULL);
	g_return_if_fail (decl_space != NULL);
	_tmp0_ = iface;
	_tmp1_ = decl_space;
	VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_server_module_parent_class)->generate_interface_declaration ((ValaCCodeBaseModule*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), _tmp0_, _tmp1_);
	_tmp2_ = iface;
	_tmp3_ = decl_space;
	vala_gd_bus_server_module_generate_object_type_symbol_declaration (self, (ValaObjectTypeSymbol*) _tmp2_, _tmp3_);
}


static void vala_gd_bus_server_module_real_visit_class (ValaCodeVisitor* base, ValaClass* cl) {
	ValaGDBusServerModule * self;
	ValaClass* _tmp0_;
	ValaClass* _tmp1_;
	self = (ValaGDBusServerModule*) base;
	g_return_if_fail (cl != NULL);
	_tmp0_ = cl;
	VALA_CODE_VISITOR_CLASS (vala_gd_bus_server_module_parent_class)->visit_class ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), _tmp0_);
	_tmp1_ = cl;
	vala_gd_bus_server_module_visit_object_type_symbol (self, (ValaObjectTypeSymbol*) _tmp1_);
}


static void vala_gd_bus_server_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface) {
	ValaGDBusServerModule * self;
	ValaInterface* _tmp0_;
	ValaInterface* _tmp1_;
	self = (ValaGDBusServerModule*) base;
	g_return_if_fail (iface != NULL);
	_tmp0_ = iface;
	VALA_CODE_VISITOR_CLASS (vala_gd_bus_server_module_parent_class)->visit_interface ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), _tmp0_);
	_tmp1_ = iface;
	vala_gd_bus_server_module_visit_object_type_symbol (self, (ValaObjectTypeSymbol*) _tmp1_);
}


static void vala_gd_bus_server_module_generate_object_type_symbol_declaration (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym, ValaCCodeFile* decl_space) {
	gchar* dbus_iface_name = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* register_object_name = NULL;
	ValaObjectTypeSymbol* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	ValaCCodeFile* _tmp8_;
	ValaObjectTypeSymbol* _tmp9_;
	const gchar* _tmp10_;
	gboolean _tmp11_;
	ValaCCodeFile* _tmp12_;
	ValaCCodeFunction* cfunc = NULL;
	const gchar* _tmp13_;
	ValaCCodeFunction* _tmp14_;
	ValaCCodeFunction* _tmp15_;
	ValaCCodeParameter* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeFunction* _tmp18_;
	ValaCCodeParameter* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaCCodeFunction* _tmp21_;
	ValaCCodeParameter* _tmp22_;
	ValaCCodeParameter* _tmp23_;
	ValaCCodeFunction* _tmp24_;
	ValaCCodeParameter* _tmp25_;
	ValaCCodeParameter* _tmp26_;
	ValaObjectTypeSymbol* _tmp27_;
	gboolean _tmp28_;
	ValaCCodeFile* _tmp44_;
	ValaCCodeFunction* _tmp45_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	g_return_if_fail (decl_space != NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp0_);
	dbus_iface_name = _tmp1_;
	_tmp2_ = dbus_iface_name;
	if (_tmp2_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp3_ = sym;
	_tmp4_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sregister_object", _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp5_);
	register_object_name = _tmp7_;
	_tmp8_ = decl_space;
	_tmp9_ = sym;
	_tmp10_ = register_object_name;
	_tmp11_ = vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, _tmp8_, (ValaSymbol*) _tmp9_, _tmp10_);
	if (_tmp11_) {
		_g_free0 (register_object_name);
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp12_ = decl_space;
	vala_ccode_file_add_include (_tmp12_, "gio/gio.h", FALSE);
	_tmp13_ = register_object_name;
	_tmp14_ = vala_ccode_function_new (_tmp13_, "guint");
	cfunc = _tmp14_;
	_tmp15_ = cfunc;
	_tmp16_ = vala_ccode_parameter_new ("object", "void*");
	_tmp17_ = _tmp16_;
	vala_ccode_function_add_parameter (_tmp15_, _tmp17_);
	_vala_ccode_node_unref0 (_tmp17_);
	_tmp18_ = cfunc;
	_tmp19_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
	_tmp20_ = _tmp19_;
	vala_ccode_function_add_parameter (_tmp18_, _tmp20_);
	_vala_ccode_node_unref0 (_tmp20_);
	_tmp21_ = cfunc;
	_tmp22_ = vala_ccode_parameter_new ("path", "const gchar*");
	_tmp23_ = _tmp22_;
	vala_ccode_function_add_parameter (_tmp21_, _tmp23_);
	_vala_ccode_node_unref0 (_tmp23_);
	_tmp24_ = cfunc;
	_tmp25_ = vala_ccode_parameter_new ("error", "GError**");
	_tmp26_ = _tmp25_;
	vala_ccode_function_add_parameter (_tmp24_, _tmp26_);
	_vala_ccode_node_unref0 (_tmp26_);
	_tmp27_ = sym;
	_tmp28_ = vala_symbol_is_private_symbol ((ValaSymbol*) _tmp27_);
	if (_tmp28_) {
		ValaCCodeFunction* _tmp29_;
		ValaCCodeFunction* _tmp30_;
		ValaCCodeModifiers _tmp31_;
		ValaCCodeModifiers _tmp32_;
		_tmp29_ = cfunc;
		_tmp30_ = cfunc;
		_tmp31_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp30_);
		_tmp32_ = _tmp31_;
		vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp30_, _tmp32_ | VALA_CCODE_MODIFIERS_STATIC);
	} else {
		gboolean _tmp33_ = FALSE;
		ValaCodeContext* _tmp34_;
		ValaCodeContext* _tmp35_;
		gboolean _tmp36_;
		gboolean _tmp37_;
		_tmp34_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
		_tmp35_ = _tmp34_;
		_tmp36_ = vala_code_context_get_hide_internal (_tmp35_);
		_tmp37_ = _tmp36_;
		if (_tmp37_) {
			ValaObjectTypeSymbol* _tmp38_;
			gboolean _tmp39_;
			_tmp38_ = sym;
			_tmp39_ = vala_symbol_is_internal_symbol ((ValaSymbol*) _tmp38_);
			_tmp33_ = _tmp39_;
		} else {
			_tmp33_ = FALSE;
		}
		if (_tmp33_) {
			ValaCCodeFunction* _tmp40_;
			ValaCCodeFunction* _tmp41_;
			ValaCCodeModifiers _tmp42_;
			ValaCCodeModifiers _tmp43_;
			_tmp40_ = cfunc;
			_tmp41_ = cfunc;
			_tmp42_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp41_);
			_tmp43_ = _tmp42_;
			vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp41_, _tmp43_ | VALA_CCODE_MODIFIERS_INTERNAL);
		}
	}
	_tmp44_ = decl_space;
	_tmp45_ = cfunc;
	vala_ccode_file_add_function_declaration (_tmp44_, _tmp45_);
	_vala_ccode_node_unref0 (cfunc);
	_g_free0 (register_object_name);
	_g_free0 (dbus_iface_name);
}


static void vala_gd_bus_server_module_visit_object_type_symbol (ValaGDBusServerModule* self, ValaObjectTypeSymbol* sym) {
	gchar* dbus_iface_name = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	ValaCCodeFile* _tmp3_;
	ValaCCodeFunction* cfunc = NULL;
	ValaObjectTypeSymbol* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	ValaCCodeFunction* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeFunction* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeParameter* _tmp13_;
	ValaCCodeFunction* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaCCodeParameter* _tmp16_;
	ValaCCodeFunction* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeParameter* _tmp19_;
	ValaCCodeFunction* _tmp20_;
	ValaCCodeParameter* _tmp21_;
	ValaCCodeParameter* _tmp22_;
	ValaObjectTypeSymbol* _tmp23_;
	gboolean _tmp24_;
	ValaCCodeFunction* _tmp40_;
	ValaCCodeFunction* _tmp41_;
	ValaCCodeFunction* _tmp42_;
	ValaCCodeVariableDeclarator* _tmp43_;
	ValaCCodeVariableDeclarator* _tmp44_;
	ValaCCodeFunction* _tmp45_;
	ValaCCodeFunction* _tmp46_;
	ValaCCodeVariableDeclarator* _tmp47_;
	ValaCCodeVariableDeclarator* _tmp48_;
	ValaCCodeFunctionCall* alloc_data = NULL;
	ValaCCodeIdentifier* _tmp49_;
	ValaCCodeIdentifier* _tmp50_;
	ValaCCodeFunctionCall* _tmp51_;
	ValaCCodeFunctionCall* _tmp52_;
	ValaCCodeFunctionCall* _tmp53_;
	ValaCCodeIdentifier* _tmp54_;
	ValaCCodeIdentifier* _tmp55_;
	ValaCCodeFunctionCall* _tmp56_;
	ValaCCodeConstant* _tmp57_;
	ValaCCodeConstant* _tmp58_;
	ValaCCodeFunction* _tmp59_;
	ValaCCodeFunction* _tmp60_;
	ValaCCodeIdentifier* _tmp61_;
	ValaCCodeIdentifier* _tmp62_;
	ValaCCodeFunctionCall* _tmp63_;
	gchar* ref_function = NULL;
	ValaObjectTypeSymbol* _tmp64_;
	gchar* _tmp65_;
	gboolean _tmp66_ = FALSE;
	ValaObjectTypeSymbol* _tmp67_;
	ValaCCodeFunctionCall* ref_object = NULL;
	const gchar* _tmp77_;
	ValaCCodeIdentifier* _tmp78_;
	ValaCCodeIdentifier* _tmp79_;
	ValaCCodeFunctionCall* _tmp80_;
	ValaCCodeFunctionCall* _tmp81_;
	ValaCCodeFunctionCall* _tmp82_;
	ValaCCodeIdentifier* _tmp83_;
	ValaCCodeIdentifier* _tmp84_;
	ValaCCodeFunction* _tmp85_;
	ValaCCodeFunction* _tmp86_;
	ValaCCodeIdentifier* _tmp87_;
	ValaCCodeIdentifier* _tmp88_;
	ValaCCodeConstant* _tmp89_;
	ValaCCodeConstant* _tmp90_;
	ValaCCodeElementAccess* _tmp91_;
	ValaCCodeElementAccess* _tmp92_;
	ValaCCodeFunctionCall* _tmp93_;
	ValaCCodeIdentifier* _tmp94_;
	ValaCCodeIdentifier* _tmp95_;
	ValaCCodeFunctionCall* _tmp96_;
	ValaCCodeFunctionCall* _tmp97_;
	ValaCCodeIdentifier* _tmp98_;
	ValaCCodeIdentifier* _tmp99_;
	ValaCCodeFunction* _tmp100_;
	ValaCCodeFunction* _tmp101_;
	ValaCCodeIdentifier* _tmp102_;
	ValaCCodeIdentifier* _tmp103_;
	ValaCCodeConstant* _tmp104_;
	ValaCCodeConstant* _tmp105_;
	ValaCCodeElementAccess* _tmp106_;
	ValaCCodeElementAccess* _tmp107_;
	ValaCCodeFunctionCall* _tmp108_;
	ValaCCodeFunctionCall* dup_path = NULL;
	ValaCCodeIdentifier* _tmp109_;
	ValaCCodeIdentifier* _tmp110_;
	ValaCCodeFunctionCall* _tmp111_;
	ValaCCodeFunctionCall* _tmp112_;
	ValaCCodeFunctionCall* _tmp113_;
	ValaCCodeIdentifier* _tmp114_;
	ValaCCodeIdentifier* _tmp115_;
	ValaCCodeFunction* _tmp116_;
	ValaCCodeFunction* _tmp117_;
	ValaCCodeIdentifier* _tmp118_;
	ValaCCodeIdentifier* _tmp119_;
	ValaCCodeConstant* _tmp120_;
	ValaCCodeConstant* _tmp121_;
	ValaCCodeElementAccess* _tmp122_;
	ValaCCodeElementAccess* _tmp123_;
	ValaCCodeFunctionCall* _tmp124_;
	ValaCCodeFunctionCall* cregister = NULL;
	ValaCCodeIdentifier* _tmp125_;
	ValaCCodeIdentifier* _tmp126_;
	ValaCCodeFunctionCall* _tmp127_;
	ValaCCodeFunctionCall* _tmp128_;
	ValaCCodeFunctionCall* _tmp129_;
	ValaCCodeIdentifier* _tmp130_;
	ValaCCodeIdentifier* _tmp131_;
	ValaCCodeFunctionCall* _tmp132_;
	ValaCCodeIdentifier* _tmp133_;
	ValaCCodeIdentifier* _tmp134_;
	ValaCCodeFunctionCall* _tmp135_;
	ValaObjectTypeSymbol* _tmp136_;
	ValaCCodeExpression* _tmp137_;
	ValaCCodeExpression* _tmp138_;
	ValaCCodeUnaryExpression* _tmp139_;
	ValaCCodeUnaryExpression* _tmp140_;
	ValaCCodeCastExpression* _tmp141_;
	ValaCCodeCastExpression* _tmp142_;
	ValaCCodeFunctionCall* _tmp143_;
	ValaObjectTypeSymbol* _tmp144_;
	ValaCCodeExpression* _tmp145_;
	ValaCCodeExpression* _tmp146_;
	ValaCCodeUnaryExpression* _tmp147_;
	ValaCCodeUnaryExpression* _tmp148_;
	ValaCCodeFunctionCall* _tmp149_;
	ValaCCodeIdentifier* _tmp150_;
	ValaCCodeIdentifier* _tmp151_;
	ValaCCodeFunctionCall* _tmp152_;
	ValaObjectTypeSymbol* _tmp153_;
	gchar* _tmp154_;
	gchar* _tmp155_;
	gchar* _tmp156_;
	gchar* _tmp157_;
	gchar* _tmp158_;
	gchar* _tmp159_;
	ValaCCodeIdentifier* _tmp160_;
	ValaCCodeIdentifier* _tmp161_;
	ValaCCodeFunctionCall* _tmp162_;
	ValaCCodeIdentifier* _tmp163_;
	ValaCCodeIdentifier* _tmp164_;
	ValaCCodeFunction* _tmp165_;
	ValaCCodeFunction* _tmp166_;
	ValaCCodeIdentifier* _tmp167_;
	ValaCCodeIdentifier* _tmp168_;
	ValaCCodeFunctionCall* _tmp169_;
	ValaCCodeFunction* _tmp170_;
	ValaCCodeFunction* _tmp171_;
	ValaCCodeIdentifier* _tmp172_;
	ValaCCodeIdentifier* _tmp173_;
	ValaCCodeUnaryExpression* _tmp174_;
	ValaCCodeUnaryExpression* _tmp175_;
	ValaCCodeFunction* _tmp176_;
	ValaCCodeFunction* _tmp177_;
	ValaCCodeConstant* _tmp178_;
	ValaCCodeConstant* _tmp179_;
	ValaCCodeFunction* _tmp180_;
	ValaCCodeFunction* _tmp181_;
	ValaObjectTypeSymbol* _tmp182_;
	ValaCCodeFunction* _tmp183_;
	ValaCCodeFunction* _tmp184_;
	ValaCCodeIdentifier* _tmp185_;
	ValaCCodeIdentifier* _tmp186_;
	ValaCCodeFile* _tmp187_;
	ValaCCodeFunction* _tmp188_;
	ValaObjectTypeSymbol* _tmp189_;
	gchar* _tmp190_;
	gchar* _tmp191_;
	gchar* _tmp192_;
	gchar* _tmp193_;
	gchar* _tmp194_;
	gchar* _tmp195_;
	ValaCCodeFunction* _tmp196_;
	ValaCCodeFunction* _tmp197_;
	ValaCCodeParameter* _tmp198_;
	ValaCCodeParameter* _tmp199_;
	ValaCCodeFunction* _tmp200_;
	ValaCCodeFunction* _tmp201_;
	ValaCCodeModifiers _tmp202_;
	ValaCCodeModifiers _tmp203_;
	ValaCCodeFunction* _tmp204_;
	ValaCCodeFunction* _tmp205_;
	ValaCCodeFunction* _tmp206_;
	ValaCCodeIdentifier* _tmp207_;
	ValaCCodeIdentifier* _tmp208_;
	ValaCCodeVariableDeclarator* _tmp209_;
	ValaCCodeVariableDeclarator* _tmp210_;
	ValaObjectTypeSymbol* _tmp211_;
	ValaCCodeFunctionCall* unref_object = NULL;
	ValaObjectTypeSymbol* _tmp212_;
	gchar* _tmp213_;
	gchar* _tmp214_;
	ValaCCodeIdentifier* _tmp215_;
	ValaCCodeIdentifier* _tmp216_;
	ValaCCodeFunctionCall* _tmp217_;
	ValaCCodeFunctionCall* _tmp218_;
	ValaCCodeFunctionCall* _tmp219_;
	ValaCCodeIdentifier* _tmp220_;
	ValaCCodeIdentifier* _tmp221_;
	ValaCCodeConstant* _tmp222_;
	ValaCCodeConstant* _tmp223_;
	ValaCCodeElementAccess* _tmp224_;
	ValaCCodeElementAccess* _tmp225_;
	ValaCCodeFunction* _tmp226_;
	ValaCCodeFunction* _tmp227_;
	ValaCCodeFunctionCall* _tmp228_;
	ValaCCodeIdentifier* _tmp229_;
	ValaCCodeIdentifier* _tmp230_;
	ValaCCodeFunctionCall* _tmp231_;
	ValaCCodeFunctionCall* _tmp232_;
	ValaCCodeIdentifier* _tmp233_;
	ValaCCodeIdentifier* _tmp234_;
	ValaCCodeConstant* _tmp235_;
	ValaCCodeConstant* _tmp236_;
	ValaCCodeElementAccess* _tmp237_;
	ValaCCodeElementAccess* _tmp238_;
	ValaCCodeFunction* _tmp239_;
	ValaCCodeFunction* _tmp240_;
	ValaCCodeFunctionCall* _tmp241_;
	ValaCCodeFunctionCall* free_path = NULL;
	ValaCCodeIdentifier* _tmp242_;
	ValaCCodeIdentifier* _tmp243_;
	ValaCCodeFunctionCall* _tmp244_;
	ValaCCodeFunctionCall* _tmp245_;
	ValaCCodeFunctionCall* _tmp246_;
	ValaCCodeIdentifier* _tmp247_;
	ValaCCodeIdentifier* _tmp248_;
	ValaCCodeConstant* _tmp249_;
	ValaCCodeConstant* _tmp250_;
	ValaCCodeElementAccess* _tmp251_;
	ValaCCodeElementAccess* _tmp252_;
	ValaCCodeFunction* _tmp253_;
	ValaCCodeFunction* _tmp254_;
	ValaCCodeFunctionCall* _tmp255_;
	ValaCCodeFunctionCall* free_data = NULL;
	ValaCCodeIdentifier* _tmp256_;
	ValaCCodeIdentifier* _tmp257_;
	ValaCCodeFunctionCall* _tmp258_;
	ValaCCodeFunctionCall* _tmp259_;
	ValaCCodeFunctionCall* _tmp260_;
	ValaCCodeIdentifier* _tmp261_;
	ValaCCodeIdentifier* _tmp262_;
	ValaCCodeFunction* _tmp263_;
	ValaCCodeFunction* _tmp264_;
	ValaCCodeFunctionCall* _tmp265_;
	ValaCCodeFile* _tmp266_;
	ValaCCodeFunction* _tmp267_;
	ValaCCodeFile* _tmp268_;
	ValaCCodeFunction* _tmp269_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp0_);
	dbus_iface_name = _tmp1_;
	_tmp2_ = dbus_iface_name;
	if (_tmp2_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp3_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_include (_tmp3_, "gio/gio.h", FALSE);
	_tmp4_ = sym;
	_tmp5_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_strconcat (_tmp6_, "register_object", NULL);
	_tmp8_ = _tmp7_;
	_tmp9_ = vala_ccode_function_new (_tmp8_, "guint");
	_tmp10_ = _tmp9_;
	_g_free0 (_tmp8_);
	_g_free0 (_tmp6_);
	cfunc = _tmp10_;
	_tmp11_ = cfunc;
	_tmp12_ = vala_ccode_parameter_new ("object", "gpointer");
	_tmp13_ = _tmp12_;
	vala_ccode_function_add_parameter (_tmp11_, _tmp13_);
	_vala_ccode_node_unref0 (_tmp13_);
	_tmp14_ = cfunc;
	_tmp15_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
	_tmp16_ = _tmp15_;
	vala_ccode_function_add_parameter (_tmp14_, _tmp16_);
	_vala_ccode_node_unref0 (_tmp16_);
	_tmp17_ = cfunc;
	_tmp18_ = vala_ccode_parameter_new ("path", "const gchar*");
	_tmp19_ = _tmp18_;
	vala_ccode_function_add_parameter (_tmp17_, _tmp19_);
	_vala_ccode_node_unref0 (_tmp19_);
	_tmp20_ = cfunc;
	_tmp21_ = vala_ccode_parameter_new ("error", "GError**");
	_tmp22_ = _tmp21_;
	vala_ccode_function_add_parameter (_tmp20_, _tmp22_);
	_vala_ccode_node_unref0 (_tmp22_);
	_tmp23_ = sym;
	_tmp24_ = vala_symbol_is_private_symbol ((ValaSymbol*) _tmp23_);
	if (_tmp24_) {
		ValaCCodeFunction* _tmp25_;
		ValaCCodeFunction* _tmp26_;
		ValaCCodeModifiers _tmp27_;
		ValaCCodeModifiers _tmp28_;
		_tmp25_ = cfunc;
		_tmp26_ = cfunc;
		_tmp27_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp26_);
		_tmp28_ = _tmp27_;
		vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp26_, _tmp28_ | VALA_CCODE_MODIFIERS_STATIC);
	} else {
		gboolean _tmp29_ = FALSE;
		ValaCodeContext* _tmp30_;
		ValaCodeContext* _tmp31_;
		gboolean _tmp32_;
		gboolean _tmp33_;
		_tmp30_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
		_tmp31_ = _tmp30_;
		_tmp32_ = vala_code_context_get_hide_internal (_tmp31_);
		_tmp33_ = _tmp32_;
		if (_tmp33_) {
			ValaObjectTypeSymbol* _tmp34_;
			gboolean _tmp35_;
			_tmp34_ = sym;
			_tmp35_ = vala_symbol_is_internal_symbol ((ValaSymbol*) _tmp34_);
			_tmp29_ = _tmp35_;
		} else {
			_tmp29_ = FALSE;
		}
		if (_tmp29_) {
			ValaCCodeFunction* _tmp36_;
			ValaCCodeFunction* _tmp37_;
			ValaCCodeModifiers _tmp38_;
			ValaCCodeModifiers _tmp39_;
			_tmp36_ = cfunc;
			_tmp37_ = cfunc;
			_tmp38_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp37_);
			_tmp39_ = _tmp38_;
			vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp37_, _tmp39_ | VALA_CCODE_MODIFIERS_INTERNAL);
		}
	}
	_tmp40_ = cfunc;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp40_);
	_tmp41_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp42_ = _tmp41_;
	_tmp43_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
	_tmp44_ = _tmp43_;
	vala_ccode_function_add_declaration (_tmp42_, "guint", (ValaCCodeDeclarator*) _tmp44_, 0);
	_vala_ccode_node_unref0 (_tmp44_);
	_tmp45_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp46_ = _tmp45_;
	_tmp47_ = vala_ccode_variable_declarator_new ("*data", NULL, NULL);
	_tmp48_ = _tmp47_;
	vala_ccode_function_add_declaration (_tmp46_, "gpointer", (ValaCCodeDeclarator*) _tmp48_, 0);
	_vala_ccode_node_unref0 (_tmp48_);
	_tmp49_ = vala_ccode_identifier_new ("g_new");
	_tmp50_ = _tmp49_;
	_tmp51_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp50_);
	_tmp52_ = _tmp51_;
	_vala_ccode_node_unref0 (_tmp50_);
	alloc_data = _tmp52_;
	_tmp53_ = alloc_data;
	_tmp54_ = vala_ccode_identifier_new ("gpointer");
	_tmp55_ = _tmp54_;
	vala_ccode_function_call_add_argument (_tmp53_, (ValaCCodeExpression*) _tmp55_);
	_vala_ccode_node_unref0 (_tmp55_);
	_tmp56_ = alloc_data;
	_tmp57_ = vala_ccode_constant_new ("3");
	_tmp58_ = _tmp57_;
	vala_ccode_function_call_add_argument (_tmp56_, (ValaCCodeExpression*) _tmp58_);
	_vala_ccode_node_unref0 (_tmp58_);
	_tmp59_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp60_ = _tmp59_;
	_tmp61_ = vala_ccode_identifier_new ("data");
	_tmp62_ = _tmp61_;
	_tmp63_ = alloc_data;
	vala_ccode_function_add_assignment (_tmp60_, (ValaCCodeExpression*) _tmp62_, (ValaCCodeExpression*) _tmp63_);
	_vala_ccode_node_unref0 (_tmp62_);
	_tmp64_ = sym;
	_tmp65_ = vala_get_ccode_ref_function ((ValaTypeSymbol*) _tmp64_);
	ref_function = _tmp65_;
	_tmp67_ = sym;
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp67_, VALA_TYPE_INTERFACE)) {
		const gchar* _tmp68_;
		_tmp68_ = ref_function;
		_tmp66_ = _tmp68_ == NULL;
	} else {
		_tmp66_ = FALSE;
	}
	if (_tmp66_) {
		ValaObjectTypeSymbol* _tmp69_;
		ValaSourceReference* _tmp70_;
		ValaSourceReference* _tmp71_;
		ValaObjectTypeSymbol* _tmp72_;
		gchar* _tmp73_;
		gchar* _tmp74_;
		gchar* _tmp75_;
		gchar* _tmp76_;
		_tmp69_ = sym;
		_tmp70_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp69_);
		_tmp71_ = _tmp70_;
		_tmp72_ = sym;
		_tmp73_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp72_);
		_tmp74_ = _tmp73_;
		_tmp75_ = g_strdup_printf ("missing class prerequisite for interface `%s', add GLib.Object to inte" \
"rface declaration if unsure", _tmp74_);
		_tmp76_ = _tmp75_;
		vala_report_error (_tmp71_, _tmp76_);
		_g_free0 (_tmp76_);
		_g_free0 (_tmp74_);
		_g_free0 (ref_function);
		_vala_ccode_node_unref0 (alloc_data);
		_vala_ccode_node_unref0 (cfunc);
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp77_ = ref_function;
	_tmp78_ = vala_ccode_identifier_new (_tmp77_);
	_tmp79_ = _tmp78_;
	_tmp80_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp79_);
	_tmp81_ = _tmp80_;
	_vala_ccode_node_unref0 (_tmp79_);
	ref_object = _tmp81_;
	_tmp82_ = ref_object;
	_tmp83_ = vala_ccode_identifier_new ("object");
	_tmp84_ = _tmp83_;
	vala_ccode_function_call_add_argument (_tmp82_, (ValaCCodeExpression*) _tmp84_);
	_vala_ccode_node_unref0 (_tmp84_);
	_tmp85_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp86_ = _tmp85_;
	_tmp87_ = vala_ccode_identifier_new ("data");
	_tmp88_ = _tmp87_;
	_tmp89_ = vala_ccode_constant_new ("0");
	_tmp90_ = _tmp89_;
	_tmp91_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp88_, (ValaCCodeExpression*) _tmp90_);
	_tmp92_ = _tmp91_;
	_tmp93_ = ref_object;
	vala_ccode_function_add_assignment (_tmp86_, (ValaCCodeExpression*) _tmp92_, (ValaCCodeExpression*) _tmp93_);
	_vala_ccode_node_unref0 (_tmp92_);
	_vala_ccode_node_unref0 (_tmp90_);
	_vala_ccode_node_unref0 (_tmp88_);
	_tmp94_ = vala_ccode_identifier_new ("g_object_ref");
	_tmp95_ = _tmp94_;
	_tmp96_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp95_);
	_vala_ccode_node_unref0 (ref_object);
	ref_object = _tmp96_;
	_vala_ccode_node_unref0 (_tmp95_);
	_tmp97_ = ref_object;
	_tmp98_ = vala_ccode_identifier_new ("connection");
	_tmp99_ = _tmp98_;
	vala_ccode_function_call_add_argument (_tmp97_, (ValaCCodeExpression*) _tmp99_);
	_vala_ccode_node_unref0 (_tmp99_);
	_tmp100_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp101_ = _tmp100_;
	_tmp102_ = vala_ccode_identifier_new ("data");
	_tmp103_ = _tmp102_;
	_tmp104_ = vala_ccode_constant_new ("1");
	_tmp105_ = _tmp104_;
	_tmp106_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp103_, (ValaCCodeExpression*) _tmp105_);
	_tmp107_ = _tmp106_;
	_tmp108_ = ref_object;
	vala_ccode_function_add_assignment (_tmp101_, (ValaCCodeExpression*) _tmp107_, (ValaCCodeExpression*) _tmp108_);
	_vala_ccode_node_unref0 (_tmp107_);
	_vala_ccode_node_unref0 (_tmp105_);
	_vala_ccode_node_unref0 (_tmp103_);
	_tmp109_ = vala_ccode_identifier_new ("g_strdup");
	_tmp110_ = _tmp109_;
	_tmp111_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp110_);
	_tmp112_ = _tmp111_;
	_vala_ccode_node_unref0 (_tmp110_);
	dup_path = _tmp112_;
	_tmp113_ = dup_path;
	_tmp114_ = vala_ccode_identifier_new ("path");
	_tmp115_ = _tmp114_;
	vala_ccode_function_call_add_argument (_tmp113_, (ValaCCodeExpression*) _tmp115_);
	_vala_ccode_node_unref0 (_tmp115_);
	_tmp116_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp117_ = _tmp116_;
	_tmp118_ = vala_ccode_identifier_new ("data");
	_tmp119_ = _tmp118_;
	_tmp120_ = vala_ccode_constant_new ("2");
	_tmp121_ = _tmp120_;
	_tmp122_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp119_, (ValaCCodeExpression*) _tmp121_);
	_tmp123_ = _tmp122_;
	_tmp124_ = dup_path;
	vala_ccode_function_add_assignment (_tmp117_, (ValaCCodeExpression*) _tmp123_, (ValaCCodeExpression*) _tmp124_);
	_vala_ccode_node_unref0 (_tmp123_);
	_vala_ccode_node_unref0 (_tmp121_);
	_vala_ccode_node_unref0 (_tmp119_);
	_tmp125_ = vala_ccode_identifier_new ("g_dbus_connection_register_object");
	_tmp126_ = _tmp125_;
	_tmp127_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp126_);
	_tmp128_ = _tmp127_;
	_vala_ccode_node_unref0 (_tmp126_);
	cregister = _tmp128_;
	_tmp129_ = cregister;
	_tmp130_ = vala_ccode_identifier_new ("connection");
	_tmp131_ = _tmp130_;
	vala_ccode_function_call_add_argument (_tmp129_, (ValaCCodeExpression*) _tmp131_);
	_vala_ccode_node_unref0 (_tmp131_);
	_tmp132_ = cregister;
	_tmp133_ = vala_ccode_identifier_new ("path");
	_tmp134_ = _tmp133_;
	vala_ccode_function_call_add_argument (_tmp132_, (ValaCCodeExpression*) _tmp134_);
	_vala_ccode_node_unref0 (_tmp134_);
	_tmp135_ = cregister;
	_tmp136_ = sym;
	_tmp137_ = vala_gd_bus_module_get_interface_info ((ValaGDBusModule*) self, _tmp136_);
	_tmp138_ = _tmp137_;
	_tmp139_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp138_);
	_tmp140_ = _tmp139_;
	_tmp141_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp140_, "GDBusInterfaceInfo *");
	_tmp142_ = _tmp141_;
	vala_ccode_function_call_add_argument (_tmp135_, (ValaCCodeExpression*) _tmp142_);
	_vala_ccode_node_unref0 (_tmp142_);
	_vala_ccode_node_unref0 (_tmp140_);
	_vala_ccode_node_unref0 (_tmp138_);
	_tmp143_ = cregister;
	_tmp144_ = sym;
	_tmp145_ = vala_gd_bus_server_module_get_interface_vtable (self, _tmp144_);
	_tmp146_ = _tmp145_;
	_tmp147_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp146_);
	_tmp148_ = _tmp147_;
	vala_ccode_function_call_add_argument (_tmp143_, (ValaCCodeExpression*) _tmp148_);
	_vala_ccode_node_unref0 (_tmp148_);
	_vala_ccode_node_unref0 (_tmp146_);
	_tmp149_ = cregister;
	_tmp150_ = vala_ccode_identifier_new ("data");
	_tmp151_ = _tmp150_;
	vala_ccode_function_call_add_argument (_tmp149_, (ValaCCodeExpression*) _tmp151_);
	_vala_ccode_node_unref0 (_tmp151_);
	_tmp152_ = cregister;
	_tmp153_ = sym;
	_tmp154_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp153_);
	_tmp155_ = _tmp154_;
	_tmp156_ = g_strconcat ("_", _tmp155_, NULL);
	_tmp157_ = _tmp156_;
	_tmp158_ = g_strconcat (_tmp157_, "unregister_object", NULL);
	_tmp159_ = _tmp158_;
	_tmp160_ = vala_ccode_identifier_new (_tmp159_);
	_tmp161_ = _tmp160_;
	vala_ccode_function_call_add_argument (_tmp152_, (ValaCCodeExpression*) _tmp161_);
	_vala_ccode_node_unref0 (_tmp161_);
	_g_free0 (_tmp159_);
	_g_free0 (_tmp157_);
	_g_free0 (_tmp155_);
	_tmp162_ = cregister;
	_tmp163_ = vala_ccode_identifier_new ("error");
	_tmp164_ = _tmp163_;
	vala_ccode_function_call_add_argument (_tmp162_, (ValaCCodeExpression*) _tmp164_);
	_vala_ccode_node_unref0 (_tmp164_);
	_tmp165_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp166_ = _tmp165_;
	_tmp167_ = vala_ccode_identifier_new ("result");
	_tmp168_ = _tmp167_;
	_tmp169_ = cregister;
	vala_ccode_function_add_assignment (_tmp166_, (ValaCCodeExpression*) _tmp168_, (ValaCCodeExpression*) _tmp169_);
	_vala_ccode_node_unref0 (_tmp168_);
	_tmp170_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp171_ = _tmp170_;
	_tmp172_ = vala_ccode_identifier_new ("result");
	_tmp173_ = _tmp172_;
	_tmp174_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp173_);
	_tmp175_ = _tmp174_;
	vala_ccode_function_open_if (_tmp171_, (ValaCCodeExpression*) _tmp175_);
	_vala_ccode_node_unref0 (_tmp175_);
	_vala_ccode_node_unref0 (_tmp173_);
	_tmp176_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp177_ = _tmp176_;
	_tmp178_ = vala_ccode_constant_new ("0");
	_tmp179_ = _tmp178_;
	vala_ccode_function_add_return (_tmp177_, (ValaCCodeExpression*) _tmp179_);
	_vala_ccode_node_unref0 (_tmp179_);
	_tmp180_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp181_ = _tmp180_;
	vala_ccode_function_close (_tmp181_);
	_tmp182_ = sym;
	vala_gd_bus_server_module_handle_signals (self, _tmp182_, TRUE);
	_tmp183_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp184_ = _tmp183_;
	_tmp185_ = vala_ccode_identifier_new ("result");
	_tmp186_ = _tmp185_;
	vala_ccode_function_add_return (_tmp184_, (ValaCCodeExpression*) _tmp186_);
	_vala_ccode_node_unref0 (_tmp186_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp187_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp188_ = cfunc;
	vala_ccode_file_add_function (_tmp187_, _tmp188_);
	_tmp189_ = sym;
	_tmp190_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp189_);
	_tmp191_ = _tmp190_;
	_tmp192_ = g_strconcat ("_", _tmp191_, NULL);
	_tmp193_ = _tmp192_;
	_tmp194_ = g_strconcat (_tmp193_, "unregister_object", NULL);
	_tmp195_ = _tmp194_;
	_tmp196_ = vala_ccode_function_new (_tmp195_, "void");
	_vala_ccode_node_unref0 (cfunc);
	cfunc = _tmp196_;
	_g_free0 (_tmp195_);
	_g_free0 (_tmp193_);
	_g_free0 (_tmp191_);
	_tmp197_ = cfunc;
	_tmp198_ = vala_ccode_parameter_new ("user_data", "gpointer");
	_tmp199_ = _tmp198_;
	vala_ccode_function_add_parameter (_tmp197_, _tmp199_);
	_vala_ccode_node_unref0 (_tmp199_);
	_tmp200_ = cfunc;
	_tmp201_ = cfunc;
	_tmp202_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp201_);
	_tmp203_ = _tmp202_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp201_, _tmp203_ | VALA_CCODE_MODIFIERS_STATIC);
	_tmp204_ = cfunc;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp204_);
	_tmp205_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp206_ = _tmp205_;
	_tmp207_ = vala_ccode_identifier_new ("user_data");
	_tmp208_ = _tmp207_;
	_tmp209_ = vala_ccode_variable_declarator_new ("data", (ValaCCodeExpression*) _tmp208_, NULL);
	_tmp210_ = _tmp209_;
	vala_ccode_function_add_declaration (_tmp206_, "gpointer*", (ValaCCodeDeclarator*) _tmp210_, 0);
	_vala_ccode_node_unref0 (_tmp210_);
	_vala_ccode_node_unref0 (_tmp208_);
	_tmp211_ = sym;
	vala_gd_bus_server_module_handle_signals (self, _tmp211_, FALSE);
	_tmp212_ = sym;
	_tmp213_ = vala_get_ccode_unref_function (_tmp212_);
	_tmp214_ = _tmp213_;
	_tmp215_ = vala_ccode_identifier_new (_tmp214_);
	_tmp216_ = _tmp215_;
	_tmp217_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp216_);
	_tmp218_ = _tmp217_;
	_vala_ccode_node_unref0 (_tmp216_);
	_g_free0 (_tmp214_);
	unref_object = _tmp218_;
	_tmp219_ = unref_object;
	_tmp220_ = vala_ccode_identifier_new ("data");
	_tmp221_ = _tmp220_;
	_tmp222_ = vala_ccode_constant_new ("0");
	_tmp223_ = _tmp222_;
	_tmp224_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp221_, (ValaCCodeExpression*) _tmp223_);
	_tmp225_ = _tmp224_;
	vala_ccode_function_call_add_argument (_tmp219_, (ValaCCodeExpression*) _tmp225_);
	_vala_ccode_node_unref0 (_tmp225_);
	_vala_ccode_node_unref0 (_tmp223_);
	_vala_ccode_node_unref0 (_tmp221_);
	_tmp226_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp227_ = _tmp226_;
	_tmp228_ = unref_object;
	vala_ccode_function_add_expression (_tmp227_, (ValaCCodeExpression*) _tmp228_);
	_tmp229_ = vala_ccode_identifier_new ("g_object_unref");
	_tmp230_ = _tmp229_;
	_tmp231_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp230_);
	_vala_ccode_node_unref0 (unref_object);
	unref_object = _tmp231_;
	_vala_ccode_node_unref0 (_tmp230_);
	_tmp232_ = unref_object;
	_tmp233_ = vala_ccode_identifier_new ("data");
	_tmp234_ = _tmp233_;
	_tmp235_ = vala_ccode_constant_new ("1");
	_tmp236_ = _tmp235_;
	_tmp237_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp234_, (ValaCCodeExpression*) _tmp236_);
	_tmp238_ = _tmp237_;
	vala_ccode_function_call_add_argument (_tmp232_, (ValaCCodeExpression*) _tmp238_);
	_vala_ccode_node_unref0 (_tmp238_);
	_vala_ccode_node_unref0 (_tmp236_);
	_vala_ccode_node_unref0 (_tmp234_);
	_tmp239_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp240_ = _tmp239_;
	_tmp241_ = unref_object;
	vala_ccode_function_add_expression (_tmp240_, (ValaCCodeExpression*) _tmp241_);
	_tmp242_ = vala_ccode_identifier_new ("g_free");
	_tmp243_ = _tmp242_;
	_tmp244_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp243_);
	_tmp245_ = _tmp244_;
	_vala_ccode_node_unref0 (_tmp243_);
	free_path = _tmp245_;
	_tmp246_ = free_path;
	_tmp247_ = vala_ccode_identifier_new ("data");
	_tmp248_ = _tmp247_;
	_tmp249_ = vala_ccode_constant_new ("2");
	_tmp250_ = _tmp249_;
	_tmp251_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp248_, (ValaCCodeExpression*) _tmp250_);
	_tmp252_ = _tmp251_;
	vala_ccode_function_call_add_argument (_tmp246_, (ValaCCodeExpression*) _tmp252_);
	_vala_ccode_node_unref0 (_tmp252_);
	_vala_ccode_node_unref0 (_tmp250_);
	_vala_ccode_node_unref0 (_tmp248_);
	_tmp253_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp254_ = _tmp253_;
	_tmp255_ = free_path;
	vala_ccode_function_add_expression (_tmp254_, (ValaCCodeExpression*) _tmp255_);
	_tmp256_ = vala_ccode_identifier_new ("g_free");
	_tmp257_ = _tmp256_;
	_tmp258_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp257_);
	_tmp259_ = _tmp258_;
	_vala_ccode_node_unref0 (_tmp257_);
	free_data = _tmp259_;
	_tmp260_ = free_data;
	_tmp261_ = vala_ccode_identifier_new ("data");
	_tmp262_ = _tmp261_;
	vala_ccode_function_call_add_argument (_tmp260_, (ValaCCodeExpression*) _tmp262_);
	_vala_ccode_node_unref0 (_tmp262_);
	_tmp263_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp264_ = _tmp263_;
	_tmp265_ = free_data;
	vala_ccode_function_add_expression (_tmp264_, (ValaCCodeExpression*) _tmp265_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp266_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp267_ = cfunc;
	vala_ccode_file_add_function_declaration (_tmp266_, _tmp267_);
	_tmp268_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp269_ = cfunc;
	vala_ccode_file_add_function (_tmp268_, _tmp269_);
	_vala_ccode_node_unref0 (free_data);
	_vala_ccode_node_unref0 (free_path);
	_vala_ccode_node_unref0 (unref_object);
	_vala_ccode_node_unref0 (cregister);
	_vala_ccode_node_unref0 (dup_path);
	_vala_ccode_node_unref0 (ref_object);
	_g_free0 (ref_function);
	_vala_ccode_node_unref0 (alloc_data);
	_vala_ccode_node_unref0 (cfunc);
	_g_free0 (dbus_iface_name);
}


static void vala_gd_bus_server_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym) {
	ValaGDBusServerModule * self;
	gchar* dbus_iface_name = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	ValaCCodeBlock* _tmp3_;
	ValaObjectTypeSymbol* _tmp4_;
	ValaCCodeFunctionCall* quark = NULL;
	ValaCCodeIdentifier* _tmp5_;
	ValaCCodeIdentifier* _tmp6_;
	ValaCCodeFunctionCall* _tmp7_;
	ValaCCodeFunctionCall* _tmp8_;
	ValaCCodeFunctionCall* _tmp9_;
	ValaCCodeConstant* _tmp10_;
	ValaCCodeConstant* _tmp11_;
	ValaCCodeFunctionCall* set_qdata = NULL;
	ValaCCodeIdentifier* _tmp12_;
	ValaCCodeIdentifier* _tmp13_;
	ValaCCodeFunctionCall* _tmp14_;
	ValaCCodeFunctionCall* _tmp15_;
	ValaCCodeFunctionCall* _tmp16_;
	ValaObjectTypeSymbol* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	ValaCCodeIdentifier* _tmp22_;
	ValaCCodeIdentifier* _tmp23_;
	ValaCCodeFunctionCall* _tmp24_;
	ValaCCodeFunctionCall* _tmp25_;
	ValaCCodeFunctionCall* _tmp26_;
	ValaObjectTypeSymbol* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	ValaCCodeIdentifier* _tmp32_;
	ValaCCodeIdentifier* _tmp33_;
	ValaCCodeCastExpression* _tmp34_;
	ValaCCodeCastExpression* _tmp35_;
	ValaCCodeBlock* _tmp36_;
	ValaCCodeFunctionCall* _tmp37_;
	ValaCCodeExpressionStatement* _tmp38_;
	ValaCCodeExpressionStatement* _tmp39_;
	self = (ValaGDBusServerModule*) base;
	g_return_if_fail (block != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp0_);
	dbus_iface_name = _tmp1_;
	_tmp2_ = dbus_iface_name;
	if (_tmp2_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp3_ = block;
	_tmp4_ = sym;
	VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_server_module_parent_class)->register_dbus_info ((ValaCCodeBaseModule*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), _tmp3_, _tmp4_);
	_tmp5_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp6_ = _tmp5_;
	_tmp7_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp6_);
	_tmp8_ = _tmp7_;
	_vala_ccode_node_unref0 (_tmp6_);
	quark = _tmp8_;
	_tmp9_ = quark;
	_tmp10_ = vala_ccode_constant_new ("\"vala-dbus-register-object\"");
	_tmp11_ = _tmp10_;
	vala_ccode_function_call_add_argument (_tmp9_, (ValaCCodeExpression*) _tmp11_);
	_vala_ccode_node_unref0 (_tmp11_);
	_tmp12_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp13_ = _tmp12_;
	_tmp14_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp13_);
	_tmp15_ = _tmp14_;
	_vala_ccode_node_unref0 (_tmp13_);
	set_qdata = _tmp15_;
	_tmp16_ = set_qdata;
	_tmp17_ = sym;
	_tmp18_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp17_, NULL);
	_tmp19_ = _tmp18_;
	_tmp20_ = g_strdup_printf ("%s_type_id", _tmp19_);
	_tmp21_ = _tmp20_;
	_tmp22_ = vala_ccode_identifier_new (_tmp21_);
	_tmp23_ = _tmp22_;
	vala_ccode_function_call_add_argument (_tmp16_, (ValaCCodeExpression*) _tmp23_);
	_vala_ccode_node_unref0 (_tmp23_);
	_g_free0 (_tmp21_);
	_g_free0 (_tmp19_);
	_tmp24_ = set_qdata;
	_tmp25_ = quark;
	vala_ccode_function_call_add_argument (_tmp24_, (ValaCCodeExpression*) _tmp25_);
	_tmp26_ = set_qdata;
	_tmp27_ = sym;
	_tmp28_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp27_);
	_tmp29_ = _tmp28_;
	_tmp30_ = g_strconcat (_tmp29_, "register_object", NULL);
	_tmp31_ = _tmp30_;
	_tmp32_ = vala_ccode_identifier_new (_tmp31_);
	_tmp33_ = _tmp32_;
	_tmp34_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp33_, "void*");
	_tmp35_ = _tmp34_;
	vala_ccode_function_call_add_argument (_tmp26_, (ValaCCodeExpression*) _tmp35_);
	_vala_ccode_node_unref0 (_tmp35_);
	_vala_ccode_node_unref0 (_tmp33_);
	_g_free0 (_tmp31_);
	_g_free0 (_tmp29_);
	_tmp36_ = block;
	_tmp37_ = set_qdata;
	_tmp38_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp37_);
	_tmp39_ = _tmp38_;
	vala_ccode_block_add_statement (_tmp36_, (ValaCCodeNode*) _tmp39_);
	_vala_ccode_node_unref0 (_tmp39_);
	_vala_ccode_node_unref0 (set_qdata);
	_vala_ccode_node_unref0 (quark);
	_g_free0 (dbus_iface_name);
}


ValaGDBusServerModule* vala_gd_bus_server_module_construct (GType object_type) {
	ValaGDBusServerModule* self = NULL;
	self = (ValaGDBusServerModule*) vala_gd_bus_client_module_construct (object_type);
	return self;
}


ValaGDBusServerModule* vala_gd_bus_server_module_new (void) {
	return vala_gd_bus_server_module_construct (VALA_TYPE_GD_BUS_SERVER_MODULE);
}


static void vala_gd_bus_server_module_class_init (ValaGDBusServerModuleClass * klass) {
	vala_gd_bus_server_module_parent_class = g_type_class_peek_parent (klass);
	((ValaCodeVisitorClass *) klass)->visit_method_call = (void (*) (ValaCodeVisitor *, ValaMethodCall*)) vala_gd_bus_server_module_real_visit_method_call;
	((ValaCCodeBaseModuleClass *) klass)->generate_class_declaration = (void (*) (ValaCCodeBaseModule *, ValaClass*, ValaCCodeFile*)) vala_gd_bus_server_module_real_generate_class_declaration;
	((ValaCCodeBaseModuleClass *) klass)->generate_interface_declaration = (void (*) (ValaCCodeBaseModule *, ValaInterface*, ValaCCodeFile*)) vala_gd_bus_server_module_real_generate_interface_declaration;
	((ValaCodeVisitorClass *) klass)->visit_class = (void (*) (ValaCodeVisitor *, ValaClass*)) vala_gd_bus_server_module_real_visit_class;
	((ValaCodeVisitorClass *) klass)->visit_interface = (void (*) (ValaCodeVisitor *, ValaInterface*)) vala_gd_bus_server_module_real_visit_interface;
	((ValaCCodeBaseModuleClass *) klass)->register_dbus_info = (void (*) (ValaCCodeBaseModule *, ValaCCodeBlock*, ValaObjectTypeSymbol*)) vala_gd_bus_server_module_real_register_dbus_info;
}


static void vala_gd_bus_server_module_instance_init (ValaGDBusServerModule * self) {
}


GType vala_gd_bus_server_module_get_type (void) {
	static volatile gsize vala_gd_bus_server_module_type_id__volatile = 0;
	if (g_once_init_enter (&vala_gd_bus_server_module_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ValaGDBusServerModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_gd_bus_server_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaGDBusServerModule), 0, (GInstanceInitFunc) vala_gd_bus_server_module_instance_init, NULL };
		GType vala_gd_bus_server_module_type_id;
		vala_gd_bus_server_module_type_id = g_type_register_static (VALA_TYPE_GD_BUS_CLIENT_MODULE, "ValaGDBusServerModule", &g_define_type_info, 0);
		g_once_init_leave (&vala_gd_bus_server_module_type_id__volatile, vala_gd_bus_server_module_type_id);
	}
	return vala_gd_bus_server_module_type_id__volatile;
}



