Logo Search packages:      
Sourcecode: vala-0.12 version File versions  Download package

valadbusservermodule.c

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

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

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

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

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


#define VALA_TYPE_CCODE_BASE_MODULE (vala_ccode_base_module_get_type ())
#define VALA_CCODE_BASE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModule))
#define VALA_CCODE_BASE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModuleClass))
#define VALA_IS_CCODE_BASE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_BASE_MODULE))
#define VALA_IS_CCODE_BASE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_BASE_MODULE))
#define VALA_CCODE_BASE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModuleClass))

typedef struct _ValaCCodeBaseModule ValaCCodeBaseModule;
typedef struct _ValaCCodeBaseModuleClass ValaCCodeBaseModuleClass;
typedef struct _ValaCCodeBaseModulePrivate ValaCCodeBaseModulePrivate;

#define VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT (vala_ccode_base_module_emit_context_get_type ())
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContext))
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContextClass))
#define VALA_CCODE_BASE_MODULE_IS_EMIT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT))
#define VALA_CCODE_BASE_MODULE_IS_EMIT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT))
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContextClass))

typedef struct _ValaCCodeBaseModuleEmitContext ValaCCodeBaseModuleEmitContext;
typedef struct _ValaCCodeBaseModuleEmitContextClass ValaCCodeBaseModuleEmitContextClass;

#define VALA_TYPE_CCODE_STRUCT_MODULE (vala_ccode_struct_module_get_type ())
#define VALA_CCODE_STRUCT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModule))
#define VALA_CCODE_STRUCT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModuleClass))
#define VALA_IS_CCODE_STRUCT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_STRUCT_MODULE))
#define VALA_IS_CCODE_STRUCT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_STRUCT_MODULE))
#define VALA_CCODE_STRUCT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModuleClass))

typedef struct _ValaCCodeStructModule ValaCCodeStructModule;
typedef struct _ValaCCodeStructModuleClass ValaCCodeStructModuleClass;
typedef struct _ValaCCodeStructModulePrivate ValaCCodeStructModulePrivate;

#define VALA_TYPE_CCODE_METHOD_MODULE (vala_ccode_method_module_get_type ())
#define VALA_CCODE_METHOD_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModule))
#define VALA_CCODE_METHOD_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModuleClass))
#define VALA_IS_CCODE_METHOD_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_METHOD_MODULE))
#define VALA_IS_CCODE_METHOD_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_METHOD_MODULE))
#define VALA_CCODE_METHOD_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModuleClass))

typedef struct _ValaCCodeMethodModule ValaCCodeMethodModule;
typedef struct _ValaCCodeMethodModuleClass ValaCCodeMethodModuleClass;
typedef struct _ValaCCodeMethodModulePrivate ValaCCodeMethodModulePrivate;

#define VALA_TYPE_CCODE_CONTROL_FLOW_MODULE (vala_ccode_control_flow_module_get_type ())
#define VALA_CCODE_CONTROL_FLOW_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModule))
#define VALA_CCODE_CONTROL_FLOW_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModuleClass))
#define VALA_IS_CCODE_CONTROL_FLOW_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE))
#define VALA_IS_CCODE_CONTROL_FLOW_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE))
#define VALA_CCODE_CONTROL_FLOW_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModuleClass))

typedef struct _ValaCCodeControlFlowModule ValaCCodeControlFlowModule;
typedef struct _ValaCCodeControlFlowModuleClass ValaCCodeControlFlowModuleClass;
typedef struct _ValaCCodeControlFlowModulePrivate ValaCCodeControlFlowModulePrivate;

#define VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE (vala_ccode_member_access_module_get_type ())
#define VALA_CCODE_MEMBER_ACCESS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModule))
#define VALA_CCODE_MEMBER_ACCESS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModuleClass))
#define VALA_IS_CCODE_MEMBER_ACCESS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE))
#define VALA_IS_CCODE_MEMBER_ACCESS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE))
#define VALA_CCODE_MEMBER_ACCESS_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModuleClass))

typedef struct _ValaCCodeMemberAccessModule ValaCCodeMemberAccessModule;
typedef struct _ValaCCodeMemberAccessModuleClass ValaCCodeMemberAccessModuleClass;
typedef struct _ValaCCodeMemberAccessModulePrivate ValaCCodeMemberAccessModulePrivate;

#define VALA_TYPE_CCODE_ASSIGNMENT_MODULE (vala_ccode_assignment_module_get_type ())
#define VALA_CCODE_ASSIGNMENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModule))
#define VALA_CCODE_ASSIGNMENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModuleClass))
#define VALA_IS_CCODE_ASSIGNMENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE))
#define VALA_IS_CCODE_ASSIGNMENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ASSIGNMENT_MODULE))
#define VALA_CCODE_ASSIGNMENT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModuleClass))

typedef struct _ValaCCodeAssignmentModule ValaCCodeAssignmentModule;
typedef struct _ValaCCodeAssignmentModuleClass ValaCCodeAssignmentModuleClass;
typedef struct _ValaCCodeAssignmentModulePrivate ValaCCodeAssignmentModulePrivate;

#define VALA_TYPE_CCODE_METHOD_CALL_MODULE (vala_ccode_method_call_module_get_type ())
#define VALA_CCODE_METHOD_CALL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModule))
#define VALA_CCODE_METHOD_CALL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModuleClass))
#define VALA_IS_CCODE_METHOD_CALL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE))
#define VALA_IS_CCODE_METHOD_CALL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_METHOD_CALL_MODULE))
#define VALA_CCODE_METHOD_CALL_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModuleClass))

typedef struct _ValaCCodeMethodCallModule ValaCCodeMethodCallModule;
typedef struct _ValaCCodeMethodCallModuleClass ValaCCodeMethodCallModuleClass;
typedef struct _ValaCCodeMethodCallModulePrivate ValaCCodeMethodCallModulePrivate;

#define VALA_TYPE_CCODE_ARRAY_MODULE (vala_ccode_array_module_get_type ())
#define VALA_CCODE_ARRAY_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModule))
#define VALA_CCODE_ARRAY_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModuleClass))
#define VALA_IS_CCODE_ARRAY_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ARRAY_MODULE))
#define VALA_IS_CCODE_ARRAY_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ARRAY_MODULE))
#define VALA_CCODE_ARRAY_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModuleClass))

typedef struct _ValaCCodeArrayModule ValaCCodeArrayModule;
typedef struct _ValaCCodeArrayModuleClass ValaCCodeArrayModuleClass;
typedef struct _ValaCCodeArrayModulePrivate ValaCCodeArrayModulePrivate;

#define VALA_TYPE_CCODE_DELEGATE_MODULE (vala_ccode_delegate_module_get_type ())
#define VALA_CCODE_DELEGATE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModule))
#define VALA_CCODE_DELEGATE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModuleClass))
#define VALA_IS_CCODE_DELEGATE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE))
#define VALA_IS_CCODE_DELEGATE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DELEGATE_MODULE))
#define VALA_CCODE_DELEGATE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModuleClass))

typedef struct _ValaCCodeDelegateModule ValaCCodeDelegateModule;
typedef struct _ValaCCodeDelegateModuleClass ValaCCodeDelegateModuleClass;
typedef struct _ValaCCodeDelegateModulePrivate ValaCCodeDelegateModulePrivate;

#define VALA_TYPE_GERROR_MODULE (vala_gerror_module_get_type ())
#define VALA_GERROR_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GERROR_MODULE, ValaGErrorModule))
#define VALA_GERROR_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GERROR_MODULE, ValaGErrorModuleClass))
#define VALA_IS_GERROR_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GERROR_MODULE))
#define VALA_IS_GERROR_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GERROR_MODULE))
#define VALA_GERROR_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GERROR_MODULE, ValaGErrorModuleClass))

typedef struct _ValaGErrorModule ValaGErrorModule;
typedef struct _ValaGErrorModuleClass ValaGErrorModuleClass;
typedef struct _ValaGErrorModulePrivate ValaGErrorModulePrivate;

#define VALA_TYPE_GTYPE_MODULE (vala_gtype_module_get_type ())
#define VALA_GTYPE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GTYPE_MODULE, ValaGTypeModule))
#define VALA_GTYPE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GTYPE_MODULE, ValaGTypeModuleClass))
#define VALA_IS_GTYPE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GTYPE_MODULE))
#define VALA_IS_GTYPE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GTYPE_MODULE))
#define VALA_GTYPE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GTYPE_MODULE, ValaGTypeModuleClass))

typedef struct _ValaGTypeModule ValaGTypeModule;
typedef struct _ValaGTypeModuleClass ValaGTypeModuleClass;
typedef struct _ValaGTypeModulePrivate ValaGTypeModulePrivate;

#define VALA_TYPE_GOBJECT_MODULE (vala_gobject_module_get_type ())
#define VALA_GOBJECT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModule))
#define VALA_GOBJECT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModuleClass))
#define VALA_IS_GOBJECT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GOBJECT_MODULE))
#define VALA_IS_GOBJECT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GOBJECT_MODULE))
#define VALA_GOBJECT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModuleClass))

typedef struct _ValaGObjectModule ValaGObjectModule;
typedef struct _ValaGObjectModuleClass ValaGObjectModuleClass;
typedef struct _ValaGObjectModulePrivate ValaGObjectModulePrivate;

#define VALA_TYPE_GSIGNAL_MODULE (vala_gsignal_module_get_type ())
#define VALA_GSIGNAL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModule))
#define VALA_GSIGNAL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModuleClass))
#define VALA_IS_GSIGNAL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GSIGNAL_MODULE))
#define VALA_IS_GSIGNAL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GSIGNAL_MODULE))
#define VALA_GSIGNAL_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModuleClass))

typedef struct _ValaGSignalModule ValaGSignalModule;
typedef struct _ValaGSignalModuleClass ValaGSignalModuleClass;
typedef struct _ValaGSignalModulePrivate ValaGSignalModulePrivate;

#define VALA_TYPE_GASYNC_MODULE (vala_gasync_module_get_type ())
#define VALA_GASYNC_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModule))
#define VALA_GASYNC_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModuleClass))
#define VALA_IS_GASYNC_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GASYNC_MODULE))
#define VALA_IS_GASYNC_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GASYNC_MODULE))
#define VALA_GASYNC_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModuleClass))

typedef struct _ValaGAsyncModule ValaGAsyncModule;
typedef struct _ValaGAsyncModuleClass ValaGAsyncModuleClass;
typedef struct _ValaGAsyncModulePrivate ValaGAsyncModulePrivate;

#define VALA_TYPE_DBUS_MODULE (vala_dbus_module_get_type ())
#define VALA_DBUS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DBUS_MODULE, ValaDBusModule))
#define VALA_DBUS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DBUS_MODULE, ValaDBusModuleClass))
#define VALA_IS_DBUS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DBUS_MODULE))
#define VALA_IS_DBUS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DBUS_MODULE))
#define VALA_DBUS_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DBUS_MODULE, ValaDBusModuleClass))

typedef struct _ValaDBusModule ValaDBusModule;
typedef struct _ValaDBusModuleClass ValaDBusModuleClass;
typedef struct _ValaDBusModulePrivate ValaDBusModulePrivate;

#define VALA_TYPE_DBUS_CLIENT_MODULE (vala_dbus_client_module_get_type ())
#define VALA_DBUS_CLIENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DBUS_CLIENT_MODULE, ValaDBusClientModule))
#define VALA_DBUS_CLIENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DBUS_CLIENT_MODULE, ValaDBusClientModuleClass))
#define VALA_IS_DBUS_CLIENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DBUS_CLIENT_MODULE))
#define VALA_IS_DBUS_CLIENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DBUS_CLIENT_MODULE))
#define VALA_DBUS_CLIENT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DBUS_CLIENT_MODULE, ValaDBusClientModuleClass))

typedef struct _ValaDBusClientModule ValaDBusClientModule;
typedef struct _ValaDBusClientModuleClass ValaDBusClientModuleClass;
typedef struct _ValaDBusClientModulePrivate ValaDBusClientModulePrivate;

#define VALA_TYPE_DBUS_SERVER_MODULE (vala_dbus_server_module_get_type ())
#define VALA_DBUS_SERVER_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DBUS_SERVER_MODULE, ValaDBusServerModule))
#define VALA_DBUS_SERVER_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DBUS_SERVER_MODULE, ValaDBusServerModuleClass))
#define VALA_IS_DBUS_SERVER_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DBUS_SERVER_MODULE))
#define VALA_IS_DBUS_SERVER_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DBUS_SERVER_MODULE))
#define VALA_DBUS_SERVER_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DBUS_SERVER_MODULE, ValaDBusServerModuleClass))

typedef struct _ValaDBusServerModule ValaDBusServerModule;
typedef struct _ValaDBusServerModuleClass ValaDBusServerModuleClass;
typedef struct _ValaDBusServerModulePrivate ValaDBusServerModulePrivate;
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
#define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
#define _vala_map_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_unref (var), NULL)))
#define _vala_iterator_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterator_unref (var), NULL)))

struct _ValaCCodeBaseModule {
      ValaCodeGenerator parent_instance;
      ValaCCodeBaseModulePrivate * priv;
      ValaSymbol* root_symbol;
      ValaCCodeBaseModuleEmitContext* emit_context;
      ValaCCodeFile* header_file;
      ValaCCodeFile* internal_header_file;
      ValaCCodeFile* cfile;
      ValaCCodeBaseModuleEmitContext* class_init_context;
      ValaCCodeBaseModuleEmitContext* base_init_context;
      ValaCCodeBaseModuleEmitContext* class_finalize_context;
      ValaCCodeBaseModuleEmitContext* base_finalize_context;
      ValaCCodeBaseModuleEmitContext* instance_init_context;
      ValaCCodeBaseModuleEmitContext* instance_finalize_context;
      ValaCCodeStruct* param_spec_struct;
      ValaCCodeStruct* closure_struct;
      ValaCCodeEnum* prop_enum;
      ValaSet* user_marshal_set;
      ValaSet* predefined_marshal_set;
      gint next_regex_id;
      gboolean in_constructor;
      gboolean in_static_or_class_context;
      gint next_coroutine_state;
      ValaDataType* void_type;
      ValaDataType* bool_type;
      ValaDataType* char_type;
      ValaDataType* uchar_type;
      ValaDataType* unichar_type;
      ValaDataType* short_type;
      ValaDataType* ushort_type;
      ValaDataType* int_type;
      ValaDataType* uint_type;
      ValaDataType* long_type;
      ValaDataType* ulong_type;
      ValaDataType* int8_type;
      ValaDataType* uint8_type;
      ValaDataType* int16_type;
      ValaDataType* uint16_type;
      ValaDataType* int32_type;
      ValaDataType* uint32_type;
      ValaDataType* int64_type;
      ValaDataType* uint64_type;
      ValaDataType* string_type;
      ValaDataType* regex_type;
      ValaDataType* float_type;
      ValaDataType* double_type;
      ValaTypeSymbol* gtype_type;
      ValaTypeSymbol* gobject_type;
      ValaErrorType* gerror_type;
      ValaClass* glist_type;
      ValaClass* gslist_type;
      ValaClass* gnode_type;
      ValaClass* gvaluearray_type;
      ValaTypeSymbol* gstringbuilder_type;
      ValaTypeSymbol* garray_type;
      ValaTypeSymbol* gbytearray_type;
      ValaTypeSymbol* gptrarray_type;
      ValaTypeSymbol* gthreadpool_type;
      ValaDataType* gdestroynotify_type;
      ValaDataType* gquark_type;
      ValaStruct* gvalue_type;
      ValaClass* gvariant_type;
      ValaStruct* mutex_type;
      ValaTypeSymbol* type_module_type;
      ValaTypeSymbol* dbus_proxy_type;
      ValaTypeSymbol* dbus_object_type;
      gboolean in_plugin;
      gchar* module_init_param_name;
      gboolean gvaluecollector_h_needed;
      gboolean requires_array_free;
      gboolean requires_array_move;
      gboolean requires_array_length;
      ValaSet* wrappers;
};

struct _ValaCCodeBaseModuleClass {
      ValaCodeGeneratorClass parent_class;
      void (*append_vala_array_free) (ValaCCodeBaseModule* self);
      void (*append_vala_array_move) (ValaCCodeBaseModule* self);
      void (*append_vala_array_length) (ValaCCodeBaseModule* self);
      gboolean (*generate_enum_declaration) (ValaCCodeBaseModule* self, ValaEnum* en, ValaCCodeFile* decl_space);
      void (*generate_class_struct_declaration) (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space);
      void (*generate_struct_declaration) (ValaCCodeBaseModule* self, ValaStruct* st, ValaCCodeFile* decl_space);
      void (*generate_delegate_declaration) (ValaCCodeBaseModule* self, ValaDelegate* d, ValaCCodeFile* decl_space);
      void (*generate_cparameters) (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaCCodeFunction* func, ValaCCodeFunctionDeclarator* vdeclarator, ValaMap* carg_map, ValaCCodeFunctionCall* vcall, gint direction);
      ValaCCodeExpression* (*get_dup_func_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaSourceReference* source_reference, gboolean is_chainup);
      gchar* (*append_struct_array_free) (ValaCCodeBaseModule* self, ValaStruct* st);
      ValaCCodeExpression* (*destroy_variable) (ValaCCodeBaseModule* self, ValaVariable* variable, ValaTargetValue* target_lvalue);
      ValaCCodeExpression* (*destroy_value) (ValaCCodeBaseModule* self, ValaTargetValue* value, gboolean is_macro_definition);
      void (*append_local_free) (ValaCCodeBaseModule* self, ValaSymbol* sym, gboolean stop_at_loop, ValaCodeNode* stop_at);
      ValaTargetValue* (*get_local_cvalue) (ValaCCodeBaseModule* self, ValaLocalVariable* local);
      ValaTargetValue* (*get_parameter_cvalue) (ValaCCodeBaseModule* self, ValaParameter* param);
      ValaTargetValue* (*get_field_cvalue) (ValaCCodeBaseModule* self, ValaField* field, ValaTargetValue* instance);
      ValaTargetValue* (*load_this_parameter) (ValaCCodeBaseModule* self, ValaTypeSymbol* sym);
      gchar* (*get_delegate_target_cname) (ValaCCodeBaseModule* self, const gchar* delegate_cname);
      ValaCCodeExpression* (*get_delegate_target_cexpression) (ValaCCodeBaseModule* self, ValaExpression* delegate_expr, ValaCCodeExpression** delegate_target_destroy_notify);
      ValaCCodeExpression* (*get_delegate_target_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value);
      ValaCCodeExpression* (*get_delegate_target_destroy_notify_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value);
      gchar* (*get_delegate_target_destroy_notify_cname) (ValaCCodeBaseModule* self, const gchar* delegate_cname);
      ValaCCodeExpression* (*get_ref_cexpression) (ValaCCodeBaseModule* self, ValaDataType* expression_type, ValaCCodeExpression* cexpr, ValaExpression* expr, ValaCodeNode* node);
      void (*generate_class_declaration) (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space);
      void (*generate_interface_declaration) (ValaCCodeBaseModule* self, ValaInterface* iface, ValaCCodeFile* decl_space);
      void (*generate_method_declaration) (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space);
      void (*generate_error_domain_declaration) (ValaCCodeBaseModule* self, ValaErrorDomain* edomain, ValaCCodeFile* decl_space);
      ValaCCodeExpression* (*deserialize_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* variant_expr, ValaCCodeExpression* expr, ValaCCodeExpression* error_expr, gboolean* may_fail);
      ValaCCodeExpression* (*serialize_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* expr);
      ValaCCodeExpression* (*get_implicit_cast_expression) (ValaCCodeBaseModule* self, ValaCCodeExpression* source_cexpr, ValaDataType* expression_type, ValaDataType* target_type, ValaExpression* expr);
      gboolean (*is_gobject_property) (ValaCCodeBaseModule* self, ValaProperty* prop);
      gchar* (*get_custom_creturn_type) (ValaCCodeBaseModule* self, ValaMethod* m);
      void (*generate_dynamic_method_wrapper) (ValaCCodeBaseModule* self, ValaDynamicMethod* method);
      gboolean (*method_has_wrapper) (ValaCCodeBaseModule* self, ValaMethod* method);
      ValaCCodeFunctionCall* (*get_param_spec) (ValaCCodeBaseModule* self, ValaProperty* prop);
      ValaCCodeFunctionCall* (*get_signal_creation) (ValaCCodeBaseModule* self, ValaSignal* sig, ValaTypeSymbol* type);
      void (*register_dbus_info) (ValaCCodeBaseModule* self, ValaCCodeBlock* block, ValaObjectTypeSymbol* bindable);
      gchar* (*get_dynamic_property_getter_cname) (ValaCCodeBaseModule* self, ValaDynamicProperty* node);
      gchar* (*get_dynamic_property_setter_cname) (ValaCCodeBaseModule* self, ValaDynamicProperty* node);
      gchar* (*get_dynamic_signal_cname) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
      gchar* (*get_dynamic_signal_connect_wrapper_name) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
      gchar* (*get_dynamic_signal_connect_after_wrapper_name) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
      gchar* (*get_dynamic_signal_disconnect_wrapper_name) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
      void (*generate_marshaller) (ValaCCodeBaseModule* self, ValaList* params, ValaDataType* return_type, gboolean dbus);
      gchar* (*get_marshaller_function) (ValaCCodeBaseModule* self, ValaList* params, ValaDataType* return_type, const gchar* prefix, gboolean dbus);
      gchar* (*get_array_length_cname) (ValaCCodeBaseModule* self, const gchar* array_cname, gint dim);
      gchar* (*get_parameter_array_length_cname) (ValaCCodeBaseModule* self, ValaParameter* param, gint dim);
      ValaCCodeExpression* (*get_array_length_cexpression) (ValaCCodeBaseModule* self, ValaExpression* array_expr, gint dim);
      ValaCCodeExpression* (*get_array_length_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value, gint dim);
      gchar* (*get_array_size_cname) (ValaCCodeBaseModule* self, const gchar* array_cname);
      void (*add_simple_check) (ValaCCodeBaseModule* self, ValaCodeNode* node, gboolean always_fails);
      gchar* (*generate_ready_function) (ValaCCodeBaseModule* self, ValaMethod* m);
};

struct _ValaCCodeStructModule {
      ValaCCodeBaseModule parent_instance;
      ValaCCodeStructModulePrivate * priv;
};

struct _ValaCCodeStructModuleClass {
      ValaCCodeBaseModuleClass parent_class;
};

struct _ValaCCodeMethodModule {
      ValaCCodeStructModule parent_instance;
      ValaCCodeMethodModulePrivate * priv;
};

struct _ValaCCodeMethodModuleClass {
      ValaCCodeStructModuleClass parent_class;
      void (*generate_method_result_declaration) (ValaCCodeMethodModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeFunction* cfunc, ValaMap* cparam_map, ValaMap* carg_map);
      ValaCCodeParameter* (*generate_parameter) (ValaCCodeMethodModule* self, ValaParameter* param, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaMap* carg_map);
};

struct _ValaCCodeControlFlowModule {
      ValaCCodeMethodModule parent_instance;
      ValaCCodeControlFlowModulePrivate * priv;
};

struct _ValaCCodeControlFlowModuleClass {
      ValaCCodeMethodModuleClass parent_class;
};

struct _ValaCCodeMemberAccessModule {
      ValaCCodeControlFlowModule parent_instance;
      ValaCCodeMemberAccessModulePrivate * priv;
};

struct _ValaCCodeMemberAccessModuleClass {
      ValaCCodeControlFlowModuleClass parent_class;
};

struct _ValaCCodeAssignmentModule {
      ValaCCodeMemberAccessModule parent_instance;
      ValaCCodeAssignmentModulePrivate * priv;
};

struct _ValaCCodeAssignmentModuleClass {
      ValaCCodeMemberAccessModuleClass parent_class;
};

struct _ValaCCodeMethodCallModule {
      ValaCCodeAssignmentModule parent_instance;
      ValaCCodeMethodCallModulePrivate * priv;
};

struct _ValaCCodeMethodCallModuleClass {
      ValaCCodeAssignmentModuleClass parent_class;
};

struct _ValaCCodeArrayModule {
      ValaCCodeMethodCallModule parent_instance;
      ValaCCodeArrayModulePrivate * priv;
};

struct _ValaCCodeArrayModuleClass {
      ValaCCodeMethodCallModuleClass parent_class;
};

struct _ValaCCodeDelegateModule {
      ValaCCodeArrayModule parent_instance;
      ValaCCodeDelegateModulePrivate * priv;
};

struct _ValaCCodeDelegateModuleClass {
      ValaCCodeArrayModuleClass parent_class;
};

struct _ValaGErrorModule {
      ValaCCodeDelegateModule parent_instance;
      ValaGErrorModulePrivate * priv;
};

struct _ValaGErrorModuleClass {
      ValaCCodeDelegateModuleClass parent_class;
      void (*return_with_exception) (ValaGErrorModule* self, ValaCCodeExpression* error_expr);
};

struct _ValaGTypeModule {
      ValaGErrorModule parent_instance;
      ValaGTypeModulePrivate * priv;
};

struct _ValaGTypeModuleClass {
      ValaGErrorModuleClass parent_class;
      void (*generate_virtual_method_declaration) (ValaGTypeModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeStruct* type_struct);
      void (*generate_class_init) (ValaGTypeModule* self, ValaClass* cl);
};

struct _ValaGObjectModule {
      ValaGTypeModule parent_instance;
      ValaGObjectModulePrivate * priv;
};

struct _ValaGObjectModuleClass {
      ValaGTypeModuleClass parent_class;
};

struct _ValaGSignalModule {
      ValaGObjectModule parent_instance;
      ValaGSignalModulePrivate * priv;
};

struct _ValaGSignalModuleClass {
      ValaGObjectModuleClass parent_class;
      ValaCCodeExpression* (*get_dbus_g_type) (ValaGSignalModule* self, ValaDataType* data_type);
};

struct _ValaGAsyncModule {
      ValaGSignalModule parent_instance;
      ValaGAsyncModulePrivate * priv;
};

struct _ValaGAsyncModuleClass {
      ValaGSignalModuleClass parent_class;
};

struct _ValaDBusModule {
      ValaGAsyncModule parent_instance;
      ValaDBusModulePrivate * priv;
};

struct _ValaDBusModuleClass {
      ValaGAsyncModuleClass parent_class;
};

struct _ValaDBusClientModule {
      ValaDBusModule parent_instance;
      ValaDBusClientModulePrivate * priv;
};

struct _ValaDBusClientModuleClass {
      ValaDBusModuleClass parent_class;
};

struct _ValaDBusServerModule {
      ValaDBusClientModule parent_instance;
      ValaDBusServerModulePrivate * priv;
};

struct _ValaDBusServerModuleClass {
      ValaDBusClientModuleClass parent_class;
};


static gpointer vala_dbus_server_module_parent_class = NULL;

GType vala_ccode_base_module_get_type (void) G_GNUC_CONST;
gpointer vala_ccode_base_module_emit_context_ref (gpointer instance);
void vala_ccode_base_module_emit_context_unref (gpointer instance);
GParamSpec* vala_ccode_base_module_param_spec_emit_context (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void vala_ccode_base_module_value_set_emit_context (GValue* value, gpointer v_object);
void vala_ccode_base_module_value_take_emit_context (GValue* value, gpointer v_object);
gpointer vala_ccode_base_module_value_get_emit_context (const GValue* value);
GType vala_ccode_base_module_emit_context_get_type (void) G_GNUC_CONST;
GType vala_ccode_struct_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_method_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_control_flow_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_member_access_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_assignment_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_method_call_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_array_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_delegate_module_get_type (void) G_GNUC_CONST;
GType vala_gerror_module_get_type (void) G_GNUC_CONST;
GType vala_gtype_module_get_type (void) G_GNUC_CONST;
GType vala_gobject_module_get_type (void) G_GNUC_CONST;
GType vala_gsignal_module_get_type (void) G_GNUC_CONST;
GType vala_gasync_module_get_type (void) G_GNUC_CONST;
GType vala_dbus_module_get_type (void) G_GNUC_CONST;
GType vala_dbus_client_module_get_type (void) G_GNUC_CONST;
GType vala_dbus_server_module_get_type (void) G_GNUC_CONST;
enum  {
      VALA_DBUS_SERVER_MODULE_DUMMY_PROPERTY
};
gboolean vala_dbus_server_module_is_dbus_visible (ValaCodeNode* node);
gchar* vala_dbus_server_module_dbus_result_name (ValaMethod* m);
static void vala_dbus_server_module_send_reply (ValaDBusServerModule* self, ValaCCodeBlock* block);
static void vala_dbus_server_module_handle_reply (ValaDBusServerModule* self, ValaCCodeBlock* block);
static gchar* vala_dbus_server_module_generate_dbus_wrapper (ValaDBusServerModule* self, ValaMethod* m, ValaObjectTypeSymbol* sym);
ValaCCodeExpression* vala_ccode_base_module_default_value_for_type (ValaCCodeBaseModule* self, ValaDataType* type, gboolean initializer_expression);
gchar* vala_dbus_module_get_type_signature (ValaDataType* datatype);
gchar* vala_ccode_base_module_get_parameter_array_length_cname (ValaCCodeBaseModule* self, ValaParameter* param, gint dim);
ValaCCodeExpression* vala_dbus_module_read_expression (ValaDBusModule* self, ValaCCodeFragment* fragment, ValaDataType* type, ValaCCodeExpression* iter_expr, ValaCCodeExpression* expr);
void vala_dbus_module_write_expression (ValaDBusModule* self, ValaCCodeFragment* fragment, ValaDataType* type, ValaCCodeExpression* iter_expr, ValaCCodeExpression* expr);
gboolean vala_ccode_base_module_requires_destroy (ValaCCodeBaseModule* self, ValaDataType* type);
ValaCCodeExpression* vala_ccode_base_module_destroy_local (ValaCCodeBaseModule* self, ValaLocalVariable* local);
ValaCCodeExpression* vala_ccode_base_module_get_unref_expression (ValaCCodeBaseModule* self, ValaCCodeExpression* cvar, ValaDataType* type, ValaExpression* expr, gboolean is_macro_definition);
gchar* vala_ccode_base_module_get_array_length_cname (ValaCCodeBaseModule* self, const gchar* array_cname, gint dim);
static void vala_dbus_server_module_generate_server_error_cases (ValaDBusServerModule* self, ValaCCodeBlock* error_block, ValaList* error_types, ValaCCodeExpression* _error_, ValaCCodeExpression* message, ValaCCodeExpression* reply);
gchar* vala_dbus_module_get_dbus_name (ValaTypeSymbol* symbol);
static gchar* vala_dbus_server_module_generate_dbus_signal_wrapper (ValaDBusServerModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name);
ValaCCodeParameter* vala_ccode_method_module_generate_parameter (ValaCCodeMethodModule* self, ValaParameter* param, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaMap* carg_map);
gchar* vala_dbus_module_get_dbus_name_for_member (ValaSymbol* symbol);
static void vala_dbus_server_module_generate_register_function (ValaDBusServerModule* self, ValaObjectType* object_type);
void vala_dbus_module_add_dbus_helpers (ValaDBusModule* self);
static ValaCCodeExpression* vala_dbus_server_module_get_path_vtable (ValaDBusServerModule* self, ValaObjectType* object_type);
static void vala_dbus_server_module_handle_signals (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, ValaCCodeBlock* block);
static gboolean vala_dbus_server_module_type_implements_dbus_interface (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym);
static void vala_dbus_server_module_generate_unregister_function (ValaDBusServerModule* self, ValaObjectType* object_type);
static void vala_dbus_server_module_handle_method (ValaDBusServerModule* self, const gchar* dbus_iface_name, const gchar* dbus_method_name, const gchar* handler_name, ValaCCodeBlock* block, ValaCCodeIfStatement** clastif);
static void vala_dbus_server_module_handle_methods (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name, ValaCCodeBlock* block, ValaCCodeIfStatement** clastif);
static gchar* vala_dbus_server_module_generate_dbus_property_get_wrapper (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name);
static gchar* vala_dbus_server_module_generate_dbus_property_get_all_wrapper (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name);
static gchar* vala_dbus_server_module_generate_dbus_property_set_wrapper (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name);
static gchar* vala_dbus_server_module_get_dbus_type_introspection (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym);
static gchar* vala_dbus_server_module_generate_dbus_introspect (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym);
static void vala_dbus_server_module_generate_message_function (ValaDBusServerModule* self, ValaObjectType* object_type);
static ValaCCodeExpression* vala_dbus_server_module_get_vtable (ValaDBusServerModule* self, ValaObjectType* object_type);
gboolean vala_ccode_base_module_add_wrapper (ValaCCodeBaseModule* self, const gchar* wrapper_name);
static void vala_dbus_server_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr);
ValaCCodeExpression* vala_ccode_base_module_get_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr);
ValaCCodeFunction* vala_ccode_base_module_get_ccode (ValaCCodeBaseModule* self);
static void vala_dbus_server_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym);
void vala_ccode_base_module_register_dbus_info (ValaCCodeBaseModule* self, ValaCCodeBlock* block, ValaObjectTypeSymbol* bindable);
ValaDBusServerModule* vala_dbus_server_module_new (void);
ValaDBusServerModule* vala_dbus_server_module_construct (GType object_type);
ValaDBusClientModule* vala_dbus_client_module_new (void);
ValaDBusClientModule* vala_dbus_client_module_construct (GType object_type);


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


gchar* vala_dbus_server_module_dbus_result_name (ValaMethod* m) {
      gchar* result = NULL;
      ValaAttribute* _tmp0_ = NULL;
      ValaAttribute* dbus_attribute;
      gboolean _tmp1_ = FALSE;
      gchar* _tmp5_;
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = vala_code_node_get_attribute ((ValaCodeNode*) m, "DBus");
      dbus_attribute = _tmp0_;
      if (dbus_attribute != NULL) {
            gboolean _tmp2_;
            _tmp2_ = vala_attribute_has_argument (dbus_attribute, "result");
            _tmp1_ = _tmp2_;
      } else {
            _tmp1_ = FALSE;
      }
      if (_tmp1_) {
            gchar* _tmp3_ = NULL;
            gchar* result_name;
            gboolean _tmp4_ = FALSE;
            _tmp3_ = vala_attribute_get_string (dbus_attribute, "result");
            result_name = _tmp3_;
            if (result_name != NULL) {
                  _tmp4_ = g_strcmp0 (result_name, "") != 0;
            } else {
                  _tmp4_ = FALSE;
            }
            if (_tmp4_) {
                  result = result_name;
                  _vala_code_node_unref0 (dbus_attribute);
                  return result;
            }
            _g_free0 (result_name);
      }
      _tmp5_ = g_strdup ("result");
      result = _tmp5_;
      _vala_code_node_unref0 (dbus_attribute);
      return result;
}


static void vala_dbus_server_module_send_reply (ValaDBusServerModule* self, ValaCCodeBlock* block) {
      ValaCCodeIdentifier* _tmp0_ = NULL;
      ValaCCodeIdentifier* _tmp1_;
      ValaCCodeFunctionCall* _tmp2_ = NULL;
      ValaCCodeFunctionCall* _tmp3_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp4_ = NULL;
      ValaCCodeIdentifier* _tmp5_;
      ValaCCodeIdentifier* _tmp6_ = NULL;
      ValaCCodeIdentifier* _tmp7_;
      ValaCCodeConstant* _tmp8_ = NULL;
      ValaCCodeConstant* _tmp9_;
      ValaCCodeExpressionStatement* _tmp10_ = NULL;
      ValaCCodeExpressionStatement* _tmp11_;
      ValaCCodeIdentifier* _tmp12_ = NULL;
      ValaCCodeIdentifier* _tmp13_;
      ValaCCodeFunctionCall* _tmp14_ = NULL;
      ValaCCodeIdentifier* _tmp15_ = NULL;
      ValaCCodeIdentifier* _tmp16_;
      ValaCCodeExpressionStatement* _tmp17_ = NULL;
      ValaCCodeExpressionStatement* _tmp18_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_ccode_identifier_new ("dbus_connection_send");
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp1_);
      _tmp3_ = _tmp2_;
      _vala_ccode_node_unref0 (_tmp1_);
      ccall = _tmp3_;
      _tmp4_ = vala_ccode_identifier_new ("connection");
      _tmp5_ = _tmp4_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp5_);
      _vala_ccode_node_unref0 (_tmp5_);
      _tmp6_ = vala_ccode_identifier_new ("reply");
      _tmp7_ = _tmp6_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp7_);
      _vala_ccode_node_unref0 (_tmp7_);
      _tmp8_ = vala_ccode_constant_new ("NULL");
      _tmp9_ = _tmp8_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _tmp10_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
      _tmp11_ = _tmp10_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp13_ = _tmp12_;
      _tmp14_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp13_);
      _vala_ccode_node_unref0 (ccall);
      ccall = _tmp14_;
      _vala_ccode_node_unref0 (_tmp13_);
      _tmp15_ = vala_ccode_identifier_new ("reply");
      _tmp16_ = _tmp15_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      _tmp17_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
      _tmp18_ = _tmp17_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp18_);
      _vala_ccode_node_unref0 (_tmp18_);
      _vala_ccode_node_unref0 (ccall);
}


static void vala_dbus_server_module_handle_reply (ValaDBusServerModule* self, ValaCCodeBlock* block) {
      ValaCCodeBlock* _tmp0_ = NULL;
      ValaCCodeBlock* handled;
      ValaCCodeIdentifier* _tmp1_ = NULL;
      ValaCCodeIdentifier* _tmp2_;
      ValaCCodeReturnStatement* _tmp3_ = NULL;
      ValaCCodeReturnStatement* _tmp4_;
      ValaCCodeBlock* _tmp5_ = NULL;
      ValaCCodeBlock* not_handled;
      ValaCCodeIdentifier* _tmp6_ = NULL;
      ValaCCodeIdentifier* _tmp7_;
      ValaCCodeReturnStatement* _tmp8_ = NULL;
      ValaCCodeReturnStatement* _tmp9_;
      ValaCCodeIdentifier* _tmp10_ = NULL;
      ValaCCodeIdentifier* _tmp11_;
      ValaCCodeIfStatement* _tmp12_ = NULL;
      ValaCCodeIfStatement* _tmp13_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_ccode_block_new ();
      handled = _tmp0_;
      vala_dbus_server_module_send_reply (self, handled);
      _tmp1_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_HANDLED");
      _tmp2_ = _tmp1_;
      _tmp3_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp2_);
      _tmp4_ = _tmp3_;
      vala_ccode_block_add_statement (handled, (ValaCCodeNode*) _tmp4_);
      _vala_ccode_node_unref0 (_tmp4_);
      _vala_ccode_node_unref0 (_tmp2_);
      _tmp5_ = vala_ccode_block_new ();
      not_handled = _tmp5_;
      _tmp6_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_NOT_YET_HANDLED");
      _tmp7_ = _tmp6_;
      _tmp8_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp7_);
      _tmp9_ = _tmp8_;
      vala_ccode_block_add_statement (not_handled, (ValaCCodeNode*) _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _vala_ccode_node_unref0 (_tmp7_);
      _tmp10_ = vala_ccode_identifier_new ("reply");
      _tmp11_ = _tmp10_;
      _tmp12_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp11_, (ValaCCodeStatement*) handled, (ValaCCodeStatement*) not_handled);
      _tmp13_ = _tmp12_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      _vala_ccode_node_unref0 (_tmp11_);
      _vala_ccode_node_unref0 (not_handled);
      _vala_ccode_node_unref0 (handled);
}


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


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


static gchar* vala_dbus_server_module_generate_dbus_wrapper (ValaDBusServerModule* self, ValaMethod* m, ValaObjectTypeSymbol* sym) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* wrapper_name;
      ValaCCodeDeclaration* _cdecl_ = NULL;
      ValaCCodeFunction* _tmp4_ = NULL;
      ValaCCodeFunction* function;
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      ValaCCodeParameter* _tmp9_ = NULL;
      ValaCCodeParameter* _tmp10_;
      ValaCCodeParameter* _tmp11_ = NULL;
      ValaCCodeParameter* _tmp12_;
      ValaCCodeParameter* _tmp13_ = NULL;
      ValaCCodeParameter* _tmp14_;
      ValaCCodeBlock* _tmp15_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFunction* ready_function;
      ValaCCodeBlock* ready_block;
      gboolean _tmp16_;
      ValaCCodeFragment* _tmp37_ = NULL;
      ValaCCodeFragment* in_prefragment;
      ValaCCodeFragment* _tmp38_ = NULL;
      ValaCCodeFragment* in_postfragment;
      ValaCCodeFragment* _tmp39_;
      ValaCCodeFragment* out_prefragment;
      ValaCCodeFragment* _tmp40_;
      ValaCCodeFragment* out_postfragment;
      ValaCCodeDeclaration* _tmp41_ = NULL;
      ValaCCodeVariableDeclarator* _tmp42_ = NULL;
      ValaCCodeVariableDeclarator* _tmp43_;
      gboolean _tmp44_;
      ValaCCodeDeclaration* _tmp47_ = NULL;
      ValaCCodeConstant* _tmp48_ = NULL;
      ValaCCodeConstant* _tmp49_;
      ValaCCodeVariableDeclarator* _tmp50_ = NULL;
      ValaCCodeVariableDeclarator* _tmp51_;
      gboolean _tmp52_;
      gboolean _tmp53_;
      ValaCCodeIdentifier* _tmp54_ = NULL;
      ValaCCodeIdentifier* _tmp55_;
      ValaCCodeFunctionCall* _tmp56_ = NULL;
      ValaCCodeFunctionCall* _tmp57_;
      ValaCCodeFunctionCall* message_signature;
      ValaCCodeIdentifier* _tmp58_ = NULL;
      ValaCCodeIdentifier* _tmp59_;
      ValaCCodeIdentifier* _tmp60_ = NULL;
      ValaCCodeIdentifier* _tmp61_;
      ValaCCodeFunctionCall* _tmp62_ = NULL;
      ValaCCodeFunctionCall* _tmp63_;
      ValaCCodeFunctionCall* signature_check;
      ValaCCodeBlock* _tmp64_ = NULL;
      ValaCCodeBlock* signature_error_block;
      ValaCCodeIdentifier* _tmp65_ = NULL;
      ValaCCodeIdentifier* _tmp66_;
      ValaCCodeReturnStatement* _tmp67_ = NULL;
      ValaCCodeReturnStatement* _tmp68_;
      ValaCCodeIfStatement* _tmp69_ = NULL;
      ValaCCodeIfStatement* _tmp70_;
      ValaCCodeIdentifier* _tmp71_ = NULL;
      ValaCCodeIdentifier* _tmp72_;
      ValaCCodeFunctionCall* _tmp73_ = NULL;
      ValaCCodeFunctionCall* _tmp74_;
      ValaCCodeFunctionCall* iter_call;
      ValaCCodeIdentifier* _tmp75_ = NULL;
      ValaCCodeIdentifier* _tmp76_;
      ValaCCodeIdentifier* _tmp77_ = NULL;
      ValaCCodeIdentifier* _tmp78_;
      ValaCCodeUnaryExpression* _tmp79_ = NULL;
      ValaCCodeUnaryExpression* _tmp80_;
      ValaCCodeExpressionStatement* _tmp81_ = NULL;
      ValaCCodeExpressionStatement* _tmp82_;
      ValaCCodeDeclaration* _tmp83_ = NULL;
      ValaCCodeVariableDeclarator* _tmp84_ = NULL;
      ValaCCodeVariableDeclarator* _tmp85_;
      ValaCCodeIdentifier* _tmp86_ = NULL;
      ValaCCodeIdentifier* _tmp87_;
      ValaCCodeFunctionCall* _tmp88_ = NULL;
      ValaCCodeFunctionCall* _tmp89_;
      ValaCCodeFunctionCall* msgcall;
      ValaCCodeIdentifier* _tmp90_ = NULL;
      ValaCCodeIdentifier* _tmp91_;
      ValaCCodeIdentifier* _tmp92_ = NULL;
      ValaCCodeIdentifier* _tmp93_;
      ValaCCodeAssignment* _tmp94_ = NULL;
      ValaCCodeAssignment* _tmp95_;
      ValaCCodeExpressionStatement* _tmp96_ = NULL;
      ValaCCodeExpressionStatement* _tmp97_;
      ValaCCodeIdentifier* _tmp98_ = NULL;
      ValaCCodeIdentifier* _tmp99_;
      ValaCCodeFunctionCall* _tmp100_ = NULL;
      ValaCCodeIdentifier* _tmp101_ = NULL;
      ValaCCodeIdentifier* _tmp102_;
      ValaCCodeIdentifier* _tmp103_ = NULL;
      ValaCCodeIdentifier* _tmp104_;
      ValaCCodeUnaryExpression* _tmp105_ = NULL;
      ValaCCodeUnaryExpression* _tmp106_;
      ValaCCodeExpressionStatement* _tmp107_ = NULL;
      ValaCCodeExpressionStatement* _tmp108_;
      gchar* _tmp109_ = NULL;
      gchar* _tmp110_;
      ValaCCodeIdentifier* _tmp111_ = NULL;
      ValaCCodeIdentifier* _tmp112_;
      ValaCCodeFunctionCall* _tmp113_ = NULL;
      ValaCCodeFunctionCall* _tmp114_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeFunctionCall* finish_ccall;
      gboolean _tmp115_;
      ValaCCodeIdentifier* _tmp131_ = NULL;
      ValaCCodeIdentifier* _tmp132_;
      gchar* _tmp133_;
      gchar* type_signature;
      gchar* _tmp255_ = NULL;
      gchar* _tmp256_;
      ValaCCodeConstant* _tmp257_ = NULL;
      ValaCCodeConstant* _tmp258_;
      ValaDataType* _tmp259_ = NULL;
      gboolean _tmp382_;
      ValaList* _tmp425_ = NULL;
      ValaList* _tmp426_;
      gint _tmp427_;
      gboolean _tmp428_;
      gboolean _tmp462_;
      gboolean _tmp490_;
      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_ = vala_method_get_cname (m);
      _tmp1_ = _tmp0_;
      _tmp2_ = g_strdup_printf ("_dbus_%s", _tmp1_);
      _tmp3_ = _tmp2_;
      _g_free0 (_tmp1_);
      wrapper_name = _tmp3_;
      _tmp4_ = vala_ccode_function_new (wrapper_name, "DBusHandlerResult");
      function = _tmp4_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp5_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) sym, FALSE);
      _tmp6_ = _tmp5_;
      _tmp7_ = g_strconcat (_tmp6_, "*", NULL);
      _tmp8_ = _tmp7_;
      _tmp9_ = vala_ccode_parameter_new ("self", _tmp8_);
      _tmp10_ = _tmp9_;
      vala_ccode_function_add_parameter (function, _tmp10_);
      _vala_ccode_node_unref0 (_tmp10_);
      _g_free0 (_tmp8_);
      _g_free0 (_tmp6_);
      _tmp11_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp12_ = _tmp11_;
      vala_ccode_function_add_parameter (function, _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _tmp13_ = vala_ccode_parameter_new ("message", "DBusMessage*");
      _tmp14_ = _tmp13_;
      vala_ccode_function_add_parameter (function, _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      _tmp15_ = vala_ccode_block_new ();
      block = _tmp15_;
      ready_function = NULL;
      ready_block = NULL;
      _tmp16_ = vala_method_get_coroutine (m);
      if (_tmp16_) {
            gchar* _tmp17_;
            gchar* _tmp18_;
            ValaCCodeFunction* _tmp19_ = NULL;
            ValaCCodeParameter* _tmp20_ = NULL;
            ValaCCodeParameter* _tmp21_;
            ValaCCodeParameter* _tmp22_ = NULL;
            ValaCCodeParameter* _tmp23_;
            ValaCCodeParameter* _tmp24_ = NULL;
            ValaCCodeParameter* _tmp25_;
            ValaCCodeBlock* _tmp26_ = NULL;
            ValaCCodeDeclaration* _tmp27_ = NULL;
            ValaCCodeIdentifier* _tmp28_ = NULL;
            ValaCCodeIdentifier* _tmp29_;
            ValaCCodeVariableDeclarator* _tmp30_ = NULL;
            ValaCCodeVariableDeclarator* _tmp31_;
            ValaCCodeDeclaration* _tmp32_ = NULL;
            ValaCCodeIdentifier* _tmp33_ = NULL;
            ValaCCodeIdentifier* _tmp34_;
            ValaCCodeVariableDeclarator* _tmp35_ = NULL;
            ValaCCodeVariableDeclarator* _tmp36_;
            vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "gio/gio.h", FALSE);
            _tmp17_ = g_strconcat (wrapper_name, "_ready", NULL);
            _tmp18_ = _tmp17_;
            _tmp19_ = vala_ccode_function_new (_tmp18_, "void");
            _vala_ccode_node_unref0 (ready_function);
            ready_function = _tmp19_;
            _g_free0 (_tmp18_);
            vala_ccode_function_set_modifiers (ready_function, VALA_CCODE_MODIFIERS_STATIC);
            _tmp20_ = vala_ccode_parameter_new ("source_object", "GObject *");
            _tmp21_ = _tmp20_;
            vala_ccode_function_add_parameter (ready_function, _tmp21_);
            _vala_ccode_node_unref0 (_tmp21_);
            _tmp22_ = vala_ccode_parameter_new ("_res_", "GAsyncResult *");
            _tmp23_ = _tmp22_;
            vala_ccode_function_add_parameter (ready_function, _tmp23_);
            _vala_ccode_node_unref0 (_tmp23_);
            _tmp24_ = vala_ccode_parameter_new ("_user_data_", "gpointer *");
            _tmp25_ = _tmp24_;
            vala_ccode_function_add_parameter (ready_function, _tmp25_);
            _vala_ccode_node_unref0 (_tmp25_);
            _tmp26_ = vala_ccode_block_new ();
            _vala_ccode_node_unref0 (ready_block);
            ready_block = _tmp26_;
            _tmp27_ = vala_ccode_declaration_new ("DBusConnection *");
            _vala_ccode_node_unref0 (_cdecl_);
            _cdecl_ = _tmp27_;
            _tmp28_ = vala_ccode_identifier_new ("_user_data_[0]");
            _tmp29_ = _tmp28_;
            _tmp30_ = vala_ccode_variable_declarator_new ("connection", (ValaCCodeExpression*) _tmp29_, NULL);
            _tmp31_ = _tmp30_;
            vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp31_);
            _vala_ccode_node_unref0 (_tmp31_);
            _vala_ccode_node_unref0 (_tmp29_);
            vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _cdecl_);
            _tmp32_ = vala_ccode_declaration_new ("DBusMessage *");
            _vala_ccode_node_unref0 (_cdecl_);
            _cdecl_ = _tmp32_;
            _tmp33_ = vala_ccode_identifier_new ("_user_data_[1]");
            _tmp34_ = _tmp33_;
            _tmp35_ = vala_ccode_variable_declarator_new ("message", (ValaCCodeExpression*) _tmp34_, NULL);
            _tmp36_ = _tmp35_;
            vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp36_);
            _vala_ccode_node_unref0 (_tmp36_);
            _vala_ccode_node_unref0 (_tmp34_);
            vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _cdecl_);
      }
      _tmp37_ = vala_ccode_fragment_new ();
      in_prefragment = _tmp37_;
      _tmp38_ = vala_ccode_fragment_new ();
      in_postfragment = _tmp38_;
      _tmp39_ = _vala_ccode_node_ref0 (in_prefragment);
      out_prefragment = _tmp39_;
      _tmp40_ = _vala_ccode_node_ref0 (in_postfragment);
      out_postfragment = _tmp40_;
      _tmp41_ = vala_ccode_declaration_new ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp41_;
      _tmp42_ = vala_ccode_variable_declarator_new ("iter", NULL, NULL);
      _tmp43_ = _tmp42_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp43_);
      _vala_ccode_node_unref0 (_tmp43_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp44_ = vala_method_get_coroutine (m);
      if (_tmp44_) {
            ValaCCodeFragment* _tmp45_ = NULL;
            ValaCCodeFragment* _tmp46_ = NULL;
            _tmp45_ = vala_ccode_fragment_new ();
            _vala_ccode_node_unref0 (out_prefragment);
            out_prefragment = _tmp45_;
            _tmp46_ = vala_ccode_fragment_new ();
            _vala_ccode_node_unref0 (out_postfragment);
            out_postfragment = _tmp46_;
            vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _cdecl_);
      }
      _tmp47_ = vala_ccode_declaration_new ("GError*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp47_;
      _tmp48_ = vala_ccode_constant_new ("NULL");
      _tmp49_ = _tmp48_;
      _tmp50_ = vala_ccode_variable_declarator_new ("error", (ValaCCodeExpression*) _tmp49_, NULL);
      _tmp51_ = _tmp50_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp51_);
      _vala_ccode_node_unref0 (_tmp51_);
      _vala_ccode_node_unref0 (_tmp49_);
      _tmp52_ = vala_method_get_coroutine (m);
      if (_tmp52_) {
            vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _cdecl_);
      } else {
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      }
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) in_prefragment);
      _tmp53_ = vala_method_get_coroutine (m);
      if (_tmp53_) {
            vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) out_prefragment);
      }
      _tmp54_ = vala_ccode_identifier_new ("dbus_message_get_signature");
      _tmp55_ = _tmp54_;
      _tmp56_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp55_);
      _tmp57_ = _tmp56_;
      _vala_ccode_node_unref0 (_tmp55_);
      message_signature = _tmp57_;
      _tmp58_ = vala_ccode_identifier_new ("message");
      _tmp59_ = _tmp58_;
      vala_ccode_function_call_add_argument (message_signature, (ValaCCodeExpression*) _tmp59_);
      _vala_ccode_node_unref0 (_tmp59_);
      _tmp60_ = vala_ccode_identifier_new ("strcmp");
      _tmp61_ = _tmp60_;
      _tmp62_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp61_);
      _tmp63_ = _tmp62_;
      _vala_ccode_node_unref0 (_tmp61_);
      signature_check = _tmp63_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) message_signature);
      _tmp64_ = vala_ccode_block_new ();
      signature_error_block = _tmp64_;
      _tmp65_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_NOT_YET_HANDLED");
      _tmp66_ = _tmp65_;
      _tmp67_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp66_);
      _tmp68_ = _tmp67_;
      vala_ccode_block_add_statement (signature_error_block, (ValaCCodeNode*) _tmp68_);
      _vala_ccode_node_unref0 (_tmp68_);
      _vala_ccode_node_unref0 (_tmp66_);
      _tmp69_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) signature_check, (ValaCCodeStatement*) signature_error_block, NULL);
      _tmp70_ = _tmp69_;
      vala_ccode_fragment_append (in_prefragment, (ValaCCodeNode*) _tmp70_);
      _vala_ccode_node_unref0 (_tmp70_);
      _tmp71_ = vala_ccode_identifier_new ("dbus_message_iter_init");
      _tmp72_ = _tmp71_;
      _tmp73_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp72_);
      _tmp74_ = _tmp73_;
      _vala_ccode_node_unref0 (_tmp72_);
      iter_call = _tmp74_;
      _tmp75_ = vala_ccode_identifier_new ("message");
      _tmp76_ = _tmp75_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp76_);
      _vala_ccode_node_unref0 (_tmp76_);
      _tmp77_ = vala_ccode_identifier_new ("iter");
      _tmp78_ = _tmp77_;
      _tmp79_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp78_);
      _tmp80_ = _tmp79_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp80_);
      _vala_ccode_node_unref0 (_tmp80_);
      _vala_ccode_node_unref0 (_tmp78_);
      _tmp81_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp82_ = _tmp81_;
      vala_ccode_fragment_append (in_prefragment, (ValaCCodeNode*) _tmp82_);
      _vala_ccode_node_unref0 (_tmp82_);
      _tmp83_ = vala_ccode_declaration_new ("DBusMessage*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp83_;
      _tmp84_ = vala_ccode_variable_declarator_new ("reply", NULL, NULL);
      _tmp85_ = _tmp84_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp85_);
      _vala_ccode_node_unref0 (_tmp85_);
      vala_ccode_fragment_append (out_postfragment, (ValaCCodeNode*) _cdecl_);
      _tmp86_ = vala_ccode_identifier_new ("dbus_message_new_method_return");
      _tmp87_ = _tmp86_;
      _tmp88_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp87_);
      _tmp89_ = _tmp88_;
      _vala_ccode_node_unref0 (_tmp87_);
      msgcall = _tmp89_;
      _tmp90_ = vala_ccode_identifier_new ("message");
      _tmp91_ = _tmp90_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp91_);
      _vala_ccode_node_unref0 (_tmp91_);
      _tmp92_ = vala_ccode_identifier_new ("reply");
      _tmp93_ = _tmp92_;
      _tmp94_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp93_, (ValaCCodeExpression*) msgcall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp95_ = _tmp94_;
      _tmp96_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp95_);
      _tmp97_ = _tmp96_;
      vala_ccode_fragment_append (out_postfragment, (ValaCCodeNode*) _tmp97_);
      _vala_ccode_node_unref0 (_tmp97_);
      _vala_ccode_node_unref0 (_tmp95_);
      _vala_ccode_node_unref0 (_tmp93_);
      _tmp98_ = vala_ccode_identifier_new ("dbus_message_iter_init_append");
      _tmp99_ = _tmp98_;
      _tmp100_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp99_);
      _vala_ccode_node_unref0 (iter_call);
      iter_call = _tmp100_;
      _vala_ccode_node_unref0 (_tmp99_);
      _tmp101_ = vala_ccode_identifier_new ("reply");
      _tmp102_ = _tmp101_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp102_);
      _vala_ccode_node_unref0 (_tmp102_);
      _tmp103_ = vala_ccode_identifier_new ("iter");
      _tmp104_ = _tmp103_;
      _tmp105_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp104_);
      _tmp106_ = _tmp105_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp106_);
      _vala_ccode_node_unref0 (_tmp106_);
      _vala_ccode_node_unref0 (_tmp104_);
      _tmp107_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp108_ = _tmp107_;
      vala_ccode_fragment_append (out_postfragment, (ValaCCodeNode*) _tmp108_);
      _vala_ccode_node_unref0 (_tmp108_);
      _tmp109_ = vala_method_get_cname (m);
      _tmp110_ = _tmp109_;
      _tmp111_ = vala_ccode_identifier_new (_tmp110_);
      _tmp112_ = _tmp111_;
      _tmp113_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp112_);
      _tmp114_ = _tmp113_;
      _vala_ccode_node_unref0 (_tmp112_);
      _g_free0 (_tmp110_);
      ccall = _tmp114_;
      finish_ccall = NULL;
      _tmp115_ = vala_method_get_coroutine (m);
      if (_tmp115_) {
            gchar* _tmp116_ = NULL;
            gchar* _tmp117_;
            ValaCCodeIdentifier* _tmp118_ = NULL;
            ValaCCodeIdentifier* _tmp119_;
            ValaCCodeFunctionCall* _tmp120_ = NULL;
            ValaCCodeIdentifier* _tmp121_ = NULL;
            ValaCCodeIdentifier* _tmp122_;
            gchar* _tmp123_ = NULL;
            gchar* _tmp124_;
            gchar* _tmp125_;
            gchar* _tmp126_;
            ValaCCodeCastExpression* _tmp127_ = NULL;
            ValaCCodeCastExpression* _tmp128_;
            ValaCCodeIdentifier* _tmp129_ = NULL;
            ValaCCodeIdentifier* _tmp130_;
            _tmp116_ = vala_method_get_finish_cname (m);
            _tmp117_ = _tmp116_;
            _tmp118_ = vala_ccode_identifier_new (_tmp117_);
            _tmp119_ = _tmp118_;
            _tmp120_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp119_);
            _vala_ccode_node_unref0 (finish_ccall);
            finish_ccall = _tmp120_;
            _vala_ccode_node_unref0 (_tmp119_);
            _g_free0 (_tmp117_);
            _tmp121_ = vala_ccode_identifier_new ("source_object");
            _tmp122_ = _tmp121_;
            _tmp123_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) sym, FALSE);
            _tmp124_ = _tmp123_;
            _tmp125_ = g_strconcat (_tmp124_, "*", NULL);
            _tmp126_ = _tmp125_;
            _tmp127_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp122_, _tmp126_);
            _tmp128_ = _tmp127_;
            vala_ccode_function_call_add_argument (finish_ccall, (ValaCCodeExpression*) _tmp128_);
            _vala_ccode_node_unref0 (_tmp128_);
            _g_free0 (_tmp126_);
            _g_free0 (_tmp124_);
            _vala_ccode_node_unref0 (_tmp122_);
            _tmp129_ = vala_ccode_identifier_new ("_res_");
            _tmp130_ = _tmp129_;
            vala_ccode_function_call_add_argument (finish_ccall, (ValaCCodeExpression*) _tmp130_);
            _vala_ccode_node_unref0 (_tmp130_);
      }
      _tmp131_ = vala_ccode_identifier_new ("self");
      _tmp132_ = _tmp131_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp132_);
      _vala_ccode_node_unref0 (_tmp132_);
      _tmp133_ = g_strdup ("");
      type_signature = _tmp133_;
      {
            ValaList* _tmp134_ = NULL;
            ValaList* _param_list;
            gint _tmp135_;
            gint _param_size;
            gint _param_index;
            _tmp134_ = vala_method_get_parameters (m);
            _param_list = _tmp134_;
            _tmp135_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp135_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp136_ = NULL;
                  ValaParameter* param;
                  ValaDataType* _tmp137_ = NULL;
                  ValaDataType* _tmp138_ = NULL;
                  ValaDataType* owned_type;
                  gchar* _tmp139_ = NULL;
                  gchar* _tmp140_;
                  ValaCCodeDeclaration* _tmp141_ = NULL;
                  const gchar* _tmp142_ = NULL;
                  ValaDataType* _tmp143_ = NULL;
                  ValaCCodeExpression* _tmp144_ = NULL;
                  ValaCCodeExpression* _tmp145_;
                  ValaCCodeVariableDeclarator* _tmp146_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp147_;
                  ValaParameterDirection _tmp148_;
                  gboolean _tmp149_ = FALSE;
                  gboolean _tmp150_ = FALSE;
                  gboolean _tmp151_ = FALSE;
                  ValaDataType* _tmp165_ = NULL;
                  gchar* _tmp166_ = NULL;
                  gchar* _tmp167_;
                  gboolean _tmp168_;
                  gboolean _tmp176_ = FALSE;
                  gboolean _tmp177_;
                  ValaDataType* _tmp200_ = NULL;
                  ValaParameterDirection _tmp225_;
                  gboolean _tmp247_;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp136_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp136_;
                  _tmp137_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp138_ = vala_data_type_copy (_tmp137_);
                  owned_type = _tmp138_;
                  vala_data_type_set_value_owned (owned_type, TRUE);
                  _tmp139_ = vala_data_type_get_cname (owned_type);
                  _tmp140_ = _tmp139_;
                  _tmp141_ = vala_ccode_declaration_new (_tmp140_);
                  _vala_ccode_node_unref0 (_cdecl_);
                  _cdecl_ = _tmp141_;
                  _g_free0 (_tmp140_);
                  _tmp142_ = vala_symbol_get_name ((ValaSymbol*) param);
                  _tmp143_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp144_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp143_, TRUE);
                  _tmp145_ = _tmp144_;
                  _tmp146_ = vala_ccode_variable_declarator_new_zero (_tmp142_, _tmp145_, NULL);
                  _tmp147_ = _tmp146_;
                  vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp147_);
                  _vala_ccode_node_unref0 (_tmp147_);
                  _vala_ccode_node_unref0 (_tmp145_);
                  _tmp148_ = vala_parameter_get_direction (param);
                  if (_tmp148_ == VALA_PARAMETER_DIRECTION_IN) {
                        vala_ccode_fragment_append (in_prefragment, (ValaCCodeNode*) _cdecl_);
                  } else {
                        vala_ccode_fragment_append (out_prefragment, (ValaCCodeNode*) _cdecl_);
                  }
                  if (g_strcmp0 (type_signature, "") == 0) {
                        ValaParameterDirection _tmp152_;
                        _tmp152_ = vala_parameter_get_direction (param);
                        _tmp151_ = _tmp152_ == VALA_PARAMETER_DIRECTION_IN;
                  } else {
                        _tmp151_ = FALSE;
                  }
                  if (_tmp151_) {
                        ValaDataType* _tmp153_ = NULL;
                        ValaTypeSymbol* _tmp154_ = NULL;
                        _tmp153_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp154_ = vala_data_type_get_data_type (_tmp153_);
                        _tmp150_ = _tmp154_ != NULL;
                  } else {
                        _tmp150_ = FALSE;
                  }
                  if (_tmp150_) {
                        ValaDataType* _tmp155_ = NULL;
                        ValaTypeSymbol* _tmp156_ = NULL;
                        gchar* _tmp157_ = NULL;
                        gchar* _tmp158_;
                        _tmp155_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp156_ = vala_data_type_get_data_type (_tmp155_);
                        _tmp157_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp156_);
                        _tmp158_ = _tmp157_;
                        _tmp149_ = g_strcmp0 (_tmp158_, "DBus.BusName") == 0;
                        _g_free0 (_tmp158_);
                  } else {
                        _tmp149_ = FALSE;
                  }
                  if (_tmp149_) {
                        ValaCCodeIdentifier* _tmp159_ = NULL;
                        ValaCCodeIdentifier* _tmp160_;
                        ValaCCodeFunctionCall* _tmp161_ = NULL;
                        ValaCCodeFunctionCall* _tmp162_;
                        ValaCCodeFunctionCall* get_sender;
                        ValaCCodeIdentifier* _tmp163_ = NULL;
                        ValaCCodeIdentifier* _tmp164_;
                        _tmp159_ = vala_ccode_identifier_new ("dbus_message_get_sender");
                        _tmp160_ = _tmp159_;
                        _tmp161_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp160_);
                        _tmp162_ = _tmp161_;
                        _vala_ccode_node_unref0 (_tmp160_);
                        get_sender = _tmp162_;
                        _tmp163_ = vala_ccode_identifier_new ("message");
                        _tmp164_ = _tmp163_;
                        vala_ccode_function_call_add_argument (get_sender, (ValaCCodeExpression*) _tmp164_);
                        _vala_ccode_node_unref0 (_tmp164_);
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) get_sender);
                        _vala_ccode_node_unref0 (get_sender);
                        _vala_code_node_unref0 (owned_type);
                        _vala_code_node_unref0 (param);
                        continue;
                  }
                  _tmp165_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp166_ = vala_dbus_module_get_type_signature (_tmp165_);
                  _tmp167_ = _tmp166_;
                  _tmp168_ = _tmp167_ == NULL;
                  _g_free0 (_tmp167_);
                  if (_tmp168_) {
                        ValaDataType* _tmp169_ = NULL;
                        ValaSourceReference* _tmp170_ = NULL;
                        ValaDataType* _tmp171_ = NULL;
                        gchar* _tmp172_ = NULL;
                        gchar* _tmp173_;
                        gchar* _tmp174_ = NULL;
                        gchar* _tmp175_;
                        _tmp169_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp170_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp169_);
                        _tmp171_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp172_ = vala_code_node_to_string ((ValaCodeNode*) _tmp171_);
                        _tmp173_ = _tmp172_;
                        _tmp174_ = g_strdup_printf ("D-Bus serialization of type `%s' is not supported", _tmp173_);
                        _tmp175_ = _tmp174_;
                        vala_report_error (_tmp170_, _tmp175_);
                        _g_free0 (_tmp175_);
                        _g_free0 (_tmp173_);
                        _vala_code_node_unref0 (owned_type);
                        _vala_code_node_unref0 (param);
                        continue;
                  }
                  _tmp177_ = vala_method_get_coroutine (m);
                  if (!_tmp177_) {
                        _tmp176_ = TRUE;
                  } else {
                        ValaParameterDirection _tmp178_;
                        _tmp178_ = vala_parameter_get_direction (param);
                        _tmp176_ = _tmp178_ == VALA_PARAMETER_DIRECTION_IN;
                  }
                  if (_tmp176_) {
                        ValaDataType* _tmp179_ = NULL;
                        ValaTypeSymbol* _tmp180_ = NULL;
                        ValaTypeSymbol* _tmp181_;
                        ValaStruct* _tmp182_;
                        ValaStruct* st;
                        gboolean _tmp183_ = FALSE;
                        ValaParameterDirection _tmp184_;
                        _tmp179_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp180_ = vala_data_type_get_data_type (_tmp179_);
                        _tmp181_ = _tmp180_;
                        _tmp182_ = _vala_code_node_ref0 (VALA_IS_STRUCT (_tmp181_) ? ((ValaStruct*) _tmp181_) : NULL);
                        st = _tmp182_;
                        _tmp184_ = vala_parameter_get_direction (param);
                        if (_tmp184_ != VALA_PARAMETER_DIRECTION_IN) {
                              _tmp183_ = TRUE;
                        } else {
                              gboolean _tmp185_ = FALSE;
                              if (st != NULL) {
                                    gboolean _tmp186_;
                                    _tmp186_ = vala_struct_is_simple_type (st);
                                    _tmp185_ = !_tmp186_;
                              } else {
                                    _tmp185_ = FALSE;
                              }
                              _tmp183_ = _tmp185_;
                        }
                        if (_tmp183_) {
                              const gchar* _tmp187_ = NULL;
                              ValaCCodeIdentifier* _tmp188_ = NULL;
                              ValaCCodeIdentifier* _tmp189_;
                              ValaCCodeUnaryExpression* _tmp190_ = NULL;
                              ValaCCodeUnaryExpression* _tmp191_;
                              _tmp187_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp188_ = vala_ccode_identifier_new (_tmp187_);
                              _tmp189_ = _tmp188_;
                              _tmp190_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp189_);
                              _tmp191_ = _tmp190_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp191_);
                              _vala_ccode_node_unref0 (_tmp191_);
                              _vala_ccode_node_unref0 (_tmp189_);
                        } else {
                              const gchar* _tmp192_ = NULL;
                              ValaCCodeIdentifier* _tmp193_ = NULL;
                              ValaCCodeIdentifier* _tmp194_;
                              _tmp192_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp193_ = vala_ccode_identifier_new (_tmp192_);
                              _tmp194_ = _tmp193_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp194_);
                              _vala_ccode_node_unref0 (_tmp194_);
                        }
                        _vala_code_node_unref0 (st);
                  } else {
                        const gchar* _tmp195_ = NULL;
                        ValaCCodeIdentifier* _tmp196_ = NULL;
                        ValaCCodeIdentifier* _tmp197_;
                        ValaCCodeUnaryExpression* _tmp198_ = NULL;
                        ValaCCodeUnaryExpression* _tmp199_;
                        _tmp195_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp196_ = vala_ccode_identifier_new (_tmp195_);
                        _tmp197_ = _tmp196_;
                        _tmp198_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp197_);
                        _tmp199_ = _tmp198_;
                        vala_ccode_function_call_add_argument (finish_ccall, (ValaCCodeExpression*) _tmp199_);
                        _vala_ccode_node_unref0 (_tmp199_);
                        _vala_ccode_node_unref0 (_tmp197_);
                  }
                  _tmp200_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  if (VALA_IS_ARRAY_TYPE (_tmp200_)) {
                        ValaDataType* _tmp201_ = NULL;
                        ValaArrayType* _tmp202_;
                        ValaArrayType* array_type;
                        _tmp201_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp202_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp201_));
                        array_type = _tmp202_;
                        {
                              gint dim;
                              dim = 1;
                              {
                                    gboolean _tmp203_;
                                    _tmp203_ = TRUE;
                                    while (TRUE) {
                                          gint _tmp204_;
                                          gchar* _tmp205_ = NULL;
                                          gchar* length_cname;
                                          ValaCCodeDeclaration* _tmp206_ = NULL;
                                          ValaCCodeConstant* _tmp207_ = NULL;
                                          ValaCCodeConstant* _tmp208_;
                                          ValaCCodeVariableDeclarator* _tmp209_ = NULL;
                                          ValaCCodeVariableDeclarator* _tmp210_;
                                          gboolean _tmp211_ = FALSE;
                                          gboolean _tmp212_;
                                          if (!_tmp203_) {
                                                dim++;
                                          }
                                          _tmp203_ = FALSE;
                                          _tmp204_ = vala_array_type_get_rank (array_type);
                                          if (!(dim <= _tmp204_)) {
                                                break;
                                          }
                                          _tmp205_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, param, dim);
                                          length_cname = _tmp205_;
                                          _tmp206_ = vala_ccode_declaration_new ("int");
                                          _vala_ccode_node_unref0 (_cdecl_);
                                          _cdecl_ = _tmp206_;
                                          _tmp207_ = vala_ccode_constant_new ("0");
                                          _tmp208_ = _tmp207_;
                                          _tmp209_ = vala_ccode_variable_declarator_new (length_cname, (ValaCCodeExpression*) _tmp208_, NULL);
                                          _tmp210_ = _tmp209_;
                                          vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp210_);
                                          _vala_ccode_node_unref0 (_tmp210_);
                                          _vala_ccode_node_unref0 (_tmp208_);
                                          _tmp212_ = vala_method_get_coroutine (m);
                                          if (!_tmp212_) {
                                                _tmp211_ = TRUE;
                                          } else {
                                                ValaParameterDirection _tmp213_;
                                                _tmp213_ = vala_parameter_get_direction (param);
                                                _tmp211_ = _tmp213_ == VALA_PARAMETER_DIRECTION_IN;
                                          }
                                          if (_tmp211_) {
                                                ValaParameterDirection _tmp214_;
                                                _tmp214_ = vala_parameter_get_direction (param);
                                                if (_tmp214_ != VALA_PARAMETER_DIRECTION_IN) {
                                                      ValaCCodeIdentifier* _tmp215_ = NULL;
                                                      ValaCCodeIdentifier* _tmp216_;
                                                      ValaCCodeUnaryExpression* _tmp217_ = NULL;
                                                      ValaCCodeUnaryExpression* _tmp218_;
                                                      vala_ccode_fragment_append (out_prefragment, (ValaCCodeNode*) _cdecl_);
                                                      _tmp215_ = vala_ccode_identifier_new (length_cname);
                                                      _tmp216_ = _tmp215_;
                                                      _tmp217_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp216_);
                                                      _tmp218_ = _tmp217_;
                                                      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp218_);
                                                      _vala_ccode_node_unref0 (_tmp218_);
                                                      _vala_ccode_node_unref0 (_tmp216_);
                                                } else {
                                                      ValaCCodeIdentifier* _tmp219_ = NULL;
                                                      ValaCCodeIdentifier* _tmp220_;
                                                      vala_ccode_fragment_append (in_prefragment, (ValaCCodeNode*) _cdecl_);
                                                      _tmp219_ = vala_ccode_identifier_new (length_cname);
                                                      _tmp220_ = _tmp219_;
                                                      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp220_);
                                                      _vala_ccode_node_unref0 (_tmp220_);
                                                }
                                          } else {
                                                ValaCCodeIdentifier* _tmp221_ = NULL;
                                                ValaCCodeIdentifier* _tmp222_;
                                                ValaCCodeUnaryExpression* _tmp223_ = NULL;
                                                ValaCCodeUnaryExpression* _tmp224_;
                                                vala_ccode_fragment_append (out_prefragment, (ValaCCodeNode*) _cdecl_);
                                                _tmp221_ = vala_ccode_identifier_new (length_cname);
                                                _tmp222_ = _tmp221_;
                                                _tmp223_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp222_);
                                                _tmp224_ = _tmp223_;
                                                vala_ccode_function_call_add_argument (finish_ccall, (ValaCCodeExpression*) _tmp224_);
                                                _vala_ccode_node_unref0 (_tmp224_);
                                                _vala_ccode_node_unref0 (_tmp222_);
                                          }
                                          _g_free0 (length_cname);
                                    }
                              }
                        }
                        _vala_code_node_unref0 (array_type);
                  }
                  _tmp225_ = vala_parameter_get_direction (param);
                  if (_tmp225_ == VALA_PARAMETER_DIRECTION_IN) {
                        ValaDataType* _tmp226_ = NULL;
                        gchar* _tmp227_ = NULL;
                        gchar* _tmp228_;
                        gchar* _tmp229_;
                        const gchar* _tmp230_ = NULL;
                        ValaCCodeIdentifier* _tmp231_ = NULL;
                        ValaCCodeIdentifier* target;
                        ValaDataType* _tmp232_ = NULL;
                        ValaCCodeIdentifier* _tmp233_ = NULL;
                        ValaCCodeIdentifier* _tmp234_;
                        ValaCCodeExpression* _tmp235_ = NULL;
                        ValaCCodeExpression* _tmp236_;
                        ValaCCodeExpression* expr;
                        ValaCCodeAssignment* _tmp237_ = NULL;
                        ValaCCodeAssignment* _tmp238_;
                        ValaCCodeExpressionStatement* _tmp239_ = NULL;
                        ValaCCodeExpressionStatement* _tmp240_;
                        _tmp226_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp227_ = vala_dbus_module_get_type_signature (_tmp226_);
                        _tmp228_ = _tmp227_;
                        _tmp229_ = g_strconcat (type_signature, _tmp228_, NULL);
                        _g_free0 (type_signature);
                        type_signature = _tmp229_;
                        _g_free0 (_tmp228_);
                        _tmp230_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp231_ = vala_ccode_identifier_new (_tmp230_);
                        target = _tmp231_;
                        _tmp232_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp233_ = vala_ccode_identifier_new ("iter");
                        _tmp234_ = _tmp233_;
                        _tmp235_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, in_prefragment, _tmp232_, (ValaCCodeExpression*) _tmp234_, (ValaCCodeExpression*) target);
                        _tmp236_ = _tmp235_;
                        _vala_ccode_node_unref0 (_tmp234_);
                        expr = _tmp236_;
                        _tmp237_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp238_ = _tmp237_;
                        _tmp239_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp238_);
                        _tmp240_ = _tmp239_;
                        vala_ccode_fragment_append (in_prefragment, (ValaCCodeNode*) _tmp240_);
                        _vala_ccode_node_unref0 (_tmp240_);
                        _vala_ccode_node_unref0 (_tmp238_);
                        _vala_ccode_node_unref0 (expr);
                        _vala_ccode_node_unref0 (target);
                  } else {
                        ValaDataType* _tmp241_ = NULL;
                        ValaCCodeIdentifier* _tmp242_ = NULL;
                        ValaCCodeIdentifier* _tmp243_;
                        const gchar* _tmp244_ = NULL;
                        ValaCCodeIdentifier* _tmp245_ = NULL;
                        ValaCCodeIdentifier* _tmp246_;
                        _tmp241_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp242_ = vala_ccode_identifier_new ("iter");
                        _tmp243_ = _tmp242_;
                        _tmp244_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp245_ = vala_ccode_identifier_new (_tmp244_);
                        _tmp246_ = _tmp245_;
                        vala_dbus_module_write_expression ((ValaDBusModule*) self, out_postfragment, _tmp241_, (ValaCCodeExpression*) _tmp243_, (ValaCCodeExpression*) _tmp246_);
                        _vala_ccode_node_unref0 (_tmp246_);
                        _vala_ccode_node_unref0 (_tmp243_);
                  }
                  _tmp247_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, owned_type);
                  if (_tmp247_) {
                        const gchar* _tmp248_ = NULL;
                        ValaLocalVariable* _tmp249_ = NULL;
                        ValaLocalVariable* local;
                        ValaCCodeExpression* _tmp250_ = NULL;
                        ValaCCodeExpression* _tmp251_;
                        ValaCCodeExpressionStatement* _tmp252_ = NULL;
                        ValaCCodeExpressionStatement* _tmp253_;
                        ValaCCodeExpressionStatement* stmt;
                        ValaParameterDirection _tmp254_;
                        _tmp248_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp249_ = vala_local_variable_new (owned_type, _tmp248_, NULL, NULL);
                        local = _tmp249_;
                        _tmp250_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, local);
                        _tmp251_ = _tmp250_;
                        _tmp252_ = vala_ccode_expression_statement_new (_tmp251_);
                        _tmp253_ = _tmp252_;
                        _vala_ccode_node_unref0 (_tmp251_);
                        stmt = _tmp253_;
                        _tmp254_ = vala_parameter_get_direction (param);
                        if (_tmp254_ == VALA_PARAMETER_DIRECTION_IN) {
                              vala_ccode_fragment_append (in_postfragment, (ValaCCodeNode*) stmt);
                        } else {
                              vala_ccode_fragment_append (out_postfragment, (ValaCCodeNode*) stmt);
                        }
                        _vala_ccode_node_unref0 (stmt);
                        _vala_code_node_unref0 (local);
                  }
                  _vala_code_node_unref0 (owned_type);
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp255_ = g_strdup_printf ("\"%s\"", type_signature);
      _tmp256_ = _tmp255_;
      _tmp257_ = vala_ccode_constant_new (_tmp256_);
      _tmp258_ = _tmp257_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) _tmp258_);
      _vala_ccode_node_unref0 (_tmp258_);
      _g_free0 (_tmp256_);
      _tmp259_ = vala_method_get_return_type (m);
      if (!VALA_IS_VOID_TYPE (_tmp259_)) {
            ValaDataType* _tmp260_ = NULL;
            gchar* _tmp261_ = NULL;
            gchar* _tmp262_;
            gboolean _tmp263_;
            _tmp260_ = vala_method_get_return_type (m);
            _tmp261_ = vala_dbus_module_get_type_signature (_tmp260_);
            _tmp262_ = _tmp261_;
            _tmp263_ = _tmp262_ == NULL;
            _g_free0 (_tmp262_);
            if (_tmp263_) {
                  ValaDataType* _tmp264_ = NULL;
                  ValaSourceReference* _tmp265_ = NULL;
                  ValaDataType* _tmp266_ = NULL;
                  gchar* _tmp267_ = NULL;
                  gchar* _tmp268_;
                  gchar* _tmp269_ = NULL;
                  gchar* _tmp270_;
                  _tmp264_ = vala_method_get_return_type (m);
                  _tmp265_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp264_);
                  _tmp266_ = vala_method_get_return_type (m);
                  _tmp267_ = vala_code_node_to_string ((ValaCodeNode*) _tmp266_);
                  _tmp268_ = _tmp267_;
                  _tmp269_ = g_strdup_printf ("D-Bus serialization of type `%s' is not supported", _tmp268_);
                  _tmp270_ = _tmp269_;
                  vala_report_error (_tmp265_, _tmp270_);
                  _g_free0 (_tmp270_);
                  _g_free0 (_tmp268_);
            } else {
                  ValaDataType* _tmp271_ = NULL;
                  gboolean _tmp272_;
                  _tmp271_ = vala_method_get_return_type (m);
                  _tmp272_ = vala_data_type_is_real_non_null_struct_type (_tmp271_);
                  if (_tmp272_) {
                        ValaDataType* _tmp273_ = NULL;
                        gchar* _tmp274_ = NULL;
                        gchar* _tmp275_;
                        ValaCCodeDeclaration* _tmp276_ = NULL;
                        ValaDataType* _tmp277_ = NULL;
                        ValaCCodeExpression* _tmp278_ = NULL;
                        ValaCCodeExpression* _tmp279_;
                        ValaCCodeVariableDeclarator* _tmp280_ = NULL;
                        ValaCCodeVariableDeclarator* _tmp281_;
                        gboolean _tmp282_;
                        ValaDataType* _tmp291_ = NULL;
                        ValaCCodeIdentifier* _tmp292_ = NULL;
                        ValaCCodeIdentifier* _tmp293_;
                        ValaCCodeIdentifier* _tmp294_ = NULL;
                        ValaCCodeIdentifier* _tmp295_;
                        ValaDataType* _tmp296_ = NULL;
                        gboolean _tmp297_;
                        ValaCCodeExpressionStatement* _tmp311_ = NULL;
                        ValaCCodeExpressionStatement* _tmp312_;
                        gboolean _tmp313_;
                        _tmp273_ = vala_method_get_return_type (m);
                        _tmp274_ = vala_data_type_get_cname (_tmp273_);
                        _tmp275_ = _tmp274_;
                        _tmp276_ = vala_ccode_declaration_new (_tmp275_);
                        _vala_ccode_node_unref0 (_cdecl_);
                        _cdecl_ = _tmp276_;
                        _g_free0 (_tmp275_);
                        _tmp277_ = vala_method_get_return_type (m);
                        _tmp278_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp277_, TRUE);
                        _tmp279_ = _tmp278_;
                        _tmp280_ = vala_ccode_variable_declarator_new_zero ("result", _tmp279_, NULL);
                        _tmp281_ = _tmp280_;
                        vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp281_);
                        _vala_ccode_node_unref0 (_tmp281_);
                        _vala_ccode_node_unref0 (_tmp279_);
                        vala_ccode_fragment_append (out_prefragment, (ValaCCodeNode*) _cdecl_);
                        _tmp282_ = vala_method_get_coroutine (m);
                        if (!_tmp282_) {
                              ValaCCodeIdentifier* _tmp283_ = NULL;
                              ValaCCodeIdentifier* _tmp284_;
                              ValaCCodeUnaryExpression* _tmp285_ = NULL;
                              ValaCCodeUnaryExpression* _tmp286_;
                              _tmp283_ = vala_ccode_identifier_new ("result");
                              _tmp284_ = _tmp283_;
                              _tmp285_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp284_);
                              _tmp286_ = _tmp285_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp286_);
                              _vala_ccode_node_unref0 (_tmp286_);
                              _vala_ccode_node_unref0 (_tmp284_);
                        } else {
                              ValaCCodeIdentifier* _tmp287_ = NULL;
                              ValaCCodeIdentifier* _tmp288_;
                              ValaCCodeUnaryExpression* _tmp289_ = NULL;
                              ValaCCodeUnaryExpression* _tmp290_;
                              _tmp287_ = vala_ccode_identifier_new ("result");
                              _tmp288_ = _tmp287_;
                              _tmp289_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp288_);
                              _tmp290_ = _tmp289_;
                              vala_ccode_function_call_add_argument (finish_ccall, (ValaCCodeExpression*) _tmp290_);
                              _vala_ccode_node_unref0 (_tmp290_);
                              _vala_ccode_node_unref0 (_tmp288_);
                        }
                        _tmp291_ = vala_method_get_return_type (m);
                        _tmp292_ = vala_ccode_identifier_new ("iter");
                        _tmp293_ = _tmp292_;
                        _tmp294_ = vala_ccode_identifier_new ("result");
                        _tmp295_ = _tmp294_;
                        vala_dbus_module_write_expression ((ValaDBusModule*) self, out_postfragment, _tmp291_, (ValaCCodeExpression*) _tmp293_, (ValaCCodeExpression*) _tmp295_);
                        _vala_ccode_node_unref0 (_tmp295_);
                        _vala_ccode_node_unref0 (_tmp293_);
                        _tmp296_ = vala_method_get_return_type (m);
                        _tmp297_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp296_);
                        if (_tmp297_) {
                              ValaDataType* _tmp298_ = NULL;
                              ValaLocalVariable* _tmp299_ = NULL;
                              ValaLocalVariable* local;
                              ValaMemberAccess* _tmp300_ = NULL;
                              ValaMemberAccess* ma;
                              ValaDataType* _tmp301_ = NULL;
                              ValaDataType* _tmp302_ = NULL;
                              ValaDataType* _tmp303_;
                              ValaCCodeIdentifier* _tmp304_ = NULL;
                              ValaCCodeIdentifier* _tmp305_;
                              ValaDataType* _tmp306_ = NULL;
                              ValaCCodeExpression* _tmp307_ = NULL;
                              ValaCCodeExpression* _tmp308_;
                              ValaCCodeExpressionStatement* _tmp309_ = NULL;
                              ValaCCodeExpressionStatement* _tmp310_;
                              _tmp298_ = vala_method_get_return_type (m);
                              _tmp299_ = vala_local_variable_new (_tmp298_, " result", NULL, NULL);
                              local = _tmp299_;
                              _tmp300_ = vala_member_access_new_simple ("result", NULL);
                              ma = _tmp300_;
                              vala_expression_set_symbol_reference ((ValaExpression*) ma, (ValaSymbol*) local);
                              _tmp301_ = vala_method_get_return_type (m);
                              _tmp302_ = vala_data_type_copy (_tmp301_);
                              _tmp303_ = _tmp302_;
                              vala_expression_set_value_type ((ValaExpression*) ma, _tmp303_);
                              _vala_code_node_unref0 (_tmp303_);
                              vala_code_visitor_visit_member_access ((ValaCodeVisitor*) self, ma);
                              _tmp304_ = vala_ccode_identifier_new ("result");
                              _tmp305_ = _tmp304_;
                              _tmp306_ = vala_method_get_return_type (m);
                              _tmp307_ = vala_ccode_base_module_get_unref_expression ((ValaCCodeBaseModule*) self, (ValaCCodeExpression*) _tmp305_, _tmp306_, (ValaExpression*) ma, FALSE);
                              _tmp308_ = _tmp307_;
                              _tmp309_ = vala_ccode_expression_statement_new (_tmp308_);
                              _tmp310_ = _tmp309_;
                              vala_ccode_fragment_append (out_postfragment, (ValaCCodeNode*) _tmp310_);
                              _vala_ccode_node_unref0 (_tmp310_);
                              _vala_ccode_node_unref0 (_tmp308_);
                              _vala_ccode_node_unref0 (_tmp305_);
                              _vala_code_node_unref0 (ma);
                              _vala_code_node_unref0 (local);
                        }
                        _tmp311_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                        _tmp312_ = _tmp311_;
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp312_);
                        _vala_ccode_node_unref0 (_tmp312_);
                        _tmp313_ = vala_method_get_coroutine (m);
                        if (_tmp313_) {
                              ValaCCodeExpressionStatement* _tmp314_ = NULL;
                              ValaCCodeExpressionStatement* _tmp315_;
                              _tmp314_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) finish_ccall);
                              _tmp315_ = _tmp314_;
                              vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _tmp315_);
                              _vala_ccode_node_unref0 (_tmp315_);
                        }
                  } else {
                        ValaDataType* _tmp316_ = NULL;
                        gchar* _tmp317_ = NULL;
                        gchar* _tmp318_;
                        ValaCCodeDeclaration* _tmp319_ = NULL;
                        ValaCCodeVariableDeclarator* _tmp320_ = NULL;
                        ValaCCodeVariableDeclarator* _tmp321_;
                        gboolean _tmp322_;
                        ValaDataType* _tmp337_ = NULL;
                        ValaDataType* _tmp357_ = NULL;
                        ValaCCodeIdentifier* _tmp358_ = NULL;
                        ValaCCodeIdentifier* _tmp359_;
                        ValaCCodeIdentifier* _tmp360_ = NULL;
                        ValaCCodeIdentifier* _tmp361_;
                        ValaDataType* _tmp362_ = NULL;
                        gboolean _tmp363_;
                        _tmp316_ = vala_method_get_return_type (m);
                        _tmp317_ = vala_data_type_get_cname (_tmp316_);
                        _tmp318_ = _tmp317_;
                        _tmp319_ = vala_ccode_declaration_new (_tmp318_);
                        _vala_ccode_node_unref0 (_cdecl_);
                        _cdecl_ = _tmp319_;
                        _g_free0 (_tmp318_);
                        _tmp320_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
                        _tmp321_ = _tmp320_;
                        vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp321_);
                        _vala_ccode_node_unref0 (_tmp321_);
                        vala_ccode_fragment_append (out_prefragment, (ValaCCodeNode*) _cdecl_);
                        _tmp322_ = vala_method_get_coroutine (m);
                        if (!_tmp322_) {
                              ValaCCodeIdentifier* _tmp323_ = NULL;
                              ValaCCodeIdentifier* _tmp324_;
                              ValaCCodeAssignment* _tmp325_ = NULL;
                              ValaCCodeAssignment* _tmp326_;
                              ValaCCodeExpressionStatement* _tmp327_ = NULL;
                              ValaCCodeExpressionStatement* _tmp328_;
                              _tmp323_ = vala_ccode_identifier_new ("result");
                              _tmp324_ = _tmp323_;
                              _tmp325_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp324_, (ValaCCodeExpression*) ccall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                              _tmp326_ = _tmp325_;
                              _tmp327_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp326_);
                              _tmp328_ = _tmp327_;
                              vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp328_);
                              _vala_ccode_node_unref0 (_tmp328_);
                              _vala_ccode_node_unref0 (_tmp326_);
                              _vala_ccode_node_unref0 (_tmp324_);
                        } else {
                              ValaCCodeExpressionStatement* _tmp329_ = NULL;
                              ValaCCodeExpressionStatement* _tmp330_;
                              ValaCCodeIdentifier* _tmp331_ = NULL;
                              ValaCCodeIdentifier* _tmp332_;
                              ValaCCodeAssignment* _tmp333_ = NULL;
                              ValaCCodeAssignment* _tmp334_;
                              ValaCCodeExpressionStatement* _tmp335_ = NULL;
                              ValaCCodeExpressionStatement* _tmp336_;
                              _tmp329_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                              _tmp330_ = _tmp329_;
                              vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp330_);
                              _vala_ccode_node_unref0 (_tmp330_);
                              _tmp331_ = vala_ccode_identifier_new ("result");
                              _tmp332_ = _tmp331_;
                              _tmp333_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp332_, (ValaCCodeExpression*) finish_ccall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                              _tmp334_ = _tmp333_;
                              _tmp335_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp334_);
                              _tmp336_ = _tmp335_;
                              vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _tmp336_);
                              _vala_ccode_node_unref0 (_tmp336_);
                              _vala_ccode_node_unref0 (_tmp334_);
                              _vala_ccode_node_unref0 (_tmp332_);
                        }
                        _tmp337_ = vala_method_get_return_type (m);
                        if (VALA_IS_ARRAY_TYPE (_tmp337_)) {
                              ValaDataType* _tmp338_ = NULL;
                              ValaArrayType* _tmp339_;
                              ValaArrayType* array_type;
                              _tmp338_ = vala_method_get_return_type (m);
                              _tmp339_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp338_));
                              array_type = _tmp339_;
                              {
                                    gint dim;
                                    dim = 1;
                                    {
                                          gboolean _tmp340_;
                                          _tmp340_ = TRUE;
                                          while (TRUE) {
                                                gint _tmp341_;
                                                gchar* _tmp342_ = NULL;
                                                gchar* length_cname;
                                                ValaCCodeDeclaration* _tmp343_ = NULL;
                                                ValaCCodeConstant* _tmp344_ = NULL;
                                                ValaCCodeConstant* _tmp345_;
                                                ValaCCodeVariableDeclarator* _tmp346_ = NULL;
                                                ValaCCodeVariableDeclarator* _tmp347_;
                                                gboolean _tmp348_;
                                                if (!_tmp340_) {
                                                      dim++;
                                                }
                                                _tmp340_ = FALSE;
                                                _tmp341_ = vala_array_type_get_rank (array_type);
                                                if (!(dim <= _tmp341_)) {
                                                      break;
                                                }
                                                _tmp342_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", dim);
                                                length_cname = _tmp342_;
                                                _tmp343_ = vala_ccode_declaration_new ("int");
                                                _vala_ccode_node_unref0 (_cdecl_);
                                                _cdecl_ = _tmp343_;
                                                _tmp344_ = vala_ccode_constant_new ("0");
                                                _tmp345_ = _tmp344_;
                                                _tmp346_ = vala_ccode_variable_declarator_new (length_cname, (ValaCCodeExpression*) _tmp345_, NULL);
                                                _tmp347_ = _tmp346_;
                                                vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp347_);
                                                _vala_ccode_node_unref0 (_tmp347_);
                                                _vala_ccode_node_unref0 (_tmp345_);
                                                vala_ccode_fragment_append (out_prefragment, (ValaCCodeNode*) _cdecl_);
                                                _tmp348_ = vala_method_get_coroutine (m);
                                                if (!_tmp348_) {
                                                      ValaCCodeIdentifier* _tmp349_ = NULL;
                                                      ValaCCodeIdentifier* _tmp350_;
                                                      ValaCCodeUnaryExpression* _tmp351_ = NULL;
                                                      ValaCCodeUnaryExpression* _tmp352_;
                                                      _tmp349_ = vala_ccode_identifier_new (length_cname);
                                                      _tmp350_ = _tmp349_;
                                                      _tmp351_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp350_);
                                                      _tmp352_ = _tmp351_;
                                                      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp352_);
                                                      _vala_ccode_node_unref0 (_tmp352_);
                                                      _vala_ccode_node_unref0 (_tmp350_);
                                                } else {
                                                      ValaCCodeIdentifier* _tmp353_ = NULL;
                                                      ValaCCodeIdentifier* _tmp354_;
                                                      ValaCCodeUnaryExpression* _tmp355_ = NULL;
                                                      ValaCCodeUnaryExpression* _tmp356_;
                                                      _tmp353_ = vala_ccode_identifier_new (length_cname);
                                                      _tmp354_ = _tmp353_;
                                                      _tmp355_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp354_);
                                                      _tmp356_ = _tmp355_;
                                                      vala_ccode_function_call_add_argument (finish_ccall, (ValaCCodeExpression*) _tmp356_);
                                                      _vala_ccode_node_unref0 (_tmp356_);
                                                      _vala_ccode_node_unref0 (_tmp354_);
                                                }
                                                _g_free0 (length_cname);
                                          }
                                    }
                              }
                              _vala_code_node_unref0 (array_type);
                        }
                        _tmp357_ = vala_method_get_return_type (m);
                        _tmp358_ = vala_ccode_identifier_new ("iter");
                        _tmp359_ = _tmp358_;
                        _tmp360_ = vala_ccode_identifier_new ("result");
                        _tmp361_ = _tmp360_;
                        vala_dbus_module_write_expression ((ValaDBusModule*) self, out_postfragment, _tmp357_, (ValaCCodeExpression*) _tmp359_, (ValaCCodeExpression*) _tmp361_);
                        _vala_ccode_node_unref0 (_tmp361_);
                        _vala_ccode_node_unref0 (_tmp359_);
                        _tmp362_ = vala_method_get_return_type (m);
                        _tmp363_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp362_);
                        if (_tmp363_) {
                              ValaDataType* _tmp364_ = NULL;
                              ValaLocalVariable* _tmp365_ = NULL;
                              ValaLocalVariable* local;
                              ValaMemberAccess* _tmp366_ = NULL;
                              ValaMemberAccess* ma;
                              ValaDataType* _tmp367_ = NULL;
                              ValaDataType* _tmp368_ = NULL;
                              ValaDataType* _tmp369_;
                              ValaCCodeIdentifier* _tmp370_ = NULL;
                              ValaCCodeIdentifier* _tmp371_;
                              ValaDataType* _tmp372_ = NULL;
                              ValaCCodeExpression* _tmp373_ = NULL;
                              ValaCCodeExpression* _tmp374_;
                              ValaCCodeExpressionStatement* _tmp375_ = NULL;
                              ValaCCodeExpressionStatement* _tmp376_;
                              _tmp364_ = vala_method_get_return_type (m);
                              _tmp365_ = vala_local_variable_new (_tmp364_, " result", NULL, NULL);
                              local = _tmp365_;
                              _tmp366_ = vala_member_access_new_simple ("result", NULL);
                              ma = _tmp366_;
                              vala_expression_set_symbol_reference ((ValaExpression*) ma, (ValaSymbol*) local);
                              _tmp367_ = vala_method_get_return_type (m);
                              _tmp368_ = vala_data_type_copy (_tmp367_);
                              _tmp369_ = _tmp368_;
                              vala_expression_set_value_type ((ValaExpression*) ma, _tmp369_);
                              _vala_code_node_unref0 (_tmp369_);
                              vala_code_visitor_visit_member_access ((ValaCodeVisitor*) self, ma);
                              _tmp370_ = vala_ccode_identifier_new ("result");
                              _tmp371_ = _tmp370_;
                              _tmp372_ = vala_method_get_return_type (m);
                              _tmp373_ = vala_ccode_base_module_get_unref_expression ((ValaCCodeBaseModule*) self, (ValaCCodeExpression*) _tmp371_, _tmp372_, (ValaExpression*) ma, FALSE);
                              _tmp374_ = _tmp373_;
                              _tmp375_ = vala_ccode_expression_statement_new (_tmp374_);
                              _tmp376_ = _tmp375_;
                              vala_ccode_fragment_append (out_postfragment, (ValaCCodeNode*) _tmp376_);
                              _vala_ccode_node_unref0 (_tmp376_);
                              _vala_ccode_node_unref0 (_tmp374_);
                              _vala_ccode_node_unref0 (_tmp371_);
                              _vala_code_node_unref0 (ma);
                              _vala_code_node_unref0 (local);
                        }
                  }
            }
      } else {
            ValaCCodeExpressionStatement* _tmp377_ = NULL;
            ValaCCodeExpressionStatement* _tmp378_;
            gboolean _tmp379_;
            _tmp377_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
            _tmp378_ = _tmp377_;
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp378_);
            _vala_ccode_node_unref0 (_tmp378_);
            _tmp379_ = vala_method_get_coroutine (m);
            if (_tmp379_) {
                  ValaCCodeExpressionStatement* _tmp380_ = NULL;
                  ValaCCodeExpressionStatement* _tmp381_;
                  _tmp380_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) finish_ccall);
                  _tmp381_ = _tmp380_;
                  vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _tmp381_);
                  _vala_ccode_node_unref0 (_tmp381_);
            }
      }
      _tmp382_ = vala_method_get_coroutine (m);
      if (_tmp382_) {
            gchar* _tmp383_;
            gchar* _tmp384_;
            ValaCCodeIdentifier* _tmp385_ = NULL;
            ValaCCodeIdentifier* _tmp386_;
            ValaCCodeCastExpression* _tmp387_ = NULL;
            ValaCCodeCastExpression* _tmp388_;
            ValaCCodeIdentifier* _tmp389_ = NULL;
            ValaCCodeIdentifier* _tmp390_;
            ValaCCodeFunctionCall* _tmp391_ = NULL;
            ValaCCodeFunctionCall* _tmp392_;
            ValaCCodeFunctionCall* new_call;
            ValaCCodeIdentifier* _tmp393_ = NULL;
            ValaCCodeIdentifier* _tmp394_;
            ValaCCodeConstant* _tmp395_ = NULL;
            ValaCCodeConstant* _tmp396_;
            ValaCCodeDeclaration* _tmp397_ = NULL;
            ValaCCodeVariableDeclarator* _tmp398_ = NULL;
            ValaCCodeVariableDeclarator* _tmp399_;
            ValaCCodeIdentifier* _tmp400_ = NULL;
            ValaCCodeIdentifier* _tmp401_;
            ValaCCodeFunctionCall* _tmp402_ = NULL;
            ValaCCodeFunctionCall* _tmp403_;
            ValaCCodeFunctionCall* ref_call;
            ValaCCodeIdentifier* _tmp404_ = NULL;
            ValaCCodeIdentifier* _tmp405_;
            ValaCCodeIdentifier* _tmp406_ = NULL;
            ValaCCodeIdentifier* _tmp407_;
            ValaCCodeAssignment* _tmp408_ = NULL;
            ValaCCodeAssignment* _tmp409_;
            ValaCCodeExpressionStatement* _tmp410_ = NULL;
            ValaCCodeExpressionStatement* _tmp411_;
            ValaCCodeIdentifier* _tmp412_ = NULL;
            ValaCCodeIdentifier* _tmp413_;
            ValaCCodeFunctionCall* _tmp414_ = NULL;
            ValaCCodeIdentifier* _tmp415_ = NULL;
            ValaCCodeIdentifier* _tmp416_;
            ValaCCodeIdentifier* _tmp417_ = NULL;
            ValaCCodeIdentifier* _tmp418_;
            ValaCCodeAssignment* _tmp419_ = NULL;
            ValaCCodeAssignment* _tmp420_;
            ValaCCodeExpressionStatement* _tmp421_ = NULL;
            ValaCCodeExpressionStatement* _tmp422_;
            ValaCCodeIdentifier* _tmp423_ = NULL;
            ValaCCodeIdentifier* _tmp424_;
            _tmp383_ = g_strconcat (wrapper_name, "_ready", NULL);
            _tmp384_ = _tmp383_;
            _tmp385_ = vala_ccode_identifier_new (_tmp384_);
            _tmp386_ = _tmp385_;
            _tmp387_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp386_, "GAsyncReadyCallback");
            _tmp388_ = _tmp387_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp388_);
            _vala_ccode_node_unref0 (_tmp388_);
            _vala_ccode_node_unref0 (_tmp386_);
            _g_free0 (_tmp384_);
            _tmp389_ = vala_ccode_identifier_new ("g_new0");
            _tmp390_ = _tmp389_;
            _tmp391_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp390_);
            _tmp392_ = _tmp391_;
            _vala_ccode_node_unref0 (_tmp390_);
            new_call = _tmp392_;
            _tmp393_ = vala_ccode_identifier_new ("gpointer");
            _tmp394_ = _tmp393_;
            vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp394_);
            _vala_ccode_node_unref0 (_tmp394_);
            _tmp395_ = vala_ccode_constant_new ("2");
            _tmp396_ = _tmp395_;
            vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp396_);
            _vala_ccode_node_unref0 (_tmp396_);
            _tmp397_ = vala_ccode_declaration_new ("gpointer *");
            _vala_ccode_node_unref0 (_cdecl_);
            _cdecl_ = _tmp397_;
            _tmp398_ = vala_ccode_variable_declarator_new ("_user_data_", (ValaCCodeExpression*) new_call, NULL);
            _tmp399_ = _tmp398_;
            vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp399_);
            _vala_ccode_node_unref0 (_tmp399_);
            vala_ccode_fragment_append (in_prefragment, (ValaCCodeNode*) _cdecl_);
            _tmp400_ = vala_ccode_identifier_new ("dbus_connection_ref");
            _tmp401_ = _tmp400_;
            _tmp402_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp401_);
            _tmp403_ = _tmp402_;
            _vala_ccode_node_unref0 (_tmp401_);
            ref_call = _tmp403_;
            _tmp404_ = vala_ccode_identifier_new ("connection");
            _tmp405_ = _tmp404_;
            vala_ccode_function_call_add_argument (ref_call, (ValaCCodeExpression*) _tmp405_);
            _vala_ccode_node_unref0 (_tmp405_);
            _tmp406_ = vala_ccode_identifier_new ("_user_data_[0]");
            _tmp407_ = _tmp406_;
            _tmp408_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp407_, (ValaCCodeExpression*) ref_call, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
            _tmp409_ = _tmp408_;
            _tmp410_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp409_);
            _tmp411_ = _tmp410_;
            vala_ccode_fragment_append (in_prefragment, (ValaCCodeNode*) _tmp411_);
            _vala_ccode_node_unref0 (_tmp411_);
            _vala_ccode_node_unref0 (_tmp409_);
            _vala_ccode_node_unref0 (_tmp407_);
            _tmp412_ = vala_ccode_identifier_new ("dbus_message_ref");
            _tmp413_ = _tmp412_;
            _tmp414_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp413_);
            _vala_ccode_node_unref0 (ref_call);
            ref_call = _tmp414_;
            _vala_ccode_node_unref0 (_tmp413_);
            _tmp415_ = vala_ccode_identifier_new ("message");
            _tmp416_ = _tmp415_;
            vala_ccode_function_call_add_argument (ref_call, (ValaCCodeExpression*) _tmp416_);
            _vala_ccode_node_unref0 (_tmp416_);
            _tmp417_ = vala_ccode_identifier_new ("_user_data_[1]");
            _tmp418_ = _tmp417_;
            _tmp419_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp418_, (ValaCCodeExpression*) ref_call, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
            _tmp420_ = _tmp419_;
            _tmp421_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp420_);
            _tmp422_ = _tmp421_;
            vala_ccode_fragment_append (in_prefragment, (ValaCCodeNode*) _tmp422_);
            _vala_ccode_node_unref0 (_tmp422_);
            _vala_ccode_node_unref0 (_tmp420_);
            _vala_ccode_node_unref0 (_tmp418_);
            _tmp423_ = vala_ccode_identifier_new ("_user_data_");
            _tmp424_ = _tmp423_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp424_);
            _vala_ccode_node_unref0 (_tmp424_);
            _vala_ccode_node_unref0 (ref_call);
            _vala_ccode_node_unref0 (new_call);
      }
      _tmp425_ = vala_code_node_get_error_types ((ValaCodeNode*) m);
      _tmp426_ = _tmp425_;
      _tmp427_ = vala_collection_get_size ((ValaCollection*) _tmp426_);
      _tmp428_ = _tmp427_ > 0;
      _vala_iterable_unref0 (_tmp426_);
      if (_tmp428_) {
            gboolean _tmp429_;
            ValaCCodeBlock* _tmp438_ = NULL;
            ValaCCodeBlock* error_block;
            ValaList* _tmp439_ = NULL;
            ValaList* _tmp440_;
            ValaCCodeIdentifier* _tmp441_ = NULL;
            ValaCCodeIdentifier* _tmp442_;
            ValaCCodeIdentifier* _tmp443_ = NULL;
            ValaCCodeIdentifier* _tmp444_;
            ValaCCodeIdentifier* _tmp445_ = NULL;
            ValaCCodeIdentifier* _tmp446_;
            gboolean _tmp447_;
            _tmp429_ = vala_method_get_coroutine (m);
            if (_tmp429_) {
                  ValaCCodeIdentifier* _tmp430_ = NULL;
                  ValaCCodeIdentifier* _tmp431_;
                  ValaCCodeUnaryExpression* _tmp432_ = NULL;
                  ValaCCodeUnaryExpression* _tmp433_;
                  _tmp430_ = vala_ccode_identifier_new ("error");
                  _tmp431_ = _tmp430_;
                  _tmp432_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp431_);
                  _tmp433_ = _tmp432_;
                  vala_ccode_function_call_add_argument (finish_ccall, (ValaCCodeExpression*) _tmp433_);
                  _vala_ccode_node_unref0 (_tmp433_);
                  _vala_ccode_node_unref0 (_tmp431_);
            } else {
                  ValaCCodeIdentifier* _tmp434_ = NULL;
                  ValaCCodeIdentifier* _tmp435_;
                  ValaCCodeUnaryExpression* _tmp436_ = NULL;
                  ValaCCodeUnaryExpression* _tmp437_;
                  _tmp434_ = vala_ccode_identifier_new ("error");
                  _tmp435_ = _tmp434_;
                  _tmp436_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp435_);
                  _tmp437_ = _tmp436_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp437_);
                  _vala_ccode_node_unref0 (_tmp437_);
                  _vala_ccode_node_unref0 (_tmp435_);
            }
            _tmp438_ = vala_ccode_block_new ();
            error_block = _tmp438_;
            _tmp439_ = vala_code_node_get_error_types ((ValaCodeNode*) m);
            _tmp440_ = _tmp439_;
            _tmp441_ = vala_ccode_identifier_new ("error");
            _tmp442_ = _tmp441_;
            _tmp443_ = vala_ccode_identifier_new ("message");
            _tmp444_ = _tmp443_;
            _tmp445_ = vala_ccode_identifier_new ("reply");
            _tmp446_ = _tmp445_;
            vala_dbus_server_module_generate_server_error_cases (self, error_block, _tmp440_, (ValaCCodeExpression*) _tmp442_, (ValaCCodeExpression*) _tmp444_, (ValaCCodeExpression*) _tmp446_);
            _vala_ccode_node_unref0 (_tmp446_);
            _vala_ccode_node_unref0 (_tmp444_);
            _vala_ccode_node_unref0 (_tmp442_);
            _vala_iterable_unref0 (_tmp440_);
            vala_dbus_server_module_send_reply (self, error_block);
            _tmp447_ = vala_method_get_coroutine (m);
            if (_tmp447_) {
                  ValaCCodeReturnStatement* _tmp448_ = NULL;
                  ValaCCodeReturnStatement* _tmp449_;
                  ValaCCodeIdentifier* _tmp450_ = NULL;
                  ValaCCodeIdentifier* _tmp451_;
                  ValaCCodeIfStatement* _tmp452_ = NULL;
                  ValaCCodeIfStatement* _tmp453_;
                  _tmp448_ = vala_ccode_return_statement_new (NULL);
                  _tmp449_ = _tmp448_;
                  vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp449_);
                  _vala_ccode_node_unref0 (_tmp449_);
                  _tmp450_ = vala_ccode_identifier_new ("error");
                  _tmp451_ = _tmp450_;
                  _tmp452_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp451_, (ValaCCodeStatement*) error_block, NULL);
                  _tmp453_ = _tmp452_;
                  vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _tmp453_);
                  _vala_ccode_node_unref0 (_tmp453_);
                  _vala_ccode_node_unref0 (_tmp451_);
            } else {
                  ValaCCodeIdentifier* _tmp454_ = NULL;
                  ValaCCodeIdentifier* _tmp455_;
                  ValaCCodeReturnStatement* _tmp456_ = NULL;
                  ValaCCodeReturnStatement* _tmp457_;
                  ValaCCodeIdentifier* _tmp458_ = NULL;
                  ValaCCodeIdentifier* _tmp459_;
                  ValaCCodeIfStatement* _tmp460_ = NULL;
                  ValaCCodeIfStatement* _tmp461_;
                  _tmp454_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_HANDLED");
                  _tmp455_ = _tmp454_;
                  _tmp456_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp455_);
                  _tmp457_ = _tmp456_;
                  vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp457_);
                  _vala_ccode_node_unref0 (_tmp457_);
                  _vala_ccode_node_unref0 (_tmp455_);
                  _tmp458_ = vala_ccode_identifier_new ("error");
                  _tmp459_ = _tmp458_;
                  _tmp460_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp459_, (ValaCCodeStatement*) error_block, NULL);
                  _tmp461_ = _tmp460_;
                  vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp461_);
                  _vala_ccode_node_unref0 (_tmp461_);
                  _vala_ccode_node_unref0 (_tmp459_);
            }
            _vala_ccode_node_unref0 (error_block);
      }
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) in_postfragment);
      _tmp462_ = vala_method_get_coroutine (m);
      if (!_tmp462_) {
            vala_dbus_server_module_handle_reply (self, block);
      } else {
            ValaCCodeIdentifier* _tmp463_ = NULL;
            ValaCCodeIdentifier* _tmp464_;
            ValaCCodeReturnStatement* _tmp465_ = NULL;
            ValaCCodeReturnStatement* _tmp466_;
            ValaCCodeIdentifier* _tmp467_ = NULL;
            ValaCCodeIdentifier* _tmp468_;
            ValaCCodeFunctionCall* _tmp469_ = NULL;
            ValaCCodeFunctionCall* _tmp470_;
            ValaCCodeFunctionCall* unref_call;
            ValaCCodeIdentifier* _tmp471_ = NULL;
            ValaCCodeIdentifier* _tmp472_;
            ValaCCodeExpressionStatement* _tmp473_ = NULL;
            ValaCCodeExpressionStatement* _tmp474_;
            ValaCCodeIdentifier* _tmp475_ = NULL;
            ValaCCodeIdentifier* _tmp476_;
            ValaCCodeFunctionCall* _tmp477_ = NULL;
            ValaCCodeIdentifier* _tmp478_ = NULL;
            ValaCCodeIdentifier* _tmp479_;
            ValaCCodeExpressionStatement* _tmp480_ = NULL;
            ValaCCodeExpressionStatement* _tmp481_;
            ValaCCodeIdentifier* _tmp482_ = NULL;
            ValaCCodeIdentifier* _tmp483_;
            ValaCCodeFunctionCall* _tmp484_ = NULL;
            ValaCCodeFunctionCall* _tmp485_;
            ValaCCodeFunctionCall* free_call;
            ValaCCodeIdentifier* _tmp486_ = NULL;
            ValaCCodeIdentifier* _tmp487_;
            ValaCCodeExpressionStatement* _tmp488_ = NULL;
            ValaCCodeExpressionStatement* _tmp489_;
            _tmp463_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_HANDLED");
            _tmp464_ = _tmp463_;
            _tmp465_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp464_);
            _tmp466_ = _tmp465_;
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp466_);
            _vala_ccode_node_unref0 (_tmp466_);
            _vala_ccode_node_unref0 (_tmp464_);
            vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) out_postfragment);
            vala_dbus_server_module_send_reply (self, ready_block);
            _tmp467_ = vala_ccode_identifier_new ("dbus_connection_unref");
            _tmp468_ = _tmp467_;
            _tmp469_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp468_);
            _tmp470_ = _tmp469_;
            _vala_ccode_node_unref0 (_tmp468_);
            unref_call = _tmp470_;
            _tmp471_ = vala_ccode_identifier_new ("connection");
            _tmp472_ = _tmp471_;
            vala_ccode_function_call_add_argument (unref_call, (ValaCCodeExpression*) _tmp472_);
            _vala_ccode_node_unref0 (_tmp472_);
            _tmp473_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) unref_call);
            _tmp474_ = _tmp473_;
            vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _tmp474_);
            _vala_ccode_node_unref0 (_tmp474_);
            _tmp475_ = vala_ccode_identifier_new ("dbus_message_unref");
            _tmp476_ = _tmp475_;
            _tmp477_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp476_);
            _vala_ccode_node_unref0 (unref_call);
            unref_call = _tmp477_;
            _vala_ccode_node_unref0 (_tmp476_);
            _tmp478_ = vala_ccode_identifier_new ("message");
            _tmp479_ = _tmp478_;
            vala_ccode_function_call_add_argument (unref_call, (ValaCCodeExpression*) _tmp479_);
            _vala_ccode_node_unref0 (_tmp479_);
            _tmp480_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) unref_call);
            _tmp481_ = _tmp480_;
            vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _tmp481_);
            _vala_ccode_node_unref0 (_tmp481_);
            _tmp482_ = vala_ccode_identifier_new ("g_free");
            _tmp483_ = _tmp482_;
            _tmp484_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp483_);
            _tmp485_ = _tmp484_;
            _vala_ccode_node_unref0 (_tmp483_);
            free_call = _tmp485_;
            _tmp486_ = vala_ccode_identifier_new ("_user_data_");
            _tmp487_ = _tmp486_;
            vala_ccode_function_call_add_argument (free_call, (ValaCCodeExpression*) _tmp487_);
            _vala_ccode_node_unref0 (_tmp487_);
            _tmp488_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) free_call);
            _tmp489_ = _tmp488_;
            vala_ccode_block_add_statement (ready_block, (ValaCCodeNode*) _tmp489_);
            _vala_ccode_node_unref0 (_tmp489_);
            _vala_ccode_node_unref0 (free_call);
            _vala_ccode_node_unref0 (unref_call);
      }
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_function_set_block (function, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      _tmp490_ = vala_method_get_coroutine (m);
      if (_tmp490_) {
            vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, ready_function);
            vala_ccode_function_set_block (ready_function, ready_block);
            vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, ready_function);
      }
      result = wrapper_name;
      _g_free0 (type_signature);
      _vala_ccode_node_unref0 (finish_ccall);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (msgcall);
      _vala_ccode_node_unref0 (iter_call);
      _vala_ccode_node_unref0 (signature_error_block);
      _vala_ccode_node_unref0 (signature_check);
      _vala_ccode_node_unref0 (message_signature);
      _vala_ccode_node_unref0 (out_postfragment);
      _vala_ccode_node_unref0 (out_prefragment);
      _vala_ccode_node_unref0 (in_postfragment);
      _vala_ccode_node_unref0 (in_prefragment);
      _vala_ccode_node_unref0 (ready_block);
      _vala_ccode_node_unref0 (ready_function);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (function);
      _vala_ccode_node_unref0 (_cdecl_);
      return result;
}


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


static void vala_dbus_server_module_generate_server_error_cases (ValaDBusServerModule* self, ValaCCodeBlock* error_block, ValaList* error_types, ValaCCodeExpression* _error_, ValaCCodeExpression* message, ValaCCodeExpression* reply) {
      ValaCCodeStatement* if_else_if;
      ValaCCodeIfStatement* last_statement;
      g_return_if_fail (self != NULL);
      g_return_if_fail (error_block != NULL);
      g_return_if_fail (error_types != NULL);
      g_return_if_fail (_error_ != NULL);
      g_return_if_fail (message != NULL);
      g_return_if_fail (reply != NULL);
      if_else_if = NULL;
      last_statement = NULL;
      {
            ValaList* _tmp0_;
            ValaList* _error_type_list;
            gint _tmp1_;
            gint _error_type_size;
            gint _error_type_index;
            _tmp0_ = _vala_iterable_ref0 (error_types);
            _error_type_list = _tmp0_;
            _tmp1_ = vala_collection_get_size ((ValaCollection*) _error_type_list);
            _error_type_size = _tmp1_;
            _error_type_index = -1;
            while (TRUE) {
                  gpointer _tmp2_ = NULL;
                  ValaDataType* error_type;
                  ValaErrorDomain* _tmp3_ = NULL;
                  ValaErrorDomain* _tmp4_;
                  ValaErrorDomain* edomain;
                  gchar* _tmp6_ = NULL;
                  gchar* edomain_dbus_name;
                  ValaCCodeBlock* _tmp8_ = NULL;
                  ValaCCodeBlock* true_block;
                  ValaCCodeMemberAccess* _tmp9_ = NULL;
                  ValaCCodeMemberAccess* _tmp10_;
                  ValaCCodeSwitchStatement* _tmp11_ = NULL;
                  ValaCCodeSwitchStatement* _tmp12_;
                  ValaCCodeSwitchStatement* cswitch;
                  ValaCCodeMemberAccess* _tmp44_ = NULL;
                  ValaCCodeMemberAccess* _tmp45_;
                  gchar* _tmp46_ = NULL;
                  gchar* _tmp47_;
                  ValaCCodeIdentifier* _tmp48_ = NULL;
                  ValaCCodeIdentifier* _tmp49_;
                  ValaCCodeBinaryExpression* _tmp50_ = NULL;
                  ValaCCodeBinaryExpression* _tmp51_;
                  ValaCCodeBinaryExpression* equal_test;
                  ValaCCodeIfStatement* _tmp52_ = NULL;
                  ValaCCodeIfStatement* stmt;
                  ValaCCodeIfStatement* _tmp54_;
                  _error_type_index = _error_type_index + 1;
                  if (!(_error_type_index < _error_type_size)) {
                        break;
                  }
                  _tmp2_ = vala_list_get (_error_type_list, _error_type_index);
                  error_type = (ValaDataType*) _tmp2_;
                  _tmp3_ = vala_error_type_get_error_domain (VALA_ERROR_TYPE (error_type));
                  _tmp4_ = _vala_code_node_ref0 (_tmp3_);
                  edomain = _tmp4_;
                  if (edomain == NULL) {
                        ValaSourceReference* _tmp5_ = NULL;
                        _tmp5_ = vala_code_node_get_source_reference ((ValaCodeNode*) error_type);
                        vala_report_error (_tmp5_, "Generic errors cannot be serialized over DBus");
                        _vala_code_node_unref0 (edomain);
                        _vala_code_node_unref0 (error_type);
                        continue;
                  }
                  _tmp6_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) edomain);
                  edomain_dbus_name = _tmp6_;
                  if (edomain_dbus_name == NULL) {
                        ValaSourceReference* _tmp7_ = NULL;
                        _tmp7_ = vala_code_node_get_source_reference ((ValaCodeNode*) edomain);
                        vala_report_error (_tmp7_, "Errordomain must have a DBus.name annotation to be serialized over DBu" \
"s");
                  }
                  _tmp8_ = vala_ccode_block_new ();
                  true_block = _tmp8_;
                  vala_ccode_block_set_suppress_newline (true_block, TRUE);
                  _tmp9_ = vala_ccode_member_access_new_pointer (_error_, "code");
                  _tmp10_ = _tmp9_;
                  _tmp11_ = vala_ccode_switch_statement_new ((ValaCCodeExpression*) _tmp10_);
                  _tmp12_ = _tmp11_;
                  _vala_ccode_node_unref0 (_tmp10_);
                  cswitch = _tmp12_;
                  {
                        ValaList* _tmp13_ = NULL;
                        ValaList* _ecode_list;
                        gint _tmp14_;
                        gint _ecode_size;
                        gint _ecode_index;
                        _tmp13_ = vala_error_domain_get_codes (edomain);
                        _ecode_list = _tmp13_;
                        _tmp14_ = vala_collection_get_size ((ValaCollection*) _ecode_list);
                        _ecode_size = _tmp14_;
                        _ecode_index = -1;
                        while (TRUE) {
                              gpointer _tmp15_ = NULL;
                              ValaErrorCode* ecode;
                              gchar* _tmp16_ = NULL;
                              gchar* _tmp17_;
                              ValaCCodeIdentifier* _tmp18_ = NULL;
                              ValaCCodeIdentifier* _tmp19_;
                              ValaCCodeCaseStatement* _tmp20_ = NULL;
                              ValaCCodeCaseStatement* _tmp21_;
                              gchar* _tmp22_ = NULL;
                              gchar* ecode_dbus_name;
                              gchar* _tmp27_ = NULL;
                              gchar* dbus_name;
                              ValaCCodeIdentifier* _tmp28_ = NULL;
                              ValaCCodeIdentifier* _tmp29_;
                              ValaCCodeFunctionCall* _tmp30_ = NULL;
                              ValaCCodeFunctionCall* _tmp31_;
                              ValaCCodeFunctionCall* msgcall;
                              gchar* _tmp32_ = NULL;
                              gchar* _tmp33_;
                              ValaCCodeConstant* _tmp34_ = NULL;
                              ValaCCodeConstant* _tmp35_;
                              ValaCCodeMemberAccess* _tmp36_ = NULL;
                              ValaCCodeMemberAccess* _tmp37_;
                              ValaCCodeAssignment* _tmp38_ = NULL;
                              ValaCCodeAssignment* _tmp39_;
                              ValaCCodeExpressionStatement* _tmp40_ = NULL;
                              ValaCCodeExpressionStatement* _tmp41_;
                              ValaCCodeBreakStatement* _tmp42_ = NULL;
                              ValaCCodeBreakStatement* _tmp43_;
                              _ecode_index = _ecode_index + 1;
                              if (!(_ecode_index < _ecode_size)) {
                                    break;
                              }
                              _tmp15_ = vala_list_get (_ecode_list, _ecode_index);
                              ecode = (ValaErrorCode*) _tmp15_;
                              _tmp16_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) ecode, FALSE);
                              _tmp17_ = _tmp16_;
                              _tmp18_ = vala_ccode_identifier_new (_tmp17_);
                              _tmp19_ = _tmp18_;
                              _tmp20_ = vala_ccode_case_statement_new ((ValaCCodeExpression*) _tmp19_);
                              _tmp21_ = _tmp20_;
                              vala_ccode_block_add_statement ((ValaCCodeBlock*) cswitch, (ValaCCodeNode*) _tmp21_);
                              _vala_ccode_node_unref0 (_tmp21_);
                              _vala_ccode_node_unref0 (_tmp19_);
                              _g_free0 (_tmp17_);
                              _tmp22_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) ecode);
                              ecode_dbus_name = _tmp22_;
                              if (ecode_dbus_name == NULL) {
                                    const gchar* _tmp23_ = NULL;
                                    gchar* _tmp24_ = NULL;
                                    gchar* _tmp25_;
                                    gchar* _tmp26_ = NULL;
                                    _tmp23_ = vala_symbol_get_name ((ValaSymbol*) ecode);
                                    _tmp24_ = g_utf8_strdown (_tmp23_, (gssize) (-1));
                                    _tmp25_ = _tmp24_;
                                    _tmp26_ = vala_symbol_lower_case_to_camel_case (_tmp25_);
                                    _g_free0 (ecode_dbus_name);
                                    ecode_dbus_name = _tmp26_;
                                    _g_free0 (_tmp25_);
                              }
                              _tmp27_ = g_strdup_printf ("%s.%s", edomain_dbus_name, ecode_dbus_name);
                              dbus_name = _tmp27_;
                              _tmp28_ = vala_ccode_identifier_new ("dbus_message_new_error");
                              _tmp29_ = _tmp28_;
                              _tmp30_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp29_);
                              _tmp31_ = _tmp30_;
                              _vala_ccode_node_unref0 (_tmp29_);
                              msgcall = _tmp31_;
                              vala_ccode_function_call_add_argument (msgcall, message);
                              _tmp32_ = g_strdup_printf ("\"%s\"", dbus_name);
                              _tmp33_ = _tmp32_;
                              _tmp34_ = vala_ccode_constant_new (_tmp33_);
                              _tmp35_ = _tmp34_;
                              vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp35_);
                              _vala_ccode_node_unref0 (_tmp35_);
                              _g_free0 (_tmp33_);
                              _tmp36_ = vala_ccode_member_access_new_pointer (_error_, "message");
                              _tmp37_ = _tmp36_;
                              vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp37_);
                              _vala_ccode_node_unref0 (_tmp37_);
                              _tmp38_ = vala_ccode_assignment_new (reply, (ValaCCodeExpression*) msgcall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                              _tmp39_ = _tmp38_;
                              _tmp40_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp39_);
                              _tmp41_ = _tmp40_;
                              vala_ccode_block_add_statement ((ValaCCodeBlock*) cswitch, (ValaCCodeNode*) _tmp41_);
                              _vala_ccode_node_unref0 (_tmp41_);
                              _vala_ccode_node_unref0 (_tmp39_);
                              _tmp42_ = vala_ccode_break_statement_new ();
                              _tmp43_ = _tmp42_;
                              vala_ccode_block_add_statement ((ValaCCodeBlock*) cswitch, (ValaCCodeNode*) _tmp43_);
                              _vala_ccode_node_unref0 (_tmp43_);
                              _vala_ccode_node_unref0 (msgcall);
                              _g_free0 (dbus_name);
                              _g_free0 (ecode_dbus_name);
                              _vala_code_node_unref0 (ecode);
                        }
                        _vala_iterable_unref0 (_ecode_list);
                  }
                  vala_ccode_block_add_statement (true_block, (ValaCCodeNode*) cswitch);
                  _tmp44_ = vala_ccode_member_access_new_pointer (_error_, "domain");
                  _tmp45_ = _tmp44_;
                  _tmp46_ = vala_typesymbol_get_upper_case_cname ((ValaTypeSymbol*) edomain, NULL);
                  _tmp47_ = _tmp46_;
                  _tmp48_ = vala_ccode_identifier_new (_tmp47_);
                  _tmp49_ = _tmp48_;
                  _tmp50_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp45_, (ValaCCodeExpression*) _tmp49_);
                  _tmp51_ = _tmp50_;
                  _vala_ccode_node_unref0 (_tmp49_);
                  _g_free0 (_tmp47_);
                  _vala_ccode_node_unref0 (_tmp45_);
                  equal_test = _tmp51_;
                  _tmp52_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) equal_test, (ValaCCodeStatement*) true_block, NULL);
                  stmt = _tmp52_;
                  if (last_statement != NULL) {
                        vala_ccode_if_statement_set_false_statement (last_statement, (ValaCCodeStatement*) stmt);
                  } else {
                        ValaCCodeStatement* _tmp53_;
                        _tmp53_ = _vala_ccode_node_ref0 ((ValaCCodeStatement*) stmt);
                        _vala_ccode_node_unref0 (if_else_if);
                        if_else_if = _tmp53_;
                  }
                  _tmp54_ = _vala_ccode_node_ref0 (stmt);
                  _vala_ccode_node_unref0 (last_statement);
                  last_statement = _tmp54_;
                  _vala_ccode_node_unref0 (stmt);
                  _vala_ccode_node_unref0 (equal_test);
                  _vala_ccode_node_unref0 (cswitch);
                  _vala_ccode_node_unref0 (true_block);
                  _g_free0 (edomain_dbus_name);
                  _vala_code_node_unref0 (edomain);
                  _vala_code_node_unref0 (error_type);
            }
            _vala_iterable_unref0 (_error_type_list);
      }
      vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) if_else_if);
      _vala_ccode_node_unref0 (last_statement);
      _vala_ccode_node_unref0 (if_else_if);
}


static gchar* vala_dbus_server_module_generate_dbus_signal_wrapper (ValaDBusServerModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* _tmp4_ = NULL;
      gchar* _tmp5_;
      gchar* wrapper_name;
      ValaCCodeDeclaration* _cdecl_ = NULL;
      ValaCCodeFunction* _tmp6_ = NULL;
      ValaCCodeFunction* function;
      ValaCCodeParameter* _tmp7_ = NULL;
      ValaCCodeParameter* _tmp8_;
      ValaCCodeParameter* _tmp25_ = NULL;
      ValaCCodeParameter* _tmp26_;
      ValaCCodeBlock* _tmp27_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp28_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeIdentifier* _tmp29_ = NULL;
      ValaCCodeIdentifier* _tmp30_;
      ValaCCodeFunctionCall* _tmp31_ = NULL;
      ValaCCodeFunctionCall* _tmp32_;
      ValaCCodeFunctionCall* path;
      ValaCCodeIdentifier* _tmp33_ = NULL;
      ValaCCodeIdentifier* _tmp34_;
      ValaCCodeConstant* _tmp35_ = NULL;
      ValaCCodeConstant* _tmp36_;
      ValaCCodeDeclaration* _tmp37_ = NULL;
      ValaCCodeVariableDeclarator* _tmp38_ = NULL;
      ValaCCodeVariableDeclarator* _tmp39_;
      ValaCCodeDeclaration* _tmp40_ = NULL;
      ValaCCodeVariableDeclarator* _tmp41_ = NULL;
      ValaCCodeVariableDeclarator* _tmp42_;
      ValaCCodeDeclaration* _tmp43_ = NULL;
      ValaCCodeVariableDeclarator* _tmp44_ = NULL;
      ValaCCodeVariableDeclarator* _tmp45_;
      ValaCCodeIdentifier* _tmp46_ = NULL;
      ValaCCodeIdentifier* _tmp47_;
      ValaCCodeFunctionCall* _tmp48_ = NULL;
      ValaCCodeFunctionCall* _tmp49_;
      ValaCCodeFunctionCall* msgcall;
      ValaCCodeIdentifier* _tmp50_ = NULL;
      ValaCCodeIdentifier* _tmp51_;
      gchar* _tmp52_ = NULL;
      gchar* _tmp53_;
      ValaCCodeConstant* _tmp54_ = NULL;
      ValaCCodeConstant* _tmp55_;
      gchar* _tmp56_ = NULL;
      gchar* _tmp57_;
      gchar* _tmp58_ = NULL;
      gchar* _tmp59_;
      ValaCCodeConstant* _tmp60_ = NULL;
      ValaCCodeConstant* _tmp61_;
      ValaCCodeIdentifier* _tmp62_ = NULL;
      ValaCCodeIdentifier* _tmp63_;
      ValaCCodeAssignment* _tmp64_ = NULL;
      ValaCCodeAssignment* _tmp65_;
      ValaCCodeExpressionStatement* _tmp66_ = NULL;
      ValaCCodeExpressionStatement* _tmp67_;
      ValaCCodeIdentifier* _tmp68_ = NULL;
      ValaCCodeIdentifier* _tmp69_;
      ValaCCodeFunctionCall* _tmp70_ = NULL;
      ValaCCodeFunctionCall* _tmp71_;
      ValaCCodeFunctionCall* iter_call;
      ValaCCodeIdentifier* _tmp72_ = NULL;
      ValaCCodeIdentifier* _tmp73_;
      ValaCCodeIdentifier* _tmp74_ = NULL;
      ValaCCodeIdentifier* _tmp75_;
      ValaCCodeUnaryExpression* _tmp76_ = NULL;
      ValaCCodeUnaryExpression* _tmp77_;
      ValaCCodeExpressionStatement* _tmp78_ = NULL;
      ValaCCodeExpressionStatement* _tmp79_;
      ValaCCodeIdentifier* _tmp91_ = NULL;
      ValaCCodeIdentifier* _tmp92_;
      ValaCCodeFunctionCall* _tmp93_ = NULL;
      ValaCCodeFunctionCall* _tmp94_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp95_ = NULL;
      ValaCCodeIdentifier* _tmp96_;
      ValaCCodeIdentifier* _tmp97_ = NULL;
      ValaCCodeIdentifier* _tmp98_;
      ValaCCodeConstant* _tmp99_ = NULL;
      ValaCCodeConstant* _tmp100_;
      ValaCCodeExpressionStatement* _tmp101_ = NULL;
      ValaCCodeExpressionStatement* _tmp102_;
      ValaCCodeIdentifier* _tmp103_ = NULL;
      ValaCCodeIdentifier* _tmp104_;
      ValaCCodeFunctionCall* _tmp105_ = NULL;
      ValaCCodeFunctionCall* _tmp106_;
      ValaCCodeFunctionCall* message_unref;
      ValaCCodeIdentifier* _tmp107_ = NULL;
      ValaCCodeIdentifier* _tmp108_;
      ValaCCodeExpressionStatement* _tmp109_ = NULL;
      ValaCCodeExpressionStatement* _tmp110_;
      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_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_signal_get_cname (sig);
      _tmp3_ = _tmp2_;
      _tmp4_ = g_strdup_printf ("_dbus_%s_%s", _tmp1_, _tmp3_);
      _tmp5_ = _tmp4_;
      _g_free0 (_tmp3_);
      _g_free0 (_tmp1_);
      wrapper_name = _tmp5_;
      _tmp6_ = vala_ccode_function_new (wrapper_name, "void");
      function = _tmp6_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp7_ = vala_ccode_parameter_new ("_sender", "GObject*");
      _tmp8_ = _tmp7_;
      vala_ccode_function_add_parameter (function, _tmp8_);
      _vala_ccode_node_unref0 (_tmp8_);
      {
            ValaList* _tmp9_ = NULL;
            ValaList* _param_list;
            gint _tmp10_;
            gint _param_size;
            gint _param_index;
            _tmp9_ = vala_signal_get_parameters (sig);
            _param_list = _tmp9_;
            _tmp10_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp10_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp11_ = NULL;
                  ValaParameter* param;
                  ValaHashMap* _tmp12_ = NULL;
                  ValaHashMap* _tmp13_;
                  ValaCCodeParameter* _tmp14_ = NULL;
                  ValaCCodeParameter* _tmp15_;
                  ValaCCodeParameter* cparam;
                  ValaDataType* _tmp16_ = NULL;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp11_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp11_;
                  _tmp12_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, g_direct_hash, g_direct_equal, g_direct_equal);
                  _tmp13_ = _tmp12_;
                  _tmp14_ = vala_ccode_method_module_generate_parameter ((ValaCCodeMethodModule*) self, param, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) _tmp13_, NULL);
                  _tmp15_ = _tmp14_;
                  _vala_map_unref0 (_tmp13_);
                  cparam = _tmp15_;
                  vala_ccode_function_add_parameter (function, cparam);
                  _tmp16_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  if (VALA_IS_ARRAY_TYPE (_tmp16_)) {
                        ValaDataType* _tmp17_ = NULL;
                        ValaArrayType* _tmp18_;
                        ValaArrayType* array_type;
                        _tmp17_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp18_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp17_));
                        array_type = _tmp18_;
                        {
                              gint dim;
                              dim = 1;
                              {
                                    gboolean _tmp19_;
                                    _tmp19_ = TRUE;
                                    while (TRUE) {
                                          gint _tmp20_;
                                          gchar* _tmp21_ = NULL;
                                          gchar* _tmp22_;
                                          ValaCCodeParameter* _tmp23_ = NULL;
                                          ValaCCodeParameter* _tmp24_;
                                          if (!_tmp19_) {
                                                dim++;
                                          }
                                          _tmp19_ = FALSE;
                                          _tmp20_ = vala_array_type_get_rank (array_type);
                                          if (!(dim <= _tmp20_)) {
                                                break;
                                          }
                                          _tmp21_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, param, dim);
                                          _tmp22_ = _tmp21_;
                                          _tmp23_ = vala_ccode_parameter_new (_tmp22_, "int");
                                          _tmp24_ = _tmp23_;
                                          vala_ccode_function_add_parameter (function, _tmp24_);
                                          _vala_ccode_node_unref0 (_tmp24_);
                                          _g_free0 (_tmp22_);
                                    }
                              }
                        }
                        _vala_code_node_unref0 (array_type);
                  }
                  _vala_ccode_node_unref0 (cparam);
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp25_ = vala_ccode_parameter_new ("_connection", "DBusConnection*");
      _tmp26_ = _tmp25_;
      vala_ccode_function_add_parameter (function, _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      _tmp27_ = vala_ccode_block_new ();
      block = _tmp27_;
      _tmp28_ = vala_ccode_fragment_new ();
      prefragment = _tmp28_;
      _tmp29_ = vala_ccode_identifier_new ("g_object_get_data");
      _tmp30_ = _tmp29_;
      _tmp31_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp30_);
      _tmp32_ = _tmp31_;
      _vala_ccode_node_unref0 (_tmp30_);
      path = _tmp32_;
      _tmp33_ = vala_ccode_identifier_new ("_sender");
      _tmp34_ = _tmp33_;
      vala_ccode_function_call_add_argument (path, (ValaCCodeExpression*) _tmp34_);
      _vala_ccode_node_unref0 (_tmp34_);
      _tmp35_ = vala_ccode_constant_new ("\"dbus_object_path\"");
      _tmp36_ = _tmp35_;
      vala_ccode_function_call_add_argument (path, (ValaCCodeExpression*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      _tmp37_ = vala_ccode_declaration_new ("const char *");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp37_;
      _tmp38_ = vala_ccode_variable_declarator_new ("_path", (ValaCCodeExpression*) path, NULL);
      _tmp39_ = _tmp38_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp39_);
      _vala_ccode_node_unref0 (_tmp39_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp40_ = vala_ccode_declaration_new ("DBusMessage");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp40_;
      _tmp41_ = vala_ccode_variable_declarator_new ("*_message", NULL, NULL);
      _tmp42_ = _tmp41_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp42_);
      _vala_ccode_node_unref0 (_tmp42_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp43_ = vala_ccode_declaration_new ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp43_;
      _tmp44_ = vala_ccode_variable_declarator_new ("_iter", NULL, NULL);
      _tmp45_ = _tmp44_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp45_);
      _vala_ccode_node_unref0 (_tmp45_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) prefragment);
      _tmp46_ = vala_ccode_identifier_new ("dbus_message_new_signal");
      _tmp47_ = _tmp46_;
      _tmp48_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp47_);
      _tmp49_ = _tmp48_;
      _vala_ccode_node_unref0 (_tmp47_);
      msgcall = _tmp49_;
      _tmp50_ = vala_ccode_identifier_new ("_path");
      _tmp51_ = _tmp50_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp51_);
      _vala_ccode_node_unref0 (_tmp51_);
      _tmp52_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
      _tmp53_ = _tmp52_;
      _tmp54_ = vala_ccode_constant_new (_tmp53_);
      _tmp55_ = _tmp54_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp55_);
      _vala_ccode_node_unref0 (_tmp55_);
      _g_free0 (_tmp53_);
      _tmp56_ = vala_dbus_module_get_dbus_name_for_member ((ValaSymbol*) sig);
      _tmp57_ = _tmp56_;
      _tmp58_ = g_strdup_printf ("\"%s\"", _tmp57_);
      _tmp59_ = _tmp58_;
      _tmp60_ = vala_ccode_constant_new (_tmp59_);
      _tmp61_ = _tmp60_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp61_);
      _vala_ccode_node_unref0 (_tmp61_);
      _g_free0 (_tmp59_);
      _g_free0 (_tmp57_);
      _tmp62_ = vala_ccode_identifier_new ("_message");
      _tmp63_ = _tmp62_;
      _tmp64_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp63_, (ValaCCodeExpression*) msgcall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp65_ = _tmp64_;
      _tmp66_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp65_);
      _tmp67_ = _tmp66_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp67_);
      _vala_ccode_node_unref0 (_tmp67_);
      _vala_ccode_node_unref0 (_tmp65_);
      _vala_ccode_node_unref0 (_tmp63_);
      _tmp68_ = vala_ccode_identifier_new ("dbus_message_iter_init_append");
      _tmp69_ = _tmp68_;
      _tmp70_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp69_);
      _tmp71_ = _tmp70_;
      _vala_ccode_node_unref0 (_tmp69_);
      iter_call = _tmp71_;
      _tmp72_ = vala_ccode_identifier_new ("_message");
      _tmp73_ = _tmp72_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp73_);
      _vala_ccode_node_unref0 (_tmp73_);
      _tmp74_ = vala_ccode_identifier_new ("_iter");
      _tmp75_ = _tmp74_;
      _tmp76_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp75_);
      _tmp77_ = _tmp76_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp77_);
      _vala_ccode_node_unref0 (_tmp77_);
      _vala_ccode_node_unref0 (_tmp75_);
      _tmp78_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp79_ = _tmp78_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp79_);
      _vala_ccode_node_unref0 (_tmp79_);
      {
            ValaList* _tmp80_ = NULL;
            ValaList* _param_list;
            gint _tmp81_;
            gint _param_size;
            gint _param_index;
            _tmp80_ = vala_signal_get_parameters (sig);
            _param_list = _tmp80_;
            _tmp81_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp81_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp82_ = NULL;
                  ValaParameter* param;
                  const gchar* _tmp83_ = NULL;
                  ValaCCodeIdentifier* _tmp84_ = NULL;
                  ValaCCodeExpression* expr;
                  ValaDataType* _tmp85_ = NULL;
                  gboolean _tmp86_;
                  ValaDataType* _tmp88_ = NULL;
                  ValaCCodeIdentifier* _tmp89_ = NULL;
                  ValaCCodeIdentifier* _tmp90_;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp82_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp82_;
                  _tmp83_ = vala_symbol_get_name ((ValaSymbol*) param);
                  _tmp84_ = vala_ccode_identifier_new (_tmp83_);
                  expr = (ValaCCodeExpression*) _tmp84_;
                  _tmp85_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp86_ = vala_data_type_is_real_struct_type (_tmp85_);
                  if (_tmp86_) {
                        ValaCCodeUnaryExpression* _tmp87_ = NULL;
                        _tmp87_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, expr);
                        _vala_ccode_node_unref0 (expr);
                        expr = (ValaCCodeExpression*) _tmp87_;
                  }
                  _tmp88_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp89_ = vala_ccode_identifier_new ("_iter");
                  _tmp90_ = _tmp89_;
                  vala_dbus_module_write_expression ((ValaDBusModule*) self, prefragment, _tmp88_, (ValaCCodeExpression*) _tmp90_, expr);
                  _vala_ccode_node_unref0 (_tmp90_);
                  _vala_ccode_node_unref0 (expr);
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp91_ = vala_ccode_identifier_new ("dbus_connection_send");
      _tmp92_ = _tmp91_;
      _tmp93_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp92_);
      _tmp94_ = _tmp93_;
      _vala_ccode_node_unref0 (_tmp92_);
      ccall = _tmp94_;
      _tmp95_ = vala_ccode_identifier_new ("_connection");
      _tmp96_ = _tmp95_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp96_);
      _vala_ccode_node_unref0 (_tmp96_);
      _tmp97_ = vala_ccode_identifier_new ("_message");
      _tmp98_ = _tmp97_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp98_);
      _vala_ccode_node_unref0 (_tmp98_);
      _tmp99_ = vala_ccode_constant_new ("NULL");
      _tmp100_ = _tmp99_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp100_);
      _vala_ccode_node_unref0 (_tmp100_);
      _tmp101_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
      _tmp102_ = _tmp101_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp102_);
      _vala_ccode_node_unref0 (_tmp102_);
      _tmp103_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp104_ = _tmp103_;
      _tmp105_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp104_);
      _tmp106_ = _tmp105_;
      _vala_ccode_node_unref0 (_tmp104_);
      message_unref = _tmp106_;
      _tmp107_ = vala_ccode_identifier_new ("_message");
      _tmp108_ = _tmp107_;
      vala_ccode_function_call_add_argument (message_unref, (ValaCCodeExpression*) _tmp108_);
      _vala_ccode_node_unref0 (_tmp108_);
      _tmp109_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) message_unref);
      _tmp110_ = _tmp109_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp110_);
      _vala_ccode_node_unref0 (_tmp110_);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_function_set_block (function, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = wrapper_name;
      _vala_ccode_node_unref0 (message_unref);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (iter_call);
      _vala_ccode_node_unref0 (msgcall);
      _vala_ccode_node_unref0 (path);
      _vala_ccode_node_unref0 (prefragment);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (function);
      _vala_ccode_node_unref0 (_cdecl_);
      return result;
}


static void vala_dbus_server_module_generate_register_function (ValaDBusServerModule* self, ValaObjectType* object_type) {
      ValaObjectTypeSymbol* _tmp0_ = NULL;
      ValaObjectTypeSymbol* _tmp1_;
      ValaObjectTypeSymbol* sym;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* _tmp4_;
      gchar* _tmp5_;
      ValaCCodeFunction* _tmp6_ = NULL;
      ValaCCodeFunction* _tmp7_;
      ValaCCodeFunction* cfunc;
      ValaCCodeParameter* _tmp8_ = NULL;
      ValaCCodeParameter* _tmp9_;
      ValaCCodeParameter* _tmp10_ = NULL;
      ValaCCodeParameter* _tmp11_;
      ValaCCodeParameter* _tmp12_ = NULL;
      ValaCCodeParameter* _tmp13_;
      gboolean _tmp14_;
      ValaCCodeBlock* _tmp16_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeIdentifier* _tmp17_ = NULL;
      ValaCCodeIdentifier* _tmp18_;
      ValaCCodeFunctionCall* _tmp19_ = NULL;
      ValaCCodeFunctionCall* _tmp20_;
      ValaCCodeFunctionCall* get_path;
      ValaCCodeIdentifier* _tmp21_ = NULL;
      ValaCCodeIdentifier* _tmp22_;
      ValaCCodeConstant* _tmp23_ = NULL;
      ValaCCodeConstant* _tmp24_;
      ValaCCodeUnaryExpression* _tmp25_ = NULL;
      ValaCCodeUnaryExpression* register_check;
      ValaCCodeBlock* _tmp26_ = NULL;
      ValaCCodeBlock* register_block;
      ValaCCodeIdentifier* _tmp27_ = NULL;
      ValaCCodeIdentifier* _tmp28_;
      ValaCCodeFunctionCall* _tmp29_ = NULL;
      ValaCCodeFunctionCall* _tmp30_;
      ValaCCodeFunctionCall* path_dup;
      ValaCCodeIdentifier* _tmp31_ = NULL;
      ValaCCodeIdentifier* _tmp32_;
      ValaCCodeIdentifier* _tmp33_ = NULL;
      ValaCCodeIdentifier* _tmp34_;
      ValaCCodeFunctionCall* _tmp35_ = NULL;
      ValaCCodeFunctionCall* _tmp36_;
      ValaCCodeFunctionCall* set_path;
      ValaCCodeIdentifier* _tmp37_ = NULL;
      ValaCCodeIdentifier* _tmp38_;
      ValaCCodeConstant* _tmp39_ = NULL;
      ValaCCodeConstant* _tmp40_;
      ValaCCodeExpressionStatement* _tmp41_ = NULL;
      ValaCCodeExpressionStatement* _tmp42_;
      ValaCCodeIdentifier* _tmp43_ = NULL;
      ValaCCodeIdentifier* _tmp44_;
      ValaCCodeFunctionCall* _tmp45_ = NULL;
      ValaCCodeFunctionCall* _tmp46_;
      ValaCCodeFunctionCall* cregister;
      ValaCCodeIdentifier* _tmp47_ = NULL;
      ValaCCodeIdentifier* _tmp48_;
      ValaCCodeIdentifier* _tmp49_ = NULL;
      ValaCCodeIdentifier* _tmp50_;
      ValaCCodeExpression* _tmp51_ = NULL;
      ValaCCodeExpression* _tmp52_;
      ValaCCodeUnaryExpression* _tmp53_ = NULL;
      ValaCCodeUnaryExpression* _tmp54_;
      ValaCCodeIdentifier* _tmp55_ = NULL;
      ValaCCodeIdentifier* _tmp56_;
      ValaCCodeExpressionStatement* _tmp57_ = NULL;
      ValaCCodeExpressionStatement* _tmp58_;
      ValaCCodeIdentifier* _tmp59_ = NULL;
      ValaCCodeIdentifier* _tmp60_;
      ValaCCodeFunctionCall* _tmp61_ = NULL;
      ValaCCodeFunctionCall* _tmp62_;
      ValaCCodeFunctionCall* weak_unregister;
      ValaCCodeIdentifier* _tmp63_ = NULL;
      ValaCCodeIdentifier* _tmp64_;
      ValaCCodeIdentifier* _tmp65_ = NULL;
      ValaCCodeIdentifier* _tmp66_;
      ValaCCodeIdentifier* _tmp67_ = NULL;
      ValaCCodeIdentifier* _tmp68_;
      ValaCCodeExpressionStatement* _tmp69_ = NULL;
      ValaCCodeExpressionStatement* _tmp70_;
      ValaCCodeIfStatement* _tmp71_ = NULL;
      ValaCCodeIfStatement* _tmp72_;
      ValaObjectTypeSymbol* _tmp73_ = NULL;
      ValaObjectTypeSymbol* _tmp74_;
      ValaClass* _tmp75_;
      ValaClass* cl;
      g_return_if_fail (self != NULL);
      g_return_if_fail (object_type != NULL);
      vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "string.h", FALSE);
      _tmp0_ = vala_object_type_get_type_symbol (object_type);
      _tmp1_ = _vala_code_node_ref0 (_tmp0_);
      sym = _tmp1_;
      _tmp2_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp3_ = _tmp2_;
      _tmp4_ = g_strconcat (_tmp3_, "dbus_register_object", NULL);
      _tmp5_ = _tmp4_;
      _tmp6_ = vala_ccode_function_new (_tmp5_, "void");
      _tmp7_ = _tmp6_;
      _g_free0 (_tmp5_);
      _g_free0 (_tmp3_);
      cfunc = _tmp7_;
      _tmp8_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp9_ = _tmp8_;
      vala_ccode_function_add_parameter (cfunc, _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _tmp10_ = vala_ccode_parameter_new ("path", "const char*");
      _tmp11_ = _tmp10_;
      vala_ccode_function_add_parameter (cfunc, _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_parameter_new ("object", "void*");
      _tmp13_ = _tmp12_;
      vala_ccode_function_add_parameter (cfunc, _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      vala_dbus_module_add_dbus_helpers ((ValaDBusModule*) self);
      _tmp14_ = vala_symbol_is_private_symbol ((ValaSymbol*) sym);
      if (_tmp14_) {
            ValaCCodeModifiers _tmp15_;
            _tmp15_ = vala_ccode_function_get_modifiers (cfunc);
            vala_ccode_function_set_modifiers (cfunc, _tmp15_ | VALA_CCODE_MODIFIERS_STATIC);
      }
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, cfunc);
      _tmp16_ = vala_ccode_block_new ();
      block = _tmp16_;
      vala_ccode_function_set_block (cfunc, block);
      _tmp17_ = vala_ccode_identifier_new ("g_object_get_data");
      _tmp18_ = _tmp17_;
      _tmp19_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp18_);
      _tmp20_ = _tmp19_;
      _vala_ccode_node_unref0 (_tmp18_);
      get_path = _tmp20_;
      _tmp21_ = vala_ccode_identifier_new ("object");
      _tmp22_ = _tmp21_;
      vala_ccode_function_call_add_argument (get_path, (ValaCCodeExpression*) _tmp22_);
      _vala_ccode_node_unref0 (_tmp22_);
      _tmp23_ = vala_ccode_constant_new ("\"dbus_object_path\"");
      _tmp24_ = _tmp23_;
      vala_ccode_function_call_add_argument (get_path, (ValaCCodeExpression*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) get_path);
      register_check = _tmp25_;
      _tmp26_ = vala_ccode_block_new ();
      register_block = _tmp26_;
      _tmp27_ = vala_ccode_identifier_new ("g_strdup");
      _tmp28_ = _tmp27_;
      _tmp29_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp28_);
      _tmp30_ = _tmp29_;
      _vala_ccode_node_unref0 (_tmp28_);
      path_dup = _tmp30_;
      _tmp31_ = vala_ccode_identifier_new ("path");
      _tmp32_ = _tmp31_;
      vala_ccode_function_call_add_argument (path_dup, (ValaCCodeExpression*) _tmp32_);
      _vala_ccode_node_unref0 (_tmp32_);
      _tmp33_ = vala_ccode_identifier_new ("g_object_set_data");
      _tmp34_ = _tmp33_;
      _tmp35_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp34_);
      _tmp36_ = _tmp35_;
      _vala_ccode_node_unref0 (_tmp34_);
      set_path = _tmp36_;
      _tmp37_ = vala_ccode_identifier_new ("object");
      _tmp38_ = _tmp37_;
      vala_ccode_function_call_add_argument (set_path, (ValaCCodeExpression*) _tmp38_);
      _vala_ccode_node_unref0 (_tmp38_);
      _tmp39_ = vala_ccode_constant_new ("\"dbus_object_path\"");
      _tmp40_ = _tmp39_;
      vala_ccode_function_call_add_argument (set_path, (ValaCCodeExpression*) _tmp40_);
      _vala_ccode_node_unref0 (_tmp40_);
      vala_ccode_function_call_add_argument (set_path, (ValaCCodeExpression*) path_dup);
      _tmp41_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) set_path);
      _tmp42_ = _tmp41_;
      vala_ccode_block_add_statement (register_block, (ValaCCodeNode*) _tmp42_);
      _vala_ccode_node_unref0 (_tmp42_);
      _tmp43_ = vala_ccode_identifier_new ("dbus_connection_register_object_path");
      _tmp44_ = _tmp43_;
      _tmp45_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp44_);
      _tmp46_ = _tmp45_;
      _vala_ccode_node_unref0 (_tmp44_);
      cregister = _tmp46_;
      _tmp47_ = vala_ccode_identifier_new ("connection");
      _tmp48_ = _tmp47_;
      vala_ccode_function_call_add_argument (cregister, (ValaCCodeExpression*) _tmp48_);
      _vala_ccode_node_unref0 (_tmp48_);
      _tmp49_ = vala_ccode_identifier_new ("path");
      _tmp50_ = _tmp49_;
      vala_ccode_function_call_add_argument (cregister, (ValaCCodeExpression*) _tmp50_);
      _vala_ccode_node_unref0 (_tmp50_);
      _tmp51_ = vala_dbus_server_module_get_path_vtable (self, object_type);
      _tmp52_ = _tmp51_;
      _tmp53_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp52_);
      _tmp54_ = _tmp53_;
      vala_ccode_function_call_add_argument (cregister, (ValaCCodeExpression*) _tmp54_);
      _vala_ccode_node_unref0 (_tmp54_);
      _vala_ccode_node_unref0 (_tmp52_);
      _tmp55_ = vala_ccode_identifier_new ("object");
      _tmp56_ = _tmp55_;
      vala_ccode_function_call_add_argument (cregister, (ValaCCodeExpression*) _tmp56_);
      _vala_ccode_node_unref0 (_tmp56_);
      _tmp57_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cregister);
      _tmp58_ = _tmp57_;
      vala_ccode_block_add_statement (register_block, (ValaCCodeNode*) _tmp58_);
      _vala_ccode_node_unref0 (_tmp58_);
      _tmp59_ = vala_ccode_identifier_new ("g_object_weak_ref");
      _tmp60_ = _tmp59_;
      _tmp61_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp60_);
      _tmp62_ = _tmp61_;
      _vala_ccode_node_unref0 (_tmp60_);
      weak_unregister = _tmp62_;
      _tmp63_ = vala_ccode_identifier_new ("object");
      _tmp64_ = _tmp63_;
      vala_ccode_function_call_add_argument (weak_unregister, (ValaCCodeExpression*) _tmp64_);
      _vala_ccode_node_unref0 (_tmp64_);
      _tmp65_ = vala_ccode_identifier_new ("_vala_dbus_unregister_object");
      _tmp66_ = _tmp65_;
      vala_ccode_function_call_add_argument (weak_unregister, (ValaCCodeExpression*) _tmp66_);
      _vala_ccode_node_unref0 (_tmp66_);
      _tmp67_ = vala_ccode_identifier_new ("connection");
      _tmp68_ = _tmp67_;
      vala_ccode_function_call_add_argument (weak_unregister, (ValaCCodeExpression*) _tmp68_);
      _vala_ccode_node_unref0 (_tmp68_);
      _tmp69_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) weak_unregister);
      _tmp70_ = _tmp69_;
      vala_ccode_block_add_statement (register_block, (ValaCCodeNode*) _tmp70_);
      _vala_ccode_node_unref0 (_tmp70_);
      _tmp71_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) register_check, (ValaCCodeStatement*) register_block, NULL);
      _tmp72_ = _tmp71_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp72_);
      _vala_ccode_node_unref0 (_tmp72_);
      _tmp73_ = vala_object_type_get_type_symbol (object_type);
      vala_dbus_server_module_handle_signals (self, _tmp73_, block);
      _tmp74_ = sym;
      _tmp75_ = _vala_code_node_ref0 (VALA_IS_CLASS (_tmp74_) ? ((ValaClass*) _tmp74_) : NULL);
      cl = _tmp75_;
      if (cl != NULL) {
            {
                  ValaList* _tmp76_ = NULL;
                  ValaList* _base_type_list;
                  gint _tmp77_;
                  gint _base_type_size;
                  gint _base_type_index;
                  _tmp76_ = vala_class_get_base_types (cl);
                  _base_type_list = _tmp76_;
                  _tmp77_ = vala_collection_get_size ((ValaCollection*) _base_type_list);
                  _base_type_size = _tmp77_;
                  _base_type_index = -1;
                  while (TRUE) {
                        gpointer _tmp78_ = NULL;
                        ValaDataType* base_type;
                        ValaDataType* _tmp79_;
                        ValaObjectType* _tmp80_;
                        ValaObjectType* base_obj_type;
                        ValaObjectTypeSymbol* _tmp81_ = NULL;
                        gboolean _tmp82_;
                        _base_type_index = _base_type_index + 1;
                        if (!(_base_type_index < _base_type_size)) {
                              break;
                        }
                        _tmp78_ = vala_list_get (_base_type_list, _base_type_index);
                        base_type = (ValaDataType*) _tmp78_;
                        _tmp79_ = base_type;
                        _tmp80_ = _vala_code_node_ref0 (VALA_IS_OBJECT_TYPE (_tmp79_) ? ((ValaObjectType*) _tmp79_) : NULL);
                        base_obj_type = _tmp80_;
                        _tmp81_ = vala_object_type_get_type_symbol (base_obj_type);
                        _tmp82_ = vala_dbus_server_module_type_implements_dbus_interface (self, _tmp81_);
                        if (_tmp82_) {
                              ValaObjectTypeSymbol* _tmp83_ = NULL;
                              gchar* _tmp84_ = NULL;
                              gchar* _tmp85_;
                              gchar* _tmp86_;
                              gchar* _tmp87_;
                              ValaCCodeIdentifier* _tmp88_ = NULL;
                              ValaCCodeIdentifier* _tmp89_;
                              ValaCCodeFunctionCall* _tmp90_ = NULL;
                              ValaCCodeFunctionCall* _tmp91_;
                              ValaCCodeFunctionCall* base_register;
                              ValaCCodeIdentifier* _tmp92_ = NULL;
                              ValaCCodeIdentifier* _tmp93_;
                              ValaCCodeIdentifier* _tmp94_ = NULL;
                              ValaCCodeIdentifier* _tmp95_;
                              ValaCCodeIdentifier* _tmp96_ = NULL;
                              ValaCCodeIdentifier* _tmp97_;
                              ValaCCodeExpressionStatement* _tmp98_ = NULL;
                              ValaCCodeExpressionStatement* _tmp99_;
                              _tmp83_ = vala_object_type_get_type_symbol (base_obj_type);
                              _tmp84_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) _tmp83_);
                              _tmp85_ = _tmp84_;
                              _tmp86_ = g_strconcat (_tmp85_, "dbus_register_object", NULL);
                              _tmp87_ = _tmp86_;
                              _tmp88_ = vala_ccode_identifier_new (_tmp87_);
                              _tmp89_ = _tmp88_;
                              _tmp90_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp89_);
                              _tmp91_ = _tmp90_;
                              _vala_ccode_node_unref0 (_tmp89_);
                              _g_free0 (_tmp87_);
                              _g_free0 (_tmp85_);
                              base_register = _tmp91_;
                              _tmp92_ = vala_ccode_identifier_new ("connection");
                              _tmp93_ = _tmp92_;
                              vala_ccode_function_call_add_argument (base_register, (ValaCCodeExpression*) _tmp93_);
                              _vala_ccode_node_unref0 (_tmp93_);
                              _tmp94_ = vala_ccode_identifier_new ("path");
                              _tmp95_ = _tmp94_;
                              vala_ccode_function_call_add_argument (base_register, (ValaCCodeExpression*) _tmp95_);
                              _vala_ccode_node_unref0 (_tmp95_);
                              _tmp96_ = vala_ccode_identifier_new ("object");
                              _tmp97_ = _tmp96_;
                              vala_ccode_function_call_add_argument (base_register, (ValaCCodeExpression*) _tmp97_);
                              _vala_ccode_node_unref0 (_tmp97_);
                              _tmp98_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) base_register);
                              _tmp99_ = _tmp98_;
                              vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp99_);
                              _vala_ccode_node_unref0 (_tmp99_);
                              _vala_ccode_node_unref0 (base_register);
                        }
                        _vala_code_node_unref0 (base_obj_type);
                        _vala_code_node_unref0 (base_type);
                  }
                  _vala_iterable_unref0 (_base_type_list);
            }
      }
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, cfunc);
      _vala_code_node_unref0 (cl);
      _vala_ccode_node_unref0 (weak_unregister);
      _vala_ccode_node_unref0 (cregister);
      _vala_ccode_node_unref0 (set_path);
      _vala_ccode_node_unref0 (path_dup);
      _vala_ccode_node_unref0 (register_block);
      _vala_ccode_node_unref0 (register_check);
      _vala_ccode_node_unref0 (get_path);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (cfunc);
      _vala_code_node_unref0 (sym);
}


static void vala_dbus_server_module_generate_unregister_function (ValaDBusServerModule* self, ValaObjectType* object_type) {
      ValaObjectTypeSymbol* _tmp0_ = NULL;
      ValaObjectTypeSymbol* _tmp1_;
      ValaObjectTypeSymbol* sym;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* _tmp4_;
      gchar* _tmp5_;
      gchar* _tmp6_;
      gchar* _tmp7_;
      ValaCCodeFunction* _tmp8_ = NULL;
      ValaCCodeFunction* _tmp9_;
      ValaCCodeFunction* cfunc;
      ValaCCodeParameter* _tmp10_ = NULL;
      ValaCCodeParameter* _tmp11_;
      ValaCCodeParameter* _tmp12_ = NULL;
      ValaCCodeParameter* _tmp13_;
      ValaCCodeBlock* _tmp14_ = NULL;
      ValaCCodeBlock* block;
      g_return_if_fail (self != NULL);
      g_return_if_fail (object_type != NULL);
      _tmp0_ = vala_object_type_get_type_symbol (object_type);
      _tmp1_ = _vala_code_node_ref0 (_tmp0_);
      sym = _tmp1_;
      _tmp2_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp3_ = _tmp2_;
      _tmp4_ = g_strconcat ("_", _tmp3_, NULL);
      _tmp5_ = _tmp4_;
      _tmp6_ = g_strconcat (_tmp5_, "dbus_unregister", NULL);
      _tmp7_ = _tmp6_;
      _tmp8_ = vala_ccode_function_new (_tmp7_, "void");
      _tmp9_ = _tmp8_;
      _g_free0 (_tmp7_);
      _g_free0 (_tmp5_);
      _g_free0 (_tmp3_);
      cfunc = _tmp9_;
      _tmp10_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp11_ = _tmp10_;
      vala_ccode_function_add_parameter (cfunc, _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_parameter_new ("_user_data_", "void*");
      _tmp13_ = _tmp12_;
      vala_ccode_function_add_parameter (cfunc, _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, cfunc);
      _tmp14_ = vala_ccode_block_new ();
      block = _tmp14_;
      vala_ccode_function_set_block (cfunc, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, cfunc);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (cfunc);
      _vala_code_node_unref0 (sym);
}


static void vala_dbus_server_module_handle_method (ValaDBusServerModule* self, const gchar* dbus_iface_name, const gchar* dbus_method_name, const gchar* handler_name, ValaCCodeBlock* block, ValaCCodeIfStatement** clastif) {
      ValaCCodeIdentifier* _tmp0_ = NULL;
      ValaCCodeIdentifier* _tmp1_;
      ValaCCodeFunctionCall* _tmp2_ = NULL;
      ValaCCodeFunctionCall* _tmp3_;
      ValaCCodeFunctionCall* ccheck;
      ValaCCodeIdentifier* _tmp4_ = NULL;
      ValaCCodeIdentifier* _tmp5_;
      gchar* _tmp6_ = NULL;
      gchar* _tmp7_;
      ValaCCodeConstant* _tmp8_ = NULL;
      ValaCCodeConstant* _tmp9_;
      gchar* _tmp10_ = NULL;
      gchar* _tmp11_;
      ValaCCodeConstant* _tmp12_ = NULL;
      ValaCCodeConstant* _tmp13_;
      ValaCCodeBlock* _tmp14_ = NULL;
      ValaCCodeBlock* callblock;
      ValaCCodeIdentifier* _tmp15_ = NULL;
      ValaCCodeIdentifier* _tmp16_;
      ValaCCodeFunctionCall* _tmp17_ = NULL;
      ValaCCodeFunctionCall* _tmp18_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp19_ = NULL;
      ValaCCodeIdentifier* _tmp20_;
      ValaCCodeIdentifier* _tmp21_ = NULL;
      ValaCCodeIdentifier* _tmp22_;
      ValaCCodeIdentifier* _tmp23_ = NULL;
      ValaCCodeIdentifier* _tmp24_;
      ValaCCodeIdentifier* _tmp25_ = NULL;
      ValaCCodeIdentifier* _tmp26_;
      ValaCCodeAssignment* _tmp27_ = NULL;
      ValaCCodeAssignment* _tmp28_;
      ValaCCodeExpressionStatement* _tmp29_ = NULL;
      ValaCCodeExpressionStatement* _tmp30_;
      ValaCCodeIfStatement* _tmp31_ = NULL;
      ValaCCodeIfStatement* cif;
      ValaCCodeIfStatement* _tmp32_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (dbus_iface_name != NULL);
      g_return_if_fail (dbus_method_name != NULL);
      g_return_if_fail (handler_name != NULL);
      g_return_if_fail (block != NULL);
      g_return_if_fail (clastif != NULL);
      _tmp0_ = vala_ccode_identifier_new ("dbus_message_is_method_call");
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp1_);
      _tmp3_ = _tmp2_;
      _vala_ccode_node_unref0 (_tmp1_);
      ccheck = _tmp3_;
      _tmp4_ = vala_ccode_identifier_new ("message");
      _tmp5_ = _tmp4_;
      vala_ccode_function_call_add_argument (ccheck, (ValaCCodeExpression*) _tmp5_);
      _vala_ccode_node_unref0 (_tmp5_);
      _tmp6_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
      _tmp7_ = _tmp6_;
      _tmp8_ = vala_ccode_constant_new (_tmp7_);
      _tmp9_ = _tmp8_;
      vala_ccode_function_call_add_argument (ccheck, (ValaCCodeExpression*) _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _g_free0 (_tmp7_);
      _tmp10_ = g_strdup_printf ("\"%s\"", dbus_method_name);
      _tmp11_ = _tmp10_;
      _tmp12_ = vala_ccode_constant_new (_tmp11_);
      _tmp13_ = _tmp12_;
      vala_ccode_function_call_add_argument (ccheck, (ValaCCodeExpression*) _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      _g_free0 (_tmp11_);
      _tmp14_ = vala_ccode_block_new ();
      callblock = _tmp14_;
      _tmp15_ = vala_ccode_identifier_new (handler_name);
      _tmp16_ = _tmp15_;
      _tmp17_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp16_);
      _tmp18_ = _tmp17_;
      _vala_ccode_node_unref0 (_tmp16_);
      ccall = _tmp18_;
      _tmp19_ = vala_ccode_identifier_new ("object");
      _tmp20_ = _tmp19_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp20_);
      _vala_ccode_node_unref0 (_tmp20_);
      _tmp21_ = vala_ccode_identifier_new ("connection");
      _tmp22_ = _tmp21_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp22_);
      _vala_ccode_node_unref0 (_tmp22_);
      _tmp23_ = vala_ccode_identifier_new ("message");
      _tmp24_ = _tmp23_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_ccode_identifier_new ("result");
      _tmp26_ = _tmp25_;
      _tmp27_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp26_, (ValaCCodeExpression*) ccall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp28_ = _tmp27_;
      _tmp29_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp28_);
      _tmp30_ = _tmp29_;
      vala_ccode_block_add_statement (callblock, (ValaCCodeNode*) _tmp30_);
      _vala_ccode_node_unref0 (_tmp30_);
      _vala_ccode_node_unref0 (_tmp28_);
      _vala_ccode_node_unref0 (_tmp26_);
      _tmp31_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) ccheck, (ValaCCodeStatement*) callblock, NULL);
      cif = _tmp31_;
      if ((*clastif) == NULL) {
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) cif);
      } else {
            vala_ccode_if_statement_set_false_statement (*clastif, (ValaCCodeStatement*) cif);
      }
      _tmp32_ = _vala_ccode_node_ref0 (cif);
      _vala_ccode_node_unref0 (*clastif);
      *clastif = _tmp32_;
      _vala_ccode_node_unref0 (cif);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (callblock);
      _vala_ccode_node_unref0 (ccheck);
}


static void vala_dbus_server_module_handle_methods (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name, ValaCCodeBlock* block, ValaCCodeIfStatement** clastif) {
      g_return_if_fail (self != NULL);
      g_return_if_fail (sym != NULL);
      g_return_if_fail (dbus_iface_name != NULL);
      g_return_if_fail (block != NULL);
      g_return_if_fail (clastif != NULL);
      {
            ValaList* _tmp0_ = NULL;
            ValaList* _m_list;
            gint _tmp1_;
            gint _m_size;
            gint _m_index;
            _tmp0_ = vala_object_type_symbol_get_methods (sym);
            _m_list = _tmp0_;
            _tmp1_ = vala_collection_get_size ((ValaCollection*) _m_list);
            _m_size = _tmp1_;
            _m_index = -1;
            while (TRUE) {
                  gpointer _tmp2_ = NULL;
                  ValaMethod* m;
                  gboolean _tmp3_ = FALSE;
                  gboolean _tmp4_ = FALSE;
                  gboolean _tmp5_ = FALSE;
                  gboolean _tmp9_;
                  gchar* _tmp10_ = NULL;
                  gchar* _tmp11_;
                  gchar* _tmp12_ = NULL;
                  gchar* _tmp13_;
                  _m_index = _m_index + 1;
                  if (!(_m_index < _m_size)) {
                        break;
                  }
                  _tmp2_ = vala_list_get (_m_list, _m_index);
                  m = (ValaMethod*) _tmp2_;
                  if (VALA_IS_CREATION_METHOD (m)) {
                        _tmp5_ = TRUE;
                  } else {
                        ValaMemberBinding _tmp6_;
                        _tmp6_ = vala_method_get_binding (m);
                        _tmp5_ = _tmp6_ != VALA_MEMBER_BINDING_INSTANCE;
                  }
                  if (_tmp5_) {
                        _tmp4_ = TRUE;
                  } else {
                        gboolean _tmp7_;
                        _tmp7_ = vala_method_get_overrides (m);
                        _tmp4_ = _tmp7_;
                  }
                  if (_tmp4_) {
                        _tmp3_ = TRUE;
                  } else {
                        ValaSymbolAccessibility _tmp8_;
                        _tmp8_ = vala_symbol_get_access ((ValaSymbol*) m);
                        _tmp3_ = _tmp8_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
                  }
                  if (_tmp3_) {
                        _vala_code_node_unref0 (m);
                        continue;
                  }
                  _tmp9_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) m);
                  if (!_tmp9_) {
                        _vala_code_node_unref0 (m);
                        continue;
                  }
                  _tmp10_ = vala_dbus_module_get_dbus_name_for_member ((ValaSymbol*) m);
                  _tmp11_ = _tmp10_;
                  _tmp12_ = vala_dbus_server_module_generate_dbus_wrapper (self, m, sym);
                  _tmp13_ = _tmp12_;
                  vala_dbus_server_module_handle_method (self, dbus_iface_name, _tmp11_, _tmp13_, block, clastif);
                  _g_free0 (_tmp13_);
                  _g_free0 (_tmp11_);
                  _vala_code_node_unref0 (m);
            }
            _vala_iterable_unref0 (_m_list);
      }
}


static gchar* vala_dbus_server_module_generate_dbus_property_get_wrapper (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* wrapper_name;
      ValaCCodeDeclaration* _cdecl_ = NULL;
      ValaCCodeFunction* _tmp4_ = NULL;
      ValaCCodeFunction* function;
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      ValaCCodeParameter* _tmp9_ = NULL;
      ValaCCodeParameter* _tmp10_;
      ValaCCodeParameter* _tmp11_ = NULL;
      ValaCCodeParameter* _tmp12_;
      ValaCCodeParameter* _tmp13_ = NULL;
      ValaCCodeParameter* _tmp14_;
      ValaCCodeBlock* _tmp15_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp16_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeDeclaration* _tmp17_ = NULL;
      ValaCCodeVariableDeclarator* _tmp18_ = NULL;
      ValaCCodeVariableDeclarator* _tmp19_;
      ValaCCodeDeclaration* _tmp20_ = NULL;
      ValaCCodeVariableDeclarator* _tmp21_ = NULL;
      ValaCCodeVariableDeclarator* _tmp22_;
      ValaCCodeVariableDeclarator* _tmp23_ = NULL;
      ValaCCodeVariableDeclarator* _tmp24_;
      ValaCCodeVariableDeclarator* _tmp25_ = NULL;
      ValaCCodeVariableDeclarator* _tmp26_;
      ValaCCodeIdentifier* _tmp27_ = NULL;
      ValaCCodeIdentifier* _tmp28_;
      ValaCCodeFunctionCall* _tmp29_ = NULL;
      ValaCCodeFunctionCall* _tmp30_;
      ValaCCodeFunctionCall* message_signature;
      ValaCCodeIdentifier* _tmp31_ = NULL;
      ValaCCodeIdentifier* _tmp32_;
      ValaCCodeIdentifier* _tmp33_ = NULL;
      ValaCCodeIdentifier* _tmp34_;
      ValaCCodeFunctionCall* _tmp35_ = NULL;
      ValaCCodeFunctionCall* _tmp36_;
      ValaCCodeFunctionCall* signature_check;
      ValaCCodeConstant* _tmp37_ = NULL;
      ValaCCodeConstant* _tmp38_;
      ValaCCodeBlock* _tmp39_ = NULL;
      ValaCCodeBlock* signature_error_block;
      ValaCCodeIdentifier* _tmp40_ = NULL;
      ValaCCodeIdentifier* _tmp41_;
      ValaCCodeReturnStatement* _tmp42_ = NULL;
      ValaCCodeReturnStatement* _tmp43_;
      ValaCCodeIfStatement* _tmp44_ = NULL;
      ValaCCodeIfStatement* _tmp45_;
      ValaCCodeIdentifier* _tmp46_ = NULL;
      ValaCCodeIdentifier* _tmp47_;
      ValaCCodeFunctionCall* _tmp48_ = NULL;
      ValaCCodeFunctionCall* _tmp49_;
      ValaCCodeFunctionCall* iter_call;
      ValaCCodeIdentifier* _tmp50_ = NULL;
      ValaCCodeIdentifier* _tmp51_;
      ValaCCodeIdentifier* _tmp52_ = NULL;
      ValaCCodeIdentifier* _tmp53_;
      ValaCCodeUnaryExpression* _tmp54_ = NULL;
      ValaCCodeUnaryExpression* _tmp55_;
      ValaCCodeExpressionStatement* _tmp56_ = NULL;
      ValaCCodeExpressionStatement* _tmp57_;
      ValaCCodeIdentifier* _tmp58_ = NULL;
      ValaCCodeIdentifier* _tmp59_;
      ValaCCodeFunctionCall* _tmp60_ = NULL;
      ValaCCodeFunctionCall* _tmp61_;
      ValaCCodeFunctionCall* msgcall;
      ValaCCodeIdentifier* _tmp62_ = NULL;
      ValaCCodeIdentifier* _tmp63_;
      ValaCCodeIdentifier* _tmp64_ = NULL;
      ValaCCodeIdentifier* _tmp65_;
      ValaCCodeAssignment* _tmp66_ = NULL;
      ValaCCodeAssignment* _tmp67_;
      ValaCCodeExpressionStatement* _tmp68_ = NULL;
      ValaCCodeExpressionStatement* _tmp69_;
      ValaCCodeIdentifier* _tmp70_ = NULL;
      ValaCCodeIdentifier* _tmp71_;
      ValaCCodeFunctionCall* _tmp72_ = NULL;
      ValaCCodeIdentifier* _tmp73_ = NULL;
      ValaCCodeIdentifier* _tmp74_;
      ValaCCodeIdentifier* _tmp75_ = NULL;
      ValaCCodeIdentifier* _tmp76_;
      ValaCCodeUnaryExpression* _tmp77_ = NULL;
      ValaCCodeUnaryExpression* _tmp78_;
      ValaCCodeExpressionStatement* _tmp79_ = NULL;
      ValaCCodeExpressionStatement* _tmp80_;
      ValaCCodeDeclaration* _tmp81_ = NULL;
      ValaCCodeVariableDeclarator* _tmp82_ = NULL;
      ValaCCodeVariableDeclarator* _tmp83_;
      ValaCCodeIdentifier* _tmp84_ = NULL;
      ValaCCodeIdentifier* target;
      ValaCCodeIdentifier* _tmp85_ = NULL;
      ValaCCodeIdentifier* _tmp86_;
      ValaCCodeExpression* _tmp87_ = NULL;
      ValaCCodeExpression* _tmp88_;
      ValaCCodeExpression* expr;
      ValaCCodeAssignment* _tmp89_ = NULL;
      ValaCCodeAssignment* _tmp90_;
      ValaCCodeExpressionStatement* _tmp91_ = NULL;
      ValaCCodeExpressionStatement* _tmp92_;
      ValaCCodeDeclaration* _tmp93_ = NULL;
      ValaCCodeVariableDeclarator* _tmp94_ = NULL;
      ValaCCodeVariableDeclarator* _tmp95_;
      ValaCCodeIdentifier* _tmp96_ = NULL;
      ValaCCodeIdentifier* _tmp97_ = NULL;
      ValaCCodeIdentifier* _tmp98_;
      ValaCCodeExpression* _tmp99_ = NULL;
      ValaCCodeAssignment* _tmp100_ = NULL;
      ValaCCodeAssignment* _tmp101_;
      ValaCCodeExpressionStatement* _tmp102_ = NULL;
      ValaCCodeExpressionStatement* _tmp103_;
      ValaCCodeIfStatement* clastif;
      ValaCCodeIdentifier* _tmp248_ = NULL;
      ValaCCodeIdentifier* _tmp249_;
      ValaCCodeFunctionCall* _tmp250_ = NULL;
      ValaCCodeFunctionCall* _tmp251_;
      ValaCCodeFunctionCall* free_call;
      ValaCCodeIdentifier* _tmp252_ = NULL;
      ValaCCodeIdentifier* _tmp253_;
      ValaCCodeExpressionStatement* _tmp254_ = NULL;
      ValaCCodeExpressionStatement* _tmp255_;
      ValaCCodeIdentifier* _tmp256_ = NULL;
      ValaCCodeIdentifier* _tmp257_;
      ValaCCodeFunctionCall* _tmp258_ = NULL;
      ValaCCodeIdentifier* _tmp259_ = NULL;
      ValaCCodeIdentifier* _tmp260_;
      ValaCCodeExpressionStatement* _tmp261_ = NULL;
      ValaCCodeExpressionStatement* _tmp262_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (sym != NULL, NULL);
      g_return_val_if_fail (dbus_iface_name != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp1_ = _tmp0_;
      _tmp2_ = g_strdup_printf ("_dbus_%s_property_get", _tmp1_);
      _tmp3_ = _tmp2_;
      _g_free0 (_tmp1_);
      wrapper_name = _tmp3_;
      _tmp4_ = vala_ccode_function_new (wrapper_name, "DBusHandlerResult");
      function = _tmp4_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp5_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) sym, FALSE);
      _tmp6_ = _tmp5_;
      _tmp7_ = g_strconcat (_tmp6_, "*", NULL);
      _tmp8_ = _tmp7_;
      _tmp9_ = vala_ccode_parameter_new ("self", _tmp8_);
      _tmp10_ = _tmp9_;
      vala_ccode_function_add_parameter (function, _tmp10_);
      _vala_ccode_node_unref0 (_tmp10_);
      _g_free0 (_tmp8_);
      _g_free0 (_tmp6_);
      _tmp11_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp12_ = _tmp11_;
      vala_ccode_function_add_parameter (function, _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _tmp13_ = vala_ccode_parameter_new ("message", "DBusMessage*");
      _tmp14_ = _tmp13_;
      vala_ccode_function_add_parameter (function, _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      _tmp15_ = vala_ccode_block_new ();
      block = _tmp15_;
      _tmp16_ = vala_ccode_fragment_new ();
      prefragment = _tmp16_;
      _tmp17_ = vala_ccode_declaration_new ("DBusMessage*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp17_;
      _tmp18_ = vala_ccode_variable_declarator_new ("reply", NULL, NULL);
      _tmp19_ = _tmp18_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp19_);
      _vala_ccode_node_unref0 (_tmp19_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp20_ = vala_ccode_declaration_new ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp20_;
      _tmp21_ = vala_ccode_variable_declarator_new ("iter", NULL, NULL);
      _tmp22_ = _tmp21_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp22_);
      _vala_ccode_node_unref0 (_tmp22_);
      _tmp23_ = vala_ccode_variable_declarator_new ("reply_iter", NULL, NULL);
      _tmp24_ = _tmp23_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_ccode_variable_declarator_new ("subiter", NULL, NULL);
      _tmp26_ = _tmp25_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp27_ = vala_ccode_identifier_new ("dbus_message_get_signature");
      _tmp28_ = _tmp27_;
      _tmp29_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp28_);
      _tmp30_ = _tmp29_;
      _vala_ccode_node_unref0 (_tmp28_);
      message_signature = _tmp30_;
      _tmp31_ = vala_ccode_identifier_new ("message");
      _tmp32_ = _tmp31_;
      vala_ccode_function_call_add_argument (message_signature, (ValaCCodeExpression*) _tmp32_);
      _vala_ccode_node_unref0 (_tmp32_);
      _tmp33_ = vala_ccode_identifier_new ("strcmp");
      _tmp34_ = _tmp33_;
      _tmp35_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp34_);
      _tmp36_ = _tmp35_;
      _vala_ccode_node_unref0 (_tmp34_);
      signature_check = _tmp36_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) message_signature);
      _tmp37_ = vala_ccode_constant_new ("\"ss\"");
      _tmp38_ = _tmp37_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) _tmp38_);
      _vala_ccode_node_unref0 (_tmp38_);
      _tmp39_ = vala_ccode_block_new ();
      signature_error_block = _tmp39_;
      _tmp40_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_NOT_YET_HANDLED");
      _tmp41_ = _tmp40_;
      _tmp42_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp41_);
      _tmp43_ = _tmp42_;
      vala_ccode_block_add_statement (signature_error_block, (ValaCCodeNode*) _tmp43_);
      _vala_ccode_node_unref0 (_tmp43_);
      _vala_ccode_node_unref0 (_tmp41_);
      _tmp44_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) signature_check, (ValaCCodeStatement*) signature_error_block, NULL);
      _tmp45_ = _tmp44_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp45_);
      _vala_ccode_node_unref0 (_tmp45_);
      _tmp46_ = vala_ccode_identifier_new ("dbus_message_iter_init");
      _tmp47_ = _tmp46_;
      _tmp48_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp47_);
      _tmp49_ = _tmp48_;
      _vala_ccode_node_unref0 (_tmp47_);
      iter_call = _tmp49_;
      _tmp50_ = vala_ccode_identifier_new ("message");
      _tmp51_ = _tmp50_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp51_);
      _vala_ccode_node_unref0 (_tmp51_);
      _tmp52_ = vala_ccode_identifier_new ("iter");
      _tmp53_ = _tmp52_;
      _tmp54_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp53_);
      _tmp55_ = _tmp54_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp55_);
      _vala_ccode_node_unref0 (_tmp55_);
      _vala_ccode_node_unref0 (_tmp53_);
      _tmp56_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp57_ = _tmp56_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp57_);
      _vala_ccode_node_unref0 (_tmp57_);
      _tmp58_ = vala_ccode_identifier_new ("dbus_message_new_method_return");
      _tmp59_ = _tmp58_;
      _tmp60_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp59_);
      _tmp61_ = _tmp60_;
      _vala_ccode_node_unref0 (_tmp59_);
      msgcall = _tmp61_;
      _tmp62_ = vala_ccode_identifier_new ("message");
      _tmp63_ = _tmp62_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp63_);
      _vala_ccode_node_unref0 (_tmp63_);
      _tmp64_ = vala_ccode_identifier_new ("reply");
      _tmp65_ = _tmp64_;
      _tmp66_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp65_, (ValaCCodeExpression*) msgcall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp67_ = _tmp66_;
      _tmp68_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp67_);
      _tmp69_ = _tmp68_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp69_);
      _vala_ccode_node_unref0 (_tmp69_);
      _vala_ccode_node_unref0 (_tmp67_);
      _vala_ccode_node_unref0 (_tmp65_);
      _tmp70_ = vala_ccode_identifier_new ("dbus_message_iter_init_append");
      _tmp71_ = _tmp70_;
      _tmp72_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp71_);
      _vala_ccode_node_unref0 (iter_call);
      iter_call = _tmp72_;
      _vala_ccode_node_unref0 (_tmp71_);
      _tmp73_ = vala_ccode_identifier_new ("reply");
      _tmp74_ = _tmp73_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp74_);
      _vala_ccode_node_unref0 (_tmp74_);
      _tmp75_ = vala_ccode_identifier_new ("reply_iter");
      _tmp76_ = _tmp75_;
      _tmp77_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp76_);
      _tmp78_ = _tmp77_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp78_);
      _vala_ccode_node_unref0 (_tmp78_);
      _vala_ccode_node_unref0 (_tmp76_);
      _tmp79_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp80_ = _tmp79_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp80_);
      _vala_ccode_node_unref0 (_tmp80_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) prefragment);
      _tmp81_ = vala_ccode_declaration_new ("char*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp81_;
      _tmp82_ = vala_ccode_variable_declarator_new ("interface_name", NULL, NULL);
      _tmp83_ = _tmp82_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp83_);
      _vala_ccode_node_unref0 (_tmp83_);
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
      _tmp84_ = vala_ccode_identifier_new ("interface_name");
      target = _tmp84_;
      _tmp85_ = vala_ccode_identifier_new ("iter");
      _tmp86_ = _tmp85_;
      _tmp87_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, prefragment, ((ValaCCodeBaseModule*) self)->string_type, (ValaCCodeExpression*) _tmp86_, (ValaCCodeExpression*) target);
      _tmp88_ = _tmp87_;
      _vala_ccode_node_unref0 (_tmp86_);
      expr = _tmp88_;
      _tmp89_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp90_ = _tmp89_;
      _tmp91_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp90_);
      _tmp92_ = _tmp91_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp92_);
      _vala_ccode_node_unref0 (_tmp92_);
      _vala_ccode_node_unref0 (_tmp90_);
      _tmp93_ = vala_ccode_declaration_new ("char*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp93_;
      _tmp94_ = vala_ccode_variable_declarator_new ("property_name", NULL, NULL);
      _tmp95_ = _tmp94_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp95_);
      _vala_ccode_node_unref0 (_tmp95_);
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
      _tmp96_ = vala_ccode_identifier_new ("property_name");
      _vala_ccode_node_unref0 (target);
      target = _tmp96_;
      _tmp97_ = vala_ccode_identifier_new ("iter");
      _tmp98_ = _tmp97_;
      _tmp99_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, prefragment, ((ValaCCodeBaseModule*) self)->string_type, (ValaCCodeExpression*) _tmp98_, (ValaCCodeExpression*) target);
      _vala_ccode_node_unref0 (expr);
      expr = _tmp99_;
      _vala_ccode_node_unref0 (_tmp98_);
      _tmp100_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp101_ = _tmp100_;
      _tmp102_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp101_);
      _tmp103_ = _tmp102_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp103_);
      _vala_ccode_node_unref0 (_tmp103_);
      _vala_ccode_node_unref0 (_tmp101_);
      clastif = NULL;
      {
            ValaList* _tmp104_ = NULL;
            ValaList* _prop_list;
            gint _tmp105_;
            gint _prop_size;
            gint _prop_index;
            _tmp104_ = vala_object_type_symbol_get_properties (sym);
            _prop_list = _tmp104_;
            _tmp105_ = vala_collection_get_size ((ValaCollection*) _prop_list);
            _prop_size = _tmp105_;
            _prop_index = -1;
            while (TRUE) {
                  gpointer _tmp106_ = NULL;
                  ValaProperty* prop;
                  gboolean _tmp107_ = FALSE;
                  gboolean _tmp108_ = FALSE;
                  ValaMemberBinding _tmp109_;
                  gboolean _tmp112_;
                  ValaPropertyAccessor* _tmp113_ = NULL;
                  ValaCCodeBlock* _tmp114_ = NULL;
                  ValaCCodeBlock* prop_block;
                  ValaCCodeFragment* _tmp115_ = NULL;
                  ValaCCodeFragment* postfragment;
                  ValaCCodeIdentifier* _tmp116_ = NULL;
                  ValaCCodeIdentifier* _tmp117_;
                  ValaCCodeFunctionCall* _tmp118_ = NULL;
                  ValaCCodeFunctionCall* _tmp119_;
                  ValaCCodeFunctionCall* ccmp;
                  ValaCCodeIdentifier* _tmp120_ = NULL;
                  ValaCCodeIdentifier* _tmp121_;
                  gchar* _tmp122_ = NULL;
                  gchar* _tmp123_;
                  ValaCCodeConstant* _tmp124_ = NULL;
                  ValaCCodeConstant* _tmp125_;
                  ValaCCodeConstant* _tmp126_ = NULL;
                  ValaCCodeConstant* _tmp127_;
                  ValaCCodeBinaryExpression* _tmp128_ = NULL;
                  ValaCCodeBinaryExpression* _tmp129_;
                  ValaCCodeBinaryExpression* ccheck1;
                  ValaCCodeIdentifier* _tmp130_ = NULL;
                  ValaCCodeIdentifier* _tmp131_;
                  ValaCCodeFunctionCall* _tmp132_ = NULL;
                  ValaCCodeIdentifier* _tmp133_ = NULL;
                  ValaCCodeIdentifier* _tmp134_;
                  gchar* _tmp135_ = NULL;
                  gchar* _tmp136_;
                  gchar* _tmp137_ = NULL;
                  gchar* _tmp138_;
                  ValaCCodeConstant* _tmp139_ = NULL;
                  ValaCCodeConstant* _tmp140_;
                  ValaCCodeConstant* _tmp141_ = NULL;
                  ValaCCodeConstant* _tmp142_;
                  ValaCCodeBinaryExpression* _tmp143_ = NULL;
                  ValaCCodeBinaryExpression* _tmp144_;
                  ValaCCodeBinaryExpression* ccheck2;
                  ValaCCodeBinaryExpression* _tmp145_ = NULL;
                  ValaCCodeBinaryExpression* ccheck;
                  ValaCCodeIdentifier* _tmp146_ = NULL;
                  ValaCCodeIdentifier* _tmp147_;
                  ValaCCodeFunctionCall* _tmp148_ = NULL;
                  ValaCCodeIdentifier* _tmp149_ = NULL;
                  ValaCCodeIdentifier* _tmp150_;
                  ValaCCodeUnaryExpression* _tmp151_ = NULL;
                  ValaCCodeUnaryExpression* _tmp152_;
                  ValaCCodeIdentifier* _tmp153_ = NULL;
                  ValaCCodeIdentifier* _tmp154_;
                  ValaDataType* _tmp155_ = NULL;
                  gchar* _tmp156_ = NULL;
                  gchar* _tmp157_;
                  gchar* _tmp158_ = NULL;
                  gchar* _tmp159_;
                  ValaCCodeConstant* _tmp160_ = NULL;
                  ValaCCodeConstant* _tmp161_;
                  ValaCCodeIdentifier* _tmp162_ = NULL;
                  ValaCCodeIdentifier* _tmp163_;
                  ValaCCodeUnaryExpression* _tmp164_ = NULL;
                  ValaCCodeUnaryExpression* _tmp165_;
                  ValaCCodeExpressionStatement* _tmp166_ = NULL;
                  ValaCCodeExpressionStatement* _tmp167_;
                  ValaPropertyAccessor* _tmp168_ = NULL;
                  gchar* _tmp169_ = NULL;
                  gchar* _tmp170_;
                  ValaCCodeIdentifier* _tmp171_ = NULL;
                  ValaCCodeIdentifier* _tmp172_;
                  ValaCCodeFunctionCall* _tmp173_ = NULL;
                  ValaCCodeFunctionCall* _tmp174_;
                  ValaCCodeFunctionCall* ccall;
                  ValaCCodeIdentifier* _tmp175_ = NULL;
                  ValaCCodeIdentifier* _tmp176_;
                  ValaDataType* _tmp177_ = NULL;
                  gchar* _tmp178_ = NULL;
                  gchar* _tmp179_;
                  ValaCCodeDeclaration* _tmp180_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp181_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp182_;
                  ValaDataType* _tmp183_ = NULL;
                  gboolean _tmp184_;
                  ValaDataType* _tmp210_ = NULL;
                  ValaCCodeIdentifier* _tmp211_ = NULL;
                  ValaCCodeIdentifier* _tmp212_;
                  ValaCCodeIdentifier* _tmp213_ = NULL;
                  ValaCCodeIdentifier* _tmp214_;
                  ValaPropertyAccessor* _tmp215_ = NULL;
                  ValaDataType* _tmp216_ = NULL;
                  gboolean _tmp217_;
                  ValaCCodeIdentifier* _tmp233_ = NULL;
                  ValaCCodeIdentifier* _tmp234_;
                  ValaCCodeFunctionCall* _tmp235_ = NULL;
                  ValaCCodeIdentifier* _tmp236_ = NULL;
                  ValaCCodeIdentifier* _tmp237_;
                  ValaCCodeUnaryExpression* _tmp238_ = NULL;
                  ValaCCodeUnaryExpression* _tmp239_;
                  ValaCCodeIdentifier* _tmp240_ = NULL;
                  ValaCCodeIdentifier* _tmp241_;
                  ValaCCodeUnaryExpression* _tmp242_ = NULL;
                  ValaCCodeUnaryExpression* _tmp243_;
                  ValaCCodeExpressionStatement* _tmp244_ = NULL;
                  ValaCCodeExpressionStatement* _tmp245_;
                  ValaCCodeIfStatement* _tmp246_ = NULL;
                  ValaCCodeIfStatement* cif;
                  ValaCCodeIfStatement* _tmp247_;
                  _prop_index = _prop_index + 1;
                  if (!(_prop_index < _prop_size)) {
                        break;
                  }
                  _tmp106_ = vala_list_get (_prop_list, _prop_index);
                  prop = (ValaProperty*) _tmp106_;
                  _tmp109_ = vala_property_get_binding (prop);
                  if (_tmp109_ != VALA_MEMBER_BINDING_INSTANCE) {
                        _tmp108_ = TRUE;
                  } else {
                        gboolean _tmp110_;
                        _tmp110_ = vala_property_get_overrides (prop);
                        _tmp108_ = _tmp110_;
                  }
                  if (_tmp108_) {
                        _tmp107_ = TRUE;
                  } else {
                        ValaSymbolAccessibility _tmp111_;
                        _tmp111_ = vala_symbol_get_access ((ValaSymbol*) prop);
                        _tmp107_ = _tmp111_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
                  }
                  if (_tmp107_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp112_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) prop);
                  if (!_tmp112_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp113_ = vala_property_get_get_accessor (prop);
                  if (_tmp113_ == NULL) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp114_ = vala_ccode_block_new ();
                  prop_block = _tmp114_;
                  _tmp115_ = vala_ccode_fragment_new ();
                  postfragment = _tmp115_;
                  vala_ccode_block_add_statement (prop_block, (ValaCCodeNode*) postfragment);
                  _tmp116_ = vala_ccode_identifier_new ("strcmp");
                  _tmp117_ = _tmp116_;
                  _tmp118_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp117_);
                  _tmp119_ = _tmp118_;
                  _vala_ccode_node_unref0 (_tmp117_);
                  ccmp = _tmp119_;
                  _tmp120_ = vala_ccode_identifier_new ("interface_name");
                  _tmp121_ = _tmp120_;
                  vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp121_);
                  _vala_ccode_node_unref0 (_tmp121_);
                  _tmp122_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
                  _tmp123_ = _tmp122_;
                  _tmp124_ = vala_ccode_constant_new (_tmp123_);
                  _tmp125_ = _tmp124_;
                  vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp125_);
                  _vala_ccode_node_unref0 (_tmp125_);
                  _g_free0 (_tmp123_);
                  _tmp126_ = vala_ccode_constant_new ("0");
                  _tmp127_ = _tmp126_;
                  _tmp128_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) ccmp, (ValaCCodeExpression*) _tmp127_);
                  _tmp129_ = _tmp128_;
                  _vala_ccode_node_unref0 (_tmp127_);
                  ccheck1 = _tmp129_;
                  _tmp130_ = vala_ccode_identifier_new ("strcmp");
                  _tmp131_ = _tmp130_;
                  _tmp132_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp131_);
                  _vala_ccode_node_unref0 (ccmp);
                  ccmp = _tmp132_;
                  _vala_ccode_node_unref0 (_tmp131_);
                  _tmp133_ = vala_ccode_identifier_new ("property_name");
                  _tmp134_ = _tmp133_;
                  vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp134_);
                  _vala_ccode_node_unref0 (_tmp134_);
                  _tmp135_ = vala_dbus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
                  _tmp136_ = _tmp135_;
                  _tmp137_ = g_strdup_printf ("\"%s\"", _tmp136_);
                  _tmp138_ = _tmp137_;
                  _tmp139_ = vala_ccode_constant_new (_tmp138_);
                  _tmp140_ = _tmp139_;
                  vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp140_);
                  _vala_ccode_node_unref0 (_tmp140_);
                  _g_free0 (_tmp138_);
                  _g_free0 (_tmp136_);
                  _tmp141_ = vala_ccode_constant_new ("0");
                  _tmp142_ = _tmp141_;
                  _tmp143_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) ccmp, (ValaCCodeExpression*) _tmp142_);
                  _tmp144_ = _tmp143_;
                  _vala_ccode_node_unref0 (_tmp142_);
                  ccheck2 = _tmp144_;
                  _tmp145_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) ccheck1, (ValaCCodeExpression*) ccheck2);
                  ccheck = _tmp145_;
                  _tmp146_ = vala_ccode_identifier_new ("dbus_message_iter_open_container");
                  _tmp147_ = _tmp146_;
                  _tmp148_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp147_);
                  _vala_ccode_node_unref0 (iter_call);
                  iter_call = _tmp148_;
                  _vala_ccode_node_unref0 (_tmp147_);
                  _tmp149_ = vala_ccode_identifier_new ("reply_iter");
                  _tmp150_ = _tmp149_;
                  _tmp151_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp150_);
                  _tmp152_ = _tmp151_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp152_);
                  _vala_ccode_node_unref0 (_tmp152_);
                  _vala_ccode_node_unref0 (_tmp150_);
                  _tmp153_ = vala_ccode_identifier_new ("DBUS_TYPE_VARIANT");
                  _tmp154_ = _tmp153_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp154_);
                  _vala_ccode_node_unref0 (_tmp154_);
                  _tmp155_ = vala_property_get_property_type (prop);
                  _tmp156_ = vala_dbus_module_get_type_signature (_tmp155_);
                  _tmp157_ = _tmp156_;
                  _tmp158_ = g_strdup_printf ("\"%s\"", _tmp157_);
                  _tmp159_ = _tmp158_;
                  _tmp160_ = vala_ccode_constant_new (_tmp159_);
                  _tmp161_ = _tmp160_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp161_);
                  _vala_ccode_node_unref0 (_tmp161_);
                  _g_free0 (_tmp159_);
                  _g_free0 (_tmp157_);
                  _tmp162_ = vala_ccode_identifier_new ("subiter");
                  _tmp163_ = _tmp162_;
                  _tmp164_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp163_);
                  _tmp165_ = _tmp164_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp165_);
                  _vala_ccode_node_unref0 (_tmp165_);
                  _vala_ccode_node_unref0 (_tmp163_);
                  _tmp166_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
                  _tmp167_ = _tmp166_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp167_);
                  _vala_ccode_node_unref0 (_tmp167_);
                  _tmp168_ = vala_property_get_get_accessor (prop);
                  _tmp169_ = vala_property_accessor_get_cname (_tmp168_);
                  _tmp170_ = _tmp169_;
                  _tmp171_ = vala_ccode_identifier_new (_tmp170_);
                  _tmp172_ = _tmp171_;
                  _tmp173_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp172_);
                  _tmp174_ = _tmp173_;
                  _vala_ccode_node_unref0 (_tmp172_);
                  _g_free0 (_tmp170_);
                  ccall = _tmp174_;
                  _tmp175_ = vala_ccode_identifier_new ("self");
                  _tmp176_ = _tmp175_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp176_);
                  _vala_ccode_node_unref0 (_tmp176_);
                  _tmp177_ = vala_property_get_property_type (prop);
                  _tmp178_ = vala_data_type_get_cname (_tmp177_);
                  _tmp179_ = _tmp178_;
                  _tmp180_ = vala_ccode_declaration_new (_tmp179_);
                  _vala_ccode_node_unref0 (_cdecl_);
                  _cdecl_ = _tmp180_;
                  _g_free0 (_tmp179_);
                  _tmp181_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
                  _tmp182_ = _tmp181_;
                  vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp182_);
                  _vala_ccode_node_unref0 (_tmp182_);
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _cdecl_);
                  _tmp183_ = vala_property_get_property_type (prop);
                  _tmp184_ = vala_data_type_is_real_non_null_struct_type (_tmp183_);
                  if (_tmp184_) {
                        ValaCCodeIdentifier* _tmp185_ = NULL;
                        ValaCCodeIdentifier* _tmp186_;
                        ValaCCodeUnaryExpression* _tmp187_ = NULL;
                        ValaCCodeUnaryExpression* _tmp188_;
                        ValaCCodeExpressionStatement* _tmp189_ = NULL;
                        ValaCCodeExpressionStatement* _tmp190_;
                        _tmp185_ = vala_ccode_identifier_new ("result");
                        _tmp186_ = _tmp185_;
                        _tmp187_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp186_);
                        _tmp188_ = _tmp187_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp188_);
                        _vala_ccode_node_unref0 (_tmp188_);
                        _vala_ccode_node_unref0 (_tmp186_);
                        _tmp189_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                        _tmp190_ = _tmp189_;
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp190_);
                        _vala_ccode_node_unref0 (_tmp190_);
                  } else {
                        ValaCCodeIdentifier* _tmp191_ = NULL;
                        ValaCCodeIdentifier* _tmp192_;
                        ValaCCodeAssignment* _tmp193_ = NULL;
                        ValaCCodeAssignment* _tmp194_;
                        ValaCCodeExpressionStatement* _tmp195_ = NULL;
                        ValaCCodeExpressionStatement* _tmp196_;
                        ValaDataType* _tmp197_ = NULL;
                        ValaDataType* _tmp198_;
                        ValaArrayType* _tmp199_;
                        ValaArrayType* array_type;
                        _tmp191_ = vala_ccode_identifier_new ("result");
                        _tmp192_ = _tmp191_;
                        _tmp193_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp192_, (ValaCCodeExpression*) ccall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp194_ = _tmp193_;
                        _tmp195_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp194_);
                        _tmp196_ = _tmp195_;
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp196_);
                        _vala_ccode_node_unref0 (_tmp196_);
                        _vala_ccode_node_unref0 (_tmp194_);
                        _vala_ccode_node_unref0 (_tmp192_);
                        _tmp197_ = vala_property_get_property_type (prop);
                        _tmp198_ = _tmp197_;
                        _tmp199_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp198_) ? ((ValaArrayType*) _tmp198_) : NULL);
                        array_type = _tmp199_;
                        if (array_type != NULL) {
                              {
                                    gint dim;
                                    dim = 1;
                                    {
                                          gboolean _tmp200_;
                                          _tmp200_ = TRUE;
                                          while (TRUE) {
                                                gint _tmp201_;
                                                gchar* _tmp202_ = NULL;
                                                gchar* length_cname;
                                                ValaCCodeDeclaration* _tmp203_ = NULL;
                                                ValaCCodeVariableDeclarator* _tmp204_ = NULL;
                                                ValaCCodeVariableDeclarator* _tmp205_;
                                                ValaCCodeIdentifier* _tmp206_ = NULL;
                                                ValaCCodeIdentifier* _tmp207_;
                                                ValaCCodeUnaryExpression* _tmp208_ = NULL;
                                                ValaCCodeUnaryExpression* _tmp209_;
                                                if (!_tmp200_) {
                                                      dim++;
                                                }
                                                _tmp200_ = FALSE;
                                                _tmp201_ = vala_array_type_get_rank (array_type);
                                                if (!(dim <= _tmp201_)) {
                                                      break;
                                                }
                                                _tmp202_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", dim);
                                                length_cname = _tmp202_;
                                                _tmp203_ = vala_ccode_declaration_new ("int");
                                                _vala_ccode_node_unref0 (_cdecl_);
                                                _cdecl_ = _tmp203_;
                                                _tmp204_ = vala_ccode_variable_declarator_new (length_cname, NULL, NULL);
                                                _tmp205_ = _tmp204_;
                                                vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp205_);
                                                _vala_ccode_node_unref0 (_tmp205_);
                                                vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _cdecl_);
                                                _tmp206_ = vala_ccode_identifier_new (length_cname);
                                                _tmp207_ = _tmp206_;
                                                _tmp208_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp207_);
                                                _tmp209_ = _tmp208_;
                                                vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp209_);
                                                _vala_ccode_node_unref0 (_tmp209_);
                                                _vala_ccode_node_unref0 (_tmp207_);
                                                _g_free0 (length_cname);
                                          }
                                    }
                              }
                        }
                        _vala_code_node_unref0 (array_type);
                  }
                  _tmp210_ = vala_property_get_property_type (prop);
                  _tmp211_ = vala_ccode_identifier_new ("subiter");
                  _tmp212_ = _tmp211_;
                  _tmp213_ = vala_ccode_identifier_new ("result");
                  _tmp214_ = _tmp213_;
                  vala_dbus_module_write_expression ((ValaDBusModule*) self, postfragment, _tmp210_, (ValaCCodeExpression*) _tmp212_, (ValaCCodeExpression*) _tmp214_);
                  _vala_ccode_node_unref0 (_tmp214_);
                  _vala_ccode_node_unref0 (_tmp212_);
                  _tmp215_ = vala_property_get_get_accessor (prop);
                  _tmp216_ = vala_property_accessor_get_value_type (_tmp215_);
                  _tmp217_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp216_);
                  if (_tmp217_) {
                        ValaPropertyAccessor* _tmp218_ = NULL;
                        ValaDataType* _tmp219_ = NULL;
                        ValaLocalVariable* _tmp220_ = NULL;
                        ValaLocalVariable* local;
                        ValaMemberAccess* _tmp221_ = NULL;
                        ValaMemberAccess* ma;
                        ValaDataType* _tmp222_ = NULL;
                        ValaDataType* _tmp223_ = NULL;
                        ValaDataType* _tmp224_;
                        ValaCCodeIdentifier* _tmp225_ = NULL;
                        ValaCCodeIdentifier* _tmp226_;
                        ValaPropertyAccessor* _tmp227_ = NULL;
                        ValaDataType* _tmp228_ = NULL;
                        ValaCCodeExpression* _tmp229_ = NULL;
                        ValaCCodeExpression* _tmp230_;
                        ValaCCodeExpressionStatement* _tmp231_ = NULL;
                        ValaCCodeExpressionStatement* _tmp232_;
                        _tmp218_ = vala_property_get_get_accessor (prop);
                        _tmp219_ = vala_property_accessor_get_value_type (_tmp218_);
                        _tmp220_ = vala_local_variable_new (_tmp219_, " result", NULL, NULL);
                        local = _tmp220_;
                        _tmp221_ = vala_member_access_new_simple ("result", NULL);
                        ma = _tmp221_;
                        vala_expression_set_symbol_reference ((ValaExpression*) ma, (ValaSymbol*) local);
                        _tmp222_ = vala_variable_get_variable_type ((ValaVariable*) local);
                        _tmp223_ = vala_data_type_copy (_tmp222_);
                        _tmp224_ = _tmp223_;
                        vala_expression_set_value_type ((ValaExpression*) ma, _tmp224_);
                        _vala_code_node_unref0 (_tmp224_);
                        vala_code_visitor_visit_member_access ((ValaCodeVisitor*) self, ma);
                        _tmp225_ = vala_ccode_identifier_new ("result");
                        _tmp226_ = _tmp225_;
                        _tmp227_ = vala_property_get_get_accessor (prop);
                        _tmp228_ = vala_property_accessor_get_value_type (_tmp227_);
                        _tmp229_ = vala_ccode_base_module_get_unref_expression ((ValaCCodeBaseModule*) self, (ValaCCodeExpression*) _tmp226_, _tmp228_, (ValaExpression*) ma, FALSE);
                        _tmp230_ = _tmp229_;
                        _tmp231_ = vala_ccode_expression_statement_new (_tmp230_);
                        _tmp232_ = _tmp231_;
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp232_);
                        _vala_ccode_node_unref0 (_tmp232_);
                        _vala_ccode_node_unref0 (_tmp230_);
                        _vala_ccode_node_unref0 (_tmp226_);
                        _vala_code_node_unref0 (ma);
                        _vala_code_node_unref0 (local);
                  }
                  _tmp233_ = vala_ccode_identifier_new ("dbus_message_iter_close_container");
                  _tmp234_ = _tmp233_;
                  _tmp235_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp234_);
                  _vala_ccode_node_unref0 (iter_call);
                  iter_call = _tmp235_;
                  _vala_ccode_node_unref0 (_tmp234_);
                  _tmp236_ = vala_ccode_identifier_new ("reply_iter");
                  _tmp237_ = _tmp236_;
                  _tmp238_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp237_);
                  _tmp239_ = _tmp238_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp239_);
                  _vala_ccode_node_unref0 (_tmp239_);
                  _vala_ccode_node_unref0 (_tmp237_);
                  _tmp240_ = vala_ccode_identifier_new ("subiter");
                  _tmp241_ = _tmp240_;
                  _tmp242_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp241_);
                  _tmp243_ = _tmp242_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp243_);
                  _vala_ccode_node_unref0 (_tmp243_);
                  _vala_ccode_node_unref0 (_tmp241_);
                  _tmp244_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
                  _tmp245_ = _tmp244_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp245_);
                  _vala_ccode_node_unref0 (_tmp245_);
                  _tmp246_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) ccheck, (ValaCCodeStatement*) prop_block, NULL);
                  cif = _tmp246_;
                  if (clastif == NULL) {
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) cif);
                  } else {
                        vala_ccode_if_statement_set_false_statement (clastif, (ValaCCodeStatement*) cif);
                  }
                  _tmp247_ = _vala_ccode_node_ref0 (cif);
                  _vala_ccode_node_unref0 (clastif);
                  clastif = _tmp247_;
                  _vala_ccode_node_unref0 (cif);
                  _vala_ccode_node_unref0 (ccall);
                  _vala_ccode_node_unref0 (ccheck);
                  _vala_ccode_node_unref0 (ccheck2);
                  _vala_ccode_node_unref0 (ccheck1);
                  _vala_ccode_node_unref0 (ccmp);
                  _vala_ccode_node_unref0 (postfragment);
                  _vala_ccode_node_unref0 (prop_block);
                  _vala_code_node_unref0 (prop);
            }
            _vala_iterable_unref0 (_prop_list);
      }
      _tmp248_ = vala_ccode_identifier_new ("g_free");
      _tmp249_ = _tmp248_;
      _tmp250_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp249_);
      _tmp251_ = _tmp250_;
      _vala_ccode_node_unref0 (_tmp249_);
      free_call = _tmp251_;
      _tmp252_ = vala_ccode_identifier_new ("interface_name");
      _tmp253_ = _tmp252_;
      vala_ccode_function_call_add_argument (free_call, (ValaCCodeExpression*) _tmp253_);
      _vala_ccode_node_unref0 (_tmp253_);
      _tmp254_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) free_call);
      _tmp255_ = _tmp254_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp255_);
      _vala_ccode_node_unref0 (_tmp255_);
      _tmp256_ = vala_ccode_identifier_new ("g_free");
      _tmp257_ = _tmp256_;
      _tmp258_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp257_);
      _vala_ccode_node_unref0 (free_call);
      free_call = _tmp258_;
      _vala_ccode_node_unref0 (_tmp257_);
      _tmp259_ = vala_ccode_identifier_new ("property_name");
      _tmp260_ = _tmp259_;
      vala_ccode_function_call_add_argument (free_call, (ValaCCodeExpression*) _tmp260_);
      _vala_ccode_node_unref0 (_tmp260_);
      _tmp261_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) free_call);
      _tmp262_ = _tmp261_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp262_);
      _vala_ccode_node_unref0 (_tmp262_);
      if (clastif == NULL) {
            ValaCCodeBlock* _tmp263_ = NULL;
            ValaCCodeConstant* _tmp264_ = NULL;
            ValaCCodeConstant* _tmp265_;
            ValaCCodeReturnStatement* _tmp266_ = NULL;
            ValaCCodeReturnStatement* _tmp267_;
            _tmp263_ = vala_ccode_block_new ();
            _vala_ccode_node_unref0 (block);
            block = _tmp263_;
            _tmp264_ = vala_ccode_constant_new ("NULL");
            _tmp265_ = _tmp264_;
            _tmp266_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp265_);
            _tmp267_ = _tmp266_;
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp267_);
            _vala_ccode_node_unref0 (_tmp267_);
            _vala_ccode_node_unref0 (_tmp265_);
      } else {
            ValaCCodeBlock* _tmp268_ = NULL;
            ValaCCodeBlock* else_block;
            ValaCCodeIdentifier* _tmp269_ = NULL;
            ValaCCodeIdentifier* _tmp270_;
            ValaCCodeFunctionCall* _tmp271_ = NULL;
            ValaCCodeFunctionCall* _tmp272_;
            ValaCCodeFunctionCall* unref_call;
            ValaCCodeIdentifier* _tmp273_ = NULL;
            ValaCCodeIdentifier* _tmp274_;
            ValaCCodeExpressionStatement* _tmp275_ = NULL;
            ValaCCodeExpressionStatement* _tmp276_;
            ValaCCodeIdentifier* _tmp277_ = NULL;
            ValaCCodeIdentifier* _tmp278_;
            ValaCCodeConstant* _tmp279_ = NULL;
            ValaCCodeConstant* _tmp280_;
            ValaCCodeAssignment* _tmp281_ = NULL;
            ValaCCodeAssignment* _tmp282_;
            ValaCCodeExpressionStatement* _tmp283_ = NULL;
            ValaCCodeExpressionStatement* _tmp284_;
            _tmp268_ = vala_ccode_block_new ();
            else_block = _tmp268_;
            _tmp269_ = vala_ccode_identifier_new ("dbus_message_unref");
            _tmp270_ = _tmp269_;
            _tmp271_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp270_);
            _tmp272_ = _tmp271_;
            _vala_ccode_node_unref0 (_tmp270_);
            unref_call = _tmp272_;
            _tmp273_ = vala_ccode_identifier_new ("reply");
            _tmp274_ = _tmp273_;
            vala_ccode_function_call_add_argument (unref_call, (ValaCCodeExpression*) _tmp274_);
            _vala_ccode_node_unref0 (_tmp274_);
            _tmp275_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) unref_call);
            _tmp276_ = _tmp275_;
            vala_ccode_block_add_statement (else_block, (ValaCCodeNode*) _tmp276_);
            _vala_ccode_node_unref0 (_tmp276_);
            _tmp277_ = vala_ccode_identifier_new ("reply");
            _tmp278_ = _tmp277_;
            _tmp279_ = vala_ccode_constant_new ("NULL");
            _tmp280_ = _tmp279_;
            _tmp281_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp278_, (ValaCCodeExpression*) _tmp280_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
            _tmp282_ = _tmp281_;
            _tmp283_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp282_);
            _tmp284_ = _tmp283_;
            vala_ccode_block_add_statement (else_block, (ValaCCodeNode*) _tmp284_);
            _vala_ccode_node_unref0 (_tmp284_);
            _vala_ccode_node_unref0 (_tmp282_);
            _vala_ccode_node_unref0 (_tmp280_);
            _vala_ccode_node_unref0 (_tmp278_);
            vala_ccode_if_statement_set_false_statement (clastif, (ValaCCodeStatement*) else_block);
            vala_dbus_server_module_handle_reply (self, block);
            _vala_ccode_node_unref0 (unref_call);
            _vala_ccode_node_unref0 (else_block);
      }
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_function_set_block (function, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = wrapper_name;
      _vala_ccode_node_unref0 (free_call);
      _vala_ccode_node_unref0 (clastif);
      _vala_ccode_node_unref0 (expr);
      _vala_ccode_node_unref0 (target);
      _vala_ccode_node_unref0 (msgcall);
      _vala_ccode_node_unref0 (iter_call);
      _vala_ccode_node_unref0 (signature_error_block);
      _vala_ccode_node_unref0 (signature_check);
      _vala_ccode_node_unref0 (message_signature);
      _vala_ccode_node_unref0 (prefragment);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (function);
      _vala_ccode_node_unref0 (_cdecl_);
      return result;
}


static gchar* vala_dbus_server_module_generate_dbus_property_get_all_wrapper (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* wrapper_name;
      gboolean has_readable_properties;
      ValaCCodeDeclaration* _cdecl_ = NULL;
      ValaCCodeFunction* _tmp14_ = NULL;
      ValaCCodeFunction* function;
      gchar* _tmp15_ = NULL;
      gchar* _tmp16_;
      gchar* _tmp17_;
      gchar* _tmp18_;
      ValaCCodeParameter* _tmp19_ = NULL;
      ValaCCodeParameter* _tmp20_;
      ValaCCodeParameter* _tmp21_ = NULL;
      ValaCCodeParameter* _tmp22_;
      ValaCCodeParameter* _tmp23_ = NULL;
      ValaCCodeParameter* _tmp24_;
      ValaCCodeBlock* _tmp25_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp26_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeDeclaration* _tmp27_ = NULL;
      ValaCCodeVariableDeclarator* _tmp28_ = NULL;
      ValaCCodeVariableDeclarator* _tmp29_;
      ValaCCodeDeclaration* _tmp30_ = NULL;
      ValaCCodeVariableDeclarator* _tmp31_ = NULL;
      ValaCCodeVariableDeclarator* _tmp32_;
      ValaCCodeVariableDeclarator* _tmp33_ = NULL;
      ValaCCodeVariableDeclarator* _tmp34_;
      ValaCCodeVariableDeclarator* _tmp35_ = NULL;
      ValaCCodeVariableDeclarator* _tmp36_;
      ValaCCodeIdentifier* _tmp41_ = NULL;
      ValaCCodeIdentifier* _tmp42_;
      ValaCCodeFunctionCall* _tmp43_ = NULL;
      ValaCCodeFunctionCall* _tmp44_;
      ValaCCodeFunctionCall* message_signature;
      ValaCCodeIdentifier* _tmp45_ = NULL;
      ValaCCodeIdentifier* _tmp46_;
      ValaCCodeIdentifier* _tmp47_ = NULL;
      ValaCCodeIdentifier* _tmp48_;
      ValaCCodeFunctionCall* _tmp49_ = NULL;
      ValaCCodeFunctionCall* _tmp50_;
      ValaCCodeFunctionCall* signature_check;
      ValaCCodeConstant* _tmp51_ = NULL;
      ValaCCodeConstant* _tmp52_;
      ValaCCodeBlock* _tmp53_ = NULL;
      ValaCCodeBlock* signature_error_block;
      ValaCCodeIdentifier* _tmp54_ = NULL;
      ValaCCodeIdentifier* _tmp55_;
      ValaCCodeReturnStatement* _tmp56_ = NULL;
      ValaCCodeReturnStatement* _tmp57_;
      ValaCCodeIfStatement* _tmp58_ = NULL;
      ValaCCodeIfStatement* _tmp59_;
      ValaCCodeIdentifier* _tmp60_ = NULL;
      ValaCCodeIdentifier* _tmp61_;
      ValaCCodeFunctionCall* _tmp62_ = NULL;
      ValaCCodeFunctionCall* _tmp63_;
      ValaCCodeFunctionCall* iter_call;
      ValaCCodeIdentifier* _tmp64_ = NULL;
      ValaCCodeIdentifier* _tmp65_;
      ValaCCodeIdentifier* _tmp66_ = NULL;
      ValaCCodeIdentifier* _tmp67_;
      ValaCCodeUnaryExpression* _tmp68_ = NULL;
      ValaCCodeUnaryExpression* _tmp69_;
      ValaCCodeExpressionStatement* _tmp70_ = NULL;
      ValaCCodeExpressionStatement* _tmp71_;
      ValaCCodeIdentifier* _tmp72_ = NULL;
      ValaCCodeIdentifier* _tmp73_;
      ValaCCodeFunctionCall* _tmp74_ = NULL;
      ValaCCodeFunctionCall* _tmp75_;
      ValaCCodeFunctionCall* msgcall;
      ValaCCodeIdentifier* _tmp76_ = NULL;
      ValaCCodeIdentifier* _tmp77_;
      ValaCCodeIdentifier* _tmp78_ = NULL;
      ValaCCodeIdentifier* _tmp79_;
      ValaCCodeAssignment* _tmp80_ = NULL;
      ValaCCodeAssignment* _tmp81_;
      ValaCCodeExpressionStatement* _tmp82_ = NULL;
      ValaCCodeExpressionStatement* _tmp83_;
      ValaCCodeIdentifier* _tmp84_ = NULL;
      ValaCCodeIdentifier* _tmp85_;
      ValaCCodeFunctionCall* _tmp86_ = NULL;
      ValaCCodeIdentifier* _tmp87_ = NULL;
      ValaCCodeIdentifier* _tmp88_;
      ValaCCodeIdentifier* _tmp89_ = NULL;
      ValaCCodeIdentifier* _tmp90_;
      ValaCCodeUnaryExpression* _tmp91_ = NULL;
      ValaCCodeUnaryExpression* _tmp92_;
      ValaCCodeExpressionStatement* _tmp93_ = NULL;
      ValaCCodeExpressionStatement* _tmp94_;
      ValaCCodeDeclaration* _tmp95_ = NULL;
      ValaCCodeVariableDeclarator* _tmp96_ = NULL;
      ValaCCodeVariableDeclarator* _tmp97_;
      ValaCCodeIdentifier* _tmp98_ = NULL;
      ValaCCodeIdentifier* target;
      ValaCCodeIdentifier* _tmp99_ = NULL;
      ValaCCodeIdentifier* _tmp100_;
      ValaCCodeExpression* _tmp101_ = NULL;
      ValaCCodeExpression* _tmp102_;
      ValaCCodeExpression* expr;
      ValaCCodeAssignment* _tmp103_ = NULL;
      ValaCCodeAssignment* _tmp104_;
      ValaCCodeExpressionStatement* _tmp105_ = NULL;
      ValaCCodeExpressionStatement* _tmp106_;
      ValaCCodeBlock* _tmp110_ = NULL;
      ValaCCodeBlock* prop_block;
      ValaCCodeIdentifier* _tmp111_ = NULL;
      ValaCCodeIdentifier* _tmp112_;
      ValaCCodeFunctionCall* _tmp113_ = NULL;
      ValaCCodeIdentifier* _tmp114_ = NULL;
      ValaCCodeIdentifier* _tmp115_;
      ValaCCodeUnaryExpression* _tmp116_ = NULL;
      ValaCCodeUnaryExpression* _tmp117_;
      ValaCCodeIdentifier* _tmp118_ = NULL;
      ValaCCodeIdentifier* _tmp119_;
      ValaCCodeConstant* _tmp120_ = NULL;
      ValaCCodeConstant* _tmp121_;
      ValaCCodeIdentifier* _tmp122_ = NULL;
      ValaCCodeIdentifier* _tmp123_;
      ValaCCodeUnaryExpression* _tmp124_ = NULL;
      ValaCCodeUnaryExpression* _tmp125_;
      ValaCCodeExpressionStatement* _tmp126_ = NULL;
      ValaCCodeExpressionStatement* _tmp127_;
      ValaCCodeIdentifier* _tmp297_ = NULL;
      ValaCCodeIdentifier* _tmp298_;
      ValaCCodeFunctionCall* _tmp299_ = NULL;
      ValaCCodeIdentifier* _tmp300_ = NULL;
      ValaCCodeIdentifier* _tmp301_;
      ValaCCodeUnaryExpression* _tmp302_ = NULL;
      ValaCCodeUnaryExpression* _tmp303_;
      ValaCCodeIdentifier* _tmp304_ = NULL;
      ValaCCodeIdentifier* _tmp305_;
      ValaCCodeUnaryExpression* _tmp306_ = NULL;
      ValaCCodeUnaryExpression* _tmp307_;
      ValaCCodeExpressionStatement* _tmp308_ = NULL;
      ValaCCodeExpressionStatement* _tmp309_;
      ValaCCodeIdentifier* _tmp310_ = NULL;
      ValaCCodeIdentifier* _tmp311_;
      ValaCCodeFunctionCall* _tmp312_ = NULL;
      ValaCCodeFunctionCall* _tmp313_;
      ValaCCodeFunctionCall* ccmp;
      ValaCCodeIdentifier* _tmp314_ = NULL;
      ValaCCodeIdentifier* _tmp315_;
      gchar* _tmp316_ = NULL;
      gchar* _tmp317_;
      ValaCCodeConstant* _tmp318_ = NULL;
      ValaCCodeConstant* _tmp319_;
      ValaCCodeConstant* _tmp320_ = NULL;
      ValaCCodeConstant* _tmp321_;
      ValaCCodeBinaryExpression* _tmp322_ = NULL;
      ValaCCodeBinaryExpression* _tmp323_;
      ValaCCodeBinaryExpression* ccheck;
      ValaCCodeBlock* _tmp324_ = NULL;
      ValaCCodeBlock* else_block;
      ValaCCodeIdentifier* _tmp325_ = NULL;
      ValaCCodeIdentifier* _tmp326_;
      ValaCCodeFunctionCall* _tmp327_ = NULL;
      ValaCCodeFunctionCall* _tmp328_;
      ValaCCodeFunctionCall* unref_call;
      ValaCCodeIdentifier* _tmp329_ = NULL;
      ValaCCodeIdentifier* _tmp330_;
      ValaCCodeExpressionStatement* _tmp331_ = NULL;
      ValaCCodeExpressionStatement* _tmp332_;
      ValaCCodeIdentifier* _tmp333_ = NULL;
      ValaCCodeIdentifier* _tmp334_;
      ValaCCodeConstant* _tmp335_ = NULL;
      ValaCCodeConstant* _tmp336_;
      ValaCCodeAssignment* _tmp337_ = NULL;
      ValaCCodeAssignment* _tmp338_;
      ValaCCodeExpressionStatement* _tmp339_ = NULL;
      ValaCCodeExpressionStatement* _tmp340_;
      ValaCCodeIfStatement* _tmp341_ = NULL;
      ValaCCodeIfStatement* _tmp342_;
      ValaCCodeIdentifier* _tmp343_ = NULL;
      ValaCCodeIdentifier* _tmp344_;
      ValaCCodeFunctionCall* _tmp345_ = NULL;
      ValaCCodeFunctionCall* _tmp346_;
      ValaCCodeFunctionCall* free_call;
      ValaCCodeIdentifier* _tmp347_ = NULL;
      ValaCCodeIdentifier* _tmp348_;
      ValaCCodeExpressionStatement* _tmp349_ = NULL;
      ValaCCodeExpressionStatement* _tmp350_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (sym != NULL, NULL);
      g_return_val_if_fail (dbus_iface_name != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp1_ = _tmp0_;
      _tmp2_ = g_strdup_printf ("_dbus_%s_property_get_all", _tmp1_);
      _tmp3_ = _tmp2_;
      _g_free0 (_tmp1_);
      wrapper_name = _tmp3_;
      has_readable_properties = FALSE;
      {
            ValaList* _tmp4_ = NULL;
            ValaList* _prop_list;
            gint _tmp5_;
            gint _prop_size;
            gint _prop_index;
            _tmp4_ = vala_object_type_symbol_get_properties (sym);
            _prop_list = _tmp4_;
            _tmp5_ = vala_collection_get_size ((ValaCollection*) _prop_list);
            _prop_size = _tmp5_;
            _prop_index = -1;
            while (TRUE) {
                  gpointer _tmp6_ = NULL;
                  ValaProperty* prop;
                  gboolean _tmp7_ = FALSE;
                  gboolean _tmp8_ = FALSE;
                  ValaMemberBinding _tmp9_;
                  gboolean _tmp12_;
                  ValaPropertyAccessor* _tmp13_ = NULL;
                  _prop_index = _prop_index + 1;
                  if (!(_prop_index < _prop_size)) {
                        break;
                  }
                  _tmp6_ = vala_list_get (_prop_list, _prop_index);
                  prop = (ValaProperty*) _tmp6_;
                  _tmp9_ = vala_property_get_binding (prop);
                  if (_tmp9_ != VALA_MEMBER_BINDING_INSTANCE) {
                        _tmp8_ = TRUE;
                  } else {
                        gboolean _tmp10_;
                        _tmp10_ = vala_property_get_overrides (prop);
                        _tmp8_ = _tmp10_;
                  }
                  if (_tmp8_) {
                        _tmp7_ = TRUE;
                  } else {
                        ValaSymbolAccessibility _tmp11_;
                        _tmp11_ = vala_symbol_get_access ((ValaSymbol*) prop);
                        _tmp7_ = _tmp11_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
                  }
                  if (_tmp7_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp12_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) prop);
                  if (!_tmp12_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp13_ = vala_property_get_get_accessor (prop);
                  if (_tmp13_ != NULL) {
                        has_readable_properties = TRUE;
                  }
                  _vala_code_node_unref0 (prop);
            }
            _vala_iterable_unref0 (_prop_list);
      }
      _tmp14_ = vala_ccode_function_new (wrapper_name, "DBusHandlerResult");
      function = _tmp14_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp15_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) sym, FALSE);
      _tmp16_ = _tmp15_;
      _tmp17_ = g_strconcat (_tmp16_, "*", NULL);
      _tmp18_ = _tmp17_;
      _tmp19_ = vala_ccode_parameter_new ("self", _tmp18_);
      _tmp20_ = _tmp19_;
      vala_ccode_function_add_parameter (function, _tmp20_);
      _vala_ccode_node_unref0 (_tmp20_);
      _g_free0 (_tmp18_);
      _g_free0 (_tmp16_);
      _tmp21_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp22_ = _tmp21_;
      vala_ccode_function_add_parameter (function, _tmp22_);
      _vala_ccode_node_unref0 (_tmp22_);
      _tmp23_ = vala_ccode_parameter_new ("message", "DBusMessage*");
      _tmp24_ = _tmp23_;
      vala_ccode_function_add_parameter (function, _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_ccode_block_new ();
      block = _tmp25_;
      _tmp26_ = vala_ccode_fragment_new ();
      prefragment = _tmp26_;
      _tmp27_ = vala_ccode_declaration_new ("DBusMessage*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp27_;
      _tmp28_ = vala_ccode_variable_declarator_new ("reply", NULL, NULL);
      _tmp29_ = _tmp28_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp29_);
      _vala_ccode_node_unref0 (_tmp29_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp30_ = vala_ccode_declaration_new ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp30_;
      _tmp31_ = vala_ccode_variable_declarator_new ("iter", NULL, NULL);
      _tmp32_ = _tmp31_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp32_);
      _vala_ccode_node_unref0 (_tmp32_);
      _tmp33_ = vala_ccode_variable_declarator_new ("reply_iter", NULL, NULL);
      _tmp34_ = _tmp33_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp34_);
      _vala_ccode_node_unref0 (_tmp34_);
      _tmp35_ = vala_ccode_variable_declarator_new ("subiter", NULL, NULL);
      _tmp36_ = _tmp35_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      if (has_readable_properties) {
            ValaCCodeVariableDeclarator* _tmp37_ = NULL;
            ValaCCodeVariableDeclarator* _tmp38_;
            ValaCCodeVariableDeclarator* _tmp39_ = NULL;
            ValaCCodeVariableDeclarator* _tmp40_;
            _tmp37_ = vala_ccode_variable_declarator_new ("entry_iter", NULL, NULL);
            _tmp38_ = _tmp37_;
            vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp38_);
            _vala_ccode_node_unref0 (_tmp38_);
            _tmp39_ = vala_ccode_variable_declarator_new ("value_iter", NULL, NULL);
            _tmp40_ = _tmp39_;
            vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp40_);
            _vala_ccode_node_unref0 (_tmp40_);
      }
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp41_ = vala_ccode_identifier_new ("dbus_message_get_signature");
      _tmp42_ = _tmp41_;
      _tmp43_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp42_);
      _tmp44_ = _tmp43_;
      _vala_ccode_node_unref0 (_tmp42_);
      message_signature = _tmp44_;
      _tmp45_ = vala_ccode_identifier_new ("message");
      _tmp46_ = _tmp45_;
      vala_ccode_function_call_add_argument (message_signature, (ValaCCodeExpression*) _tmp46_);
      _vala_ccode_node_unref0 (_tmp46_);
      _tmp47_ = vala_ccode_identifier_new ("strcmp");
      _tmp48_ = _tmp47_;
      _tmp49_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp48_);
      _tmp50_ = _tmp49_;
      _vala_ccode_node_unref0 (_tmp48_);
      signature_check = _tmp50_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) message_signature);
      _tmp51_ = vala_ccode_constant_new ("\"s\"");
      _tmp52_ = _tmp51_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) _tmp52_);
      _vala_ccode_node_unref0 (_tmp52_);
      _tmp53_ = vala_ccode_block_new ();
      signature_error_block = _tmp53_;
      _tmp54_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_NOT_YET_HANDLED");
      _tmp55_ = _tmp54_;
      _tmp56_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp55_);
      _tmp57_ = _tmp56_;
      vala_ccode_block_add_statement (signature_error_block, (ValaCCodeNode*) _tmp57_);
      _vala_ccode_node_unref0 (_tmp57_);
      _vala_ccode_node_unref0 (_tmp55_);
      _tmp58_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) signature_check, (ValaCCodeStatement*) signature_error_block, NULL);
      _tmp59_ = _tmp58_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp59_);
      _vala_ccode_node_unref0 (_tmp59_);
      _tmp60_ = vala_ccode_identifier_new ("dbus_message_iter_init");
      _tmp61_ = _tmp60_;
      _tmp62_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp61_);
      _tmp63_ = _tmp62_;
      _vala_ccode_node_unref0 (_tmp61_);
      iter_call = _tmp63_;
      _tmp64_ = vala_ccode_identifier_new ("message");
      _tmp65_ = _tmp64_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp65_);
      _vala_ccode_node_unref0 (_tmp65_);
      _tmp66_ = vala_ccode_identifier_new ("iter");
      _tmp67_ = _tmp66_;
      _tmp68_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp67_);
      _tmp69_ = _tmp68_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp69_);
      _vala_ccode_node_unref0 (_tmp69_);
      _vala_ccode_node_unref0 (_tmp67_);
      _tmp70_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp71_ = _tmp70_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp71_);
      _vala_ccode_node_unref0 (_tmp71_);
      _tmp72_ = vala_ccode_identifier_new ("dbus_message_new_method_return");
      _tmp73_ = _tmp72_;
      _tmp74_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp73_);
      _tmp75_ = _tmp74_;
      _vala_ccode_node_unref0 (_tmp73_);
      msgcall = _tmp75_;
      _tmp76_ = vala_ccode_identifier_new ("message");
      _tmp77_ = _tmp76_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp77_);
      _vala_ccode_node_unref0 (_tmp77_);
      _tmp78_ = vala_ccode_identifier_new ("reply");
      _tmp79_ = _tmp78_;
      _tmp80_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp79_, (ValaCCodeExpression*) msgcall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp81_ = _tmp80_;
      _tmp82_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp81_);
      _tmp83_ = _tmp82_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp83_);
      _vala_ccode_node_unref0 (_tmp83_);
      _vala_ccode_node_unref0 (_tmp81_);
      _vala_ccode_node_unref0 (_tmp79_);
      _tmp84_ = vala_ccode_identifier_new ("dbus_message_iter_init_append");
      _tmp85_ = _tmp84_;
      _tmp86_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp85_);
      _vala_ccode_node_unref0 (iter_call);
      iter_call = _tmp86_;
      _vala_ccode_node_unref0 (_tmp85_);
      _tmp87_ = vala_ccode_identifier_new ("reply");
      _tmp88_ = _tmp87_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp88_);
      _vala_ccode_node_unref0 (_tmp88_);
      _tmp89_ = vala_ccode_identifier_new ("reply_iter");
      _tmp90_ = _tmp89_;
      _tmp91_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp90_);
      _tmp92_ = _tmp91_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp92_);
      _vala_ccode_node_unref0 (_tmp92_);
      _vala_ccode_node_unref0 (_tmp90_);
      _tmp93_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp94_ = _tmp93_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp94_);
      _vala_ccode_node_unref0 (_tmp94_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) prefragment);
      _tmp95_ = vala_ccode_declaration_new ("char*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp95_;
      _tmp96_ = vala_ccode_variable_declarator_new ("interface_name", NULL, NULL);
      _tmp97_ = _tmp96_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp97_);
      _vala_ccode_node_unref0 (_tmp97_);
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
      _tmp98_ = vala_ccode_identifier_new ("interface_name");
      target = _tmp98_;
      _tmp99_ = vala_ccode_identifier_new ("iter");
      _tmp100_ = _tmp99_;
      _tmp101_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, prefragment, ((ValaCCodeBaseModule*) self)->string_type, (ValaCCodeExpression*) _tmp100_, (ValaCCodeExpression*) target);
      _tmp102_ = _tmp101_;
      _vala_ccode_node_unref0 (_tmp100_);
      expr = _tmp102_;
      _tmp103_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp104_ = _tmp103_;
      _tmp105_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp104_);
      _tmp106_ = _tmp105_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp106_);
      _vala_ccode_node_unref0 (_tmp106_);
      _vala_ccode_node_unref0 (_tmp104_);
      if (has_readable_properties) {
            ValaCCodeDeclaration* _tmp107_ = NULL;
            ValaCCodeVariableDeclarator* _tmp108_ = NULL;
            ValaCCodeVariableDeclarator* _tmp109_;
            _tmp107_ = vala_ccode_declaration_new ("const char*");
            _vala_ccode_node_unref0 (_cdecl_);
            _cdecl_ = _tmp107_;
            _tmp108_ = vala_ccode_variable_declarator_new ("property_name", NULL, NULL);
            _tmp109_ = _tmp108_;
            vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp109_);
            _vala_ccode_node_unref0 (_tmp109_);
            vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
      }
      _tmp110_ = vala_ccode_block_new ();
      prop_block = _tmp110_;
      _tmp111_ = vala_ccode_identifier_new ("dbus_message_iter_open_container");
      _tmp112_ = _tmp111_;
      _tmp113_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp112_);
      _vala_ccode_node_unref0 (iter_call);
      iter_call = _tmp113_;
      _vala_ccode_node_unref0 (_tmp112_);
      _tmp114_ = vala_ccode_identifier_new ("reply_iter");
      _tmp115_ = _tmp114_;
      _tmp116_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp115_);
      _tmp117_ = _tmp116_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp117_);
      _vala_ccode_node_unref0 (_tmp117_);
      _vala_ccode_node_unref0 (_tmp115_);
      _tmp118_ = vala_ccode_identifier_new ("DBUS_TYPE_ARRAY");
      _tmp119_ = _tmp118_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp119_);
      _vala_ccode_node_unref0 (_tmp119_);
      _tmp120_ = vala_ccode_constant_new ("\"{sv}\"");
      _tmp121_ = _tmp120_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp121_);
      _vala_ccode_node_unref0 (_tmp121_);
      _tmp122_ = vala_ccode_identifier_new ("subiter");
      _tmp123_ = _tmp122_;
      _tmp124_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp123_);
      _tmp125_ = _tmp124_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp125_);
      _vala_ccode_node_unref0 (_tmp125_);
      _vala_ccode_node_unref0 (_tmp123_);
      _tmp126_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp127_ = _tmp126_;
      vala_ccode_block_add_statement (prop_block, (ValaCCodeNode*) _tmp127_);
      _vala_ccode_node_unref0 (_tmp127_);
      {
            ValaList* _tmp128_ = NULL;
            ValaList* _prop_list;
            gint _tmp129_;
            gint _prop_size;
            gint _prop_index;
            _tmp128_ = vala_object_type_symbol_get_properties (sym);
            _prop_list = _tmp128_;
            _tmp129_ = vala_collection_get_size ((ValaCollection*) _prop_list);
            _prop_size = _tmp129_;
            _prop_index = -1;
            while (TRUE) {
                  gpointer _tmp130_ = NULL;
                  ValaProperty* prop;
                  gboolean _tmp131_ = FALSE;
                  gboolean _tmp132_ = FALSE;
                  ValaMemberBinding _tmp133_;
                  gboolean _tmp136_;
                  ValaPropertyAccessor* _tmp137_ = NULL;
                  ValaCCodeBlock* _tmp138_ = NULL;
                  ValaCCodeBlock* inner_block;
                  ValaCCodeFragment* _tmp139_ = NULL;
                  ValaCCodeFragment* postfragment;
                  ValaCCodeIdentifier* _tmp140_ = NULL;
                  ValaCCodeIdentifier* _tmp141_;
                  ValaCCodeFunctionCall* _tmp142_ = NULL;
                  ValaCCodeIdentifier* _tmp143_ = NULL;
                  ValaCCodeIdentifier* _tmp144_;
                  ValaCCodeUnaryExpression* _tmp145_ = NULL;
                  ValaCCodeUnaryExpression* _tmp146_;
                  ValaCCodeIdentifier* _tmp147_ = NULL;
                  ValaCCodeIdentifier* _tmp148_;
                  ValaCCodeConstant* _tmp149_ = NULL;
                  ValaCCodeConstant* _tmp150_;
                  ValaCCodeIdentifier* _tmp151_ = NULL;
                  ValaCCodeIdentifier* _tmp152_;
                  ValaCCodeUnaryExpression* _tmp153_ = NULL;
                  ValaCCodeUnaryExpression* _tmp154_;
                  ValaCCodeExpressionStatement* _tmp155_ = NULL;
                  ValaCCodeExpressionStatement* _tmp156_;
                  ValaCCodeIdentifier* _tmp157_ = NULL;
                  ValaCCodeIdentifier* _tmp158_;
                  gchar* _tmp159_ = NULL;
                  gchar* _tmp160_;
                  gchar* _tmp161_ = NULL;
                  gchar* _tmp162_;
                  ValaCCodeConstant* _tmp163_ = NULL;
                  ValaCCodeConstant* _tmp164_;
                  ValaCCodeAssignment* _tmp165_ = NULL;
                  ValaCCodeAssignment* _tmp166_;
                  ValaCCodeExpressionStatement* _tmp167_ = NULL;
                  ValaCCodeExpressionStatement* _tmp168_;
                  ValaCCodeIdentifier* _tmp169_ = NULL;
                  ValaCCodeIdentifier* _tmp170_;
                  ValaCCodeFunctionCall* _tmp171_ = NULL;
                  ValaCCodeIdentifier* _tmp172_ = NULL;
                  ValaCCodeIdentifier* _tmp173_;
                  ValaCCodeUnaryExpression* _tmp174_ = NULL;
                  ValaCCodeUnaryExpression* _tmp175_;
                  ValaCCodeIdentifier* _tmp176_ = NULL;
                  ValaCCodeIdentifier* _tmp177_;
                  ValaCCodeIdentifier* _tmp178_ = NULL;
                  ValaCCodeIdentifier* _tmp179_;
                  ValaCCodeUnaryExpression* _tmp180_ = NULL;
                  ValaCCodeUnaryExpression* _tmp181_;
                  ValaCCodeExpressionStatement* _tmp182_ = NULL;
                  ValaCCodeExpressionStatement* _tmp183_;
                  ValaCCodeIdentifier* _tmp184_ = NULL;
                  ValaCCodeIdentifier* _tmp185_;
                  ValaCCodeFunctionCall* _tmp186_ = NULL;
                  ValaCCodeIdentifier* _tmp187_ = NULL;
                  ValaCCodeIdentifier* _tmp188_;
                  ValaCCodeUnaryExpression* _tmp189_ = NULL;
                  ValaCCodeUnaryExpression* _tmp190_;
                  ValaCCodeIdentifier* _tmp191_ = NULL;
                  ValaCCodeIdentifier* _tmp192_;
                  ValaDataType* _tmp193_ = NULL;
                  gchar* _tmp194_ = NULL;
                  gchar* _tmp195_;
                  gchar* _tmp196_ = NULL;
                  gchar* _tmp197_;
                  ValaCCodeConstant* _tmp198_ = NULL;
                  ValaCCodeConstant* _tmp199_;
                  ValaCCodeIdentifier* _tmp200_ = NULL;
                  ValaCCodeIdentifier* _tmp201_;
                  ValaCCodeUnaryExpression* _tmp202_ = NULL;
                  ValaCCodeUnaryExpression* _tmp203_;
                  ValaCCodeExpressionStatement* _tmp204_ = NULL;
                  ValaCCodeExpressionStatement* _tmp205_;
                  ValaPropertyAccessor* _tmp206_ = NULL;
                  gchar* _tmp207_ = NULL;
                  gchar* _tmp208_;
                  ValaCCodeIdentifier* _tmp209_ = NULL;
                  ValaCCodeIdentifier* _tmp210_;
                  ValaCCodeFunctionCall* _tmp211_ = NULL;
                  ValaCCodeFunctionCall* _tmp212_;
                  ValaCCodeFunctionCall* ccall;
                  ValaCCodeIdentifier* _tmp213_ = NULL;
                  ValaCCodeIdentifier* _tmp214_;
                  ValaDataType* _tmp215_ = NULL;
                  gchar* _tmp216_ = NULL;
                  gchar* _tmp217_;
                  ValaCCodeDeclaration* _tmp218_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp219_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp220_;
                  ValaDataType* _tmp221_ = NULL;
                  gboolean _tmp222_;
                  ValaDataType* _tmp248_ = NULL;
                  ValaCCodeIdentifier* _tmp249_ = NULL;
                  ValaCCodeIdentifier* _tmp250_;
                  ValaCCodeIdentifier* _tmp251_ = NULL;
                  ValaCCodeIdentifier* _tmp252_;
                  ValaPropertyAccessor* _tmp253_ = NULL;
                  ValaDataType* _tmp254_ = NULL;
                  gboolean _tmp255_;
                  ValaCCodeIdentifier* _tmp271_ = NULL;
                  ValaCCodeIdentifier* _tmp272_;
                  ValaCCodeFunctionCall* _tmp273_ = NULL;
                  ValaCCodeIdentifier* _tmp274_ = NULL;
                  ValaCCodeIdentifier* _tmp275_;
                  ValaCCodeUnaryExpression* _tmp276_ = NULL;
                  ValaCCodeUnaryExpression* _tmp277_;
                  ValaCCodeIdentifier* _tmp278_ = NULL;
                  ValaCCodeIdentifier* _tmp279_;
                  ValaCCodeUnaryExpression* _tmp280_ = NULL;
                  ValaCCodeUnaryExpression* _tmp281_;
                  ValaCCodeExpressionStatement* _tmp282_ = NULL;
                  ValaCCodeExpressionStatement* _tmp283_;
                  ValaCCodeIdentifier* _tmp284_ = NULL;
                  ValaCCodeIdentifier* _tmp285_;
                  ValaCCodeFunctionCall* _tmp286_ = NULL;
                  ValaCCodeIdentifier* _tmp287_ = NULL;
                  ValaCCodeIdentifier* _tmp288_;
                  ValaCCodeUnaryExpression* _tmp289_ = NULL;
                  ValaCCodeUnaryExpression* _tmp290_;
                  ValaCCodeIdentifier* _tmp291_ = NULL;
                  ValaCCodeIdentifier* _tmp292_;
                  ValaCCodeUnaryExpression* _tmp293_ = NULL;
                  ValaCCodeUnaryExpression* _tmp294_;
                  ValaCCodeExpressionStatement* _tmp295_ = NULL;
                  ValaCCodeExpressionStatement* _tmp296_;
                  _prop_index = _prop_index + 1;
                  if (!(_prop_index < _prop_size)) {
                        break;
                  }
                  _tmp130_ = vala_list_get (_prop_list, _prop_index);
                  prop = (ValaProperty*) _tmp130_;
                  _tmp133_ = vala_property_get_binding (prop);
                  if (_tmp133_ != VALA_MEMBER_BINDING_INSTANCE) {
                        _tmp132_ = TRUE;
                  } else {
                        gboolean _tmp134_;
                        _tmp134_ = vala_property_get_overrides (prop);
                        _tmp132_ = _tmp134_;
                  }
                  if (_tmp132_) {
                        _tmp131_ = TRUE;
                  } else {
                        ValaSymbolAccessibility _tmp135_;
                        _tmp135_ = vala_symbol_get_access ((ValaSymbol*) prop);
                        _tmp131_ = _tmp135_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
                  }
                  if (_tmp131_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp136_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) prop);
                  if (!_tmp136_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp137_ = vala_property_get_get_accessor (prop);
                  if (_tmp137_ == NULL) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp138_ = vala_ccode_block_new ();
                  inner_block = _tmp138_;
                  vala_ccode_block_add_statement (prop_block, (ValaCCodeNode*) inner_block);
                  _tmp139_ = vala_ccode_fragment_new ();
                  postfragment = _tmp139_;
                  vala_ccode_block_add_statement (inner_block, (ValaCCodeNode*) postfragment);
                  _tmp140_ = vala_ccode_identifier_new ("dbus_message_iter_open_container");
                  _tmp141_ = _tmp140_;
                  _tmp142_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp141_);
                  _vala_ccode_node_unref0 (iter_call);
                  iter_call = _tmp142_;
                  _vala_ccode_node_unref0 (_tmp141_);
                  _tmp143_ = vala_ccode_identifier_new ("subiter");
                  _tmp144_ = _tmp143_;
                  _tmp145_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp144_);
                  _tmp146_ = _tmp145_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp146_);
                  _vala_ccode_node_unref0 (_tmp146_);
                  _vala_ccode_node_unref0 (_tmp144_);
                  _tmp147_ = vala_ccode_identifier_new ("DBUS_TYPE_DICT_ENTRY");
                  _tmp148_ = _tmp147_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp148_);
                  _vala_ccode_node_unref0 (_tmp148_);
                  _tmp149_ = vala_ccode_constant_new ("NULL");
                  _tmp150_ = _tmp149_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp150_);
                  _vala_ccode_node_unref0 (_tmp150_);
                  _tmp151_ = vala_ccode_identifier_new ("entry_iter");
                  _tmp152_ = _tmp151_;
                  _tmp153_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp152_);
                  _tmp154_ = _tmp153_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp154_);
                  _vala_ccode_node_unref0 (_tmp154_);
                  _vala_ccode_node_unref0 (_tmp152_);
                  _tmp155_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
                  _tmp156_ = _tmp155_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp156_);
                  _vala_ccode_node_unref0 (_tmp156_);
                  _tmp157_ = vala_ccode_identifier_new ("property_name");
                  _tmp158_ = _tmp157_;
                  _tmp159_ = vala_dbus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
                  _tmp160_ = _tmp159_;
                  _tmp161_ = g_strdup_printf ("\"%s\"", _tmp160_);
                  _tmp162_ = _tmp161_;
                  _tmp163_ = vala_ccode_constant_new (_tmp162_);
                  _tmp164_ = _tmp163_;
                  _tmp165_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp158_, (ValaCCodeExpression*) _tmp164_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                  _tmp166_ = _tmp165_;
                  _tmp167_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp166_);
                  _tmp168_ = _tmp167_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp168_);
                  _vala_ccode_node_unref0 (_tmp168_);
                  _vala_ccode_node_unref0 (_tmp166_);
                  _vala_ccode_node_unref0 (_tmp164_);
                  _g_free0 (_tmp162_);
                  _g_free0 (_tmp160_);
                  _vala_ccode_node_unref0 (_tmp158_);
                  _tmp169_ = vala_ccode_identifier_new ("dbus_message_iter_append_basic");
                  _tmp170_ = _tmp169_;
                  _tmp171_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp170_);
                  _vala_ccode_node_unref0 (iter_call);
                  iter_call = _tmp171_;
                  _vala_ccode_node_unref0 (_tmp170_);
                  _tmp172_ = vala_ccode_identifier_new ("entry_iter");
                  _tmp173_ = _tmp172_;
                  _tmp174_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp173_);
                  _tmp175_ = _tmp174_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp175_);
                  _vala_ccode_node_unref0 (_tmp175_);
                  _vala_ccode_node_unref0 (_tmp173_);
                  _tmp176_ = vala_ccode_identifier_new ("DBUS_TYPE_STRING");
                  _tmp177_ = _tmp176_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp177_);
                  _vala_ccode_node_unref0 (_tmp177_);
                  _tmp178_ = vala_ccode_identifier_new ("property_name");
                  _tmp179_ = _tmp178_;
                  _tmp180_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp179_);
                  _tmp181_ = _tmp180_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp181_);
                  _vala_ccode_node_unref0 (_tmp181_);
                  _vala_ccode_node_unref0 (_tmp179_);
                  _tmp182_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
                  _tmp183_ = _tmp182_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp183_);
                  _vala_ccode_node_unref0 (_tmp183_);
                  _tmp184_ = vala_ccode_identifier_new ("dbus_message_iter_open_container");
                  _tmp185_ = _tmp184_;
                  _tmp186_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp185_);
                  _vala_ccode_node_unref0 (iter_call);
                  iter_call = _tmp186_;
                  _vala_ccode_node_unref0 (_tmp185_);
                  _tmp187_ = vala_ccode_identifier_new ("entry_iter");
                  _tmp188_ = _tmp187_;
                  _tmp189_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp188_);
                  _tmp190_ = _tmp189_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp190_);
                  _vala_ccode_node_unref0 (_tmp190_);
                  _vala_ccode_node_unref0 (_tmp188_);
                  _tmp191_ = vala_ccode_identifier_new ("DBUS_TYPE_VARIANT");
                  _tmp192_ = _tmp191_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp192_);
                  _vala_ccode_node_unref0 (_tmp192_);
                  _tmp193_ = vala_property_get_property_type (prop);
                  _tmp194_ = vala_dbus_module_get_type_signature (_tmp193_);
                  _tmp195_ = _tmp194_;
                  _tmp196_ = g_strdup_printf ("\"%s\"", _tmp195_);
                  _tmp197_ = _tmp196_;
                  _tmp198_ = vala_ccode_constant_new (_tmp197_);
                  _tmp199_ = _tmp198_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp199_);
                  _vala_ccode_node_unref0 (_tmp199_);
                  _g_free0 (_tmp197_);
                  _g_free0 (_tmp195_);
                  _tmp200_ = vala_ccode_identifier_new ("value_iter");
                  _tmp201_ = _tmp200_;
                  _tmp202_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp201_);
                  _tmp203_ = _tmp202_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp203_);
                  _vala_ccode_node_unref0 (_tmp203_);
                  _vala_ccode_node_unref0 (_tmp201_);
                  _tmp204_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
                  _tmp205_ = _tmp204_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp205_);
                  _vala_ccode_node_unref0 (_tmp205_);
                  _tmp206_ = vala_property_get_get_accessor (prop);
                  _tmp207_ = vala_property_accessor_get_cname (_tmp206_);
                  _tmp208_ = _tmp207_;
                  _tmp209_ = vala_ccode_identifier_new (_tmp208_);
                  _tmp210_ = _tmp209_;
                  _tmp211_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp210_);
                  _tmp212_ = _tmp211_;
                  _vala_ccode_node_unref0 (_tmp210_);
                  _g_free0 (_tmp208_);
                  ccall = _tmp212_;
                  _tmp213_ = vala_ccode_identifier_new ("self");
                  _tmp214_ = _tmp213_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp214_);
                  _vala_ccode_node_unref0 (_tmp214_);
                  _tmp215_ = vala_property_get_property_type (prop);
                  _tmp216_ = vala_data_type_get_cname (_tmp215_);
                  _tmp217_ = _tmp216_;
                  _tmp218_ = vala_ccode_declaration_new (_tmp217_);
                  _vala_ccode_node_unref0 (_cdecl_);
                  _cdecl_ = _tmp218_;
                  _g_free0 (_tmp217_);
                  _tmp219_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
                  _tmp220_ = _tmp219_;
                  vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp220_);
                  _vala_ccode_node_unref0 (_tmp220_);
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _cdecl_);
                  _tmp221_ = vala_property_get_property_type (prop);
                  _tmp222_ = vala_data_type_is_real_non_null_struct_type (_tmp221_);
                  if (_tmp222_) {
                        ValaCCodeIdentifier* _tmp223_ = NULL;
                        ValaCCodeIdentifier* _tmp224_;
                        ValaCCodeUnaryExpression* _tmp225_ = NULL;
                        ValaCCodeUnaryExpression* _tmp226_;
                        ValaCCodeExpressionStatement* _tmp227_ = NULL;
                        ValaCCodeExpressionStatement* _tmp228_;
                        _tmp223_ = vala_ccode_identifier_new ("result");
                        _tmp224_ = _tmp223_;
                        _tmp225_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp224_);
                        _tmp226_ = _tmp225_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp226_);
                        _vala_ccode_node_unref0 (_tmp226_);
                        _vala_ccode_node_unref0 (_tmp224_);
                        _tmp227_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                        _tmp228_ = _tmp227_;
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp228_);
                        _vala_ccode_node_unref0 (_tmp228_);
                  } else {
                        ValaCCodeIdentifier* _tmp229_ = NULL;
                        ValaCCodeIdentifier* _tmp230_;
                        ValaCCodeAssignment* _tmp231_ = NULL;
                        ValaCCodeAssignment* _tmp232_;
                        ValaCCodeExpressionStatement* _tmp233_ = NULL;
                        ValaCCodeExpressionStatement* _tmp234_;
                        ValaDataType* _tmp235_ = NULL;
                        ValaDataType* _tmp236_;
                        ValaArrayType* _tmp237_;
                        ValaArrayType* array_type;
                        _tmp229_ = vala_ccode_identifier_new ("result");
                        _tmp230_ = _tmp229_;
                        _tmp231_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp230_, (ValaCCodeExpression*) ccall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp232_ = _tmp231_;
                        _tmp233_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp232_);
                        _tmp234_ = _tmp233_;
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp234_);
                        _vala_ccode_node_unref0 (_tmp234_);
                        _vala_ccode_node_unref0 (_tmp232_);
                        _vala_ccode_node_unref0 (_tmp230_);
                        _tmp235_ = vala_property_get_property_type (prop);
                        _tmp236_ = _tmp235_;
                        _tmp237_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp236_) ? ((ValaArrayType*) _tmp236_) : NULL);
                        array_type = _tmp237_;
                        if (array_type != NULL) {
                              {
                                    gint dim;
                                    dim = 1;
                                    {
                                          gboolean _tmp238_;
                                          _tmp238_ = TRUE;
                                          while (TRUE) {
                                                gint _tmp239_;
                                                gchar* _tmp240_ = NULL;
                                                gchar* length_cname;
                                                ValaCCodeDeclaration* _tmp241_ = NULL;
                                                ValaCCodeVariableDeclarator* _tmp242_ = NULL;
                                                ValaCCodeVariableDeclarator* _tmp243_;
                                                ValaCCodeIdentifier* _tmp244_ = NULL;
                                                ValaCCodeIdentifier* _tmp245_;
                                                ValaCCodeUnaryExpression* _tmp246_ = NULL;
                                                ValaCCodeUnaryExpression* _tmp247_;
                                                if (!_tmp238_) {
                                                      dim++;
                                                }
                                                _tmp238_ = FALSE;
                                                _tmp239_ = vala_array_type_get_rank (array_type);
                                                if (!(dim <= _tmp239_)) {
                                                      break;
                                                }
                                                _tmp240_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", dim);
                                                length_cname = _tmp240_;
                                                _tmp241_ = vala_ccode_declaration_new ("int");
                                                _vala_ccode_node_unref0 (_cdecl_);
                                                _cdecl_ = _tmp241_;
                                                _tmp242_ = vala_ccode_variable_declarator_new (length_cname, NULL, NULL);
                                                _tmp243_ = _tmp242_;
                                                vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp243_);
                                                _vala_ccode_node_unref0 (_tmp243_);
                                                vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _cdecl_);
                                                _tmp244_ = vala_ccode_identifier_new (length_cname);
                                                _tmp245_ = _tmp244_;
                                                _tmp246_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp245_);
                                                _tmp247_ = _tmp246_;
                                                vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp247_);
                                                _vala_ccode_node_unref0 (_tmp247_);
                                                _vala_ccode_node_unref0 (_tmp245_);
                                                _g_free0 (length_cname);
                                          }
                                    }
                              }
                        }
                        _vala_code_node_unref0 (array_type);
                  }
                  _tmp248_ = vala_property_get_property_type (prop);
                  _tmp249_ = vala_ccode_identifier_new ("value_iter");
                  _tmp250_ = _tmp249_;
                  _tmp251_ = vala_ccode_identifier_new ("result");
                  _tmp252_ = _tmp251_;
                  vala_dbus_module_write_expression ((ValaDBusModule*) self, postfragment, _tmp248_, (ValaCCodeExpression*) _tmp250_, (ValaCCodeExpression*) _tmp252_);
                  _vala_ccode_node_unref0 (_tmp252_);
                  _vala_ccode_node_unref0 (_tmp250_);
                  _tmp253_ = vala_property_get_get_accessor (prop);
                  _tmp254_ = vala_property_accessor_get_value_type (_tmp253_);
                  _tmp255_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp254_);
                  if (_tmp255_) {
                        ValaPropertyAccessor* _tmp256_ = NULL;
                        ValaDataType* _tmp257_ = NULL;
                        ValaLocalVariable* _tmp258_ = NULL;
                        ValaLocalVariable* local;
                        ValaMemberAccess* _tmp259_ = NULL;
                        ValaMemberAccess* ma;
                        ValaDataType* _tmp260_ = NULL;
                        ValaDataType* _tmp261_ = NULL;
                        ValaDataType* _tmp262_;
                        ValaCCodeIdentifier* _tmp263_ = NULL;
                        ValaCCodeIdentifier* _tmp264_;
                        ValaPropertyAccessor* _tmp265_ = NULL;
                        ValaDataType* _tmp266_ = NULL;
                        ValaCCodeExpression* _tmp267_ = NULL;
                        ValaCCodeExpression* _tmp268_;
                        ValaCCodeExpressionStatement* _tmp269_ = NULL;
                        ValaCCodeExpressionStatement* _tmp270_;
                        _tmp256_ = vala_property_get_get_accessor (prop);
                        _tmp257_ = vala_property_accessor_get_value_type (_tmp256_);
                        _tmp258_ = vala_local_variable_new (_tmp257_, " result", NULL, NULL);
                        local = _tmp258_;
                        _tmp259_ = vala_member_access_new_simple ("result", NULL);
                        ma = _tmp259_;
                        vala_expression_set_symbol_reference ((ValaExpression*) ma, (ValaSymbol*) local);
                        _tmp260_ = vala_variable_get_variable_type ((ValaVariable*) local);
                        _tmp261_ = vala_data_type_copy (_tmp260_);
                        _tmp262_ = _tmp261_;
                        vala_expression_set_value_type ((ValaExpression*) ma, _tmp262_);
                        _vala_code_node_unref0 (_tmp262_);
                        vala_code_visitor_visit_member_access ((ValaCodeVisitor*) self, ma);
                        _tmp263_ = vala_ccode_identifier_new ("result");
                        _tmp264_ = _tmp263_;
                        _tmp265_ = vala_property_get_get_accessor (prop);
                        _tmp266_ = vala_property_accessor_get_value_type (_tmp265_);
                        _tmp267_ = vala_ccode_base_module_get_unref_expression ((ValaCCodeBaseModule*) self, (ValaCCodeExpression*) _tmp264_, _tmp266_, (ValaExpression*) ma, FALSE);
                        _tmp268_ = _tmp267_;
                        _tmp269_ = vala_ccode_expression_statement_new (_tmp268_);
                        _tmp270_ = _tmp269_;
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp270_);
                        _vala_ccode_node_unref0 (_tmp270_);
                        _vala_ccode_node_unref0 (_tmp268_);
                        _vala_ccode_node_unref0 (_tmp264_);
                        _vala_code_node_unref0 (ma);
                        _vala_code_node_unref0 (local);
                  }
                  _tmp271_ = vala_ccode_identifier_new ("dbus_message_iter_close_container");
                  _tmp272_ = _tmp271_;
                  _tmp273_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp272_);
                  _vala_ccode_node_unref0 (iter_call);
                  iter_call = _tmp273_;
                  _vala_ccode_node_unref0 (_tmp272_);
                  _tmp274_ = vala_ccode_identifier_new ("entry_iter");
                  _tmp275_ = _tmp274_;
                  _tmp276_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp275_);
                  _tmp277_ = _tmp276_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp277_);
                  _vala_ccode_node_unref0 (_tmp277_);
                  _vala_ccode_node_unref0 (_tmp275_);
                  _tmp278_ = vala_ccode_identifier_new ("value_iter");
                  _tmp279_ = _tmp278_;
                  _tmp280_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp279_);
                  _tmp281_ = _tmp280_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp281_);
                  _vala_ccode_node_unref0 (_tmp281_);
                  _vala_ccode_node_unref0 (_tmp279_);
                  _tmp282_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
                  _tmp283_ = _tmp282_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp283_);
                  _vala_ccode_node_unref0 (_tmp283_);
                  _tmp284_ = vala_ccode_identifier_new ("dbus_message_iter_close_container");
                  _tmp285_ = _tmp284_;
                  _tmp286_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp285_);
                  _vala_ccode_node_unref0 (iter_call);
                  iter_call = _tmp286_;
                  _vala_ccode_node_unref0 (_tmp285_);
                  _tmp287_ = vala_ccode_identifier_new ("subiter");
                  _tmp288_ = _tmp287_;
                  _tmp289_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp288_);
                  _tmp290_ = _tmp289_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp290_);
                  _vala_ccode_node_unref0 (_tmp290_);
                  _vala_ccode_node_unref0 (_tmp288_);
                  _tmp291_ = vala_ccode_identifier_new ("entry_iter");
                  _tmp292_ = _tmp291_;
                  _tmp293_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp292_);
                  _tmp294_ = _tmp293_;
                  vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp294_);
                  _vala_ccode_node_unref0 (_tmp294_);
                  _vala_ccode_node_unref0 (_tmp292_);
                  _tmp295_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
                  _tmp296_ = _tmp295_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp296_);
                  _vala_ccode_node_unref0 (_tmp296_);
                  _vala_ccode_node_unref0 (ccall);
                  _vala_ccode_node_unref0 (postfragment);
                  _vala_ccode_node_unref0 (inner_block);
                  _vala_code_node_unref0 (prop);
            }
            _vala_iterable_unref0 (_prop_list);
      }
      _tmp297_ = vala_ccode_identifier_new ("dbus_message_iter_close_container");
      _tmp298_ = _tmp297_;
      _tmp299_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp298_);
      _vala_ccode_node_unref0 (iter_call);
      iter_call = _tmp299_;
      _vala_ccode_node_unref0 (_tmp298_);
      _tmp300_ = vala_ccode_identifier_new ("reply_iter");
      _tmp301_ = _tmp300_;
      _tmp302_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp301_);
      _tmp303_ = _tmp302_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp303_);
      _vala_ccode_node_unref0 (_tmp303_);
      _vala_ccode_node_unref0 (_tmp301_);
      _tmp304_ = vala_ccode_identifier_new ("subiter");
      _tmp305_ = _tmp304_;
      _tmp306_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp305_);
      _tmp307_ = _tmp306_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp307_);
      _vala_ccode_node_unref0 (_tmp307_);
      _vala_ccode_node_unref0 (_tmp305_);
      _tmp308_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp309_ = _tmp308_;
      vala_ccode_block_add_statement (prop_block, (ValaCCodeNode*) _tmp309_);
      _vala_ccode_node_unref0 (_tmp309_);
      _tmp310_ = vala_ccode_identifier_new ("strcmp");
      _tmp311_ = _tmp310_;
      _tmp312_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp311_);
      _tmp313_ = _tmp312_;
      _vala_ccode_node_unref0 (_tmp311_);
      ccmp = _tmp313_;
      _tmp314_ = vala_ccode_identifier_new ("interface_name");
      _tmp315_ = _tmp314_;
      vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp315_);
      _vala_ccode_node_unref0 (_tmp315_);
      _tmp316_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
      _tmp317_ = _tmp316_;
      _tmp318_ = vala_ccode_constant_new (_tmp317_);
      _tmp319_ = _tmp318_;
      vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp319_);
      _vala_ccode_node_unref0 (_tmp319_);
      _g_free0 (_tmp317_);
      _tmp320_ = vala_ccode_constant_new ("0");
      _tmp321_ = _tmp320_;
      _tmp322_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) ccmp, (ValaCCodeExpression*) _tmp321_);
      _tmp323_ = _tmp322_;
      _vala_ccode_node_unref0 (_tmp321_);
      ccheck = _tmp323_;
      _tmp324_ = vala_ccode_block_new ();
      else_block = _tmp324_;
      _tmp325_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp326_ = _tmp325_;
      _tmp327_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp326_);
      _tmp328_ = _tmp327_;
      _vala_ccode_node_unref0 (_tmp326_);
      unref_call = _tmp328_;
      _tmp329_ = vala_ccode_identifier_new ("reply");
      _tmp330_ = _tmp329_;
      vala_ccode_function_call_add_argument (unref_call, (ValaCCodeExpression*) _tmp330_);
      _vala_ccode_node_unref0 (_tmp330_);
      _tmp331_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) unref_call);
      _tmp332_ = _tmp331_;
      vala_ccode_block_add_statement (else_block, (ValaCCodeNode*) _tmp332_);
      _vala_ccode_node_unref0 (_tmp332_);
      _tmp333_ = vala_ccode_identifier_new ("reply");
      _tmp334_ = _tmp333_;
      _tmp335_ = vala_ccode_constant_new ("NULL");
      _tmp336_ = _tmp335_;
      _tmp337_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp334_, (ValaCCodeExpression*) _tmp336_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp338_ = _tmp337_;
      _tmp339_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp338_);
      _tmp340_ = _tmp339_;
      vala_ccode_block_add_statement (else_block, (ValaCCodeNode*) _tmp340_);
      _vala_ccode_node_unref0 (_tmp340_);
      _vala_ccode_node_unref0 (_tmp338_);
      _vala_ccode_node_unref0 (_tmp336_);
      _vala_ccode_node_unref0 (_tmp334_);
      _tmp341_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) ccheck, (ValaCCodeStatement*) prop_block, (ValaCCodeStatement*) else_block);
      _tmp342_ = _tmp341_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp342_);
      _vala_ccode_node_unref0 (_tmp342_);
      _tmp343_ = vala_ccode_identifier_new ("g_free");
      _tmp344_ = _tmp343_;
      _tmp345_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp344_);
      _tmp346_ = _tmp345_;
      _vala_ccode_node_unref0 (_tmp344_);
      free_call = _tmp346_;
      _tmp347_ = vala_ccode_identifier_new ("interface_name");
      _tmp348_ = _tmp347_;
      vala_ccode_function_call_add_argument (free_call, (ValaCCodeExpression*) _tmp348_);
      _vala_ccode_node_unref0 (_tmp348_);
      _tmp349_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) free_call);
      _tmp350_ = _tmp349_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp350_);
      _vala_ccode_node_unref0 (_tmp350_);
      vala_dbus_server_module_handle_reply (self, block);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_function_set_block (function, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = wrapper_name;
      _vala_ccode_node_unref0 (free_call);
      _vala_ccode_node_unref0 (unref_call);
      _vala_ccode_node_unref0 (else_block);
      _vala_ccode_node_unref0 (ccheck);
      _vala_ccode_node_unref0 (ccmp);
      _vala_ccode_node_unref0 (prop_block);
      _vala_ccode_node_unref0 (expr);
      _vala_ccode_node_unref0 (target);
      _vala_ccode_node_unref0 (msgcall);
      _vala_ccode_node_unref0 (iter_call);
      _vala_ccode_node_unref0 (signature_error_block);
      _vala_ccode_node_unref0 (signature_check);
      _vala_ccode_node_unref0 (message_signature);
      _vala_ccode_node_unref0 (prefragment);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (function);
      _vala_ccode_node_unref0 (_cdecl_);
      return result;
}


static gchar* vala_dbus_server_module_generate_dbus_property_set_wrapper (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, const gchar* dbus_iface_name) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* wrapper_name;
      ValaCCodeFunction* _tmp4_ = NULL;
      ValaCCodeFunction* function;
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      ValaCCodeParameter* _tmp9_ = NULL;
      ValaCCodeParameter* _tmp10_;
      ValaCCodeParameter* _tmp11_ = NULL;
      ValaCCodeParameter* _tmp12_;
      ValaCCodeParameter* _tmp13_ = NULL;
      ValaCCodeParameter* _tmp14_;
      ValaCCodeBlock* _tmp15_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp16_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeDeclaration* _tmp17_ = NULL;
      ValaCCodeDeclaration* _cdecl_;
      ValaCCodeVariableDeclarator* _tmp18_ = NULL;
      ValaCCodeVariableDeclarator* _tmp19_;
      ValaCCodeDeclaration* _tmp20_ = NULL;
      ValaCCodeVariableDeclarator* _tmp21_ = NULL;
      ValaCCodeVariableDeclarator* _tmp22_;
      ValaCCodeVariableDeclarator* _tmp23_ = NULL;
      ValaCCodeVariableDeclarator* _tmp24_;
      ValaCCodeIdentifier* _tmp25_ = NULL;
      ValaCCodeIdentifier* _tmp26_;
      ValaCCodeFunctionCall* _tmp27_ = NULL;
      ValaCCodeFunctionCall* _tmp28_;
      ValaCCodeFunctionCall* message_signature;
      ValaCCodeIdentifier* _tmp29_ = NULL;
      ValaCCodeIdentifier* _tmp30_;
      ValaCCodeIdentifier* _tmp31_ = NULL;
      ValaCCodeIdentifier* _tmp32_;
      ValaCCodeFunctionCall* _tmp33_ = NULL;
      ValaCCodeFunctionCall* _tmp34_;
      ValaCCodeFunctionCall* signature_check;
      ValaCCodeConstant* _tmp35_ = NULL;
      ValaCCodeConstant* _tmp36_;
      ValaCCodeBlock* _tmp37_ = NULL;
      ValaCCodeBlock* signature_error_block;
      ValaCCodeIdentifier* _tmp38_ = NULL;
      ValaCCodeIdentifier* _tmp39_;
      ValaCCodeReturnStatement* _tmp40_ = NULL;
      ValaCCodeReturnStatement* _tmp41_;
      ValaCCodeIfStatement* _tmp42_ = NULL;
      ValaCCodeIfStatement* _tmp43_;
      ValaCCodeIdentifier* _tmp44_ = NULL;
      ValaCCodeIdentifier* _tmp45_;
      ValaCCodeFunctionCall* _tmp46_ = NULL;
      ValaCCodeFunctionCall* _tmp47_;
      ValaCCodeFunctionCall* iter_call;
      ValaCCodeIdentifier* _tmp48_ = NULL;
      ValaCCodeIdentifier* _tmp49_;
      ValaCCodeIdentifier* _tmp50_ = NULL;
      ValaCCodeIdentifier* _tmp51_;
      ValaCCodeUnaryExpression* _tmp52_ = NULL;
      ValaCCodeUnaryExpression* _tmp53_;
      ValaCCodeExpressionStatement* _tmp54_ = NULL;
      ValaCCodeExpressionStatement* _tmp55_;
      ValaCCodeIdentifier* _tmp56_ = NULL;
      ValaCCodeIdentifier* _tmp57_;
      ValaCCodeFunctionCall* _tmp58_ = NULL;
      ValaCCodeFunctionCall* _tmp59_;
      ValaCCodeFunctionCall* msgcall;
      ValaCCodeIdentifier* _tmp60_ = NULL;
      ValaCCodeIdentifier* _tmp61_;
      ValaCCodeIdentifier* _tmp62_ = NULL;
      ValaCCodeIdentifier* _tmp63_;
      ValaCCodeAssignment* _tmp64_ = NULL;
      ValaCCodeAssignment* _tmp65_;
      ValaCCodeExpressionStatement* _tmp66_ = NULL;
      ValaCCodeExpressionStatement* _tmp67_;
      ValaCCodeDeclaration* _tmp68_ = NULL;
      ValaCCodeVariableDeclarator* _tmp69_ = NULL;
      ValaCCodeVariableDeclarator* _tmp70_;
      ValaCCodeIdentifier* _tmp71_ = NULL;
      ValaCCodeIdentifier* target;
      ValaCCodeIdentifier* _tmp72_ = NULL;
      ValaCCodeIdentifier* _tmp73_;
      ValaCCodeExpression* _tmp74_ = NULL;
      ValaCCodeExpression* _tmp75_;
      ValaCCodeExpression* expr;
      ValaCCodeAssignment* _tmp76_ = NULL;
      ValaCCodeAssignment* _tmp77_;
      ValaCCodeExpressionStatement* _tmp78_ = NULL;
      ValaCCodeExpressionStatement* _tmp79_;
      ValaCCodeDeclaration* _tmp80_ = NULL;
      ValaCCodeVariableDeclarator* _tmp81_ = NULL;
      ValaCCodeVariableDeclarator* _tmp82_;
      ValaCCodeIdentifier* _tmp83_ = NULL;
      ValaCCodeIdentifier* _tmp84_ = NULL;
      ValaCCodeIdentifier* _tmp85_;
      ValaCCodeExpression* _tmp86_ = NULL;
      ValaCCodeAssignment* _tmp87_ = NULL;
      ValaCCodeAssignment* _tmp88_;
      ValaCCodeExpressionStatement* _tmp89_ = NULL;
      ValaCCodeExpressionStatement* _tmp90_;
      ValaCCodeIdentifier* _tmp91_ = NULL;
      ValaCCodeIdentifier* _tmp92_;
      ValaCCodeFunctionCall* _tmp93_ = NULL;
      ValaCCodeIdentifier* _tmp94_ = NULL;
      ValaCCodeIdentifier* _tmp95_;
      ValaCCodeUnaryExpression* _tmp96_ = NULL;
      ValaCCodeUnaryExpression* _tmp97_;
      ValaCCodeIdentifier* _tmp98_ = NULL;
      ValaCCodeIdentifier* _tmp99_;
      ValaCCodeUnaryExpression* _tmp100_ = NULL;
      ValaCCodeUnaryExpression* _tmp101_;
      ValaCCodeExpressionStatement* _tmp102_ = NULL;
      ValaCCodeExpressionStatement* _tmp103_;
      ValaCCodeIfStatement* clastif;
      ValaCCodeIdentifier* _tmp209_ = NULL;
      ValaCCodeIdentifier* _tmp210_;
      ValaCCodeFunctionCall* _tmp211_ = NULL;
      ValaCCodeFunctionCall* _tmp212_;
      ValaCCodeFunctionCall* free_call;
      ValaCCodeIdentifier* _tmp213_ = NULL;
      ValaCCodeIdentifier* _tmp214_;
      ValaCCodeExpressionStatement* _tmp215_ = NULL;
      ValaCCodeExpressionStatement* _tmp216_;
      ValaCCodeIdentifier* _tmp217_ = NULL;
      ValaCCodeIdentifier* _tmp218_;
      ValaCCodeFunctionCall* _tmp219_ = NULL;
      ValaCCodeIdentifier* _tmp220_ = NULL;
      ValaCCodeIdentifier* _tmp221_;
      ValaCCodeExpressionStatement* _tmp222_ = NULL;
      ValaCCodeExpressionStatement* _tmp223_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (sym != NULL, NULL);
      g_return_val_if_fail (dbus_iface_name != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp1_ = _tmp0_;
      _tmp2_ = g_strdup_printf ("_dbus_%s_property_set", _tmp1_);
      _tmp3_ = _tmp2_;
      _g_free0 (_tmp1_);
      wrapper_name = _tmp3_;
      _tmp4_ = vala_ccode_function_new (wrapper_name, "DBusHandlerResult");
      function = _tmp4_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp5_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) sym, FALSE);
      _tmp6_ = _tmp5_;
      _tmp7_ = g_strconcat (_tmp6_, "*", NULL);
      _tmp8_ = _tmp7_;
      _tmp9_ = vala_ccode_parameter_new ("self", _tmp8_);
      _tmp10_ = _tmp9_;
      vala_ccode_function_add_parameter (function, _tmp10_);
      _vala_ccode_node_unref0 (_tmp10_);
      _g_free0 (_tmp8_);
      _g_free0 (_tmp6_);
      _tmp11_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp12_ = _tmp11_;
      vala_ccode_function_add_parameter (function, _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _tmp13_ = vala_ccode_parameter_new ("message", "DBusMessage*");
      _tmp14_ = _tmp13_;
      vala_ccode_function_add_parameter (function, _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      _tmp15_ = vala_ccode_block_new ();
      block = _tmp15_;
      _tmp16_ = vala_ccode_fragment_new ();
      prefragment = _tmp16_;
      _tmp17_ = vala_ccode_declaration_new ("DBusMessage*");
      _cdecl_ = _tmp17_;
      _tmp18_ = vala_ccode_variable_declarator_new ("reply", NULL, NULL);
      _tmp19_ = _tmp18_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp19_);
      _vala_ccode_node_unref0 (_tmp19_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp20_ = vala_ccode_declaration_new ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp20_;
      _tmp21_ = vala_ccode_variable_declarator_new ("iter", NULL, NULL);
      _tmp22_ = _tmp21_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp22_);
      _vala_ccode_node_unref0 (_tmp22_);
      _tmp23_ = vala_ccode_variable_declarator_new ("subiter", NULL, NULL);
      _tmp24_ = _tmp23_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp25_ = vala_ccode_identifier_new ("dbus_message_get_signature");
      _tmp26_ = _tmp25_;
      _tmp27_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp26_);
      _tmp28_ = _tmp27_;
      _vala_ccode_node_unref0 (_tmp26_);
      message_signature = _tmp28_;
      _tmp29_ = vala_ccode_identifier_new ("message");
      _tmp30_ = _tmp29_;
      vala_ccode_function_call_add_argument (message_signature, (ValaCCodeExpression*) _tmp30_);
      _vala_ccode_node_unref0 (_tmp30_);
      _tmp31_ = vala_ccode_identifier_new ("strcmp");
      _tmp32_ = _tmp31_;
      _tmp33_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp32_);
      _tmp34_ = _tmp33_;
      _vala_ccode_node_unref0 (_tmp32_);
      signature_check = _tmp34_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) message_signature);
      _tmp35_ = vala_ccode_constant_new ("\"ssv\"");
      _tmp36_ = _tmp35_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      _tmp37_ = vala_ccode_block_new ();
      signature_error_block = _tmp37_;
      _tmp38_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_NOT_YET_HANDLED");
      _tmp39_ = _tmp38_;
      _tmp40_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp39_);
      _tmp41_ = _tmp40_;
      vala_ccode_block_add_statement (signature_error_block, (ValaCCodeNode*) _tmp41_);
      _vala_ccode_node_unref0 (_tmp41_);
      _vala_ccode_node_unref0 (_tmp39_);
      _tmp42_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) signature_check, (ValaCCodeStatement*) signature_error_block, NULL);
      _tmp43_ = _tmp42_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp43_);
      _vala_ccode_node_unref0 (_tmp43_);
      _tmp44_ = vala_ccode_identifier_new ("dbus_message_iter_init");
      _tmp45_ = _tmp44_;
      _tmp46_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp45_);
      _tmp47_ = _tmp46_;
      _vala_ccode_node_unref0 (_tmp45_);
      iter_call = _tmp47_;
      _tmp48_ = vala_ccode_identifier_new ("message");
      _tmp49_ = _tmp48_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp49_);
      _vala_ccode_node_unref0 (_tmp49_);
      _tmp50_ = vala_ccode_identifier_new ("iter");
      _tmp51_ = _tmp50_;
      _tmp52_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp51_);
      _tmp53_ = _tmp52_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp53_);
      _vala_ccode_node_unref0 (_tmp53_);
      _vala_ccode_node_unref0 (_tmp51_);
      _tmp54_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp55_ = _tmp54_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp55_);
      _vala_ccode_node_unref0 (_tmp55_);
      _tmp56_ = vala_ccode_identifier_new ("dbus_message_new_method_return");
      _tmp57_ = _tmp56_;
      _tmp58_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp57_);
      _tmp59_ = _tmp58_;
      _vala_ccode_node_unref0 (_tmp57_);
      msgcall = _tmp59_;
      _tmp60_ = vala_ccode_identifier_new ("message");
      _tmp61_ = _tmp60_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp61_);
      _vala_ccode_node_unref0 (_tmp61_);
      _tmp62_ = vala_ccode_identifier_new ("reply");
      _tmp63_ = _tmp62_;
      _tmp64_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp63_, (ValaCCodeExpression*) msgcall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp65_ = _tmp64_;
      _tmp66_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp65_);
      _tmp67_ = _tmp66_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp67_);
      _vala_ccode_node_unref0 (_tmp67_);
      _vala_ccode_node_unref0 (_tmp65_);
      _vala_ccode_node_unref0 (_tmp63_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) prefragment);
      _tmp68_ = vala_ccode_declaration_new ("char*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp68_;
      _tmp69_ = vala_ccode_variable_declarator_new ("interface_name", NULL, NULL);
      _tmp70_ = _tmp69_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp70_);
      _vala_ccode_node_unref0 (_tmp70_);
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
      _tmp71_ = vala_ccode_identifier_new ("interface_name");
      target = _tmp71_;
      _tmp72_ = vala_ccode_identifier_new ("iter");
      _tmp73_ = _tmp72_;
      _tmp74_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, prefragment, ((ValaCCodeBaseModule*) self)->string_type, (ValaCCodeExpression*) _tmp73_, (ValaCCodeExpression*) target);
      _tmp75_ = _tmp74_;
      _vala_ccode_node_unref0 (_tmp73_);
      expr = _tmp75_;
      _tmp76_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp77_ = _tmp76_;
      _tmp78_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp77_);
      _tmp79_ = _tmp78_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp79_);
      _vala_ccode_node_unref0 (_tmp79_);
      _vala_ccode_node_unref0 (_tmp77_);
      _tmp80_ = vala_ccode_declaration_new ("char*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp80_;
      _tmp81_ = vala_ccode_variable_declarator_new ("property_name", NULL, NULL);
      _tmp82_ = _tmp81_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp82_);
      _vala_ccode_node_unref0 (_tmp82_);
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
      _tmp83_ = vala_ccode_identifier_new ("property_name");
      _vala_ccode_node_unref0 (target);
      target = _tmp83_;
      _tmp84_ = vala_ccode_identifier_new ("iter");
      _tmp85_ = _tmp84_;
      _tmp86_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, prefragment, ((ValaCCodeBaseModule*) self)->string_type, (ValaCCodeExpression*) _tmp85_, (ValaCCodeExpression*) target);
      _vala_ccode_node_unref0 (expr);
      expr = _tmp86_;
      _vala_ccode_node_unref0 (_tmp85_);
      _tmp87_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp88_ = _tmp87_;
      _tmp89_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp88_);
      _tmp90_ = _tmp89_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp90_);
      _vala_ccode_node_unref0 (_tmp90_);
      _vala_ccode_node_unref0 (_tmp88_);
      _tmp91_ = vala_ccode_identifier_new ("dbus_message_iter_recurse");
      _tmp92_ = _tmp91_;
      _tmp93_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp92_);
      _vala_ccode_node_unref0 (iter_call);
      iter_call = _tmp93_;
      _vala_ccode_node_unref0 (_tmp92_);
      _tmp94_ = vala_ccode_identifier_new ("iter");
      _tmp95_ = _tmp94_;
      _tmp96_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp95_);
      _tmp97_ = _tmp96_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp97_);
      _vala_ccode_node_unref0 (_tmp97_);
      _vala_ccode_node_unref0 (_tmp95_);
      _tmp98_ = vala_ccode_identifier_new ("subiter");
      _tmp99_ = _tmp98_;
      _tmp100_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp99_);
      _tmp101_ = _tmp100_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp101_);
      _vala_ccode_node_unref0 (_tmp101_);
      _vala_ccode_node_unref0 (_tmp99_);
      _tmp102_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp103_ = _tmp102_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp103_);
      _vala_ccode_node_unref0 (_tmp103_);
      clastif = NULL;
      {
            ValaList* _tmp104_ = NULL;
            ValaList* _prop_list;
            gint _tmp105_;
            gint _prop_size;
            gint _prop_index;
            _tmp104_ = vala_object_type_symbol_get_properties (sym);
            _prop_list = _tmp104_;
            _tmp105_ = vala_collection_get_size ((ValaCollection*) _prop_list);
            _prop_size = _tmp105_;
            _prop_index = -1;
            while (TRUE) {
                  gpointer _tmp106_ = NULL;
                  ValaProperty* prop;
                  gboolean _tmp107_ = FALSE;
                  gboolean _tmp108_ = FALSE;
                  ValaMemberBinding _tmp109_;
                  gboolean _tmp112_;
                  ValaPropertyAccessor* _tmp113_ = NULL;
                  ValaCCodeBlock* _tmp114_ = NULL;
                  ValaCCodeBlock* prop_block;
                  ValaCCodeFragment* _tmp115_ = NULL;
                  ValaCCodeIdentifier* _tmp116_ = NULL;
                  ValaCCodeIdentifier* _tmp117_;
                  ValaCCodeFunctionCall* _tmp118_ = NULL;
                  ValaCCodeFunctionCall* _tmp119_;
                  ValaCCodeFunctionCall* ccmp;
                  ValaCCodeIdentifier* _tmp120_ = NULL;
                  ValaCCodeIdentifier* _tmp121_;
                  gchar* _tmp122_ = NULL;
                  gchar* _tmp123_;
                  ValaCCodeConstant* _tmp124_ = NULL;
                  ValaCCodeConstant* _tmp125_;
                  ValaCCodeConstant* _tmp126_ = NULL;
                  ValaCCodeConstant* _tmp127_;
                  ValaCCodeBinaryExpression* _tmp128_ = NULL;
                  ValaCCodeBinaryExpression* _tmp129_;
                  ValaCCodeBinaryExpression* ccheck1;
                  ValaCCodeIdentifier* _tmp130_ = NULL;
                  ValaCCodeIdentifier* _tmp131_;
                  ValaCCodeFunctionCall* _tmp132_ = NULL;
                  ValaCCodeIdentifier* _tmp133_ = NULL;
                  ValaCCodeIdentifier* _tmp134_;
                  gchar* _tmp135_ = NULL;
                  gchar* _tmp136_;
                  gchar* _tmp137_ = NULL;
                  gchar* _tmp138_;
                  ValaCCodeConstant* _tmp139_ = NULL;
                  ValaCCodeConstant* _tmp140_;
                  ValaCCodeConstant* _tmp141_ = NULL;
                  ValaCCodeConstant* _tmp142_;
                  ValaCCodeBinaryExpression* _tmp143_ = NULL;
                  ValaCCodeBinaryExpression* _tmp144_;
                  ValaCCodeBinaryExpression* ccheck2;
                  ValaCCodeBinaryExpression* _tmp145_ = NULL;
                  ValaCCodeBinaryExpression* ccheck;
                  ValaDataType* _tmp146_ = NULL;
                  ValaDataType* _tmp147_ = NULL;
                  ValaDataType* owned_type;
                  gchar* _tmp148_ = NULL;
                  gchar* _tmp149_;
                  ValaCCodeDeclaration* _tmp150_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp151_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp152_;
                  ValaCCodeIdentifier* _tmp153_ = NULL;
                  ValaDataType* _tmp154_ = NULL;
                  ValaCCodeIdentifier* _tmp155_ = NULL;
                  ValaCCodeIdentifier* _tmp156_;
                  ValaCCodeExpression* _tmp157_ = NULL;
                  ValaCCodeAssignment* _tmp158_ = NULL;
                  ValaCCodeAssignment* _tmp159_;
                  ValaCCodeExpressionStatement* _tmp160_ = NULL;
                  ValaCCodeExpressionStatement* _tmp161_;
                  ValaPropertyAccessor* _tmp162_ = NULL;
                  gchar* _tmp163_ = NULL;
                  gchar* _tmp164_;
                  ValaCCodeIdentifier* _tmp165_ = NULL;
                  ValaCCodeIdentifier* _tmp166_;
                  ValaCCodeFunctionCall* _tmp167_ = NULL;
                  ValaCCodeFunctionCall* _tmp168_;
                  ValaCCodeFunctionCall* ccall;
                  ValaCCodeIdentifier* _tmp169_ = NULL;
                  ValaCCodeIdentifier* _tmp170_;
                  ValaDataType* _tmp171_ = NULL;
                  gboolean _tmp172_;
                  ValaCCodeExpressionStatement* _tmp193_ = NULL;
                  ValaCCodeExpressionStatement* _tmp194_;
                  gboolean _tmp195_;
                  ValaCCodeIfStatement* _tmp207_ = NULL;
                  ValaCCodeIfStatement* cif;
                  ValaCCodeIfStatement* _tmp208_;
                  _prop_index = _prop_index + 1;
                  if (!(_prop_index < _prop_size)) {
                        break;
                  }
                  _tmp106_ = vala_list_get (_prop_list, _prop_index);
                  prop = (ValaProperty*) _tmp106_;
                  _tmp109_ = vala_property_get_binding (prop);
                  if (_tmp109_ != VALA_MEMBER_BINDING_INSTANCE) {
                        _tmp108_ = TRUE;
                  } else {
                        gboolean _tmp110_;
                        _tmp110_ = vala_property_get_overrides (prop);
                        _tmp108_ = _tmp110_;
                  }
                  if (_tmp108_) {
                        _tmp107_ = TRUE;
                  } else {
                        ValaSymbolAccessibility _tmp111_;
                        _tmp111_ = vala_symbol_get_access ((ValaSymbol*) prop);
                        _tmp107_ = _tmp111_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
                  }
                  if (_tmp107_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp112_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) prop);
                  if (!_tmp112_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp113_ = vala_property_get_set_accessor (prop);
                  if (_tmp113_ == NULL) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp114_ = vala_ccode_block_new ();
                  prop_block = _tmp114_;
                  _tmp115_ = vala_ccode_fragment_new ();
                  _vala_ccode_node_unref0 (prefragment);
                  prefragment = _tmp115_;
                  vala_ccode_block_add_statement (prop_block, (ValaCCodeNode*) prefragment);
                  _tmp116_ = vala_ccode_identifier_new ("strcmp");
                  _tmp117_ = _tmp116_;
                  _tmp118_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp117_);
                  _tmp119_ = _tmp118_;
                  _vala_ccode_node_unref0 (_tmp117_);
                  ccmp = _tmp119_;
                  _tmp120_ = vala_ccode_identifier_new ("interface_name");
                  _tmp121_ = _tmp120_;
                  vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp121_);
                  _vala_ccode_node_unref0 (_tmp121_);
                  _tmp122_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
                  _tmp123_ = _tmp122_;
                  _tmp124_ = vala_ccode_constant_new (_tmp123_);
                  _tmp125_ = _tmp124_;
                  vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp125_);
                  _vala_ccode_node_unref0 (_tmp125_);
                  _g_free0 (_tmp123_);
                  _tmp126_ = vala_ccode_constant_new ("0");
                  _tmp127_ = _tmp126_;
                  _tmp128_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) ccmp, (ValaCCodeExpression*) _tmp127_);
                  _tmp129_ = _tmp128_;
                  _vala_ccode_node_unref0 (_tmp127_);
                  ccheck1 = _tmp129_;
                  _tmp130_ = vala_ccode_identifier_new ("strcmp");
                  _tmp131_ = _tmp130_;
                  _tmp132_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp131_);
                  _vala_ccode_node_unref0 (ccmp);
                  ccmp = _tmp132_;
                  _vala_ccode_node_unref0 (_tmp131_);
                  _tmp133_ = vala_ccode_identifier_new ("property_name");
                  _tmp134_ = _tmp133_;
                  vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp134_);
                  _vala_ccode_node_unref0 (_tmp134_);
                  _tmp135_ = vala_dbus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
                  _tmp136_ = _tmp135_;
                  _tmp137_ = g_strdup_printf ("\"%s\"", _tmp136_);
                  _tmp138_ = _tmp137_;
                  _tmp139_ = vala_ccode_constant_new (_tmp138_);
                  _tmp140_ = _tmp139_;
                  vala_ccode_function_call_add_argument (ccmp, (ValaCCodeExpression*) _tmp140_);
                  _vala_ccode_node_unref0 (_tmp140_);
                  _g_free0 (_tmp138_);
                  _g_free0 (_tmp136_);
                  _tmp141_ = vala_ccode_constant_new ("0");
                  _tmp142_ = _tmp141_;
                  _tmp143_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) ccmp, (ValaCCodeExpression*) _tmp142_);
                  _tmp144_ = _tmp143_;
                  _vala_ccode_node_unref0 (_tmp142_);
                  ccheck2 = _tmp144_;
                  _tmp145_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) ccheck1, (ValaCCodeExpression*) ccheck2);
                  ccheck = _tmp145_;
                  _tmp146_ = vala_property_get_property_type (prop);
                  _tmp147_ = vala_data_type_copy (_tmp146_);
                  owned_type = _tmp147_;
                  vala_data_type_set_value_owned (owned_type, TRUE);
                  _tmp148_ = vala_data_type_get_cname (owned_type);
                  _tmp149_ = _tmp148_;
                  _tmp150_ = vala_ccode_declaration_new (_tmp149_);
                  _vala_ccode_node_unref0 (_cdecl_);
                  _cdecl_ = _tmp150_;
                  _g_free0 (_tmp149_);
                  _tmp151_ = vala_ccode_variable_declarator_new ("value", NULL, NULL);
                  _tmp152_ = _tmp151_;
                  vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp152_);
                  _vala_ccode_node_unref0 (_tmp152_);
                  vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
                  _tmp153_ = vala_ccode_identifier_new ("value");
                  _vala_ccode_node_unref0 (target);
                  target = _tmp153_;
                  _tmp154_ = vala_property_get_property_type (prop);
                  _tmp155_ = vala_ccode_identifier_new ("subiter");
                  _tmp156_ = _tmp155_;
                  _tmp157_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, prefragment, _tmp154_, (ValaCCodeExpression*) _tmp156_, (ValaCCodeExpression*) target);
                  _vala_ccode_node_unref0 (expr);
                  expr = _tmp157_;
                  _vala_ccode_node_unref0 (_tmp156_);
                  _tmp158_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                  _tmp159_ = _tmp158_;
                  _tmp160_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp159_);
                  _tmp161_ = _tmp160_;
                  vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp161_);
                  _vala_ccode_node_unref0 (_tmp161_);
                  _vala_ccode_node_unref0 (_tmp159_);
                  _tmp162_ = vala_property_get_set_accessor (prop);
                  _tmp163_ = vala_property_accessor_get_cname (_tmp162_);
                  _tmp164_ = _tmp163_;
                  _tmp165_ = vala_ccode_identifier_new (_tmp164_);
                  _tmp166_ = _tmp165_;
                  _tmp167_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp166_);
                  _tmp168_ = _tmp167_;
                  _vala_ccode_node_unref0 (_tmp166_);
                  _g_free0 (_tmp164_);
                  ccall = _tmp168_;
                  _tmp169_ = vala_ccode_identifier_new ("self");
                  _tmp170_ = _tmp169_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp170_);
                  _vala_ccode_node_unref0 (_tmp170_);
                  _tmp171_ = vala_property_get_property_type (prop);
                  _tmp172_ = vala_data_type_is_real_non_null_struct_type (_tmp171_);
                  if (_tmp172_) {
                        ValaCCodeIdentifier* _tmp173_ = NULL;
                        ValaCCodeIdentifier* _tmp174_;
                        ValaCCodeUnaryExpression* _tmp175_ = NULL;
                        ValaCCodeUnaryExpression* _tmp176_;
                        _tmp173_ = vala_ccode_identifier_new ("value");
                        _tmp174_ = _tmp173_;
                        _tmp175_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp174_);
                        _tmp176_ = _tmp175_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp176_);
                        _vala_ccode_node_unref0 (_tmp176_);
                        _vala_ccode_node_unref0 (_tmp174_);
                  } else {
                        ValaCCodeIdentifier* _tmp177_ = NULL;
                        ValaCCodeIdentifier* _tmp178_;
                        ValaDataType* _tmp179_ = NULL;
                        ValaDataType* _tmp180_;
                        ValaArrayType* _tmp181_;
                        ValaArrayType* array_type;
                        _tmp177_ = vala_ccode_identifier_new ("value");
                        _tmp178_ = _tmp177_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp178_);
                        _vala_ccode_node_unref0 (_tmp178_);
                        _tmp179_ = vala_property_get_property_type (prop);
                        _tmp180_ = _tmp179_;
                        _tmp181_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp180_) ? ((ValaArrayType*) _tmp180_) : NULL);
                        array_type = _tmp181_;
                        if (array_type != NULL) {
                              {
                                    gint dim;
                                    dim = 1;
                                    {
                                          gboolean _tmp182_;
                                          _tmp182_ = TRUE;
                                          while (TRUE) {
                                                gint _tmp183_;
                                                ValaCCodeDeclaration* _tmp184_ = NULL;
                                                gchar* _tmp185_ = NULL;
                                                gchar* _tmp186_;
                                                ValaCCodeVariableDeclarator* _tmp187_ = NULL;
                                                ValaCCodeVariableDeclarator* _tmp188_;
                                                gchar* _tmp189_ = NULL;
                                                gchar* _tmp190_;
                                                ValaCCodeIdentifier* _tmp191_ = NULL;
                                                ValaCCodeIdentifier* _tmp192_;
                                                if (!_tmp182_) {
                                                      dim++;
                                                }
                                                _tmp182_ = FALSE;
                                                _tmp183_ = vala_array_type_get_rank (array_type);
                                                if (!(dim <= _tmp183_)) {
                                                      break;
                                                }
                                                _tmp184_ = vala_ccode_declaration_new ("int");
                                                _vala_ccode_node_unref0 (_cdecl_);
                                                _cdecl_ = _tmp184_;
                                                _tmp185_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", dim);
                                                _tmp186_ = _tmp185_;
                                                _tmp187_ = vala_ccode_variable_declarator_new (_tmp186_, NULL, NULL);
                                                _tmp188_ = _tmp187_;
                                                vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp188_);
                                                _vala_ccode_node_unref0 (_tmp188_);
                                                _g_free0 (_tmp186_);
                                                vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
                                                _tmp189_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", dim);
                                                _tmp190_ = _tmp189_;
                                                _tmp191_ = vala_ccode_identifier_new (_tmp190_);
                                                _tmp192_ = _tmp191_;
                                                vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp192_);
                                                _vala_ccode_node_unref0 (_tmp192_);
                                                _g_free0 (_tmp190_);
                                          }
                                    }
                              }
                        }
                        _vala_code_node_unref0 (array_type);
                  }
                  _tmp193_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                  _tmp194_ = _tmp193_;
                  vala_ccode_block_add_statement (prop_block, (ValaCCodeNode*) _tmp194_);
                  _vala_ccode_node_unref0 (_tmp194_);
                  _tmp195_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, owned_type);
                  if (_tmp195_) {
                        ValaLocalVariable* _tmp196_ = NULL;
                        ValaLocalVariable* local;
                        ValaMemberAccess* _tmp197_ = NULL;
                        ValaMemberAccess* ma;
                        ValaDataType* _tmp198_ = NULL;
                        ValaDataType* _tmp199_ = NULL;
                        ValaDataType* _tmp200_;
                        ValaCCodeIdentifier* _tmp201_ = NULL;
                        ValaCCodeIdentifier* _tmp202_;
                        ValaCCodeExpression* _tmp203_ = NULL;
                        ValaCCodeExpression* _tmp204_;
                        ValaCCodeExpressionStatement* _tmp205_ = NULL;
                        ValaCCodeExpressionStatement* _tmp206_;
                        _tmp196_ = vala_local_variable_new (owned_type, "value", NULL, NULL);
                        local = _tmp196_;
                        _tmp197_ = vala_member_access_new_simple ("value", NULL);
                        ma = _tmp197_;
                        vala_expression_set_symbol_reference ((ValaExpression*) ma, (ValaSymbol*) local);
                        _tmp198_ = vala_variable_get_variable_type ((ValaVariable*) local);
                        _tmp199_ = vala_data_type_copy (_tmp198_);
                        _tmp200_ = _tmp199_;
                        vala_expression_set_value_type ((ValaExpression*) ma, _tmp200_);
                        _vala_code_node_unref0 (_tmp200_);
                        vala_code_visitor_visit_member_access ((ValaCodeVisitor*) self, ma);
                        _tmp201_ = vala_ccode_identifier_new ("value");
                        _tmp202_ = _tmp201_;
                        _tmp203_ = vala_ccode_base_module_get_unref_expression ((ValaCCodeBaseModule*) self, (ValaCCodeExpression*) _tmp202_, owned_type, (ValaExpression*) ma, FALSE);
                        _tmp204_ = _tmp203_;
                        _tmp205_ = vala_ccode_expression_statement_new (_tmp204_);
                        _tmp206_ = _tmp205_;
                        vala_ccode_block_add_statement (prop_block, (ValaCCodeNode*) _tmp206_);
                        _vala_ccode_node_unref0 (_tmp206_);
                        _vala_ccode_node_unref0 (_tmp204_);
                        _vala_ccode_node_unref0 (_tmp202_);
                        _vala_code_node_unref0 (ma);
                        _vala_code_node_unref0 (local);
                  }
                  _tmp207_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) ccheck, (ValaCCodeStatement*) prop_block, NULL);
                  cif = _tmp207_;
                  if (clastif == NULL) {
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) cif);
                  } else {
                        vala_ccode_if_statement_set_false_statement (clastif, (ValaCCodeStatement*) cif);
                  }
                  _tmp208_ = _vala_ccode_node_ref0 (cif);
                  _vala_ccode_node_unref0 (clastif);
                  clastif = _tmp208_;
                  _vala_ccode_node_unref0 (cif);
                  _vala_ccode_node_unref0 (ccall);
                  _vala_code_node_unref0 (owned_type);
                  _vala_ccode_node_unref0 (ccheck);
                  _vala_ccode_node_unref0 (ccheck2);
                  _vala_ccode_node_unref0 (ccheck1);
                  _vala_ccode_node_unref0 (ccmp);
                  _vala_ccode_node_unref0 (prop_block);
                  _vala_code_node_unref0 (prop);
            }
            _vala_iterable_unref0 (_prop_list);
      }
      _tmp209_ = vala_ccode_identifier_new ("g_free");
      _tmp210_ = _tmp209_;
      _tmp211_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp210_);
      _tmp212_ = _tmp211_;
      _vala_ccode_node_unref0 (_tmp210_);
      free_call = _tmp212_;
      _tmp213_ = vala_ccode_identifier_new ("interface_name");
      _tmp214_ = _tmp213_;
      vala_ccode_function_call_add_argument (free_call, (ValaCCodeExpression*) _tmp214_);
      _vala_ccode_node_unref0 (_tmp214_);
      _tmp215_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) free_call);
      _tmp216_ = _tmp215_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp216_);
      _vala_ccode_node_unref0 (_tmp216_);
      _tmp217_ = vala_ccode_identifier_new ("g_free");
      _tmp218_ = _tmp217_;
      _tmp219_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp218_);
      _vala_ccode_node_unref0 (free_call);
      free_call = _tmp219_;
      _vala_ccode_node_unref0 (_tmp218_);
      _tmp220_ = vala_ccode_identifier_new ("property_name");
      _tmp221_ = _tmp220_;
      vala_ccode_function_call_add_argument (free_call, (ValaCCodeExpression*) _tmp221_);
      _vala_ccode_node_unref0 (_tmp221_);
      _tmp222_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) free_call);
      _tmp223_ = _tmp222_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp223_);
      _vala_ccode_node_unref0 (_tmp223_);
      if (clastif == NULL) {
            ValaCCodeBlock* _tmp224_ = NULL;
            ValaCCodeConstant* _tmp225_ = NULL;
            ValaCCodeConstant* _tmp226_;
            ValaCCodeReturnStatement* _tmp227_ = NULL;
            ValaCCodeReturnStatement* _tmp228_;
            _tmp224_ = vala_ccode_block_new ();
            _vala_ccode_node_unref0 (block);
            block = _tmp224_;
            _tmp225_ = vala_ccode_constant_new ("NULL");
            _tmp226_ = _tmp225_;
            _tmp227_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp226_);
            _tmp228_ = _tmp227_;
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp228_);
            _vala_ccode_node_unref0 (_tmp228_);
            _vala_ccode_node_unref0 (_tmp226_);
      } else {
            ValaCCodeBlock* _tmp229_ = NULL;
            ValaCCodeBlock* else_block;
            ValaCCodeIdentifier* _tmp230_ = NULL;
            ValaCCodeIdentifier* _tmp231_;
            ValaCCodeFunctionCall* _tmp232_ = NULL;
            ValaCCodeFunctionCall* _tmp233_;
            ValaCCodeFunctionCall* unref_call;
            ValaCCodeIdentifier* _tmp234_ = NULL;
            ValaCCodeIdentifier* _tmp235_;
            ValaCCodeExpressionStatement* _tmp236_ = NULL;
            ValaCCodeExpressionStatement* _tmp237_;
            ValaCCodeIdentifier* _tmp238_ = NULL;
            ValaCCodeIdentifier* _tmp239_;
            ValaCCodeIdentifier* _tmp240_ = NULL;
            ValaCCodeIdentifier* _tmp241_;
            ValaCCodeAssignment* _tmp242_ = NULL;
            ValaCCodeAssignment* _tmp243_;
            ValaCCodeExpressionStatement* _tmp244_ = NULL;
            ValaCCodeExpressionStatement* _tmp245_;
            _tmp229_ = vala_ccode_block_new ();
            else_block = _tmp229_;
            _tmp230_ = vala_ccode_identifier_new ("dbus_message_unref");
            _tmp231_ = _tmp230_;
            _tmp232_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp231_);
            _tmp233_ = _tmp232_;
            _vala_ccode_node_unref0 (_tmp231_);
            unref_call = _tmp233_;
            _tmp234_ = vala_ccode_identifier_new ("reply");
            _tmp235_ = _tmp234_;
            vala_ccode_function_call_add_argument (unref_call, (ValaCCodeExpression*) _tmp235_);
            _vala_ccode_node_unref0 (_tmp235_);
            _tmp236_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) unref_call);
            _tmp237_ = _tmp236_;
            vala_ccode_block_add_statement (else_block, (ValaCCodeNode*) _tmp237_);
            _vala_ccode_node_unref0 (_tmp237_);
            _tmp238_ = vala_ccode_identifier_new ("reply");
            _tmp239_ = _tmp238_;
            _tmp240_ = vala_ccode_identifier_new ("NULL");
            _tmp241_ = _tmp240_;
            _tmp242_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp239_, (ValaCCodeExpression*) _tmp241_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
            _tmp243_ = _tmp242_;
            _tmp244_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp243_);
            _tmp245_ = _tmp244_;
            vala_ccode_block_add_statement (else_block, (ValaCCodeNode*) _tmp245_);
            _vala_ccode_node_unref0 (_tmp245_);
            _vala_ccode_node_unref0 (_tmp243_);
            _vala_ccode_node_unref0 (_tmp241_);
            _vala_ccode_node_unref0 (_tmp239_);
            vala_ccode_if_statement_set_false_statement (clastif, (ValaCCodeStatement*) else_block);
            vala_dbus_server_module_handle_reply (self, block);
            _vala_ccode_node_unref0 (unref_call);
            _vala_ccode_node_unref0 (else_block);
      }
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_function_set_block (function, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = wrapper_name;
      _vala_ccode_node_unref0 (free_call);
      _vala_ccode_node_unref0 (clastif);
      _vala_ccode_node_unref0 (expr);
      _vala_ccode_node_unref0 (target);
      _vala_ccode_node_unref0 (msgcall);
      _vala_ccode_node_unref0 (iter_call);
      _vala_ccode_node_unref0 (signature_error_block);
      _vala_ccode_node_unref0 (signature_check);
      _vala_ccode_node_unref0 (message_signature);
      _vala_ccode_node_unref0 (_cdecl_);
      _vala_ccode_node_unref0 (prefragment);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (function);
      return result;
}


static gchar* vala_dbus_server_module_get_dbus_type_introspection (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym) {
      gchar* result = NULL;
      gchar* _tmp0_;
      gchar* _result_;
      ValaObjectTypeSymbol* _tmp1_;
      ValaClass* _tmp2_;
      ValaClass* cl;
      gchar* _tmp12_ = NULL;
      gchar* dbus_iface_name;
      gchar* _tmp13_ = NULL;
      gchar* _tmp14_;
      gchar* _tmp15_;
      gchar* _tmp104_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (sym != NULL, NULL);
      _tmp0_ = g_strdup ("");
      _result_ = _tmp0_;
      _tmp1_ = sym;
      _tmp2_ = _vala_code_node_ref0 (VALA_IS_CLASS (_tmp1_) ? ((ValaClass*) _tmp1_) : NULL);
      cl = _tmp2_;
      if (cl != NULL) {
            {
                  ValaList* _tmp3_ = NULL;
                  ValaList* _base_type_list;
                  gint _tmp4_;
                  gint _base_type_size;
                  gint _base_type_index;
                  _tmp3_ = vala_class_get_base_types (cl);
                  _base_type_list = _tmp3_;
                  _tmp4_ = vala_collection_get_size ((ValaCollection*) _base_type_list);
                  _base_type_size = _tmp4_;
                  _base_type_index = -1;
                  while (TRUE) {
                        gpointer _tmp5_ = NULL;
                        ValaDataType* base_type;
                        ValaDataType* _tmp6_;
                        ValaObjectType* _tmp7_;
                        ValaObjectType* base_obj_type;
                        ValaObjectTypeSymbol* _tmp8_ = NULL;
                        gchar* _tmp9_ = NULL;
                        gchar* _tmp10_;
                        gchar* _tmp11_;
                        _base_type_index = _base_type_index + 1;
                        if (!(_base_type_index < _base_type_size)) {
                              break;
                        }
                        _tmp5_ = vala_list_get (_base_type_list, _base_type_index);
                        base_type = (ValaDataType*) _tmp5_;
                        _tmp6_ = base_type;
                        _tmp7_ = _vala_code_node_ref0 (VALA_IS_OBJECT_TYPE (_tmp6_) ? ((ValaObjectType*) _tmp6_) : NULL);
                        base_obj_type = _tmp7_;
                        _tmp8_ = vala_object_type_get_type_symbol (base_obj_type);
                        _tmp9_ = vala_dbus_server_module_get_dbus_type_introspection (self, _tmp8_);
                        _tmp10_ = _tmp9_;
                        _tmp11_ = g_strconcat (_result_, _tmp10_, NULL);
                        _g_free0 (_result_);
                        _result_ = _tmp11_;
                        _g_free0 (_tmp10_);
                        _vala_code_node_unref0 (base_obj_type);
                        _vala_code_node_unref0 (base_type);
                  }
                  _vala_iterable_unref0 (_base_type_list);
            }
      }
      _tmp12_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) sym);
      dbus_iface_name = _tmp12_;
      if (dbus_iface_name == NULL) {
            result = _result_;
            _g_free0 (dbus_iface_name);
            _vala_code_node_unref0 (cl);
            return result;
      }
      _tmp13_ = g_strdup_printf ("<interface name=\"%s\">\n", dbus_iface_name);
      _tmp14_ = _tmp13_;
      _tmp15_ = g_strconcat (_result_, _tmp14_, NULL);
      _g_free0 (_result_);
      _result_ = _tmp15_;
      _g_free0 (_tmp14_);
      {
            ValaList* _tmp16_ = NULL;
            ValaList* _m_list;
            gint _tmp17_;
            gint _m_size;
            gint _m_index;
            _tmp16_ = vala_object_type_symbol_get_methods (sym);
            _m_list = _tmp16_;
            _tmp17_ = vala_collection_get_size ((ValaCollection*) _m_list);
            _m_size = _tmp17_;
            _m_index = -1;
            while (TRUE) {
                  gpointer _tmp18_ = NULL;
                  ValaMethod* m;
                  gboolean _tmp19_ = FALSE;
                  gboolean _tmp20_ = FALSE;
                  gboolean _tmp21_ = FALSE;
                  gboolean _tmp25_;
                  gchar* _tmp26_ = NULL;
                  gchar* _tmp27_;
                  gchar* _tmp28_ = NULL;
                  gchar* _tmp29_;
                  gchar* _tmp30_;
                  ValaDataType* _tmp51_ = NULL;
                  gchar* _tmp60_;
                  _m_index = _m_index + 1;
                  if (!(_m_index < _m_size)) {
                        break;
                  }
                  _tmp18_ = vala_list_get (_m_list, _m_index);
                  m = (ValaMethod*) _tmp18_;
                  if (VALA_IS_CREATION_METHOD (m)) {
                        _tmp21_ = TRUE;
                  } else {
                        ValaMemberBinding _tmp22_;
                        _tmp22_ = vala_method_get_binding (m);
                        _tmp21_ = _tmp22_ != VALA_MEMBER_BINDING_INSTANCE;
                  }
                  if (_tmp21_) {
                        _tmp20_ = TRUE;
                  } else {
                        gboolean _tmp23_;
                        _tmp23_ = vala_method_get_overrides (m);
                        _tmp20_ = _tmp23_;
                  }
                  if (_tmp20_) {
                        _tmp19_ = TRUE;
                  } else {
                        ValaSymbolAccessibility _tmp24_;
                        _tmp24_ = vala_symbol_get_access ((ValaSymbol*) m);
                        _tmp19_ = _tmp24_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
                  }
                  if (_tmp19_) {
                        _vala_code_node_unref0 (m);
                        continue;
                  }
                  _tmp25_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) m);
                  if (!_tmp25_) {
                        _vala_code_node_unref0 (m);
                        continue;
                  }
                  _tmp26_ = vala_dbus_module_get_dbus_name_for_member ((ValaSymbol*) m);
                  _tmp27_ = _tmp26_;
                  _tmp28_ = g_strdup_printf ("  <method name=\"%s\">\n", _tmp27_);
                  _tmp29_ = _tmp28_;
                  _tmp30_ = g_strconcat (_result_, _tmp29_, NULL);
                  _g_free0 (_result_);
                  _result_ = _tmp30_;
                  _g_free0 (_tmp29_);
                  _g_free0 (_tmp27_);
                  {
                        ValaList* _tmp31_ = NULL;
                        ValaList* _param_list;
                        gint _tmp32_;
                        gint _param_size;
                        gint _param_index;
                        _tmp31_ = vala_method_get_parameters (m);
                        _param_list = _tmp31_;
                        _tmp32_ = vala_collection_get_size ((ValaCollection*) _param_list);
                        _param_size = _tmp32_;
                        _param_index = -1;
                        while (TRUE) {
                              gpointer _tmp33_ = NULL;
                              ValaParameter* param;
                              gboolean _tmp34_ = FALSE;
                              ValaDataType* _tmp35_ = NULL;
                              ValaTypeSymbol* _tmp36_ = NULL;
                              const gchar* _tmp41_ = NULL;
                              ValaParameterDirection _tmp42_;
                              gchar* _tmp43_;
                              gchar* direction;
                              const gchar* _tmp44_ = NULL;
                              ValaDataType* _tmp45_ = NULL;
                              gchar* _tmp46_ = NULL;
                              gchar* _tmp47_;
                              gchar* _tmp48_ = NULL;
                              gchar* _tmp49_;
                              gchar* _tmp50_;
                              _param_index = _param_index + 1;
                              if (!(_param_index < _param_size)) {
                                    break;
                              }
                              _tmp33_ = vala_list_get (_param_list, _param_index);
                              param = (ValaParameter*) _tmp33_;
                              _tmp35_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp36_ = vala_data_type_get_data_type (_tmp35_);
                              if (_tmp36_ != NULL) {
                                    ValaDataType* _tmp37_ = NULL;
                                    ValaTypeSymbol* _tmp38_ = NULL;
                                    gchar* _tmp39_ = NULL;
                                    gchar* _tmp40_;
                                    _tmp37_ = vala_variable_get_variable_type ((ValaVariable*) param);
                                    _tmp38_ = vala_data_type_get_data_type (_tmp37_);
                                    _tmp39_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp38_);
                                    _tmp40_ = _tmp39_;
                                    _tmp34_ = g_strcmp0 (_tmp40_, "DBus.BusName") == 0;
                                    _g_free0 (_tmp40_);
                              } else {
                                    _tmp34_ = FALSE;
                              }
                              if (_tmp34_) {
                                    _vala_code_node_unref0 (param);
                                    continue;
                              }
                              _tmp42_ = vala_parameter_get_direction (param);
                              if (_tmp42_ == VALA_PARAMETER_DIRECTION_IN) {
                                    _tmp41_ = "in";
                              } else {
                                    _tmp41_ = "out";
                              }
                              _tmp43_ = g_strdup (_tmp41_);
                              direction = _tmp43_;
                              _tmp44_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp45_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp46_ = vala_dbus_module_get_type_signature (_tmp45_);
                              _tmp47_ = _tmp46_;
                              _tmp48_ = g_strdup_printf ("    <arg name=\"%s\" type=\"%s\" direction=\"%s\"/>\n", _tmp44_, _tmp47_, direction);
                              _tmp49_ = _tmp48_;
                              _tmp50_ = g_strconcat (_result_, _tmp49_, NULL);
                              _g_free0 (_result_);
                              _result_ = _tmp50_;
                              _g_free0 (_tmp49_);
                              _g_free0 (_tmp47_);
                              _g_free0 (direction);
                              _vala_code_node_unref0 (param);
                        }
                        _vala_iterable_unref0 (_param_list);
                  }
                  _tmp51_ = vala_method_get_return_type (m);
                  if (!VALA_IS_VOID_TYPE (_tmp51_)) {
                        gchar* _tmp52_ = NULL;
                        gchar* _tmp53_;
                        ValaDataType* _tmp54_ = NULL;
                        gchar* _tmp55_ = NULL;
                        gchar* _tmp56_;
                        gchar* _tmp57_ = NULL;
                        gchar* _tmp58_;
                        gchar* _tmp59_;
                        _tmp52_ = vala_dbus_server_module_dbus_result_name (m);
                        _tmp53_ = _tmp52_;
                        _tmp54_ = vala_method_get_return_type (m);
                        _tmp55_ = vala_dbus_module_get_type_signature (_tmp54_);
                        _tmp56_ = _tmp55_;
                        _tmp57_ = g_strdup_printf ("    <arg name=\"%s\" type=\"%s\" direction=\"out\"/>\n", _tmp53_, _tmp56_);
                        _tmp58_ = _tmp57_;
                        _tmp59_ = g_strconcat (_result_, _tmp58_, NULL);
                        _g_free0 (_result_);
                        _result_ = _tmp59_;
                        _g_free0 (_tmp58_);
                        _g_free0 (_tmp56_);
                        _g_free0 (_tmp53_);
                  }
                  _tmp60_ = g_strconcat (_result_, "  </method>\n", NULL);
                  _g_free0 (_result_);
                  _result_ = _tmp60_;
                  _vala_code_node_unref0 (m);
            }
            _vala_iterable_unref0 (_m_list);
      }
      {
            ValaList* _tmp61_ = NULL;
            ValaList* _prop_list;
            gint _tmp62_;
            gint _prop_size;
            gint _prop_index;
            _tmp61_ = vala_object_type_symbol_get_properties (sym);
            _prop_list = _tmp61_;
            _tmp62_ = vala_collection_get_size ((ValaCollection*) _prop_list);
            _prop_size = _tmp62_;
            _prop_index = -1;
            while (TRUE) {
                  gpointer _tmp63_ = NULL;
                  ValaProperty* prop;
                  gboolean _tmp64_ = FALSE;
                  gboolean _tmp65_ = FALSE;
                  ValaMemberBinding _tmp66_;
                  gboolean _tmp69_;
                  const gchar* _tmp70_ = NULL;
                  ValaPropertyAccessor* _tmp71_ = NULL;
                  const gchar* _tmp72_ = NULL;
                  ValaPropertyAccessor* _tmp73_ = NULL;
                  gchar* _tmp74_;
                  gchar* access;
                  gchar* _tmp75_ = NULL;
                  gchar* _tmp76_;
                  ValaDataType* _tmp77_ = NULL;
                  gchar* _tmp78_ = NULL;
                  gchar* _tmp79_;
                  gchar* _tmp80_ = NULL;
                  gchar* _tmp81_;
                  gchar* _tmp82_;
                  _prop_index = _prop_index + 1;
                  if (!(_prop_index < _prop_size)) {
                        break;
                  }
                  _tmp63_ = vala_list_get (_prop_list, _prop_index);
                  prop = (ValaProperty*) _tmp63_;
                  _tmp66_ = vala_property_get_binding (prop);
                  if (_tmp66_ != VALA_MEMBER_BINDING_INSTANCE) {
                        _tmp65_ = TRUE;
                  } else {
                        gboolean _tmp67_;
                        _tmp67_ = vala_property_get_overrides (prop);
                        _tmp65_ = _tmp67_;
                  }
                  if (_tmp65_) {
                        _tmp64_ = TRUE;
                  } else {
                        ValaSymbolAccessibility _tmp68_;
                        _tmp68_ = vala_symbol_get_access ((ValaSymbol*) prop);
                        _tmp64_ = _tmp68_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
                  }
                  if (_tmp64_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp69_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) prop);
                  if (!_tmp69_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp71_ = vala_property_get_get_accessor (prop);
                  if (_tmp71_ != NULL) {
                        _tmp70_ = "read";
                  } else {
                        _tmp70_ = "";
                  }
                  _tmp73_ = vala_property_get_set_accessor (prop);
                  if (_tmp73_ != NULL) {
                        _tmp72_ = "write";
                  } else {
                        _tmp72_ = "";
                  }
                  _tmp74_ = g_strconcat (_tmp70_, _tmp72_, NULL);
                  access = _tmp74_;
                  _tmp75_ = vala_dbus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
                  _tmp76_ = _tmp75_;
                  _tmp77_ = vala_property_get_property_type (prop);
                  _tmp78_ = vala_dbus_module_get_type_signature (_tmp77_);
                  _tmp79_ = _tmp78_;
                  _tmp80_ = g_strdup_printf ("  <property name=\"%s\" type=\"%s\" access=\"%s\"/>\n", _tmp76_, _tmp79_, access);
                  _tmp81_ = _tmp80_;
                  _tmp82_ = g_strconcat (_result_, _tmp81_, NULL);
                  _g_free0 (_result_);
                  _result_ = _tmp82_;
                  _g_free0 (_tmp81_);
                  _g_free0 (_tmp79_);
                  _g_free0 (_tmp76_);
                  _g_free0 (access);
                  _vala_code_node_unref0 (prop);
            }
            _vala_iterable_unref0 (_prop_list);
      }
      {
            ValaList* _tmp83_ = NULL;
            ValaList* _sig_list;
            gint _tmp84_;
            gint _sig_size;
            gint _sig_index;
            _tmp83_ = vala_object_type_symbol_get_signals (sym);
            _sig_list = _tmp83_;
            _tmp84_ = vala_collection_get_size ((ValaCollection*) _sig_list);
            _sig_size = _tmp84_;
            _sig_index = -1;
            while (TRUE) {
                  gpointer _tmp85_ = NULL;
                  ValaSignal* sig;
                  ValaSymbolAccessibility _tmp86_;
                  gboolean _tmp87_;
                  gchar* _tmp88_ = NULL;
                  gchar* _tmp89_;
                  gchar* _tmp90_ = NULL;
                  gchar* _tmp91_;
                  gchar* _tmp92_;
                  gchar* _tmp103_;
                  _sig_index = _sig_index + 1;
                  if (!(_sig_index < _sig_size)) {
                        break;
                  }
                  _tmp85_ = vala_list_get (_sig_list, _sig_index);
                  sig = (ValaSignal*) _tmp85_;
                  _tmp86_ = vala_symbol_get_access ((ValaSymbol*) sig);
                  if (_tmp86_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
                        _vala_code_node_unref0 (sig);
                        continue;
                  }
                  _tmp87_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) sig);
                  if (!_tmp87_) {
                        _vala_code_node_unref0 (sig);
                        continue;
                  }
                  _tmp88_ = vala_dbus_module_get_dbus_name_for_member ((ValaSymbol*) sig);
                  _tmp89_ = _tmp88_;
                  _tmp90_ = g_strdup_printf ("  <signal name=\"%s\">\n", _tmp89_);
                  _tmp91_ = _tmp90_;
                  _tmp92_ = g_strconcat (_result_, _tmp91_, NULL);
                  _g_free0 (_result_);
                  _result_ = _tmp92_;
                  _g_free0 (_tmp91_);
                  _g_free0 (_tmp89_);
                  {
                        ValaList* _tmp93_ = NULL;
                        ValaList* _param_list;
                        gint _tmp94_;
                        gint _param_size;
                        gint _param_index;
                        _tmp93_ = vala_signal_get_parameters (sig);
                        _param_list = _tmp93_;
                        _tmp94_ = vala_collection_get_size ((ValaCollection*) _param_list);
                        _param_size = _tmp94_;
                        _param_index = -1;
                        while (TRUE) {
                              gpointer _tmp95_ = NULL;
                              ValaParameter* param;
                              const gchar* _tmp96_ = NULL;
                              ValaDataType* _tmp97_ = NULL;
                              gchar* _tmp98_ = NULL;
                              gchar* _tmp99_;
                              gchar* _tmp100_ = NULL;
                              gchar* _tmp101_;
                              gchar* _tmp102_;
                              _param_index = _param_index + 1;
                              if (!(_param_index < _param_size)) {
                                    break;
                              }
                              _tmp95_ = vala_list_get (_param_list, _param_index);
                              param = (ValaParameter*) _tmp95_;
                              _tmp96_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp97_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp98_ = vala_dbus_module_get_type_signature (_tmp97_);
                              _tmp99_ = _tmp98_;
                              _tmp100_ = g_strdup_printf ("    <arg name=\"%s\" type=\"%s\"/>\n", _tmp96_, _tmp99_);
                              _tmp101_ = _tmp100_;
                              _tmp102_ = g_strconcat (_result_, _tmp101_, NULL);
                              _g_free0 (_result_);
                              _result_ = _tmp102_;
                              _g_free0 (_tmp101_);
                              _g_free0 (_tmp99_);
                              _vala_code_node_unref0 (param);
                        }
                        _vala_iterable_unref0 (_param_list);
                  }
                  _tmp103_ = g_strconcat (_result_, "  </signal>\n", NULL);
                  _g_free0 (_result_);
                  _result_ = _tmp103_;
                  _vala_code_node_unref0 (sig);
            }
            _vala_iterable_unref0 (_sig_list);
      }
      _tmp104_ = g_strconcat (_result_, "</interface>\n", NULL);
      _g_free0 (_result_);
      _result_ = _tmp104_;
      result = _result_;
      _g_free0 (dbus_iface_name);
      _vala_code_node_unref0 (cl);
      return result;
}


static gchar* vala_dbus_server_module_generate_dbus_introspect (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* wrapper_name;
      ValaCCodeFunction* _tmp4_ = NULL;
      ValaCCodeFunction* function;
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      ValaCCodeParameter* _tmp9_ = NULL;
      ValaCCodeParameter* _tmp10_;
      ValaCCodeParameter* _tmp11_ = NULL;
      ValaCCodeParameter* _tmp12_;
      ValaCCodeParameter* _tmp13_ = NULL;
      ValaCCodeParameter* _tmp14_;
      ValaCCodeBlock* _tmp15_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeDeclaration* _tmp16_ = NULL;
      ValaCCodeDeclaration* _cdecl_;
      ValaCCodeVariableDeclarator* _tmp17_ = NULL;
      ValaCCodeVariableDeclarator* _tmp18_;
      ValaCCodeDeclaration* _tmp19_ = NULL;
      ValaCCodeVariableDeclarator* _tmp20_ = NULL;
      ValaCCodeVariableDeclarator* _tmp21_;
      ValaCCodeIdentifier* _tmp22_ = NULL;
      ValaCCodeIdentifier* _tmp23_;
      ValaCCodeFunctionCall* _tmp24_ = NULL;
      ValaCCodeFunctionCall* _tmp25_;
      ValaCCodeFunctionCall* msgcall;
      ValaCCodeIdentifier* _tmp26_ = NULL;
      ValaCCodeIdentifier* _tmp27_;
      ValaCCodeIdentifier* _tmp28_ = NULL;
      ValaCCodeIdentifier* _tmp29_;
      ValaCCodeAssignment* _tmp30_ = NULL;
      ValaCCodeAssignment* _tmp31_;
      ValaCCodeExpressionStatement* _tmp32_ = NULL;
      ValaCCodeExpressionStatement* _tmp33_;
      ValaCCodeIdentifier* _tmp34_ = NULL;
      ValaCCodeIdentifier* _tmp35_;
      ValaCCodeFunctionCall* _tmp36_ = NULL;
      ValaCCodeFunctionCall* _tmp37_;
      ValaCCodeFunctionCall* iter_call;
      ValaCCodeIdentifier* _tmp38_ = NULL;
      ValaCCodeIdentifier* _tmp39_;
      ValaCCodeIdentifier* _tmp40_ = NULL;
      ValaCCodeIdentifier* _tmp41_;
      ValaCCodeUnaryExpression* _tmp42_ = NULL;
      ValaCCodeUnaryExpression* _tmp43_;
      ValaCCodeExpressionStatement* _tmp44_ = NULL;
      ValaCCodeExpressionStatement* _tmp45_;
      ValaCCodeDeclaration* _tmp46_ = NULL;
      ValaCCodeVariableDeclarator* _tmp47_ = NULL;
      ValaCCodeVariableDeclarator* _tmp48_;
      ValaCCodeDeclaration* _tmp49_ = NULL;
      ValaCCodeVariableDeclarator* _tmp50_ = NULL;
      ValaCCodeVariableDeclarator* _tmp51_;
      ValaCCodeDeclaration* _tmp52_ = NULL;
      ValaCCodeVariableDeclarator* _tmp53_ = NULL;
      ValaCCodeVariableDeclarator* _tmp54_;
      gchar* _tmp55_;
      gchar* xml_data;
      ValaCCodeIdentifier* _tmp56_ = NULL;
      ValaCCodeIdentifier* _tmp57_;
      ValaCCodeFunctionCall* _tmp58_ = NULL;
      ValaCCodeFunctionCall* _tmp59_;
      ValaCCodeFunctionCall* str_call;
      gchar* _tmp60_ = NULL;
      gchar* _tmp61_;
      gchar* _tmp62_ = NULL;
      gchar* _tmp63_;
      ValaCCodeConstant* _tmp64_ = NULL;
      ValaCCodeConstant* _tmp65_;
      ValaCCodeIdentifier* _tmp66_ = NULL;
      ValaCCodeIdentifier* _tmp67_;
      ValaCCodeAssignment* _tmp68_ = NULL;
      ValaCCodeAssignment* _tmp69_;
      ValaCCodeExpressionStatement* _tmp70_ = NULL;
      ValaCCodeExpressionStatement* _tmp71_;
      gchar* _tmp72_;
      gchar* _tmp73_;
      gchar* _tmp74_ = NULL;
      gchar* _tmp75_;
      gchar* _tmp76_;
      ValaCCodeIdentifier* _tmp77_ = NULL;
      ValaCCodeIdentifier* _tmp78_;
      ValaCCodeFunctionCall* _tmp79_ = NULL;
      ValaCCodeIdentifier* _tmp80_ = NULL;
      ValaCCodeIdentifier* _tmp81_;
      gchar* _tmp82_ = NULL;
      gchar* _tmp83_;
      gchar* _tmp84_ = NULL;
      gchar* _tmp85_;
      ValaCCodeConstant* _tmp86_ = NULL;
      ValaCCodeConstant* _tmp87_;
      ValaCCodeExpressionStatement* _tmp88_ = NULL;
      ValaCCodeExpressionStatement* _tmp89_;
      ValaCCodeIdentifier* _tmp90_ = NULL;
      ValaCCodeIdentifier* _tmp91_;
      ValaCCodeFunctionCall* _tmp92_ = NULL;
      ValaCCodeFunctionCall* _tmp93_;
      ValaCCodeFunctionCall* get_path;
      ValaCCodeIdentifier* _tmp94_ = NULL;
      ValaCCodeIdentifier* _tmp95_;
      ValaCCodeCastExpression* _tmp96_ = NULL;
      ValaCCodeCastExpression* _tmp97_;
      ValaCCodeConstant* _tmp98_ = NULL;
      ValaCCodeConstant* _tmp99_;
      ValaCCodeIdentifier* _tmp100_ = NULL;
      ValaCCodeIdentifier* _tmp101_;
      ValaCCodeFunctionCall* _tmp102_ = NULL;
      ValaCCodeFunctionCall* _tmp103_;
      ValaCCodeFunctionCall* list_call;
      ValaCCodeIdentifier* _tmp104_ = NULL;
      ValaCCodeIdentifier* _tmp105_;
      ValaCCodeIdentifier* _tmp106_ = NULL;
      ValaCCodeIdentifier* _tmp107_;
      ValaCCodeUnaryExpression* _tmp108_ = NULL;
      ValaCCodeUnaryExpression* _tmp109_;
      ValaCCodeExpressionStatement* _tmp110_ = NULL;
      ValaCCodeExpressionStatement* _tmp111_;
      ValaCCodeBlock* _tmp112_ = NULL;
      ValaCCodeBlock* child_block;
      ValaCCodeIdentifier* _tmp113_ = NULL;
      ValaCCodeIdentifier* _tmp114_;
      ValaCCodeFunctionCall* _tmp115_ = NULL;
      ValaCCodeIdentifier* _tmp116_ = NULL;
      ValaCCodeIdentifier* _tmp117_;
      gchar* _tmp118_ = NULL;
      gchar* _tmp119_;
      gchar* _tmp120_ = NULL;
      gchar* _tmp121_;
      ValaCCodeConstant* _tmp122_ = NULL;
      ValaCCodeConstant* _tmp123_;
      ValaCCodeIdentifier* _tmp124_ = NULL;
      ValaCCodeIdentifier* _tmp125_;
      ValaCCodeIdentifier* _tmp126_ = NULL;
      ValaCCodeIdentifier* _tmp127_;
      ValaCCodeElementAccess* _tmp128_ = NULL;
      ValaCCodeElementAccess* _tmp129_;
      ValaCCodeExpressionStatement* _tmp130_ = NULL;
      ValaCCodeExpressionStatement* _tmp131_;
      ValaCCodeIdentifier* _tmp132_ = NULL;
      ValaCCodeIdentifier* _tmp133_;
      ValaCCodeIdentifier* _tmp134_ = NULL;
      ValaCCodeIdentifier* _tmp135_;
      ValaCCodeElementAccess* _tmp136_ = NULL;
      ValaCCodeElementAccess* _tmp137_;
      ValaCCodeForStatement* _tmp138_ = NULL;
      ValaCCodeForStatement* _tmp139_;
      ValaCCodeForStatement* cfor;
      ValaCCodeIdentifier* _tmp140_ = NULL;
      ValaCCodeIdentifier* _tmp141_;
      ValaCCodeConstant* _tmp142_ = NULL;
      ValaCCodeConstant* _tmp143_;
      ValaCCodeAssignment* _tmp144_ = NULL;
      ValaCCodeAssignment* _tmp145_;
      ValaCCodeIdentifier* _tmp146_ = NULL;
      ValaCCodeIdentifier* _tmp147_;
      ValaCCodeUnaryExpression* _tmp148_ = NULL;
      ValaCCodeUnaryExpression* _tmp149_;
      ValaCCodeIdentifier* _tmp150_ = NULL;
      ValaCCodeIdentifier* _tmp151_;
      ValaCCodeFunctionCall* _tmp152_ = NULL;
      ValaCCodeFunctionCall* _tmp153_;
      ValaCCodeFunctionCall* list_free_call;
      ValaCCodeIdentifier* _tmp154_ = NULL;
      ValaCCodeIdentifier* _tmp155_;
      ValaCCodeExpressionStatement* _tmp156_ = NULL;
      ValaCCodeExpressionStatement* _tmp157_;
      gchar* _tmp158_;
      ValaCCodeIdentifier* _tmp159_ = NULL;
      ValaCCodeIdentifier* _tmp160_;
      ValaCCodeFunctionCall* _tmp161_ = NULL;
      ValaCCodeIdentifier* _tmp162_ = NULL;
      ValaCCodeIdentifier* _tmp163_;
      gchar* _tmp164_ = NULL;
      gchar* _tmp165_;
      gchar* _tmp166_ = NULL;
      gchar* _tmp167_;
      ValaCCodeConstant* _tmp168_ = NULL;
      ValaCCodeConstant* _tmp169_;
      ValaCCodeExpressionStatement* _tmp170_ = NULL;
      ValaCCodeExpressionStatement* _tmp171_;
      ValaCCodeIdentifier* _tmp172_ = NULL;
      ValaCCodeIdentifier* _tmp173_;
      ValaCCodeFunctionCall* _tmp174_ = NULL;
      ValaCCodeIdentifier* _tmp175_ = NULL;
      ValaCCodeIdentifier* _tmp176_;
      ValaCCodeUnaryExpression* _tmp177_ = NULL;
      ValaCCodeUnaryExpression* _tmp178_;
      ValaCCodeIdentifier* _tmp179_ = NULL;
      ValaCCodeIdentifier* _tmp180_;
      ValaCCodeIdentifier* _tmp181_ = NULL;
      ValaCCodeIdentifier* _tmp182_;
      ValaCCodeMemberAccess* _tmp183_ = NULL;
      ValaCCodeMemberAccess* _tmp184_;
      ValaCCodeUnaryExpression* _tmp185_ = NULL;
      ValaCCodeUnaryExpression* _tmp186_;
      ValaCCodeExpressionStatement* _tmp187_ = NULL;
      ValaCCodeExpressionStatement* _tmp188_;
      ValaCCodeIdentifier* _tmp189_ = NULL;
      ValaCCodeIdentifier* _tmp190_;
      ValaCCodeFunctionCall* _tmp191_ = NULL;
      ValaCCodeIdentifier* _tmp192_ = NULL;
      ValaCCodeIdentifier* _tmp193_;
      ValaCCodeConstant* _tmp194_ = NULL;
      ValaCCodeConstant* _tmp195_;
      ValaCCodeExpressionStatement* _tmp196_ = NULL;
      ValaCCodeExpressionStatement* _tmp197_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (sym != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp1_ = _tmp0_;
      _tmp2_ = g_strdup_printf ("_dbus_%s_introspect", _tmp1_);
      _tmp3_ = _tmp2_;
      _g_free0 (_tmp1_);
      wrapper_name = _tmp3_;
      _tmp4_ = vala_ccode_function_new (wrapper_name, "DBusHandlerResult");
      function = _tmp4_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp5_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) sym, FALSE);
      _tmp6_ = _tmp5_;
      _tmp7_ = g_strconcat (_tmp6_, "*", NULL);
      _tmp8_ = _tmp7_;
      _tmp9_ = vala_ccode_parameter_new ("self", _tmp8_);
      _tmp10_ = _tmp9_;
      vala_ccode_function_add_parameter (function, _tmp10_);
      _vala_ccode_node_unref0 (_tmp10_);
      _g_free0 (_tmp8_);
      _g_free0 (_tmp6_);
      _tmp11_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp12_ = _tmp11_;
      vala_ccode_function_add_parameter (function, _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _tmp13_ = vala_ccode_parameter_new ("message", "DBusMessage*");
      _tmp14_ = _tmp13_;
      vala_ccode_function_add_parameter (function, _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      _tmp15_ = vala_ccode_block_new ();
      block = _tmp15_;
      _tmp16_ = vala_ccode_declaration_new ("DBusMessage*");
      _cdecl_ = _tmp16_;
      _tmp17_ = vala_ccode_variable_declarator_new ("reply", NULL, NULL);
      _tmp18_ = _tmp17_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp18_);
      _vala_ccode_node_unref0 (_tmp18_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp19_ = vala_ccode_declaration_new ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp19_;
      _tmp20_ = vala_ccode_variable_declarator_new ("iter", NULL, NULL);
      _tmp21_ = _tmp20_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp21_);
      _vala_ccode_node_unref0 (_tmp21_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp22_ = vala_ccode_identifier_new ("dbus_message_new_method_return");
      _tmp23_ = _tmp22_;
      _tmp24_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp23_);
      _tmp25_ = _tmp24_;
      _vala_ccode_node_unref0 (_tmp23_);
      msgcall = _tmp25_;
      _tmp26_ = vala_ccode_identifier_new ("message");
      _tmp27_ = _tmp26_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp27_);
      _vala_ccode_node_unref0 (_tmp27_);
      _tmp28_ = vala_ccode_identifier_new ("reply");
      _tmp29_ = _tmp28_;
      _tmp30_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp29_, (ValaCCodeExpression*) msgcall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp31_ = _tmp30_;
      _tmp32_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp31_);
      _tmp33_ = _tmp32_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp33_);
      _vala_ccode_node_unref0 (_tmp33_);
      _vala_ccode_node_unref0 (_tmp31_);
      _vala_ccode_node_unref0 (_tmp29_);
      _tmp34_ = vala_ccode_identifier_new ("dbus_message_iter_init_append");
      _tmp35_ = _tmp34_;
      _tmp36_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp35_);
      _tmp37_ = _tmp36_;
      _vala_ccode_node_unref0 (_tmp35_);
      iter_call = _tmp37_;
      _tmp38_ = vala_ccode_identifier_new ("reply");
      _tmp39_ = _tmp38_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp39_);
      _vala_ccode_node_unref0 (_tmp39_);
      _tmp40_ = vala_ccode_identifier_new ("iter");
      _tmp41_ = _tmp40_;
      _tmp42_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp41_);
      _tmp43_ = _tmp42_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp43_);
      _vala_ccode_node_unref0 (_tmp43_);
      _vala_ccode_node_unref0 (_tmp41_);
      _tmp44_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp45_ = _tmp44_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp45_);
      _vala_ccode_node_unref0 (_tmp45_);
      _tmp46_ = vala_ccode_declaration_new ("GString*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp46_;
      _tmp47_ = vala_ccode_variable_declarator_new ("xml_data", NULL, NULL);
      _tmp48_ = _tmp47_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp48_);
      _vala_ccode_node_unref0 (_tmp48_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp49_ = vala_ccode_declaration_new ("char**");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp49_;
      _tmp50_ = vala_ccode_variable_declarator_new ("children", NULL, NULL);
      _tmp51_ = _tmp50_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp51_);
      _vala_ccode_node_unref0 (_tmp51_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp52_ = vala_ccode_declaration_new ("int");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp52_;
      _tmp53_ = vala_ccode_variable_declarator_new ("i", NULL, NULL);
      _tmp54_ = _tmp53_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp54_);
      _vala_ccode_node_unref0 (_tmp54_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp55_ = g_strdup ("<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection" \
" 1.0//EN\" \"http://www.freedesktop.org/standards/dbus/1.0/introspect." \
"dtd\">\n");
      xml_data = _tmp55_;
      _tmp56_ = vala_ccode_identifier_new ("g_string_new");
      _tmp57_ = _tmp56_;
      _tmp58_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp57_);
      _tmp59_ = _tmp58_;
      _vala_ccode_node_unref0 (_tmp57_);
      str_call = _tmp59_;
      _tmp60_ = g_strescape (xml_data, "");
      _tmp61_ = _tmp60_;
      _tmp62_ = g_strdup_printf ("\"%s\"", _tmp61_);
      _tmp63_ = _tmp62_;
      _tmp64_ = vala_ccode_constant_new (_tmp63_);
      _tmp65_ = _tmp64_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp65_);
      _vala_ccode_node_unref0 (_tmp65_);
      _g_free0 (_tmp63_);
      _g_free0 (_tmp61_);
      _tmp66_ = vala_ccode_identifier_new ("xml_data");
      _tmp67_ = _tmp66_;
      _tmp68_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp67_, (ValaCCodeExpression*) str_call, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp69_ = _tmp68_;
      _tmp70_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp69_);
      _tmp71_ = _tmp70_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp71_);
      _vala_ccode_node_unref0 (_tmp71_);
      _vala_ccode_node_unref0 (_tmp69_);
      _vala_ccode_node_unref0 (_tmp67_);
      _tmp72_ = g_strdup ("<node>\n");
      _g_free0 (xml_data);
      xml_data = _tmp72_;
      _tmp73_ = g_strconcat (xml_data, "<interface name=\"org.freedesktop.DBus.Introspectable\">\n" \
"  <method name=\"Introspect\">\n" \
"    <arg name=\"data\" direction=\"out\" type=\"s\"/>\n" \
"  </method>\n" \
"</interface>\n" \
"<interface name=\"org.freedesktop.DBus.Properties\">\n" \
"  <method name=\"Get\">\n" \
"    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n" \
"    <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n" \
"    <arg name=\"value\" direction=\"out\" type=\"v\"/>\n" \
"  </method>\n" \
"  <method name=\"Set\">\n" \
"    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n" \
"    <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n" \
"    <arg name=\"value\" direction=\"in\" type=\"v\"/>\n" \
"  </method>\n" \
"  <method name=\"GetAll\">\n" \
"    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n" \
"    <arg name=\"props\" direction=\"out\" type=\"a{sv}\"/>\n" \
"  </method>\n" \
"</interface>\n", NULL);
      _g_free0 (xml_data);
      xml_data = _tmp73_;
      _tmp74_ = vala_dbus_server_module_get_dbus_type_introspection (self, sym);
      _tmp75_ = _tmp74_;
      _tmp76_ = g_strconcat (xml_data, _tmp75_, NULL);
      _g_free0 (xml_data);
      xml_data = _tmp76_;
      _g_free0 (_tmp75_);
      _tmp77_ = vala_ccode_identifier_new ("g_string_append");
      _tmp78_ = _tmp77_;
      _tmp79_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp78_);
      _vala_ccode_node_unref0 (str_call);
      str_call = _tmp79_;
      _vala_ccode_node_unref0 (_tmp78_);
      _tmp80_ = vala_ccode_identifier_new ("xml_data");
      _tmp81_ = _tmp80_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp81_);
      _vala_ccode_node_unref0 (_tmp81_);
      _tmp82_ = g_strescape (xml_data, "");
      _tmp83_ = _tmp82_;
      _tmp84_ = g_strdup_printf ("\"%s\"", _tmp83_);
      _tmp85_ = _tmp84_;
      _tmp86_ = vala_ccode_constant_new (_tmp85_);
      _tmp87_ = _tmp86_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp87_);
      _vala_ccode_node_unref0 (_tmp87_);
      _g_free0 (_tmp85_);
      _g_free0 (_tmp83_);
      _tmp88_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) str_call);
      _tmp89_ = _tmp88_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp89_);
      _vala_ccode_node_unref0 (_tmp89_);
      _tmp90_ = vala_ccode_identifier_new ("g_object_get_data");
      _tmp91_ = _tmp90_;
      _tmp92_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp91_);
      _tmp93_ = _tmp92_;
      _vala_ccode_node_unref0 (_tmp91_);
      get_path = _tmp93_;
      _tmp94_ = vala_ccode_identifier_new ("self");
      _tmp95_ = _tmp94_;
      _tmp96_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp95_, "GObject *");
      _tmp97_ = _tmp96_;
      vala_ccode_function_call_add_argument (get_path, (ValaCCodeExpression*) _tmp97_);
      _vala_ccode_node_unref0 (_tmp97_);
      _vala_ccode_node_unref0 (_tmp95_);
      _tmp98_ = vala_ccode_constant_new ("\"dbus_object_path\"");
      _tmp99_ = _tmp98_;
      vala_ccode_function_call_add_argument (get_path, (ValaCCodeExpression*) _tmp99_);
      _vala_ccode_node_unref0 (_tmp99_);
      _tmp100_ = vala_ccode_identifier_new ("dbus_connection_list_registered");
      _tmp101_ = _tmp100_;
      _tmp102_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp101_);
      _tmp103_ = _tmp102_;
      _vala_ccode_node_unref0 (_tmp101_);
      list_call = _tmp103_;
      _tmp104_ = vala_ccode_identifier_new ("connection");
      _tmp105_ = _tmp104_;
      vala_ccode_function_call_add_argument (list_call, (ValaCCodeExpression*) _tmp105_);
      _vala_ccode_node_unref0 (_tmp105_);
      vala_ccode_function_call_add_argument (list_call, (ValaCCodeExpression*) get_path);
      _tmp106_ = vala_ccode_identifier_new ("children");
      _tmp107_ = _tmp106_;
      _tmp108_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp107_);
      _tmp109_ = _tmp108_;
      vala_ccode_function_call_add_argument (list_call, (ValaCCodeExpression*) _tmp109_);
      _vala_ccode_node_unref0 (_tmp109_);
      _vala_ccode_node_unref0 (_tmp107_);
      _tmp110_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) list_call);
      _tmp111_ = _tmp110_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp111_);
      _vala_ccode_node_unref0 (_tmp111_);
      _tmp112_ = vala_ccode_block_new ();
      child_block = _tmp112_;
      _tmp113_ = vala_ccode_identifier_new ("g_string_append_printf");
      _tmp114_ = _tmp113_;
      _tmp115_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp114_);
      _vala_ccode_node_unref0 (str_call);
      str_call = _tmp115_;
      _vala_ccode_node_unref0 (_tmp114_);
      _tmp116_ = vala_ccode_identifier_new ("xml_data");
      _tmp117_ = _tmp116_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp117_);
      _vala_ccode_node_unref0 (_tmp117_);
      _tmp118_ = g_strescape ("<node name=\"%s\"/>\n", "");
      _tmp119_ = _tmp118_;
      _tmp120_ = g_strdup_printf ("\"%s\"", _tmp119_);
      _tmp121_ = _tmp120_;
      _tmp122_ = vala_ccode_constant_new (_tmp121_);
      _tmp123_ = _tmp122_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp123_);
      _vala_ccode_node_unref0 (_tmp123_);
      _g_free0 (_tmp121_);
      _g_free0 (_tmp119_);
      _tmp124_ = vala_ccode_identifier_new ("children");
      _tmp125_ = _tmp124_;
      _tmp126_ = vala_ccode_identifier_new ("i");
      _tmp127_ = _tmp126_;
      _tmp128_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp125_, (ValaCCodeExpression*) _tmp127_);
      _tmp129_ = _tmp128_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp129_);
      _vala_ccode_node_unref0 (_tmp129_);
      _vala_ccode_node_unref0 (_tmp127_);
      _vala_ccode_node_unref0 (_tmp125_);
      _tmp130_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) str_call);
      _tmp131_ = _tmp130_;
      vala_ccode_block_add_statement (child_block, (ValaCCodeNode*) _tmp131_);
      _vala_ccode_node_unref0 (_tmp131_);
      _tmp132_ = vala_ccode_identifier_new ("children");
      _tmp133_ = _tmp132_;
      _tmp134_ = vala_ccode_identifier_new ("i");
      _tmp135_ = _tmp134_;
      _tmp136_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp133_, (ValaCCodeExpression*) _tmp135_);
      _tmp137_ = _tmp136_;
      _tmp138_ = vala_ccode_for_statement_new ((ValaCCodeExpression*) _tmp137_, (ValaCCodeStatement*) child_block);
      _tmp139_ = _tmp138_;
      _vala_ccode_node_unref0 (_tmp137_);
      _vala_ccode_node_unref0 (_tmp135_);
      _vala_ccode_node_unref0 (_tmp133_);
      cfor = _tmp139_;
      _tmp140_ = vala_ccode_identifier_new ("i");
      _tmp141_ = _tmp140_;
      _tmp142_ = vala_ccode_constant_new ("0");
      _tmp143_ = _tmp142_;
      _tmp144_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp141_, (ValaCCodeExpression*) _tmp143_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp145_ = _tmp144_;
      vala_ccode_for_statement_add_initializer (cfor, (ValaCCodeExpression*) _tmp145_);
      _vala_ccode_node_unref0 (_tmp145_);
      _vala_ccode_node_unref0 (_tmp143_);
      _vala_ccode_node_unref0 (_tmp141_);
      _tmp146_ = vala_ccode_identifier_new ("i");
      _tmp147_ = _tmp146_;
      _tmp148_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POSTFIX_INCREMENT, (ValaCCodeExpression*) _tmp147_);
      _tmp149_ = _tmp148_;
      vala_ccode_for_statement_add_iterator (cfor, (ValaCCodeExpression*) _tmp149_);
      _vala_ccode_node_unref0 (_tmp149_);
      _vala_ccode_node_unref0 (_tmp147_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) cfor);
      _tmp150_ = vala_ccode_identifier_new ("dbus_free_string_array");
      _tmp151_ = _tmp150_;
      _tmp152_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp151_);
      _tmp153_ = _tmp152_;
      _vala_ccode_node_unref0 (_tmp151_);
      list_free_call = _tmp153_;
      _tmp154_ = vala_ccode_identifier_new ("children");
      _tmp155_ = _tmp154_;
      vala_ccode_function_call_add_argument (list_free_call, (ValaCCodeExpression*) _tmp155_);
      _vala_ccode_node_unref0 (_tmp155_);
      _tmp156_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) list_free_call);
      _tmp157_ = _tmp156_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp157_);
      _vala_ccode_node_unref0 (_tmp157_);
      _tmp158_ = g_strdup ("</node>\n");
      _g_free0 (xml_data);
      xml_data = _tmp158_;
      _tmp159_ = vala_ccode_identifier_new ("g_string_append");
      _tmp160_ = _tmp159_;
      _tmp161_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp160_);
      _vala_ccode_node_unref0 (str_call);
      str_call = _tmp161_;
      _vala_ccode_node_unref0 (_tmp160_);
      _tmp162_ = vala_ccode_identifier_new ("xml_data");
      _tmp163_ = _tmp162_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp163_);
      _vala_ccode_node_unref0 (_tmp163_);
      _tmp164_ = g_strescape (xml_data, "");
      _tmp165_ = _tmp164_;
      _tmp166_ = g_strdup_printf ("\"%s\"", _tmp165_);
      _tmp167_ = _tmp166_;
      _tmp168_ = vala_ccode_constant_new (_tmp167_);
      _tmp169_ = _tmp168_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp169_);
      _vala_ccode_node_unref0 (_tmp169_);
      _g_free0 (_tmp167_);
      _g_free0 (_tmp165_);
      _tmp170_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) str_call);
      _tmp171_ = _tmp170_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp171_);
      _vala_ccode_node_unref0 (_tmp171_);
      _tmp172_ = vala_ccode_identifier_new ("dbus_message_iter_append_basic");
      _tmp173_ = _tmp172_;
      _tmp174_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp173_);
      _vala_ccode_node_unref0 (iter_call);
      iter_call = _tmp174_;
      _vala_ccode_node_unref0 (_tmp173_);
      _tmp175_ = vala_ccode_identifier_new ("iter");
      _tmp176_ = _tmp175_;
      _tmp177_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp176_);
      _tmp178_ = _tmp177_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp178_);
      _vala_ccode_node_unref0 (_tmp178_);
      _vala_ccode_node_unref0 (_tmp176_);
      _tmp179_ = vala_ccode_identifier_new ("DBUS_TYPE_STRING");
      _tmp180_ = _tmp179_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp180_);
      _vala_ccode_node_unref0 (_tmp180_);
      _tmp181_ = vala_ccode_identifier_new ("xml_data");
      _tmp182_ = _tmp181_;
      _tmp183_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp182_, "str");
      _tmp184_ = _tmp183_;
      _tmp185_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp184_);
      _tmp186_ = _tmp185_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp186_);
      _vala_ccode_node_unref0 (_tmp186_);
      _vala_ccode_node_unref0 (_tmp184_);
      _vala_ccode_node_unref0 (_tmp182_);
      _tmp187_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp188_ = _tmp187_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp188_);
      _vala_ccode_node_unref0 (_tmp188_);
      _tmp189_ = vala_ccode_identifier_new ("g_string_free");
      _tmp190_ = _tmp189_;
      _tmp191_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp190_);
      _vala_ccode_node_unref0 (str_call);
      str_call = _tmp191_;
      _vala_ccode_node_unref0 (_tmp190_);
      _tmp192_ = vala_ccode_identifier_new ("xml_data");
      _tmp193_ = _tmp192_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp193_);
      _vala_ccode_node_unref0 (_tmp193_);
      _tmp194_ = vala_ccode_constant_new ("TRUE");
      _tmp195_ = _tmp194_;
      vala_ccode_function_call_add_argument (str_call, (ValaCCodeExpression*) _tmp195_);
      _vala_ccode_node_unref0 (_tmp195_);
      _tmp196_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) str_call);
      _tmp197_ = _tmp196_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp197_);
      _vala_ccode_node_unref0 (_tmp197_);
      vala_dbus_server_module_handle_reply (self, block);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_function_set_block (function, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = wrapper_name;
      _vala_ccode_node_unref0 (list_free_call);
      _vala_ccode_node_unref0 (cfor);
      _vala_ccode_node_unref0 (child_block);
      _vala_ccode_node_unref0 (list_call);
      _vala_ccode_node_unref0 (get_path);
      _vala_ccode_node_unref0 (str_call);
      _g_free0 (xml_data);
      _vala_ccode_node_unref0 (iter_call);
      _vala_ccode_node_unref0 (msgcall);
      _vala_ccode_node_unref0 (_cdecl_);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (function);
      return result;
}


static void vala_dbus_server_module_handle_signals (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym, ValaCCodeBlock* block) {
      gchar* _tmp0_ = NULL;
      gchar* dbus_iface_name;
      g_return_if_fail (self != NULL);
      g_return_if_fail (sym != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) sym);
      dbus_iface_name = _tmp0_;
      if (dbus_iface_name == NULL) {
            _g_free0 (dbus_iface_name);
            return;
      }
      {
            ValaList* _tmp1_ = NULL;
            ValaList* _sig_list;
            gint _tmp2_;
            gint _sig_size;
            gint _sig_index;
            _tmp1_ = vala_object_type_symbol_get_signals (sym);
            _sig_list = _tmp1_;
            _tmp2_ = vala_collection_get_size ((ValaCollection*) _sig_list);
            _sig_size = _tmp2_;
            _sig_index = -1;
            while (TRUE) {
                  gpointer _tmp3_ = NULL;
                  ValaSignal* sig;
                  ValaSymbolAccessibility _tmp4_;
                  gboolean _tmp5_;
                  ValaCCodeIdentifier* _tmp6_ = NULL;
                  ValaCCodeIdentifier* _tmp7_;
                  ValaCCodeFunctionCall* _tmp8_ = NULL;
                  ValaCCodeFunctionCall* _tmp9_;
                  ValaCCodeFunctionCall* connect;
                  ValaCCodeIdentifier* _tmp10_ = NULL;
                  ValaCCodeIdentifier* _tmp11_;
                  ValaCCodeConstant* _tmp12_ = NULL;
                  ValaCCodeConstant* _tmp13_;
                  gchar* _tmp14_ = NULL;
                  gchar* _tmp15_;
                  ValaCCodeIdentifier* _tmp16_ = NULL;
                  ValaCCodeIdentifier* _tmp17_;
                  ValaCCodeCastExpression* _tmp18_ = NULL;
                  ValaCCodeCastExpression* _tmp19_;
                  ValaCCodeIdentifier* _tmp20_ = NULL;
                  ValaCCodeIdentifier* _tmp21_;
                  ValaCCodeExpressionStatement* _tmp22_ = NULL;
                  ValaCCodeExpressionStatement* _tmp23_;
                  _sig_index = _sig_index + 1;
                  if (!(_sig_index < _sig_size)) {
                        break;
                  }
                  _tmp3_ = vala_list_get (_sig_list, _sig_index);
                  sig = (ValaSignal*) _tmp3_;
                  _tmp4_ = vala_symbol_get_access ((ValaSymbol*) sig);
                  if (_tmp4_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
                        _vala_code_node_unref0 (sig);
                        continue;
                  }
                  _tmp5_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) sig);
                  if (!_tmp5_) {
                        _vala_code_node_unref0 (sig);
                        continue;
                  }
                  _tmp6_ = vala_ccode_identifier_new ("g_signal_connect");
                  _tmp7_ = _tmp6_;
                  _tmp8_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp7_);
                  _tmp9_ = _tmp8_;
                  _vala_ccode_node_unref0 (_tmp7_);
                  connect = _tmp9_;
                  _tmp10_ = vala_ccode_identifier_new ("object");
                  _tmp11_ = _tmp10_;
                  vala_ccode_function_call_add_argument (connect, (ValaCCodeExpression*) _tmp11_);
                  _vala_ccode_node_unref0 (_tmp11_);
                  _tmp12_ = vala_signal_get_canonical_cconstant (sig, NULL);
                  _tmp13_ = _tmp12_;
                  vala_ccode_function_call_add_argument (connect, (ValaCCodeExpression*) _tmp13_);
                  _vala_ccode_node_unref0 (_tmp13_);
                  _tmp14_ = vala_dbus_server_module_generate_dbus_signal_wrapper (self, sig, sym, dbus_iface_name);
                  _tmp15_ = _tmp14_;
                  _tmp16_ = vala_ccode_identifier_new (_tmp15_);
                  _tmp17_ = _tmp16_;
                  _tmp18_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp17_, "GCallback");
                  _tmp19_ = _tmp18_;
                  vala_ccode_function_call_add_argument (connect, (ValaCCodeExpression*) _tmp19_);
                  _vala_ccode_node_unref0 (_tmp19_);
                  _vala_ccode_node_unref0 (_tmp17_);
                  _g_free0 (_tmp15_);
                  _tmp20_ = vala_ccode_identifier_new ("connection");
                  _tmp21_ = _tmp20_;
                  vala_ccode_function_call_add_argument (connect, (ValaCCodeExpression*) _tmp21_);
                  _vala_ccode_node_unref0 (_tmp21_);
                  _tmp22_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) connect);
                  _tmp23_ = _tmp22_;
                  vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp23_);
                  _vala_ccode_node_unref0 (_tmp23_);
                  _vala_ccode_node_unref0 (connect);
                  _vala_code_node_unref0 (sig);
            }
            _vala_iterable_unref0 (_sig_list);
      }
      _g_free0 (dbus_iface_name);
}


static void vala_dbus_server_module_generate_message_function (ValaDBusServerModule* self, ValaObjectType* object_type) {
      ValaObjectTypeSymbol* _tmp0_ = NULL;
      ValaObjectTypeSymbol* _tmp1_;
      ValaObjectTypeSymbol* sym;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* _tmp4_;
      gchar* _tmp5_;
      ValaCCodeFunction* _tmp6_ = NULL;
      ValaCCodeFunction* _tmp7_;
      ValaCCodeFunction* cfunc;
      ValaCCodeParameter* _tmp8_ = NULL;
      ValaCCodeParameter* _tmp9_;
      ValaCCodeParameter* _tmp10_ = NULL;
      ValaCCodeParameter* _tmp11_;
      ValaCCodeParameter* _tmp12_ = NULL;
      ValaCCodeParameter* _tmp13_;
      gboolean _tmp14_;
      ValaCCodeBlock* _tmp16_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeDeclaration* _tmp17_ = NULL;
      ValaCCodeDeclaration* _cdecl_;
      ValaCCodeConstant* _tmp18_ = NULL;
      ValaCCodeConstant* _tmp19_;
      ValaCCodeVariableDeclarator* _tmp20_ = NULL;
      ValaCCodeVariableDeclarator* _tmp21_;
      ValaCCodeIfStatement* clastif;
      gchar* _tmp22_ = NULL;
      gchar* _tmp23_;
      gchar* _tmp24_ = NULL;
      gchar* dbus_iface_name;
      ValaCCodeBlock* _tmp42_ = NULL;
      ValaCCodeBlock* resultblock;
      ValaCCodeIdentifier* _tmp43_ = NULL;
      ValaCCodeIdentifier* _tmp44_;
      ValaCCodeReturnStatement* _tmp45_ = NULL;
      ValaCCodeReturnStatement* _tmp46_;
      ValaCCodeIdentifier* _tmp47_ = NULL;
      ValaCCodeIdentifier* _tmp48_;
      ValaCCodeIdentifier* _tmp49_ = NULL;
      ValaCCodeIdentifier* _tmp50_;
      ValaCCodeBinaryExpression* _tmp51_ = NULL;
      ValaCCodeBinaryExpression* _tmp52_;
      ValaCCodeIfStatement* _tmp53_ = NULL;
      ValaCCodeIfStatement* _tmp54_;
      ValaCCodeIfStatement* cif;
      ValaCCodeIfStatement* _tmp55_;
      ValaObjectTypeSymbol* _tmp56_;
      ValaClass* _tmp57_;
      ValaClass* cl;
      ValaCCodeBlock* _tmp91_ = NULL;
      ValaCCodeBlock* retblock;
      ValaCCodeIdentifier* _tmp92_ = NULL;
      ValaCCodeIdentifier* _tmp93_;
      ValaCCodeReturnStatement* _tmp94_ = NULL;
      ValaCCodeReturnStatement* _tmp95_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (object_type != NULL);
      _tmp0_ = vala_object_type_get_type_symbol (object_type);
      _tmp1_ = _vala_code_node_ref0 (_tmp0_);
      sym = _tmp1_;
      vala_dbus_module_add_dbus_helpers ((ValaDBusModule*) self);
      _tmp2_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp3_ = _tmp2_;
      _tmp4_ = g_strconcat (_tmp3_, "dbus_message", NULL);
      _tmp5_ = _tmp4_;
      _tmp6_ = vala_ccode_function_new (_tmp5_, "DBusHandlerResult");
      _tmp7_ = _tmp6_;
      _g_free0 (_tmp5_);
      _g_free0 (_tmp3_);
      cfunc = _tmp7_;
      _tmp8_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp9_ = _tmp8_;
      vala_ccode_function_add_parameter (cfunc, _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _tmp10_ = vala_ccode_parameter_new ("message", "DBusMessage*");
      _tmp11_ = _tmp10_;
      vala_ccode_function_add_parameter (cfunc, _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_parameter_new ("object", "void*");
      _tmp13_ = _tmp12_;
      vala_ccode_function_add_parameter (cfunc, _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      _tmp14_ = vala_symbol_is_private_symbol ((ValaSymbol*) sym);
      if (_tmp14_) {
            ValaCCodeModifiers _tmp15_;
            _tmp15_ = vala_ccode_function_get_modifiers (cfunc);
            vala_ccode_function_set_modifiers (cfunc, _tmp15_ | VALA_CCODE_MODIFIERS_STATIC);
      }
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, cfunc);
      _tmp16_ = vala_ccode_block_new ();
      block = _tmp16_;
      vala_ccode_function_set_block (cfunc, block);
      _tmp17_ = vala_ccode_declaration_new ("DBusHandlerResult");
      _cdecl_ = _tmp17_;
      _tmp18_ = vala_ccode_constant_new ("DBUS_HANDLER_RESULT_NOT_YET_HANDLED");
      _tmp19_ = _tmp18_;
      _tmp20_ = vala_ccode_variable_declarator_new ("result", (ValaCCodeExpression*) _tmp19_, NULL);
      _tmp21_ = _tmp20_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp21_);
      _vala_ccode_node_unref0 (_tmp21_);
      _vala_ccode_node_unref0 (_tmp19_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      clastif = NULL;
      _tmp22_ = vala_dbus_server_module_generate_dbus_introspect (self, sym);
      _tmp23_ = _tmp22_;
      vala_dbus_server_module_handle_method (self, "org.freedesktop.DBus.Introspectable", "Introspect", _tmp23_, block, &clastif);
      _g_free0 (_tmp23_);
      _tmp24_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) sym);
      dbus_iface_name = _tmp24_;
      if (dbus_iface_name != NULL) {
            gboolean need_property_get;
            gboolean need_property_set;
            gchar* _tmp40_ = NULL;
            gchar* _tmp41_;
            need_property_get = FALSE;
            need_property_set = FALSE;
            {
                  ValaList* _tmp25_ = NULL;
                  ValaList* _prop_list;
                  gint _tmp26_;
                  gint _prop_size;
                  gint _prop_index;
                  _tmp25_ = vala_object_type_symbol_get_properties (sym);
                  _prop_list = _tmp25_;
                  _tmp26_ = vala_collection_get_size ((ValaCollection*) _prop_list);
                  _prop_size = _tmp26_;
                  _prop_index = -1;
                  while (TRUE) {
                        gpointer _tmp27_ = NULL;
                        ValaProperty* prop;
                        gboolean _tmp28_ = FALSE;
                        gboolean _tmp29_ = FALSE;
                        ValaMemberBinding _tmp30_;
                        gboolean _tmp33_;
                        ValaPropertyAccessor* _tmp34_ = NULL;
                        ValaPropertyAccessor* _tmp35_ = NULL;
                        _prop_index = _prop_index + 1;
                        if (!(_prop_index < _prop_size)) {
                              break;
                        }
                        _tmp27_ = vala_list_get (_prop_list, _prop_index);
                        prop = (ValaProperty*) _tmp27_;
                        _tmp30_ = vala_property_get_binding (prop);
                        if (_tmp30_ != VALA_MEMBER_BINDING_INSTANCE) {
                              _tmp29_ = TRUE;
                        } else {
                              gboolean _tmp31_;
                              _tmp31_ = vala_property_get_overrides (prop);
                              _tmp29_ = _tmp31_;
                        }
                        if (_tmp29_) {
                              _tmp28_ = TRUE;
                        } else {
                              ValaSymbolAccessibility _tmp32_;
                              _tmp32_ = vala_symbol_get_access ((ValaSymbol*) prop);
                              _tmp28_ = _tmp32_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
                        }
                        if (_tmp28_) {
                              _vala_code_node_unref0 (prop);
                              continue;
                        }
                        _tmp33_ = vala_dbus_server_module_is_dbus_visible ((ValaCodeNode*) prop);
                        if (!_tmp33_) {
                              _vala_code_node_unref0 (prop);
                              continue;
                        }
                        _tmp34_ = vala_property_get_get_accessor (prop);
                        if (_tmp34_ != NULL) {
                              need_property_get = TRUE;
                        }
                        _tmp35_ = vala_property_get_set_accessor (prop);
                        if (_tmp35_ != NULL) {
                              need_property_set = TRUE;
                        }
                        _vala_code_node_unref0 (prop);
                  }
                  _vala_iterable_unref0 (_prop_list);
            }
            if (need_property_get) {
                  gchar* _tmp36_ = NULL;
                  gchar* _tmp37_;
                  _tmp36_ = vala_dbus_server_module_generate_dbus_property_get_wrapper (self, sym, dbus_iface_name);
                  _tmp37_ = _tmp36_;
                  vala_dbus_server_module_handle_method (self, "org.freedesktop.DBus.Properties", "Get", _tmp37_, block, &clastif);
                  _g_free0 (_tmp37_);
            }
            if (need_property_set) {
                  gchar* _tmp38_ = NULL;
                  gchar* _tmp39_;
                  _tmp38_ = vala_dbus_server_module_generate_dbus_property_set_wrapper (self, sym, dbus_iface_name);
                  _tmp39_ = _tmp38_;
                  vala_dbus_server_module_handle_method (self, "org.freedesktop.DBus.Properties", "Set", _tmp39_, block, &clastif);
                  _g_free0 (_tmp39_);
            }
            _tmp40_ = vala_dbus_server_module_generate_dbus_property_get_all_wrapper (self, sym, dbus_iface_name);
            _tmp41_ = _tmp40_;
            vala_dbus_server_module_handle_method (self, "org.freedesktop.DBus.Properties", "GetAll", _tmp41_, block, &clastif);
            _g_free0 (_tmp41_);
            vala_dbus_server_module_handle_methods (self, sym, dbus_iface_name, block, &clastif);
      }
      _tmp42_ = vala_ccode_block_new ();
      resultblock = _tmp42_;
      _tmp43_ = vala_ccode_identifier_new ("result");
      _tmp44_ = _tmp43_;
      _tmp45_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp44_);
      _tmp46_ = _tmp45_;
      vala_ccode_block_add_statement (resultblock, (ValaCCodeNode*) _tmp46_);
      _vala_ccode_node_unref0 (_tmp46_);
      _vala_ccode_node_unref0 (_tmp44_);
      _tmp47_ = vala_ccode_identifier_new ("result");
      _tmp48_ = _tmp47_;
      _tmp49_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_HANDLED");
      _tmp50_ = _tmp49_;
      _tmp51_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp48_, (ValaCCodeExpression*) _tmp50_);
      _tmp52_ = _tmp51_;
      _tmp53_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp52_, (ValaCCodeStatement*) resultblock, NULL);
      _tmp54_ = _tmp53_;
      _vala_ccode_node_unref0 (_tmp52_);
      _vala_ccode_node_unref0 (_tmp50_);
      _vala_ccode_node_unref0 (_tmp48_);
      cif = _tmp54_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) cif);
      _tmp55_ = _vala_ccode_node_ref0 (cif);
      _vala_ccode_node_unref0 (clastif);
      clastif = _tmp55_;
      _tmp56_ = sym;
      _tmp57_ = _vala_code_node_ref0 (VALA_IS_CLASS (_tmp56_) ? ((ValaClass*) _tmp56_) : NULL);
      cl = _tmp57_;
      if (cl != NULL) {
            {
                  ValaList* _tmp58_ = NULL;
                  ValaList* _base_type_list;
                  gint _tmp59_;
                  gint _base_type_size;
                  gint _base_type_index;
                  _tmp58_ = vala_class_get_base_types (cl);
                  _base_type_list = _tmp58_;
                  _tmp59_ = vala_collection_get_size ((ValaCollection*) _base_type_list);
                  _base_type_size = _tmp59_;
                  _base_type_index = -1;
                  while (TRUE) {
                        gpointer _tmp60_ = NULL;
                        ValaDataType* base_type;
                        ValaDataType* _tmp61_;
                        ValaObjectType* _tmp62_;
                        ValaObjectType* base_obj_type;
                        ValaObjectTypeSymbol* _tmp63_ = NULL;
                        gboolean _tmp64_;
                        _base_type_index = _base_type_index + 1;
                        if (!(_base_type_index < _base_type_size)) {
                              break;
                        }
                        _tmp60_ = vala_list_get (_base_type_list, _base_type_index);
                        base_type = (ValaDataType*) _tmp60_;
                        _tmp61_ = base_type;
                        _tmp62_ = _vala_code_node_ref0 (VALA_IS_OBJECT_TYPE (_tmp61_) ? ((ValaObjectType*) _tmp61_) : NULL);
                        base_obj_type = _tmp62_;
                        _tmp63_ = vala_object_type_get_type_symbol (base_obj_type);
                        _tmp64_ = vala_dbus_server_module_type_implements_dbus_interface (self, _tmp63_);
                        if (_tmp64_) {
                              ValaObjectTypeSymbol* _tmp65_ = NULL;
                              gchar* _tmp66_ = NULL;
                              gchar* _tmp67_;
                              gchar* _tmp68_;
                              gchar* _tmp69_;
                              ValaCCodeIdentifier* _tmp70_ = NULL;
                              ValaCCodeIdentifier* _tmp71_;
                              ValaCCodeFunctionCall* _tmp72_ = NULL;
                              ValaCCodeFunctionCall* _tmp73_;
                              ValaCCodeFunctionCall* base_call;
                              ValaCCodeIdentifier* _tmp74_ = NULL;
                              ValaCCodeIdentifier* _tmp75_;
                              ValaCCodeIdentifier* _tmp76_ = NULL;
                              ValaCCodeIdentifier* _tmp77_;
                              ValaCCodeIdentifier* _tmp78_ = NULL;
                              ValaCCodeIdentifier* _tmp79_;
                              ValaCCodeIdentifier* _tmp80_ = NULL;
                              ValaCCodeIdentifier* _tmp81_;
                              ValaCCodeBinaryExpression* _tmp82_ = NULL;
                              ValaCCodeBinaryExpression* _tmp83_;
                              ValaCCodeBinaryExpression* ccheck;
                              ValaCCodeBlock* _tmp84_ = NULL;
                              ValaCCodeBlock* base_block;
                              ValaCCodeIdentifier* _tmp85_ = NULL;
                              ValaCCodeIdentifier* _tmp86_;
                              ValaCCodeReturnStatement* _tmp87_ = NULL;
                              ValaCCodeReturnStatement* _tmp88_;
                              ValaCCodeIfStatement* _tmp89_ = NULL;
                              ValaCCodeIfStatement* _tmp90_;
                              _tmp65_ = vala_object_type_get_type_symbol (base_obj_type);
                              _tmp66_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) _tmp65_);
                              _tmp67_ = _tmp66_;
                              _tmp68_ = g_strconcat (_tmp67_, "dbus_message", NULL);
                              _tmp69_ = _tmp68_;
                              _tmp70_ = vala_ccode_identifier_new (_tmp69_);
                              _tmp71_ = _tmp70_;
                              _tmp72_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp71_);
                              _tmp73_ = _tmp72_;
                              _vala_ccode_node_unref0 (_tmp71_);
                              _g_free0 (_tmp69_);
                              _g_free0 (_tmp67_);
                              base_call = _tmp73_;
                              _tmp74_ = vala_ccode_identifier_new ("connection");
                              _tmp75_ = _tmp74_;
                              vala_ccode_function_call_add_argument (base_call, (ValaCCodeExpression*) _tmp75_);
                              _vala_ccode_node_unref0 (_tmp75_);
                              _tmp76_ = vala_ccode_identifier_new ("message");
                              _tmp77_ = _tmp76_;
                              vala_ccode_function_call_add_argument (base_call, (ValaCCodeExpression*) _tmp77_);
                              _vala_ccode_node_unref0 (_tmp77_);
                              _tmp78_ = vala_ccode_identifier_new ("object");
                              _tmp79_ = _tmp78_;
                              vala_ccode_function_call_add_argument (base_call, (ValaCCodeExpression*) _tmp79_);
                              _vala_ccode_node_unref0 (_tmp79_);
                              _tmp80_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_HANDLED");
                              _tmp81_ = _tmp80_;
                              _tmp82_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) base_call, (ValaCCodeExpression*) _tmp81_);
                              _tmp83_ = _tmp82_;
                              _vala_ccode_node_unref0 (_tmp81_);
                              ccheck = _tmp83_;
                              _tmp84_ = vala_ccode_block_new ();
                              base_block = _tmp84_;
                              _tmp85_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_HANDLED");
                              _tmp86_ = _tmp85_;
                              _tmp87_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp86_);
                              _tmp88_ = _tmp87_;
                              vala_ccode_block_add_statement (base_block, (ValaCCodeNode*) _tmp88_);
                              _vala_ccode_node_unref0 (_tmp88_);
                              _vala_ccode_node_unref0 (_tmp86_);
                              _tmp89_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) ccheck, (ValaCCodeStatement*) base_block, NULL);
                              _vala_ccode_node_unref0 (cif);
                              cif = _tmp89_;
                              vala_ccode_if_statement_set_false_statement (clastif, (ValaCCodeStatement*) cif);
                              _tmp90_ = _vala_ccode_node_ref0 (cif);
                              _vala_ccode_node_unref0 (clastif);
                              clastif = _tmp90_;
                              _vala_ccode_node_unref0 (base_block);
                              _vala_ccode_node_unref0 (ccheck);
                              _vala_ccode_node_unref0 (base_call);
                        }
                        _vala_code_node_unref0 (base_obj_type);
                        _vala_code_node_unref0 (base_type);
                  }
                  _vala_iterable_unref0 (_base_type_list);
            }
      }
      _tmp91_ = vala_ccode_block_new ();
      retblock = _tmp91_;
      _tmp92_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_NOT_YET_HANDLED");
      _tmp93_ = _tmp92_;
      _tmp94_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp93_);
      _tmp95_ = _tmp94_;
      vala_ccode_block_add_statement (retblock, (ValaCCodeNode*) _tmp95_);
      _vala_ccode_node_unref0 (_tmp95_);
      _vala_ccode_node_unref0 (_tmp93_);
      vala_ccode_if_statement_set_false_statement (clastif, (ValaCCodeStatement*) retblock);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, cfunc);
      _vala_ccode_node_unref0 (retblock);
      _vala_code_node_unref0 (cl);
      _vala_ccode_node_unref0 (cif);
      _vala_ccode_node_unref0 (resultblock);
      _g_free0 (dbus_iface_name);
      _vala_ccode_node_unref0 (clastif);
      _vala_ccode_node_unref0 (_cdecl_);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (cfunc);
      _vala_code_node_unref0 (sym);
}


static ValaCCodeExpression* vala_dbus_server_module_get_vtable (ValaDBusServerModule* self, ValaObjectType* object_type) {
      ValaCCodeExpression* result = NULL;
      ValaObjectTypeSymbol* _tmp0_ = NULL;
      ValaObjectTypeSymbol* _tmp1_;
      ValaObjectTypeSymbol* sym;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* _tmp4_;
      gchar* _tmp5_;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gboolean _tmp8_;
      gboolean _tmp9_;
      gchar* _tmp26_ = NULL;
      gchar* _tmp27_;
      gchar* _tmp28_;
      gchar* _tmp29_;
      gchar* _tmp30_;
      gchar* _tmp31_;
      ValaCCodeIdentifier* _tmp32_ = NULL;
      ValaCCodeExpression* _tmp33_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (object_type != NULL, NULL);
      _tmp0_ = vala_object_type_get_type_symbol (object_type);
      _tmp1_ = _vala_code_node_ref0 (_tmp0_);
      sym = _tmp1_;
      _tmp2_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp3_ = _tmp2_;
      _tmp4_ = g_strconcat ("_", _tmp3_, NULL);
      _tmp5_ = _tmp4_;
      _tmp6_ = g_strconcat (_tmp5_, "dbus_vtable", NULL);
      _tmp7_ = _tmp6_;
      _tmp8_ = vala_ccode_base_module_add_wrapper ((ValaCCodeBaseModule*) self, _tmp7_);
      _tmp9_ = _tmp8_;
      _g_free0 (_tmp7_);
      _g_free0 (_tmp5_);
      _g_free0 (_tmp3_);
      if (_tmp9_) {
            ValaCCodeInitializerList* _tmp10_ = NULL;
            ValaCCodeInitializerList* vtable;
            gchar* _tmp11_ = NULL;
            gchar* _tmp12_;
            gchar* _tmp13_;
            gchar* _tmp14_;
            ValaCCodeIdentifier* _tmp15_ = NULL;
            ValaCCodeIdentifier* _tmp16_;
            ValaCCodeDeclaration* _tmp17_ = NULL;
            ValaCCodeDeclaration* _cdecl_;
            gchar* _tmp18_ = NULL;
            gchar* _tmp19_;
            gchar* _tmp20_;
            gchar* _tmp21_;
            gchar* _tmp22_;
            gchar* _tmp23_;
            ValaCCodeVariableDeclarator* _tmp24_ = NULL;
            ValaCCodeVariableDeclarator* _tmp25_;
            _tmp10_ = vala_ccode_initializer_list_new ();
            vtable = _tmp10_;
            _tmp11_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
            _tmp12_ = _tmp11_;
            _tmp13_ = g_strconcat (_tmp12_, "dbus_register_object", NULL);
            _tmp14_ = _tmp13_;
            _tmp15_ = vala_ccode_identifier_new (_tmp14_);
            _tmp16_ = _tmp15_;
            vala_ccode_initializer_list_append (vtable, (ValaCCodeExpression*) _tmp16_);
            _vala_ccode_node_unref0 (_tmp16_);
            _g_free0 (_tmp14_);
            _g_free0 (_tmp12_);
            vala_dbus_server_module_generate_register_function (self, object_type);
            _tmp17_ = vala_ccode_declaration_new ("const _DBusObjectVTable");
            _cdecl_ = _tmp17_;
            _tmp18_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
            _tmp19_ = _tmp18_;
            _tmp20_ = g_strconcat ("_", _tmp19_, NULL);
            _tmp21_ = _tmp20_;
            _tmp22_ = g_strconcat (_tmp21_, "dbus_vtable", NULL);
            _tmp23_ = _tmp22_;
            _tmp24_ = vala_ccode_variable_declarator_new (_tmp23_, (ValaCCodeExpression*) vtable, NULL);
            _tmp25_ = _tmp24_;
            vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp25_);
            _vala_ccode_node_unref0 (_tmp25_);
            _g_free0 (_tmp23_);
            _g_free0 (_tmp21_);
            _g_free0 (_tmp19_);
            vala_ccode_declaration_set_modifiers (_cdecl_, VALA_CCODE_MODIFIERS_STATIC);
            vala_ccode_file_add_constant_declaration (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _cdecl_);
            _vala_ccode_node_unref0 (_cdecl_);
            _vala_ccode_node_unref0 (vtable);
      }
      _tmp26_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp27_ = _tmp26_;
      _tmp28_ = g_strconcat ("_", _tmp27_, NULL);
      _tmp29_ = _tmp28_;
      _tmp30_ = g_strconcat (_tmp29_, "dbus_vtable", NULL);
      _tmp31_ = _tmp30_;
      _tmp32_ = vala_ccode_identifier_new (_tmp31_);
      _tmp33_ = (ValaCCodeExpression*) _tmp32_;
      _g_free0 (_tmp31_);
      _g_free0 (_tmp29_);
      _g_free0 (_tmp27_);
      result = _tmp33_;
      _vala_code_node_unref0 (sym);
      return result;
}


static ValaCCodeExpression* vala_dbus_server_module_get_path_vtable (ValaDBusServerModule* self, ValaObjectType* object_type) {
      ValaCCodeExpression* result = NULL;
      ValaObjectTypeSymbol* _tmp0_ = NULL;
      ValaObjectTypeSymbol* _tmp1_;
      ValaObjectTypeSymbol* sym;
      ValaCCodeInitializerList* _tmp2_ = NULL;
      ValaCCodeInitializerList* vtable;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* _tmp5_;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      ValaCCodeIdentifier* _tmp9_ = NULL;
      ValaCCodeIdentifier* _tmp10_;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      gchar* _tmp13_;
      gchar* _tmp14_;
      ValaCCodeIdentifier* _tmp15_ = NULL;
      ValaCCodeIdentifier* _tmp16_;
      ValaCCodeDeclaration* _tmp17_ = NULL;
      ValaCCodeDeclaration* _cdecl_;
      gchar* _tmp18_ = NULL;
      gchar* _tmp19_;
      gchar* _tmp20_;
      gchar* _tmp21_;
      gchar* _tmp22_;
      gchar* _tmp23_;
      ValaCCodeVariableDeclarator* _tmp24_ = NULL;
      ValaCCodeVariableDeclarator* _tmp25_;
      gchar* _tmp26_ = NULL;
      gchar* _tmp27_;
      gchar* _tmp28_;
      gchar* _tmp29_;
      gchar* _tmp30_;
      gchar* _tmp31_;
      ValaCCodeIdentifier* _tmp32_ = NULL;
      ValaCCodeExpression* _tmp33_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (object_type != NULL, NULL);
      _tmp0_ = vala_object_type_get_type_symbol (object_type);
      _tmp1_ = _vala_code_node_ref0 (_tmp0_);
      sym = _tmp1_;
      _tmp2_ = vala_ccode_initializer_list_new ();
      vtable = _tmp2_;
      _tmp3_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp4_ = _tmp3_;
      _tmp5_ = g_strconcat ("_", _tmp4_, NULL);
      _tmp6_ = _tmp5_;
      _tmp7_ = g_strconcat (_tmp6_, "dbus_unregister", NULL);
      _tmp8_ = _tmp7_;
      _tmp9_ = vala_ccode_identifier_new (_tmp8_);
      _tmp10_ = _tmp9_;
      vala_ccode_initializer_list_append (vtable, (ValaCCodeExpression*) _tmp10_);
      _vala_ccode_node_unref0 (_tmp10_);
      _g_free0 (_tmp8_);
      _g_free0 (_tmp6_);
      _g_free0 (_tmp4_);
      _tmp11_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp12_ = _tmp11_;
      _tmp13_ = g_strconcat (_tmp12_, "dbus_message", NULL);
      _tmp14_ = _tmp13_;
      _tmp15_ = vala_ccode_identifier_new (_tmp14_);
      _tmp16_ = _tmp15_;
      vala_ccode_initializer_list_append (vtable, (ValaCCodeExpression*) _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      _g_free0 (_tmp14_);
      _g_free0 (_tmp12_);
      vala_dbus_server_module_generate_unregister_function (self, object_type);
      vala_dbus_server_module_generate_message_function (self, object_type);
      _tmp17_ = vala_ccode_declaration_new ("const DBusObjectPathVTable");
      _cdecl_ = _tmp17_;
      _tmp18_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp19_ = _tmp18_;
      _tmp20_ = g_strconcat ("_", _tmp19_, NULL);
      _tmp21_ = _tmp20_;
      _tmp22_ = g_strconcat (_tmp21_, "dbus_path_vtable", NULL);
      _tmp23_ = _tmp22_;
      _tmp24_ = vala_ccode_variable_declarator_new (_tmp23_, (ValaCCodeExpression*) vtable, NULL);
      _tmp25_ = _tmp24_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp25_);
      _vala_ccode_node_unref0 (_tmp25_);
      _g_free0 (_tmp23_);
      _g_free0 (_tmp21_);
      _g_free0 (_tmp19_);
      vala_ccode_declaration_set_modifiers (_cdecl_, VALA_CCODE_MODIFIERS_STATIC);
      vala_ccode_file_add_constant_declaration (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _cdecl_);
      _tmp26_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp27_ = _tmp26_;
      _tmp28_ = g_strconcat ("_", _tmp27_, NULL);
      _tmp29_ = _tmp28_;
      _tmp30_ = g_strconcat (_tmp29_, "dbus_path_vtable", NULL);
      _tmp31_ = _tmp30_;
      _tmp32_ = vala_ccode_identifier_new (_tmp31_);
      _tmp33_ = (ValaCCodeExpression*) _tmp32_;
      _g_free0 (_tmp31_);
      _g_free0 (_tmp29_);
      _g_free0 (_tmp27_);
      result = _tmp33_;
      _vala_ccode_node_unref0 (_cdecl_);
      _vala_ccode_node_unref0 (vtable);
      _vala_code_node_unref0 (sym);
      return result;
}


static void vala_dbus_server_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr) {
      ValaDBusServerModule * self;
      ValaExpression* _tmp0_ = NULL;
      ValaDataType* _tmp1_ = NULL;
      ValaDataType* _tmp2_;
      ValaMethodType* _tmp3_;
      ValaMethodType* mtype;
      gboolean _tmp4_ = FALSE;
      ValaExpression* _tmp13_ = NULL;
      ValaMemberAccess* _tmp14_;
      ValaMemberAccess* ma;
      ValaCCodeIdentifier* _tmp15_ = NULL;
      ValaCCodeIdentifier* _tmp16_;
      ValaCCodeFunctionCall* _tmp17_ = NULL;
      ValaCCodeFunctionCall* _tmp18_;
      ValaCCodeFunctionCall* raw_conn;
      ValaExpression* _tmp19_ = NULL;
      ValaCCodeExpression* _tmp20_ = NULL;
      ValaCCodeExpression* _tmp21_;
      ValaList* _tmp22_ = NULL;
      ValaList* _tmp23_;
      ValaIterator* _tmp24_ = NULL;
      ValaIterator* _tmp25_;
      ValaIterator* args_it;
      gpointer _tmp26_ = NULL;
      ValaExpression* path_arg;
      gpointer _tmp27_ = NULL;
      ValaExpression* obj_arg;
      ValaCCodeIdentifier* _tmp28_ = NULL;
      ValaCCodeIdentifier* _tmp29_;
      ValaCCodeFunctionCall* _tmp30_ = NULL;
      ValaCCodeFunctionCall* _tmp31_;
      ValaCCodeFunctionCall* cregister;
      ValaMethod* _tmp32_ = NULL;
      gchar* _tmp33_ = NULL;
      gchar* _tmp34_;
      gboolean _tmp35_;
      ValaCCodeExpression* _tmp39_ = NULL;
      ValaCCodeExpression* _tmp40_;
      ValaCCodeExpression* _tmp41_ = NULL;
      ValaCCodeExpression* _tmp42_;
      ValaCCodeFunction* _tmp43_ = NULL;
      self = (ValaDBusServerModule*) base;
      g_return_if_fail (expr != NULL);
      _tmp0_ = vala_method_call_get_call (expr);
      _tmp1_ = vala_expression_get_value_type (_tmp0_);
      _tmp2_ = _tmp1_;
      _tmp3_ = _vala_code_node_ref0 (VALA_IS_METHOD_TYPE (_tmp2_) ? ((ValaMethodType*) _tmp2_) : NULL);
      mtype = _tmp3_;
      if (mtype == NULL) {
            _tmp4_ = TRUE;
      } else {
            gboolean _tmp5_ = FALSE;
            ValaMethod* _tmp6_ = NULL;
            gchar* _tmp7_ = NULL;
            gchar* _tmp8_;
            gboolean _tmp9_;
            _tmp6_ = vala_method_type_get_method_symbol (mtype);
            _tmp7_ = vala_method_get_cname (_tmp6_);
            _tmp8_ = _tmp7_;
            _tmp9_ = g_strcmp0 (_tmp8_, "dbus_connection_register_g_object") != 0;
            _g_free0 (_tmp8_);
            if (_tmp9_) {
                  ValaMethod* _tmp10_ = NULL;
                  gchar* _tmp11_ = NULL;
                  gchar* _tmp12_;
                  _tmp10_ = vala_method_type_get_method_symbol (mtype);
                  _tmp11_ = vala_method_get_cname (_tmp10_);
                  _tmp12_ = _tmp11_;
                  _tmp5_ = g_strcmp0 (_tmp12_, "dbus_g_connection_register_g_object") != 0;
                  _g_free0 (_tmp12_);
            } else {
                  _tmp5_ = FALSE;
            }
            _tmp4_ = _tmp5_;
      }
      if (_tmp4_) {
            VALA_CODE_VISITOR_CLASS (vala_dbus_server_module_parent_class)->visit_method_call ((ValaCodeVisitor*) VALA_DBUS_CLIENT_MODULE (self), expr);
            _vala_code_node_unref0 (mtype);
            return;
      }
      vala_dbus_module_add_dbus_helpers ((ValaDBusModule*) self);
      _tmp13_ = vala_method_call_get_call (expr);
      _tmp14_ = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (_tmp13_));
      ma = _tmp14_;
      _tmp15_ = vala_ccode_identifier_new ("dbus_g_connection_get_connection");
      _tmp16_ = _tmp15_;
      _tmp17_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp16_);
      _tmp18_ = _tmp17_;
      _vala_ccode_node_unref0 (_tmp16_);
      raw_conn = _tmp18_;
      _tmp19_ = vala_member_access_get_inner (ma);
      _tmp20_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp19_);
      _tmp21_ = _tmp20_;
      vala_ccode_function_call_add_argument (raw_conn, _tmp21_);
      _vala_ccode_node_unref0 (_tmp21_);
      _tmp22_ = vala_method_call_get_argument_list (expr);
      _tmp23_ = _tmp22_;
      _tmp24_ = vala_iterable_iterator ((ValaIterable*) _tmp23_);
      _tmp25_ = _tmp24_;
      _vala_iterable_unref0 (_tmp23_);
      args_it = _tmp25_;
      vala_iterator_next (args_it);
      _tmp26_ = vala_iterator_get (args_it);
      path_arg = (ValaExpression*) _tmp26_;
      vala_iterator_next (args_it);
      _tmp27_ = vala_iterator_get (args_it);
      obj_arg = (ValaExpression*) _tmp27_;
      _tmp28_ = vala_ccode_identifier_new ("_vala_dbus_register_object");
      _tmp29_ = _tmp28_;
      _tmp30_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp29_);
      _tmp31_ = _tmp30_;
      _vala_ccode_node_unref0 (_tmp29_);
      cregister = _tmp31_;
      _tmp32_ = vala_method_type_get_method_symbol (mtype);
      _tmp33_ = vala_method_get_cname (_tmp32_);
      _tmp34_ = _tmp33_;
      _tmp35_ = g_strcmp0 (_tmp34_, "dbus_g_connection_register_g_object") == 0;
      _g_free0 (_tmp34_);
      if (_tmp35_) {
            vala_ccode_function_call_add_argument (cregister, (ValaCCodeExpression*) raw_conn);
      } else {
            ValaExpression* _tmp36_ = NULL;
            ValaCCodeExpression* _tmp37_ = NULL;
            ValaCCodeExpression* _tmp38_;
            _tmp36_ = vala_member_access_get_inner (ma);
            _tmp37_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp36_);
            _tmp38_ = _tmp37_;
            vala_ccode_function_call_add_argument (cregister, _tmp38_);
            _vala_ccode_node_unref0 (_tmp38_);
      }
      _tmp39_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, path_arg);
      _tmp40_ = _tmp39_;
      vala_ccode_function_call_add_argument (cregister, _tmp40_);
      _vala_ccode_node_unref0 (_tmp40_);
      _tmp41_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, obj_arg);
      _tmp42_ = _tmp41_;
      vala_ccode_function_call_add_argument (cregister, _tmp42_);
      _vala_ccode_node_unref0 (_tmp42_);
      _tmp43_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp43_, (ValaCCodeExpression*) cregister);
      _vala_ccode_node_unref0 (cregister);
      _vala_code_node_unref0 (obj_arg);
      _vala_code_node_unref0 (path_arg);
      _vala_iterator_unref0 (args_it);
      _vala_ccode_node_unref0 (raw_conn);
      _vala_code_node_unref0 (ma);
      _vala_code_node_unref0 (mtype);
}


static gboolean vala_dbus_server_module_type_implements_dbus_interface (ValaDBusServerModule* self, ValaObjectTypeSymbol* sym) {
      gboolean result = FALSE;
      ValaAttribute* _tmp0_ = NULL;
      ValaAttribute* dbus;
      ValaObjectTypeSymbol* _tmp1_;
      ValaClass* _tmp2_;
      ValaClass* cl;
      g_return_val_if_fail (self != NULL, FALSE);
      g_return_val_if_fail (sym != NULL, FALSE);
      _tmp0_ = vala_code_node_get_attribute ((ValaCodeNode*) sym, "DBus");
      dbus = _tmp0_;
      if (dbus != NULL) {
            result = TRUE;
            _vala_code_node_unref0 (dbus);
            return result;
      }
      _tmp1_ = sym;
      _tmp2_ = _vala_code_node_ref0 (VALA_IS_CLASS (_tmp1_) ? ((ValaClass*) _tmp1_) : NULL);
      cl = _tmp2_;
      if (cl != NULL) {
            {
                  ValaList* _tmp3_ = NULL;
                  ValaList* _base_type_list;
                  gint _tmp4_;
                  gint _base_type_size;
                  gint _base_type_index;
                  _tmp3_ = vala_class_get_base_types (cl);
                  _base_type_list = _tmp3_;
                  _tmp4_ = vala_collection_get_size ((ValaCollection*) _base_type_list);
                  _base_type_size = _tmp4_;
                  _base_type_index = -1;
                  while (TRUE) {
                        gpointer _tmp5_ = NULL;
                        ValaDataType* base_type;
                        ValaDataType* _tmp6_;
                        ValaObjectType* _tmp7_;
                        ValaObjectType* base_obj_type;
                        ValaObjectTypeSymbol* _tmp8_ = NULL;
                        gboolean _tmp9_;
                        _base_type_index = _base_type_index + 1;
                        if (!(_base_type_index < _base_type_size)) {
                              break;
                        }
                        _tmp5_ = vala_list_get (_base_type_list, _base_type_index);
                        base_type = (ValaDataType*) _tmp5_;
                        _tmp6_ = base_type;
                        _tmp7_ = _vala_code_node_ref0 (VALA_IS_OBJECT_TYPE (_tmp6_) ? ((ValaObjectType*) _tmp6_) : NULL);
                        base_obj_type = _tmp7_;
                        _tmp8_ = vala_object_type_get_type_symbol (base_obj_type);
                        _tmp9_ = vala_dbus_server_module_type_implements_dbus_interface (self, _tmp8_);
                        if (_tmp9_) {
                              result = TRUE;
                              _vala_code_node_unref0 (base_obj_type);
                              _vala_code_node_unref0 (base_type);
                              _vala_iterable_unref0 (_base_type_list);
                              _vala_code_node_unref0 (cl);
                              _vala_code_node_unref0 (dbus);
                              return result;
                        }
                        _vala_code_node_unref0 (base_obj_type);
                        _vala_code_node_unref0 (base_type);
                  }
                  _vala_iterable_unref0 (_base_type_list);
            }
      }
      result = FALSE;
      _vala_code_node_unref0 (cl);
      _vala_code_node_unref0 (dbus);
      return result;
}


static void vala_dbus_server_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym) {
      ValaDBusServerModule * self;
      gboolean _tmp0_;
      ValaCCodeIdentifier* _tmp1_ = NULL;
      ValaCCodeIdentifier* _tmp2_;
      ValaCCodeFunctionCall* _tmp3_ = NULL;
      ValaCCodeFunctionCall* _tmp4_;
      ValaCCodeFunctionCall* quark;
      ValaCCodeConstant* _tmp5_ = NULL;
      ValaCCodeConstant* _tmp6_;
      ValaCCodeIdentifier* _tmp7_ = NULL;
      ValaCCodeIdentifier* _tmp8_;
      ValaCCodeFunctionCall* _tmp9_ = NULL;
      ValaCCodeFunctionCall* _tmp10_;
      ValaCCodeFunctionCall* set_qdata;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      gchar* _tmp13_ = NULL;
      gchar* _tmp14_;
      ValaCCodeIdentifier* _tmp15_ = NULL;
      ValaCCodeIdentifier* _tmp16_;
      ValaObjectType* _tmp17_ = NULL;
      ValaObjectType* _tmp18_;
      ValaCCodeExpression* _tmp19_ = NULL;
      ValaCCodeExpression* _tmp20_;
      ValaCCodeUnaryExpression* _tmp21_ = NULL;
      ValaCCodeUnaryExpression* _tmp22_;
      ValaCCodeCastExpression* _tmp23_ = NULL;
      ValaCCodeCastExpression* _tmp24_;
      ValaCCodeExpressionStatement* _tmp25_ = NULL;
      ValaCCodeExpressionStatement* _tmp26_;
      self = (ValaDBusServerModule*) base;
      g_return_if_fail (block != NULL);
      g_return_if_fail (sym != NULL);
      _tmp0_ = vala_dbus_server_module_type_implements_dbus_interface (self, sym);
      if (!_tmp0_) {
            return;
      }
      VALA_CCODE_BASE_MODULE_CLASS (vala_dbus_server_module_parent_class)->register_dbus_info ((ValaCCodeBaseModule*) VALA_DBUS_CLIENT_MODULE (self), block, sym);
      _tmp1_ = vala_ccode_identifier_new ("g_quark_from_static_string");
      _tmp2_ = _tmp1_;
      _tmp3_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp2_);
      _tmp4_ = _tmp3_;
      _vala_ccode_node_unref0 (_tmp2_);
      quark = _tmp4_;
      _tmp5_ = vala_ccode_constant_new ("\"DBusObjectVTable\"");
      _tmp6_ = _tmp5_;
      vala_ccode_function_call_add_argument (quark, (ValaCCodeExpression*) _tmp6_);
      _vala_ccode_node_unref0 (_tmp6_);
      _tmp7_ = vala_ccode_identifier_new ("g_type_set_qdata");
      _tmp8_ = _tmp7_;
      _tmp9_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp8_);
      _tmp10_ = _tmp9_;
      _vala_ccode_node_unref0 (_tmp8_);
      set_qdata = _tmp10_;
      _tmp11_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp12_ = _tmp11_;
      _tmp13_ = g_strdup_printf ("%s_type_id", _tmp12_);
      _tmp14_ = _tmp13_;
      _tmp15_ = vala_ccode_identifier_new (_tmp14_);
      _tmp16_ = _tmp15_;
      vala_ccode_function_call_add_argument (set_qdata, (ValaCCodeExpression*) _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      _g_free0 (_tmp14_);
      _g_free0 (_tmp12_);
      vala_ccode_function_call_add_argument (set_qdata, (ValaCCodeExpression*) quark);
      _tmp17_ = vala_object_type_new (sym);
      _tmp18_ = _tmp17_;
      _tmp19_ = vala_dbus_server_module_get_vtable (self, _tmp18_);
      _tmp20_ = _tmp19_;
      _tmp21_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp20_);
      _tmp22_ = _tmp21_;
      _tmp23_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp22_, "void*");
      _tmp24_ = _tmp23_;
      vala_ccode_function_call_add_argument (set_qdata, (ValaCCodeExpression*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _vala_ccode_node_unref0 (_tmp22_);
      _vala_ccode_node_unref0 (_tmp20_);
      _vala_code_node_unref0 (_tmp18_);
      _tmp25_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) set_qdata);
      _tmp26_ = _tmp25_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      _vala_ccode_node_unref0 (set_qdata);
      _vala_ccode_node_unref0 (quark);
}


ValaDBusServerModule* vala_dbus_server_module_construct (GType object_type) {
      ValaDBusServerModule* self = NULL;
      self = (ValaDBusServerModule*) vala_dbus_client_module_construct (object_type);
      return self;
}


ValaDBusServerModule* vala_dbus_server_module_new (void) {
      return vala_dbus_server_module_construct (VALA_TYPE_DBUS_SERVER_MODULE);
}


static void vala_dbus_server_module_class_init (ValaDBusServerModuleClass * klass) {
      vala_dbus_server_module_parent_class = g_type_class_peek_parent (klass);
      VALA_CODE_VISITOR_CLASS (klass)->visit_method_call = vala_dbus_server_module_real_visit_method_call;
      VALA_CCODE_BASE_MODULE_CLASS (klass)->register_dbus_info = vala_dbus_server_module_real_register_dbus_info;
}


static void vala_dbus_server_module_instance_init (ValaDBusServerModule * self) {
}


/**
 * The link between a dynamic method and generated code.
 */
GType vala_dbus_server_module_get_type (void) {
      static volatile gsize vala_dbus_server_module_type_id__volatile = 0;
      if (g_once_init_enter (&vala_dbus_server_module_type_id__volatile)) {
            static const GTypeInfo g_define_type_info = { sizeof (ValaDBusServerModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_dbus_server_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaDBusServerModule), 0, (GInstanceInitFunc) vala_dbus_server_module_instance_init, NULL };
            GType vala_dbus_server_module_type_id;
            vala_dbus_server_module_type_id = g_type_register_static (VALA_TYPE_DBUS_CLIENT_MODULE, "ValaDBusServerModule", &g_define_type_info, 0);
            g_once_init_leave (&vala_dbus_server_module_type_id__volatile, vala_dbus_server_module_type_id);
      }
      return vala_dbus_server_module_type_id__volatile;
}




Generated by  Doxygen 1.6.0   Back to index