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

valadbusclientmodule.c

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

/* valadbusclientmodule.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>
#include <float.h>
#include <math.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_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_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
#define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
#define _vala_map_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_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;
};

00502 struct _ValaDBusClientModulePrivate {
      gint dynamic_property_id;
};


static gpointer vala_dbus_client_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;
#define VALA_DBUS_CLIENT_MODULE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VALA_TYPE_DBUS_CLIENT_MODULE, ValaDBusClientModulePrivate))
enum  {
      VALA_DBUS_CLIENT_MODULE_DUMMY_PROPERTY
};
static gchar* vala_dbus_client_module_get_dynamic_dbus_name (ValaDBusClientModule* self, const gchar* vala_name);
ValaCodeContext* vala_ccode_base_module_get_context (ValaCCodeBaseModule* self);
ValaCCodeConstant* vala_dbus_client_module_get_dbus_timeout (ValaDBusClientModule* self, ValaSymbol* symbol);
gboolean vala_dbus_client_module_is_dbus_no_reply (ValaCodeNode* node);
static gboolean vala_dbus_client_module_has_dbus_error (ValaDBusClientModule* self, ValaList* error_types);
static void vala_dbus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base, ValaDynamicMethod* method);
void vala_ccode_base_module_generate_cparameters (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaCCodeFunction* func, ValaCCodeFunctionDeclarator* vdeclarator, ValaMap* carg_map, ValaCCodeFunctionCall* vcall, gint direction);
static void vala_dbus_client_module_generate_dbus_method_wrapper (ValaDBusClientModule* self, ValaMethod* method, ValaCCodeBlock* block);
ValaCCodeExpression* vala_ccode_base_module_get_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr);
gboolean vala_dbus_client_module_dbus_use_ptr_array (ValaDBusClientModule* self, ValaArrayType* array_type);
ValaCCodeExpression* vala_gsignal_module_get_dbus_g_type (ValaGSignalModule* self, ValaDataType* data_type);
ValaCCodeExpression* vala_ccode_base_module_get_destroy_func_expression (ValaCCodeBaseModule* self, ValaDataType* type, gboolean is_chainup);
ValaCCodeExpression* vala_ccode_base_module_get_dup_func_expression (ValaCCodeBaseModule* self, ValaDataType* type, ValaSourceReference* source_reference, gboolean is_chainup);
gchar* vala_ccode_base_module_get_parameter_array_length_cname (ValaCCodeBaseModule* self, ValaParameter* param, gint dim);
gchar* vala_dbus_module_get_type_signature (ValaDataType* datatype);
gboolean vala_ccode_base_module_requires_copy (ValaCCodeBaseModule* self, ValaDataType* type);
ValaCCodeExpression* vala_ccode_base_module_default_value_for_type (ValaCCodeBaseModule* self, ValaDataType* type, gboolean initializer_expression);
static ValaCCodeExpression* vala_dbus_client_module_real_get_dbus_g_type (ValaGSignalModule* base, ValaDataType* data_type);
static gchar* vala_dbus_client_module_real_get_dynamic_property_getter_cname (ValaCCodeBaseModule* base, ValaDynamicProperty* prop);
gchar* vala_ccode_base_module_get_dynamic_property_getter_cname (ValaCCodeBaseModule* self, ValaDynamicProperty* node);
static void vala_dbus_client_module_generate_dbus_property_getter_wrapper (ValaDBusClientModule* self, ValaDynamicProperty* node, ValaCCodeBlock* block);
static gchar* vala_dbus_client_module_real_get_dynamic_property_setter_cname (ValaCCodeBaseModule* base, ValaDynamicProperty* prop);
gchar* vala_ccode_base_module_get_dynamic_property_setter_cname (ValaCCodeBaseModule* self, ValaDynamicProperty* node);
static void vala_dbus_client_module_generate_dbus_property_setter_wrapper (ValaDBusClientModule* self, ValaDynamicProperty* node, ValaCCodeBlock* block);
static void vala_dbus_client_module_create_dbus_property_proxy (ValaDBusClientModule* self, ValaDynamicProperty* node, ValaCCodeBlock* block);
static gchar* vala_dbus_client_module_real_get_dynamic_signal_connect_wrapper_name (ValaCCodeBaseModule* base, ValaDynamicSignal* sig);
gchar* vala_ccode_base_module_get_dynamic_signal_connect_wrapper_name (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
gchar* vala_ccode_base_module_get_dynamic_signal_cname (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
static void vala_dbus_client_module_generate_dbus_connect_wrapper (ValaDBusClientModule* self, ValaDynamicSignal* sig, ValaCCodeBlock* block);
static gchar* vala_dbus_client_module_real_get_dynamic_signal_disconnect_wrapper_name (ValaCCodeBaseModule* base, ValaDynamicSignal* sig);
gchar* vala_ccode_base_module_get_dynamic_signal_disconnect_wrapper_name (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
static void vala_dbus_client_module_generate_dbus_disconnect_wrapper (ValaDBusClientModule* self, ValaDynamicSignal* sig, ValaCCodeBlock* block);
void vala_ccode_base_module_generate_marshaller (ValaCCodeBaseModule* self, ValaList* params, ValaDataType* return_type, gboolean dbus);
gchar* vala_ccode_base_module_get_marshaller_function (ValaCCodeBaseModule* self, ValaList* params, ValaDataType* return_type, const gchar* prefix, gboolean dbus);
static void vala_dbus_client_module_real_visit_cast_expression (ValaCodeVisitor* base, ValaCastExpression* expr);
void vala_ccode_base_module_set_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr, ValaCCodeExpression* cvalue);
static void vala_dbus_client_module_generate_proxy_interface_init (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface);
static gchar* vala_dbus_client_module_generate_noreply_dbus_proxy_method (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_dbus_client_module_generate_dbus_proxy_method (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_dbus_client_module_generate_async_dbus_proxy_method (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_dbus_client_module_generate_finish_dbus_proxy_method (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_dbus_client_module_generate_dbus_proxy_property_get (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop);
static gchar* vala_dbus_client_module_generate_dbus_proxy_property_set (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop);
static gchar* vala_dbus_client_module_implement_interface (ValaDBusClientModule* self, ValaCCodeFunctionCall* define_type, ValaInterface* main_iface, ValaInterface* iface);
static void vala_dbus_client_module_implement_property (ValaDBusClientModule* self, ValaCCodeBlock* block, ValaInterface* main_iface, ValaInterface* iface);
gboolean vala_ccode_base_module_is_gobject_property (ValaCCodeBaseModule* self, ValaProperty* prop);
static void vala_dbus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space);
void vala_ccode_base_module_generate_interface_declaration (ValaCCodeBaseModule* self, ValaInterface* iface, ValaCCodeFile* decl_space);
gchar* vala_dbus_module_get_dbus_name (ValaTypeSymbol* symbol);
gboolean vala_ccode_base_module_add_symbol_declaration (ValaCCodeBaseModule* self, ValaCCodeFile* decl_space, ValaSymbol* sym, const gchar* name);
static void vala_dbus_client_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface);
void vala_dbus_module_add_dbus_helpers (ValaDBusModule* self);
static void vala_dbus_client_module_generate_proxy_filter_function (ValaDBusClientModule* self, ValaInterface* iface);
static gchar* vala_dbus_client_module_generate_get_all_function (ValaDBusClientModule* self, ValaMethod* m);
gboolean vala_ccode_base_module_add_wrapper (ValaCCodeBaseModule* self, const gchar* wrapper_name);
static void vala_dbus_client_module_generate_marshalling (ValaDBusClientModule* self, ValaMethod* m, const gchar* dbus_iface_name, ValaCCodeFragment* prefragment, ValaCCodeFragment* postfragment);
static void vala_dbus_client_module_check_error_reply (ValaDBusClientModule* self, ValaMethod* m, ValaCCodeBlock* block);
static void vala_dbus_client_module_check_reply_signature (ValaDBusClientModule* self, ValaMethod* m, ValaCCodeBlock* block);
static void vala_dbus_client_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr);
void vala_ccode_base_module_set_current_method_inner_error (ValaCCodeBaseModule* self, gboolean value);
ValaCCodeExpression* vala_ccode_base_module_get_variable_cexpression (ValaCCodeBaseModule* self, const gchar* name);
static void vala_dbus_client_module_handle_signals (ValaDBusClientModule* self, ValaInterface* iface, ValaCCodeBlock* block);
static gchar* vala_dbus_client_module_generate_dbus_signal_handler (ValaDBusClientModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym);
ValaCCodeExpression* vala_dbus_module_read_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);
static void vala_dbus_client_module_handle_signal (ValaDBusClientModule* self, const gchar* dbus_iface_name, const gchar* dbus_signal_name, const gchar* handler_name, ValaCCodeBlock* block, ValaCCodeIfStatement** clastif);
gchar* vala_dbus_module_get_dbus_name_for_member (ValaSymbol* symbol);
void vala_dbus_module_write_expression (ValaDBusModule* self, ValaCCodeFragment* fragment, ValaDataType* type, ValaCCodeExpression* iter_expr, ValaCCodeExpression* expr);
static void vala_dbus_client_module_generate_client_error_cases (ValaDBusClientModule* self, ValaCCodeBlock* error_block, ValaList* error_types, ValaCCodeExpression* dbus_error_name, ValaCCodeExpression* result_edomain, ValaCCodeExpression* result_ecode);
gint vala_ccode_base_module_get_next_temp_var_id (ValaCCodeBaseModule* self);
void vala_ccode_base_module_set_next_temp_var_id (ValaCCodeBaseModule* self, gint value);
gint vala_ccode_base_module_get_param_pos (ValaCCodeBaseModule* self, gdouble param_pos, gboolean ellipsis);
static ValaCCodeConstant* vala_dbus_client_module_get_reply_signature (ValaDBusClientModule* self, ValaMethod* m);
static void vala_dbus_client_module_check_property_error_reply (ValaDBusClientModule* self, ValaPropertyAccessor* acc, ValaCCodeBlock* block);
static ValaCCodeConstant* vala_dbus_client_module_get_property_reply_signature (ValaDBusClientModule* self, ValaPropertyAccessor* acc);
static ValaCCodeConstant* vala_dbus_client_module_get_property_inner_signature (ValaDBusClientModule* self, ValaPropertyAccessor* acc);
static void vala_dbus_client_module_check_property_reply_signature (ValaDBusClientModule* self, ValaPropertyAccessor* acc, ValaCCodeBlock* block);
static void vala_dbus_client_module_check_property_inner_signature (ValaDBusClientModule* self, ValaPropertyAccessor* acc, ValaCCodeFragment* fragment);
static void vala_dbus_client_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym);
ValaDBusClientModule* vala_dbus_client_module_new (void);
ValaDBusClientModule* vala_dbus_client_module_construct (GType object_type);
ValaDBusModule* vala_dbus_module_new (void);
ValaDBusModule* vala_dbus_module_construct (GType object_type);
static void vala_dbus_client_module_finalize (ValaCodeVisitor* obj);


static gchar* vala_dbus_client_module_get_dynamic_dbus_name (ValaDBusClientModule* self, const gchar* vala_name) {
      gchar* result = NULL;
      ValaCodeContext* _tmp0_ = NULL;
      gboolean _tmp1_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (vala_name != NULL, NULL);
      _tmp0_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
      _tmp1_ = vala_code_context_get_dbus_transformation (_tmp0_);
      if (_tmp1_) {
            gchar* _tmp2_ = NULL;
            _tmp2_ = vala_symbol_lower_case_to_camel_case (vala_name);
            result = _tmp2_;
            return result;
      } else {
            gchar* _tmp3_;
            _tmp3_ = g_strdup (vala_name);
            result = _tmp3_;
            return result;
      }
}


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


gboolean vala_dbus_client_module_is_dbus_no_reply (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, "no_reply");
            _tmp2_ = _tmp3_;
      } else {
            _tmp2_ = FALSE;
      }
      if (_tmp2_) {
            gboolean _tmp4_;
            _tmp4_ = vala_attribute_get_bool (dbus_attribute, "no_reply");
            _tmp1_ = _tmp4_;
      } else {
            _tmp1_ = FALSE;
      }
      if (_tmp1_) {
            result = TRUE;
            _vala_code_node_unref0 (dbus_attribute);
            return result;
      }
      result = FALSE;
      _vala_code_node_unref0 (dbus_attribute);
      return result;
}


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


static gboolean vala_dbus_client_module_has_dbus_error (ValaDBusClientModule* self, ValaList* error_types) {
      gboolean result = FALSE;
      g_return_val_if_fail (self != NULL, FALSE);
      g_return_val_if_fail (error_types != NULL, FALSE);
      {
            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;
                  gchar* _tmp4_ = NULL;
                  gchar* _tmp5_;
                  gboolean _tmp6_;
                  _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_symbol_get_full_name ((ValaSymbol*) _tmp3_);
                  _tmp5_ = _tmp4_;
                  _tmp6_ = g_strcmp0 (_tmp5_, "DBus.Error") == 0;
                  _g_free0 (_tmp5_);
                  if (_tmp6_) {
                        result = TRUE;
                        _vala_code_node_unref0 (error_type);
                        _vala_iterable_unref0 (_error_type_list);
                        return result;
                  }
                  _vala_code_node_unref0 (error_type);
            }
            _vala_iterable_unref0 (_error_type_list);
      }
      result = FALSE;
      return result;
}


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


static void vala_dbus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base, ValaDynamicMethod* method) {
      ValaDBusClientModule * self;
      ValaDynamicMethod* _tmp0_;
      ValaDynamicMethod* dynamic_method;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      ValaCCodeFunction* _tmp3_ = NULL;
      ValaCCodeFunction* _tmp4_;
      ValaCCodeFunction* func;
      ValaHashMap* _tmp5_ = NULL;
      ValaHashMap* cparam_map;
      ValaCCodeBlock* _tmp6_ = NULL;
      ValaCCodeBlock* block;
      ValaDataType* _tmp7_ = NULL;
      ValaTypeSymbol* _tmp8_ = NULL;
      self = (ValaDBusClientModule*) base;
      g_return_if_fail (method != NULL);
      _tmp0_ = _vala_code_node_ref0 (VALA_DYNAMIC_METHOD (method));
      dynamic_method = _tmp0_;
      _tmp1_ = vala_method_get_cname ((ValaMethod*) method);
      _tmp2_ = _tmp1_;
      _tmp3_ = vala_ccode_function_new (_tmp2_, "void");
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp2_);
      func = _tmp4_;
      vala_ccode_function_set_modifiers (func, VALA_CCODE_MODIFIERS_STATIC);
      _tmp5_ = 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);
      cparam_map = _tmp5_;
      vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, (ValaMethod*) method, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) cparam_map, func, NULL, NULL, NULL, 3);
      _tmp6_ = vala_ccode_block_new ();
      block = _tmp6_;
      _tmp7_ = vala_dynamic_method_get_dynamic_type (dynamic_method);
      _tmp8_ = vala_data_type_get_data_type (_tmp7_);
      if (_tmp8_ == ((ValaCCodeBaseModule*) self)->dbus_object_type) {
            vala_dbus_client_module_generate_dbus_method_wrapper (self, (ValaMethod*) method, block);
      } else {
            ValaSourceReference* _tmp9_ = NULL;
            ValaDataType* _tmp10_ = NULL;
            gchar* _tmp11_ = NULL;
            gchar* _tmp12_;
            gchar* _tmp13_ = NULL;
            gchar* _tmp14_;
            _tmp9_ = vala_code_node_get_source_reference ((ValaCodeNode*) method);
            _tmp10_ = vala_dynamic_method_get_dynamic_type (dynamic_method);
            _tmp11_ = vala_code_node_to_string ((ValaCodeNode*) _tmp10_);
            _tmp12_ = _tmp11_;
            _tmp13_ = g_strdup_printf ("dynamic methods are not supported for `%s'", _tmp12_);
            _tmp14_ = _tmp13_;
            vala_report_error (_tmp9_, _tmp14_);
            _g_free0 (_tmp14_);
            _g_free0 (_tmp12_);
      }
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, func);
      vala_ccode_function_set_block (func, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, func);
      _vala_ccode_node_unref0 (block);
      _vala_map_unref0 (cparam_map);
      _vala_ccode_node_unref0 (func);
      _vala_code_node_unref0 (dynamic_method);
}


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


static void vala_dbus_client_module_generate_dbus_method_wrapper (ValaDBusClientModule* self, ValaMethod* method, ValaCCodeBlock* block) {
      ValaDynamicMethod* _tmp0_;
      ValaDynamicMethod* dynamic_method;
      ValaMethodCall* _tmp1_ = NULL;
      ValaMethodCall* _tmp2_;
      ValaMethodCall* expr;
      ValaCCodeIdentifier* _tmp3_ = NULL;
      ValaCCodeIdentifier* _tmp4_;
      ValaCCodeFunctionCall* _tmp5_ = NULL;
      ValaCCodeFunctionCall* _tmp6_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp7_ = NULL;
      ValaCCodeIdentifier* _tmp8_;
      gboolean found_out;
      ValaExpression* callback;
      gint callback_index;
      gint arg_index;
      const gchar* _tmp21_ = NULL;
      gchar* _tmp22_ = NULL;
      gchar* _tmp23_;
      gchar* _tmp24_ = NULL;
      gchar* _tmp25_;
      ValaCCodeConstant* _tmp26_ = NULL;
      ValaCCodeConstant* _tmp27_;
      ValaCCodeIdentifier* _tmp405_ = NULL;
      ValaCCodeIdentifier* _tmp406_;
      ValaCCodeFragment* _tmp407_ = NULL;
      ValaCCodeFragment* out_marshalling_fragment;
      ValaDataType* _tmp487_ = NULL;
      g_return_if_fail (self != NULL);
      g_return_if_fail (method != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = _vala_code_node_ref0 (VALA_DYNAMIC_METHOD (method));
      dynamic_method = _tmp0_;
      _tmp1_ = vala_dynamic_method_get_invocation (dynamic_method);
      _tmp2_ = _vala_code_node_ref0 (_tmp1_);
      expr = _tmp2_;
      _tmp3_ = vala_ccode_identifier_new ("dbus_g_proxy_begin_call");
      _tmp4_ = _tmp3_;
      _tmp5_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp4_);
      _tmp6_ = _tmp5_;
      _vala_ccode_node_unref0 (_tmp4_);
      ccall = _tmp6_;
      _tmp7_ = vala_ccode_identifier_new ("self");
      _tmp8_ = _tmp7_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp8_);
      _vala_ccode_node_unref0 (_tmp8_);
      found_out = FALSE;
      callback = NULL;
      callback_index = -1;
      arg_index = 1;
      {
            ValaList* _tmp9_ = NULL;
            ValaList* _arg_list;
            gint _tmp10_;
            gint _arg_size;
            gint _arg_index;
            _tmp9_ = vala_method_call_get_argument_list (expr);
            _arg_list = _tmp9_;
            _tmp10_ = vala_collection_get_size ((ValaCollection*) _arg_list);
            _arg_size = _tmp10_;
            _arg_index = -1;
            while (TRUE) {
                  gpointer _tmp11_ = NULL;
                  ValaExpression* arg;
                  ValaSymbol* _tmp12_ = NULL;
                  _arg_index = _arg_index + 1;
                  if (!(_arg_index < _arg_size)) {
                        break;
                  }
                  _tmp11_ = vala_list_get (_arg_list, _arg_index);
                  arg = (ValaExpression*) _tmp11_;
                  _tmp12_ = vala_expression_get_symbol_reference (arg);
                  if (VALA_IS_METHOD (_tmp12_)) {
                        ValaExpression* _tmp15_;
                        if (callback != NULL) {
                              ValaSourceReference* _tmp13_ = NULL;
                              _tmp13_ = vala_code_node_get_source_reference ((ValaCodeNode*) expr);
                              vala_report_error (_tmp13_, "only one reply callback may be specified in invocation of DBus method");
                              vala_code_node_set_error ((ValaCodeNode*) expr, TRUE);
                              _vala_code_node_unref0 (arg);
                              _vala_iterable_unref0 (_arg_list);
                              _vala_code_node_unref0 (callback);
                              _vala_ccode_node_unref0 (ccall);
                              _vala_code_node_unref0 (expr);
                              _vala_code_node_unref0 (dynamic_method);
                              return;
                        } else {
                              if (found_out) {
                                    ValaSourceReference* _tmp14_ = NULL;
                                    _tmp14_ = vala_code_node_get_source_reference ((ValaCodeNode*) expr);
                                    vala_report_error (_tmp14_, "out argument and reply callback conflict in invocation of DBus method");
                                    vala_code_node_set_error ((ValaCodeNode*) expr, TRUE);
                                    _vala_code_node_unref0 (arg);
                                    _vala_iterable_unref0 (_arg_list);
                                    _vala_code_node_unref0 (callback);
                                    _vala_ccode_node_unref0 (ccall);
                                    _vala_code_node_unref0 (expr);
                                    _vala_code_node_unref0 (dynamic_method);
                                    return;
                              }
                        }
                        _tmp15_ = _vala_code_node_ref0 (arg);
                        _vala_code_node_unref0 (callback);
                        callback = _tmp15_;
                        callback_index = arg_index;
                  } else {
                        gboolean _tmp16_ = FALSE;
                        if (VALA_IS_UNARY_EXPRESSION (arg)) {
                              ValaUnaryOperator _tmp17_;
                              _tmp17_ = vala_unary_expression_get_operator (VALA_UNARY_EXPRESSION (arg));
                              _tmp16_ = _tmp17_ == VALA_UNARY_OPERATOR_OUT;
                        } else {
                              _tmp16_ = FALSE;
                        }
                        if (_tmp16_) {
                              if (callback != NULL) {
                                    ValaSourceReference* _tmp18_ = NULL;
                                    _tmp18_ = vala_code_node_get_source_reference ((ValaCodeNode*) expr);
                                    vala_report_error (_tmp18_, "out argument and reply callback conflict in invocation of DBus method");
                                    vala_code_node_set_error ((ValaCodeNode*) expr, TRUE);
                                    _vala_code_node_unref0 (arg);
                                    _vala_iterable_unref0 (_arg_list);
                                    _vala_code_node_unref0 (callback);
                                    _vala_ccode_node_unref0 (ccall);
                                    _vala_code_node_unref0 (expr);
                                    _vala_code_node_unref0 (dynamic_method);
                                    return;
                              }
                              found_out = TRUE;
                        } else {
                              gboolean _tmp19_ = FALSE;
                              if (callback != NULL) {
                                    _tmp19_ = TRUE;
                              } else {
                                    _tmp19_ = found_out;
                              }
                              if (_tmp19_) {
                                    ValaSourceReference* _tmp20_ = NULL;
                                    _tmp20_ = vala_code_node_get_source_reference ((ValaCodeNode*) expr);
                                    vala_report_error (_tmp20_, "in argument must not follow out argument or reply callback in invocati" \
"on of DBus method");
                                    vala_code_node_set_error ((ValaCodeNode*) expr, TRUE);
                                    _vala_code_node_unref0 (arg);
                                    _vala_iterable_unref0 (_arg_list);
                                    _vala_code_node_unref0 (callback);
                                    _vala_ccode_node_unref0 (ccall);
                                    _vala_code_node_unref0 (expr);
                                    _vala_code_node_unref0 (dynamic_method);
                                    return;
                              }
                        }
                  }
                  arg_index++;
                  _vala_code_node_unref0 (arg);
            }
            _vala_iterable_unref0 (_arg_list);
      }
      _tmp21_ = vala_symbol_get_name ((ValaSymbol*) method);
      _tmp22_ = vala_dbus_client_module_get_dynamic_dbus_name (self, _tmp21_);
      _tmp23_ = _tmp22_;
      _tmp24_ = g_strdup_printf ("\"%s\"", _tmp23_);
      _tmp25_ = _tmp24_;
      _tmp26_ = vala_ccode_constant_new (_tmp25_);
      _tmp27_ = _tmp26_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp27_);
      _vala_ccode_node_unref0 (_tmp27_);
      _g_free0 (_tmp25_);
      _g_free0 (_tmp23_);
      if (callback != NULL) {
            ValaSymbol* _tmp28_ = NULL;
            ValaMethod* _tmp29_;
            ValaMethod* reply_method;
            gchar* _tmp30_ = NULL;
            gchar* _tmp31_;
            gchar* _tmp32_ = NULL;
            gchar* _tmp33_;
            ValaCCodeFunction* _tmp34_ = NULL;
            ValaCCodeFunction* _tmp35_;
            ValaCCodeFunction* cb_fun;
            ValaCCodeParameter* _tmp36_ = NULL;
            ValaCCodeParameter* _tmp37_;
            ValaCCodeParameter* _tmp38_ = NULL;
            ValaCCodeParameter* _tmp39_;
            ValaCCodeParameter* _tmp40_ = NULL;
            ValaCCodeParameter* _tmp41_;
            ValaCCodeBlock* _tmp42_ = NULL;
            ValaCCodeBlock* _tmp43_;
            ValaCCodeDeclaration* _tmp44_ = NULL;
            ValaCCodeDeclaration* cerrdecl;
            ValaCCodeConstant* _tmp45_ = NULL;
            ValaCCodeConstant* _tmp46_;
            ValaCCodeVariableDeclarator* _tmp47_ = NULL;
            ValaCCodeVariableDeclarator* _tmp48_;
            ValaCCodeBlock* _tmp49_ = NULL;
            ValaCCodeIdentifier* _tmp50_ = NULL;
            ValaCCodeIdentifier* _tmp51_;
            ValaCCodeFunctionCall* _tmp52_ = NULL;
            ValaCCodeFunctionCall* _tmp53_;
            ValaCCodeFunctionCall* cend_call;
            ValaCCodeIdentifier* _tmp54_ = NULL;
            ValaCCodeIdentifier* _tmp55_;
            ValaCCodeIdentifier* _tmp56_ = NULL;
            ValaCCodeIdentifier* _tmp57_;
            ValaCCodeIdentifier* _tmp58_ = NULL;
            ValaCCodeIdentifier* _tmp59_;
            ValaCCodeUnaryExpression* _tmp60_ = NULL;
            ValaCCodeUnaryExpression* _tmp61_;
            ValaCCodeExpression* _tmp62_ = NULL;
            ValaCCodeExpression* _tmp63_;
            ValaCCodeFunctionCall* _tmp64_ = NULL;
            ValaCCodeFunctionCall* _tmp65_;
            ValaCCodeFunctionCall* creply_call;
            ValaMemberBinding _tmp66_;
            ValaList* _tmp69_ = NULL;
            ValaList* _tmp70_;
            gint _tmp71_;
            gint _tmp72_;
            gint param_count;
            gint i;
            ValaCCodeIdentifier* _tmp148_ = NULL;
            ValaCCodeIdentifier* _tmp149_;
            ValaCCodeBlock* _tmp150_ = NULL;
            ValaCCodeExpressionStatement* _tmp151_ = NULL;
            ValaCCodeExpressionStatement* _tmp152_;
            ValaCCodeIdentifier* _tmp153_ = NULL;
            ValaCCodeIdentifier* _tmp154_;
            ValaCCodeBlock* _tmp155_ = NULL;
            ValaCCodeExpressionStatement* _tmp156_ = NULL;
            ValaCCodeExpressionStatement* _tmp157_;
            gchar* _tmp158_ = NULL;
            gchar* _tmp159_;
            ValaCCodeConstant* _tmp160_ = NULL;
            ValaCCodeExpression* _tmp161_;
            ValaCCodeExpression* target;
            ValaMemberAccess* _tmp162_;
            ValaMemberAccess* ma;
            gboolean _tmp163_ = FALSE;
            gboolean _tmp164_ = FALSE;
            ValaMemberBinding _tmp165_;
            const gchar* _tmp192_ = NULL;
            gboolean _tmp193_;
            const gchar* _tmp194_ = NULL;
            ValaCCodeIdentifier* _tmp195_ = NULL;
            ValaCCodeIdentifier* _tmp196_;
            ValaCCodeConstant* _tmp197_ = NULL;
            ValaCCodeConstant* _tmp198_;
            _tmp28_ = vala_expression_get_symbol_reference (callback);
            _tmp29_ = _vala_code_node_ref0 (VALA_METHOD (_tmp28_));
            reply_method = _tmp29_;
            _tmp30_ = vala_method_get_cname (reply_method);
            _tmp31_ = _tmp30_;
            _tmp32_ = g_strdup_printf ("_%s_cb", _tmp31_);
            _tmp33_ = _tmp32_;
            _tmp34_ = vala_ccode_function_new (_tmp33_, "void");
            _tmp35_ = _tmp34_;
            _g_free0 (_tmp33_);
            _g_free0 (_tmp31_);
            cb_fun = _tmp35_;
            vala_ccode_function_set_modifiers (cb_fun, VALA_CCODE_MODIFIERS_STATIC);
            _tmp36_ = vala_ccode_parameter_new ("proxy", "DBusGProxy*");
            _tmp37_ = _tmp36_;
            vala_ccode_function_add_parameter (cb_fun, _tmp37_);
            _vala_ccode_node_unref0 (_tmp37_);
            _tmp38_ = vala_ccode_parameter_new ("call", "DBusGProxyCall*");
            _tmp39_ = _tmp38_;
            vala_ccode_function_add_parameter (cb_fun, _tmp39_);
            _vala_ccode_node_unref0 (_tmp39_);
            _tmp40_ = vala_ccode_parameter_new ("user_data", "void*");
            _tmp41_ = _tmp40_;
            vala_ccode_function_add_parameter (cb_fun, _tmp41_);
            _vala_ccode_node_unref0 (_tmp41_);
            _tmp42_ = vala_ccode_block_new ();
            _tmp43_ = _tmp42_;
            vala_ccode_function_set_block (cb_fun, _tmp43_);
            _vala_ccode_node_unref0 (_tmp43_);
            _tmp44_ = vala_ccode_declaration_new ("GError*");
            cerrdecl = _tmp44_;
            _tmp45_ = vala_ccode_constant_new ("NULL");
            _tmp46_ = _tmp45_;
            _tmp47_ = vala_ccode_variable_declarator_new ("error", (ValaCCodeExpression*) _tmp46_, NULL);
            _tmp48_ = _tmp47_;
            vala_ccode_declaration_add_declarator (cerrdecl, (ValaCCodeDeclarator*) _tmp48_);
            _vala_ccode_node_unref0 (_tmp48_);
            _vala_ccode_node_unref0 (_tmp46_);
            _tmp49_ = vala_ccode_function_get_block (cb_fun);
            vala_ccode_block_add_statement (_tmp49_, (ValaCCodeNode*) cerrdecl);
            _tmp50_ = vala_ccode_identifier_new ("dbus_g_proxy_end_call");
            _tmp51_ = _tmp50_;
            _tmp52_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp51_);
            _tmp53_ = _tmp52_;
            _vala_ccode_node_unref0 (_tmp51_);
            cend_call = _tmp53_;
            _tmp54_ = vala_ccode_identifier_new ("proxy");
            _tmp55_ = _tmp54_;
            vala_ccode_function_call_add_argument (cend_call, (ValaCCodeExpression*) _tmp55_);
            _vala_ccode_node_unref0 (_tmp55_);
            _tmp56_ = vala_ccode_identifier_new ("call");
            _tmp57_ = _tmp56_;
            vala_ccode_function_call_add_argument (cend_call, (ValaCCodeExpression*) _tmp57_);
            _vala_ccode_node_unref0 (_tmp57_);
            _tmp58_ = vala_ccode_identifier_new ("error");
            _tmp59_ = _tmp58_;
            _tmp60_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp59_);
            _tmp61_ = _tmp60_;
            vala_ccode_function_call_add_argument (cend_call, (ValaCCodeExpression*) _tmp61_);
            _vala_ccode_node_unref0 (_tmp61_);
            _vala_ccode_node_unref0 (_tmp59_);
            _tmp62_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, callback);
            _tmp63_ = _tmp62_;
            _tmp64_ = vala_ccode_function_call_new (_tmp63_);
            _tmp65_ = _tmp64_;
            _vala_ccode_node_unref0 (_tmp63_);
            creply_call = _tmp65_;
            _tmp66_ = vala_method_get_binding (reply_method);
            if (_tmp66_ != VALA_MEMBER_BINDING_STATIC) {
                  ValaCCodeIdentifier* _tmp67_ = NULL;
                  ValaCCodeIdentifier* _tmp68_;
                  _tmp67_ = vala_ccode_identifier_new ("user_data");
                  _tmp68_ = _tmp67_;
                  vala_ccode_function_call_add_argument (creply_call, (ValaCCodeExpression*) _tmp68_);
                  _vala_ccode_node_unref0 (_tmp68_);
            }
            _tmp69_ = vala_method_get_parameters (reply_method);
            _tmp70_ = _tmp69_;
            _tmp71_ = vala_collection_get_size ((ValaCollection*) _tmp70_);
            _tmp72_ = _tmp71_;
            _vala_iterable_unref0 (_tmp70_);
            param_count = _tmp72_;
            i = 0;
            {
                  ValaList* _tmp73_ = NULL;
                  ValaList* _param_list;
                  gint _tmp74_;
                  gint _param_size;
                  gint _param_index;
                  _tmp73_ = vala_method_get_parameters (reply_method);
                  _param_list = _tmp73_;
                  _tmp74_ = vala_collection_get_size ((ValaCollection*) _param_list);
                  _param_size = _tmp74_;
                  _param_index = -1;
                  while (TRUE) {
                        gpointer _tmp75_ = NULL;
                        ValaParameter* param;
                        gboolean _tmp77_ = FALSE;
                        ValaDataType* _tmp78_ = NULL;
                        _param_index = _param_index + 1;
                        if (!(_param_index < _param_size)) {
                              break;
                        }
                        _tmp75_ = vala_list_get (_param_list, _param_index);
                        param = (ValaParameter*) _tmp75_;
                        i = i + 1;
                        if (i == param_count) {
                              ValaDataType* _tmp76_ = NULL;
                              _tmp76_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              if (!VALA_IS_ERROR_TYPE (_tmp76_)) {
                                    vala_report_error (NULL, "DBus reply callbacks must end with GLib.Error argument");
                                    _vala_code_node_unref0 (param);
                                    _vala_iterable_unref0 (_param_list);
                                    _vala_ccode_node_unref0 (creply_call);
                                    _vala_ccode_node_unref0 (cend_call);
                                    _vala_ccode_node_unref0 (cerrdecl);
                                    _vala_ccode_node_unref0 (cb_fun);
                                    _vala_code_node_unref0 (reply_method);
                                    _vala_code_node_unref0 (callback);
                                    _vala_ccode_node_unref0 (ccall);
                                    _vala_code_node_unref0 (expr);
                                    _vala_code_node_unref0 (dynamic_method);
                                    return;
                              }
                              _vala_code_node_unref0 (param);
                              break;
                        }
                        _tmp78_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        if (VALA_IS_ARRAY_TYPE (_tmp78_)) {
                              ValaDataType* _tmp79_ = NULL;
                              ValaDataType* _tmp80_ = NULL;
                              ValaTypeSymbol* _tmp81_ = NULL;
                              ValaTypeSymbol* _tmp82_ = NULL;
                              _tmp79_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp80_ = vala_array_type_get_element_type (VALA_ARRAY_TYPE (_tmp79_));
                              _tmp81_ = vala_data_type_get_data_type (_tmp80_);
                              _tmp82_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->string_type);
                              _tmp77_ = _tmp81_ != _tmp82_;
                        } else {
                              _tmp77_ = FALSE;
                        }
                        if (_tmp77_) {
                              ValaDataType* _tmp83_ = NULL;
                              ValaArrayType* _tmp84_;
                              ValaArrayType* array_type;
                              ValaCCodeDeclaration* _cdecl_ = NULL;
                              gboolean _tmp85_;
                              const gchar* _tmp88_ = NULL;
                              ValaCCodeVariableDeclarator* _tmp89_ = NULL;
                              ValaCCodeVariableDeclarator* _tmp90_;
                              ValaCCodeBlock* _tmp91_ = NULL;
                              ValaCCodeExpression* _tmp92_ = NULL;
                              ValaCCodeExpression* _tmp93_;
                              const gchar* _tmp94_ = NULL;
                              ValaCCodeIdentifier* _tmp95_ = NULL;
                              ValaCCodeIdentifier* _tmp96_;
                              ValaCCodeUnaryExpression* _tmp97_ = NULL;
                              ValaCCodeUnaryExpression* _tmp98_;
                              const gchar* _tmp99_ = NULL;
                              gboolean _tmp100_;
                              const gchar* _tmp101_ = NULL;
                              ValaCCodeIdentifier* _tmp102_ = NULL;
                              ValaCCodeIdentifier* _tmp103_;
                              ValaCCodeMemberAccess* _tmp104_ = NULL;
                              ValaCCodeMemberAccess* _tmp105_;
                              gchar* _tmp106_ = NULL;
                              gchar* _tmp107_;
                              ValaCCodeCastExpression* _tmp108_ = NULL;
                              ValaCCodeCastExpression* _tmp109_;
                              const gchar* _tmp110_ = NULL;
                              ValaCCodeIdentifier* _tmp111_ = NULL;
                              ValaCCodeIdentifier* _tmp112_;
                              ValaCCodeMemberAccess* _tmp113_ = NULL;
                              ValaCCodeMemberAccess* _tmp114_;
                              _tmp83_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp84_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp83_));
                              array_type = _tmp84_;
                              _tmp85_ = vala_dbus_client_module_dbus_use_ptr_array (self, array_type);
                              if (_tmp85_) {
                                    ValaCCodeDeclaration* _tmp86_ = NULL;
                                    _tmp86_ = vala_ccode_declaration_new ("GPtrArray*");
                                    _vala_ccode_node_unref0 (_cdecl_);
                                    _cdecl_ = _tmp86_;
                              } else {
                                    ValaCCodeDeclaration* _tmp87_ = NULL;
                                    _tmp87_ = vala_ccode_declaration_new ("GArray*");
                                    _vala_ccode_node_unref0 (_cdecl_);
                                    _cdecl_ = _tmp87_;
                              }
                              _tmp88_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp89_ = vala_ccode_variable_declarator_new (_tmp88_, NULL, NULL);
                              _tmp90_ = _tmp89_;
                              vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp90_);
                              _vala_ccode_node_unref0 (_tmp90_);
                              _tmp91_ = vala_ccode_function_get_block (cb_fun);
                              vala_ccode_block_add_statement (_tmp91_, (ValaCCodeNode*) _cdecl_);
                              _tmp92_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, (ValaDataType*) array_type);
                              _tmp93_ = _tmp92_;
                              vala_ccode_function_call_add_argument (cend_call, _tmp93_);
                              _vala_ccode_node_unref0 (_tmp93_);
                              _tmp94_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp95_ = vala_ccode_identifier_new (_tmp94_);
                              _tmp96_ = _tmp95_;
                              _tmp97_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp96_);
                              _tmp98_ = _tmp97_;
                              vala_ccode_function_call_add_argument (cend_call, (ValaCCodeExpression*) _tmp98_);
                              _vala_ccode_node_unref0 (_tmp98_);
                              _vala_ccode_node_unref0 (_tmp96_);
                              _tmp100_ = vala_dbus_client_module_dbus_use_ptr_array (self, array_type);
                              if (_tmp100_) {
                                    _tmp99_ = "pdata";
                              } else {
                                    _tmp99_ = "data";
                              }
                              _tmp101_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp102_ = vala_ccode_identifier_new (_tmp101_);
                              _tmp103_ = _tmp102_;
                              _tmp104_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp103_, _tmp99_);
                              _tmp105_ = _tmp104_;
                              _tmp106_ = vala_data_type_get_cname ((ValaDataType*) array_type);
                              _tmp107_ = _tmp106_;
                              _tmp108_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp105_, _tmp107_);
                              _tmp109_ = _tmp108_;
                              vala_ccode_function_call_add_argument (creply_call, (ValaCCodeExpression*) _tmp109_);
                              _vala_ccode_node_unref0 (_tmp109_);
                              _g_free0 (_tmp107_);
                              _vala_ccode_node_unref0 (_tmp105_);
                              _vala_ccode_node_unref0 (_tmp103_);
                              _tmp110_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp111_ = vala_ccode_identifier_new (_tmp110_);
                              _tmp112_ = _tmp111_;
                              _tmp113_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp112_, "len");
                              _tmp114_ = _tmp113_;
                              vala_ccode_function_call_add_argument (creply_call, (ValaCCodeExpression*) _tmp114_);
                              _vala_ccode_node_unref0 (_tmp114_);
                              _vala_ccode_node_unref0 (_tmp112_);
                              _vala_ccode_node_unref0 (_cdecl_);
                              _vala_code_node_unref0 (array_type);
                        } else {
                              ValaDataType* _tmp115_ = NULL;
                              gchar* _tmp116_ = NULL;
                              gchar* _tmp117_;
                              ValaCCodeDeclaration* _tmp118_ = NULL;
                              ValaCCodeDeclaration* _tmp119_;
                              ValaCCodeDeclaration* _cdecl_;
                              const gchar* _tmp120_ = NULL;
                              ValaCCodeVariableDeclarator* _tmp121_ = NULL;
                              ValaCCodeVariableDeclarator* _tmp122_;
                              ValaCCodeBlock* _tmp123_ = NULL;
                              ValaDataType* _tmp124_ = NULL;
                              ValaCCodeExpression* _tmp125_ = NULL;
                              ValaCCodeExpression* _tmp126_;
                              const gchar* _tmp127_ = NULL;
                              ValaCCodeIdentifier* _tmp128_ = NULL;
                              ValaCCodeIdentifier* _tmp129_;
                              ValaCCodeUnaryExpression* _tmp130_ = NULL;
                              ValaCCodeUnaryExpression* _tmp131_;
                              const gchar* _tmp132_ = NULL;
                              ValaCCodeIdentifier* _tmp133_ = NULL;
                              ValaCCodeIdentifier* _tmp134_;
                              gboolean _tmp135_ = FALSE;
                              ValaDataType* _tmp136_ = NULL;
                              _tmp115_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp116_ = vala_data_type_get_cname (_tmp115_);
                              _tmp117_ = _tmp116_;
                              _tmp118_ = vala_ccode_declaration_new (_tmp117_);
                              _tmp119_ = _tmp118_;
                              _g_free0 (_tmp117_);
                              _cdecl_ = _tmp119_;
                              _tmp120_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp121_ = vala_ccode_variable_declarator_new (_tmp120_, NULL, NULL);
                              _tmp122_ = _tmp121_;
                              vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp122_);
                              _vala_ccode_node_unref0 (_tmp122_);
                              _tmp123_ = vala_ccode_function_get_block (cb_fun);
                              vala_ccode_block_add_statement (_tmp123_, (ValaCCodeNode*) _cdecl_);
                              _tmp124_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp125_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp124_);
                              _tmp126_ = _tmp125_;
                              vala_ccode_function_call_add_argument (cend_call, _tmp126_);
                              _vala_ccode_node_unref0 (_tmp126_);
                              _tmp127_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp128_ = vala_ccode_identifier_new (_tmp127_);
                              _tmp129_ = _tmp128_;
                              _tmp130_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp129_);
                              _tmp131_ = _tmp130_;
                              vala_ccode_function_call_add_argument (cend_call, (ValaCCodeExpression*) _tmp131_);
                              _vala_ccode_node_unref0 (_tmp131_);
                              _vala_ccode_node_unref0 (_tmp129_);
                              _tmp132_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp133_ = vala_ccode_identifier_new (_tmp132_);
                              _tmp134_ = _tmp133_;
                              vala_ccode_function_call_add_argument (creply_call, (ValaCCodeExpression*) _tmp134_);
                              _vala_ccode_node_unref0 (_tmp134_);
                              _tmp136_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              if (VALA_IS_ARRAY_TYPE (_tmp136_)) {
                                    ValaDataType* _tmp137_ = NULL;
                                    ValaDataType* _tmp138_ = NULL;
                                    ValaTypeSymbol* _tmp139_ = NULL;
                                    ValaTypeSymbol* _tmp140_ = NULL;
                                    _tmp137_ = vala_variable_get_variable_type ((ValaVariable*) param);
                                    _tmp138_ = vala_array_type_get_element_type (VALA_ARRAY_TYPE (_tmp137_));
                                    _tmp139_ = vala_data_type_get_data_type (_tmp138_);
                                    _tmp140_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->string_type);
                                    _tmp135_ = _tmp139_ == _tmp140_;
                              } else {
                                    _tmp135_ = FALSE;
                              }
                              if (_tmp135_) {
                                    ValaCCodeIdentifier* _tmp141_ = NULL;
                                    ValaCCodeIdentifier* _tmp142_;
                                    ValaCCodeFunctionCall* _tmp143_ = NULL;
                                    ValaCCodeFunctionCall* _tmp144_;
                                    ValaCCodeFunctionCall* cstrvlen;
                                    const gchar* _tmp145_ = NULL;
                                    ValaCCodeIdentifier* _tmp146_ = NULL;
                                    ValaCCodeIdentifier* _tmp147_;
                                    _tmp141_ = vala_ccode_identifier_new ("g_strv_length");
                                    _tmp142_ = _tmp141_;
                                    _tmp143_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp142_);
                                    _tmp144_ = _tmp143_;
                                    _vala_ccode_node_unref0 (_tmp142_);
                                    cstrvlen = _tmp144_;
                                    _tmp145_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp146_ = vala_ccode_identifier_new (_tmp145_);
                                    _tmp147_ = _tmp146_;
                                    vala_ccode_function_call_add_argument (cstrvlen, (ValaCCodeExpression*) _tmp147_);
                                    _vala_ccode_node_unref0 (_tmp147_);
                                    vala_ccode_function_call_add_argument (creply_call, (ValaCCodeExpression*) cstrvlen);
                                    _vala_ccode_node_unref0 (cstrvlen);
                              }
                              _vala_ccode_node_unref0 (_cdecl_);
                        }
                        _vala_code_node_unref0 (param);
                  }
                  _vala_iterable_unref0 (_param_list);
            }
            _tmp148_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
            _tmp149_ = _tmp148_;
            vala_ccode_function_call_add_argument (cend_call, (ValaCCodeExpression*) _tmp149_);
            _vala_ccode_node_unref0 (_tmp149_);
            _tmp150_ = vala_ccode_function_get_block (cb_fun);
            _tmp151_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cend_call);
            _tmp152_ = _tmp151_;
            vala_ccode_block_add_statement (_tmp150_, (ValaCCodeNode*) _tmp152_);
            _vala_ccode_node_unref0 (_tmp152_);
            _tmp153_ = vala_ccode_identifier_new ("error");
            _tmp154_ = _tmp153_;
            vala_ccode_function_call_add_argument (creply_call, (ValaCCodeExpression*) _tmp154_);
            _vala_ccode_node_unref0 (_tmp154_);
            _tmp155_ = vala_ccode_function_get_block (cb_fun);
            _tmp156_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) creply_call);
            _tmp157_ = _tmp156_;
            vala_ccode_block_add_statement (_tmp155_, (ValaCCodeNode*) _tmp157_);
            _vala_ccode_node_unref0 (_tmp157_);
            _tmp158_ = g_strdup_printf ("param%d_target", callback_index);
            _tmp159_ = _tmp158_;
            _tmp160_ = vala_ccode_constant_new (_tmp159_);
            _tmp161_ = (ValaCCodeExpression*) _tmp160_;
            _g_free0 (_tmp159_);
            target = _tmp161_;
            _tmp162_ = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (callback));
            ma = _tmp162_;
            _tmp165_ = vala_method_get_binding (reply_method);
            if (_tmp165_ != VALA_MEMBER_BINDING_STATIC) {
                  ValaExpression* _tmp166_ = NULL;
                  ValaDataType* _tmp167_ = NULL;
                  ValaTypeSymbol* _tmp168_ = NULL;
                  _tmp166_ = vala_member_access_get_inner (ma);
                  _tmp167_ = vala_expression_get_value_type (_tmp166_);
                  _tmp168_ = vala_data_type_get_data_type (_tmp167_);
                  _tmp164_ = _tmp168_ != NULL;
            } else {
                  _tmp164_ = FALSE;
            }
            if (_tmp164_) {
                  ValaExpression* _tmp169_ = NULL;
                  ValaDataType* _tmp170_ = NULL;
                  ValaTypeSymbol* _tmp171_ = NULL;
                  gboolean _tmp172_;
                  _tmp169_ = vala_member_access_get_inner (ma);
                  _tmp170_ = vala_expression_get_value_type (_tmp169_);
                  _tmp171_ = vala_data_type_get_data_type (_tmp170_);
                  _tmp172_ = vala_typesymbol_is_reference_counting (_tmp171_);
                  _tmp163_ = _tmp172_;
            } else {
                  _tmp163_ = FALSE;
            }
            if (_tmp163_) {
                  ValaExpression* _tmp173_ = NULL;
                  ValaDataType* _tmp174_ = NULL;
                  ValaCCodeExpression* _tmp175_ = NULL;
                  ValaCCodeExpression* _tmp176_;
                  ValaCCodeFunctionCall* _tmp177_ = NULL;
                  ValaCCodeFunctionCall* _tmp178_;
                  ValaCCodeFunctionCall* unref_call;
                  ValaCCodeIdentifier* _tmp179_ = NULL;
                  ValaCCodeIdentifier* _tmp180_;
                  ValaCCodeBlock* _tmp181_ = NULL;
                  ValaCCodeExpressionStatement* _tmp182_ = NULL;
                  ValaCCodeExpressionStatement* _tmp183_;
                  ValaExpression* _tmp184_ = NULL;
                  ValaDataType* _tmp185_ = NULL;
                  ValaSourceReference* _tmp186_ = NULL;
                  ValaCCodeExpression* _tmp187_ = NULL;
                  ValaCCodeExpression* _tmp188_;
                  ValaCCodeFunctionCall* _tmp189_ = NULL;
                  ValaCCodeFunctionCall* _tmp190_;
                  ValaCCodeFunctionCall* ref_call;
                  ValaCCodeExpression* _tmp191_;
                  _tmp173_ = vala_member_access_get_inner (ma);
                  _tmp174_ = vala_expression_get_value_type (_tmp173_);
                  _tmp175_ = vala_ccode_base_module_get_destroy_func_expression ((ValaCCodeBaseModule*) self, _tmp174_, FALSE);
                  _tmp176_ = _tmp175_;
                  _tmp177_ = vala_ccode_function_call_new (_tmp176_);
                  _tmp178_ = _tmp177_;
                  _vala_ccode_node_unref0 (_tmp176_);
                  unref_call = _tmp178_;
                  _tmp179_ = vala_ccode_identifier_new ("user_data");
                  _tmp180_ = _tmp179_;
                  vala_ccode_function_call_add_argument (unref_call, (ValaCCodeExpression*) _tmp180_);
                  _vala_ccode_node_unref0 (_tmp180_);
                  _tmp181_ = vala_ccode_function_get_block (cb_fun);
                  _tmp182_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) unref_call);
                  _tmp183_ = _tmp182_;
                  vala_ccode_block_add_statement (_tmp181_, (ValaCCodeNode*) _tmp183_);
                  _vala_ccode_node_unref0 (_tmp183_);
                  _tmp184_ = vala_member_access_get_inner (ma);
                  _tmp185_ = vala_expression_get_value_type (_tmp184_);
                  _tmp186_ = vala_code_node_get_source_reference ((ValaCodeNode*) callback);
                  _tmp187_ = vala_ccode_base_module_get_dup_func_expression ((ValaCCodeBaseModule*) self, _tmp185_, _tmp186_, FALSE);
                  _tmp188_ = _tmp187_;
                  _tmp189_ = vala_ccode_function_call_new (_tmp188_);
                  _tmp190_ = _tmp189_;
                  _vala_ccode_node_unref0 (_tmp188_);
                  ref_call = _tmp190_;
                  vala_ccode_function_call_add_argument (ref_call, target);
                  _tmp191_ = _vala_ccode_node_ref0 ((ValaCCodeExpression*) ref_call);
                  _vala_ccode_node_unref0 (target);
                  target = _tmp191_;
                  _vala_ccode_node_unref0 (ref_call);
                  _vala_ccode_node_unref0 (unref_call);
            }
            _tmp192_ = vala_ccode_function_get_name (cb_fun);
            _tmp193_ = vala_ccode_file_add_declaration (((ValaCCodeBaseModule*) self)->cfile, _tmp192_);
            if (!_tmp193_) {
                  vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, cb_fun);
            }
            _tmp194_ = vala_ccode_function_get_name (cb_fun);
            _tmp195_ = vala_ccode_identifier_new (_tmp194_);
            _tmp196_ = _tmp195_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp196_);
            _vala_ccode_node_unref0 (_tmp196_);
            vala_ccode_function_call_add_argument (ccall, target);
            _tmp197_ = vala_ccode_constant_new ("NULL");
            _tmp198_ = _tmp197_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp198_);
            _vala_ccode_node_unref0 (_tmp198_);
            _vala_code_node_unref0 (ma);
            _vala_ccode_node_unref0 (target);
            _vala_ccode_node_unref0 (creply_call);
            _vala_ccode_node_unref0 (cend_call);
            _vala_ccode_node_unref0 (cerrdecl);
            _vala_ccode_node_unref0 (cb_fun);
            _vala_code_node_unref0 (reply_method);
      } else {
            ValaCCodeIdentifier* _tmp199_ = NULL;
            ValaCCodeIdentifier* _tmp200_;
            ValaCCodeIdentifier* _tmp201_ = NULL;
            ValaCCodeIdentifier* _tmp202_;
            _tmp199_ = vala_ccode_identifier_new ("dbus_g_proxy_call");
            _tmp200_ = _tmp199_;
            vala_ccode_function_call_set_call (ccall, (ValaCCodeExpression*) _tmp200_);
            _vala_ccode_node_unref0 (_tmp200_);
            _tmp201_ = vala_ccode_identifier_new ("error");
            _tmp202_ = _tmp201_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp202_);
            _vala_ccode_node_unref0 (_tmp202_);
      }
      {
            ValaList* _tmp203_ = NULL;
            ValaList* _param_list;
            gint _tmp204_;
            gint _param_size;
            gint _param_index;
            _tmp203_ = vala_method_get_parameters (method);
            _param_list = _tmp203_;
            _tmp204_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp204_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp205_ = NULL;
                  ValaParameter* param;
                  gboolean _tmp206_ = FALSE;
                  ValaDataType* _tmp207_ = NULL;
                  ValaParameterDirection _tmp209_;
                  ValaDataType* _tmp210_ = NULL;
                  ValaDataType* _tmp211_;
                  ValaArrayType* _tmp212_;
                  ValaArrayType* array_type;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp205_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp205_;
                  _tmp207_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  if (VALA_IS_METHOD_TYPE (_tmp207_)) {
                        _tmp206_ = TRUE;
                  } else {
                        ValaDataType* _tmp208_ = NULL;
                        _tmp208_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp206_ = VALA_IS_DELEGATE_TYPE (_tmp208_);
                  }
                  if (_tmp206_) {
                        _vala_code_node_unref0 (param);
                        break;
                  }
                  _tmp209_ = vala_parameter_get_direction (param);
                  if (_tmp209_ != VALA_PARAMETER_DIRECTION_IN) {
                        _vala_code_node_unref0 (param);
                        continue;
                  }
                  _tmp210_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp211_ = _tmp210_;
                  _tmp212_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp211_) ? ((ValaArrayType*) _tmp211_) : NULL);
                  array_type = _tmp212_;
                  if (array_type != NULL) {
                        ValaDataType* _tmp213_ = NULL;
                        ValaTypeSymbol* _tmp214_ = NULL;
                        ValaTypeSymbol* _tmp215_ = NULL;
                        _tmp213_ = vala_array_type_get_element_type (array_type);
                        _tmp214_ = vala_data_type_get_data_type (_tmp213_);
                        _tmp215_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->string_type);
                        if (_tmp214_ != _tmp215_) {
                              ValaCCodeExpression* _tmp216_ = NULL;
                              ValaCCodeExpression* _tmp217_;
                              ValaCCodeIdentifier* _tmp218_ = NULL;
                              ValaCCodeIdentifier* _tmp219_;
                              ValaCCodeFunctionCall* _tmp220_ = NULL;
                              ValaCCodeFunctionCall* _tmp221_;
                              ValaCCodeFunctionCall* sizeof_call;
                              ValaDataType* _tmp222_ = NULL;
                              gchar* _tmp223_ = NULL;
                              gchar* _tmp224_;
                              ValaCCodeIdentifier* _tmp225_ = NULL;
                              ValaCCodeIdentifier* _tmp226_;
                              ValaCCodeDeclaration* _cdecl_ = NULL;
                              ValaCCodeFunctionCall* array_construct = NULL;
                              gboolean _tmp227_;
                              const gchar* _tmp244_ = NULL;
                              gchar* _tmp245_ = NULL;
                              gchar* _tmp246_;
                              ValaCCodeVariableDeclarator* _tmp247_ = NULL;
                              ValaCCodeVariableDeclarator* _tmp248_;
                              gboolean _tmp249_;
                              const gchar* _tmp305_ = NULL;
                              gchar* _tmp306_ = NULL;
                              gchar* _tmp307_;
                              ValaCCodeIdentifier* _tmp308_ = NULL;
                              ValaCCodeIdentifier* _tmp309_;
                              _tmp216_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, (ValaDataType*) array_type);
                              _tmp217_ = _tmp216_;
                              vala_ccode_function_call_add_argument (ccall, _tmp217_);
                              _vala_ccode_node_unref0 (_tmp217_);
                              _tmp218_ = vala_ccode_identifier_new ("sizeof");
                              _tmp219_ = _tmp218_;
                              _tmp220_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp219_);
                              _tmp221_ = _tmp220_;
                              _vala_ccode_node_unref0 (_tmp219_);
                              sizeof_call = _tmp221_;
                              _tmp222_ = vala_array_type_get_element_type (array_type);
                              _tmp223_ = vala_data_type_get_cname (_tmp222_);
                              _tmp224_ = _tmp223_;
                              _tmp225_ = vala_ccode_identifier_new (_tmp224_);
                              _tmp226_ = _tmp225_;
                              vala_ccode_function_call_add_argument (sizeof_call, (ValaCCodeExpression*) _tmp226_);
                              _vala_ccode_node_unref0 (_tmp226_);
                              _g_free0 (_tmp224_);
                              _tmp227_ = vala_dbus_client_module_dbus_use_ptr_array (self, array_type);
                              if (_tmp227_) {
                                    ValaCCodeDeclaration* _tmp228_ = NULL;
                                    ValaCCodeIdentifier* _tmp229_ = NULL;
                                    ValaCCodeIdentifier* _tmp230_;
                                    ValaCCodeFunctionCall* _tmp231_ = NULL;
                                    gchar* _tmp232_ = NULL;
                                    gchar* _tmp233_;
                                    ValaCCodeIdentifier* _tmp234_ = NULL;
                                    ValaCCodeIdentifier* _tmp235_;
                                    _tmp228_ = vala_ccode_declaration_new ("GPtrArray*");
                                    _vala_ccode_node_unref0 (_cdecl_);
                                    _cdecl_ = _tmp228_;
                                    _tmp229_ = vala_ccode_identifier_new ("g_ptr_array_sized_new");
                                    _tmp230_ = _tmp229_;
                                    _tmp231_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp230_);
                                    _vala_ccode_node_unref0 (array_construct);
                                    array_construct = _tmp231_;
                                    _vala_ccode_node_unref0 (_tmp230_);
                                    _tmp232_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, param, 1);
                                    _tmp233_ = _tmp232_;
                                    _tmp234_ = vala_ccode_identifier_new (_tmp233_);
                                    _tmp235_ = _tmp234_;
                                    vala_ccode_function_call_add_argument (array_construct, (ValaCCodeExpression*) _tmp235_);
                                    _vala_ccode_node_unref0 (_tmp235_);
                                    _g_free0 (_tmp233_);
                              } else {
                                    ValaCCodeDeclaration* _tmp236_ = NULL;
                                    ValaCCodeIdentifier* _tmp237_ = NULL;
                                    ValaCCodeIdentifier* _tmp238_;
                                    ValaCCodeFunctionCall* _tmp239_ = NULL;
                                    ValaCCodeConstant* _tmp240_ = NULL;
                                    ValaCCodeConstant* _tmp241_;
                                    ValaCCodeConstant* _tmp242_ = NULL;
                                    ValaCCodeConstant* _tmp243_;
                                    _tmp236_ = vala_ccode_declaration_new ("GArray*");
                                    _vala_ccode_node_unref0 (_cdecl_);
                                    _cdecl_ = _tmp236_;
                                    _tmp237_ = vala_ccode_identifier_new ("g_array_new");
                                    _tmp238_ = _tmp237_;
                                    _tmp239_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp238_);
                                    _vala_ccode_node_unref0 (array_construct);
                                    array_construct = _tmp239_;
                                    _vala_ccode_node_unref0 (_tmp238_);
                                    _tmp240_ = vala_ccode_constant_new ("TRUE");
                                    _tmp241_ = _tmp240_;
                                    vala_ccode_function_call_add_argument (array_construct, (ValaCCodeExpression*) _tmp241_);
                                    _vala_ccode_node_unref0 (_tmp241_);
                                    _tmp242_ = vala_ccode_constant_new ("TRUE");
                                    _tmp243_ = _tmp242_;
                                    vala_ccode_function_call_add_argument (array_construct, (ValaCCodeExpression*) _tmp243_);
                                    _vala_ccode_node_unref0 (_tmp243_);
                                    vala_ccode_function_call_add_argument (array_construct, (ValaCCodeExpression*) sizeof_call);
                              }
                              _tmp244_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp245_ = g_strdup_printf ("dbus_%s", _tmp244_);
                              _tmp246_ = _tmp245_;
                              _tmp247_ = vala_ccode_variable_declarator_new (_tmp246_, (ValaCCodeExpression*) array_construct, NULL);
                              _tmp248_ = _tmp247_;
                              vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp248_);
                              _vala_ccode_node_unref0 (_tmp248_);
                              _g_free0 (_tmp246_);
                              vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
                              _tmp249_ = vala_dbus_client_module_dbus_use_ptr_array (self, array_type);
                              if (_tmp249_) {
                                    ValaCCodeIdentifier* _tmp250_ = NULL;
                                    ValaCCodeIdentifier* _tmp251_;
                                    ValaCCodeFunctionCall* _tmp252_ = NULL;
                                    ValaCCodeFunctionCall* _tmp253_;
                                    ValaCCodeFunctionCall* memcpy_call;
                                    const gchar* _tmp254_ = NULL;
                                    gchar* _tmp255_ = NULL;
                                    gchar* _tmp256_;
                                    ValaCCodeIdentifier* _tmp257_ = NULL;
                                    ValaCCodeIdentifier* _tmp258_;
                                    ValaCCodeMemberAccess* _tmp259_ = NULL;
                                    ValaCCodeMemberAccess* _tmp260_;
                                    const gchar* _tmp261_ = NULL;
                                    ValaCCodeIdentifier* _tmp262_ = NULL;
                                    ValaCCodeIdentifier* _tmp263_;
                                    gchar* _tmp264_ = NULL;
                                    gchar* _tmp265_;
                                    ValaCCodeIdentifier* _tmp266_ = NULL;
                                    ValaCCodeIdentifier* _tmp267_;
                                    ValaCCodeBinaryExpression* _tmp268_ = NULL;
                                    ValaCCodeBinaryExpression* _tmp269_;
                                    ValaCCodeExpressionStatement* _tmp270_ = NULL;
                                    ValaCCodeExpressionStatement* _tmp271_;
                                    const gchar* _tmp272_ = NULL;
                                    gchar* _tmp273_ = NULL;
                                    gchar* _tmp274_;
                                    ValaCCodeIdentifier* _tmp275_ = NULL;
                                    ValaCCodeIdentifier* _tmp276_;
                                    ValaCCodeMemberAccess* _tmp277_ = NULL;
                                    ValaCCodeMemberAccess* _tmp278_;
                                    gchar* _tmp279_ = NULL;
                                    gchar* _tmp280_;
                                    ValaCCodeIdentifier* _tmp281_ = NULL;
                                    ValaCCodeIdentifier* _tmp282_;
                                    ValaCCodeAssignment* _tmp283_ = NULL;
                                    ValaCCodeAssignment* _tmp284_;
                                    ValaCCodeAssignment* len_assignment;
                                    ValaCCodeExpressionStatement* _tmp285_ = NULL;
                                    ValaCCodeExpressionStatement* _tmp286_;
                                    vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "string.h", FALSE);
                                    _tmp250_ = vala_ccode_identifier_new ("memcpy");
                                    _tmp251_ = _tmp250_;
                                    _tmp252_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp251_);
                                    _tmp253_ = _tmp252_;
                                    _vala_ccode_node_unref0 (_tmp251_);
                                    memcpy_call = _tmp253_;
                                    _tmp254_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp255_ = g_strdup_printf ("dbus_%s", _tmp254_);
                                    _tmp256_ = _tmp255_;
                                    _tmp257_ = vala_ccode_identifier_new (_tmp256_);
                                    _tmp258_ = _tmp257_;
                                    _tmp259_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp258_, "pdata");
                                    _tmp260_ = _tmp259_;
                                    vala_ccode_function_call_add_argument (memcpy_call, (ValaCCodeExpression*) _tmp260_);
                                    _vala_ccode_node_unref0 (_tmp260_);
                                    _vala_ccode_node_unref0 (_tmp258_);
                                    _g_free0 (_tmp256_);
                                    _tmp261_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp262_ = vala_ccode_identifier_new (_tmp261_);
                                    _tmp263_ = _tmp262_;
                                    vala_ccode_function_call_add_argument (memcpy_call, (ValaCCodeExpression*) _tmp263_);
                                    _vala_ccode_node_unref0 (_tmp263_);
                                    _tmp264_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, param, 1);
                                    _tmp265_ = _tmp264_;
                                    _tmp266_ = vala_ccode_identifier_new (_tmp265_);
                                    _tmp267_ = _tmp266_;
                                    _tmp268_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_MUL, (ValaCCodeExpression*) _tmp267_, (ValaCCodeExpression*) sizeof_call);
                                    _tmp269_ = _tmp268_;
                                    vala_ccode_function_call_add_argument (memcpy_call, (ValaCCodeExpression*) _tmp269_);
                                    _vala_ccode_node_unref0 (_tmp269_);
                                    _vala_ccode_node_unref0 (_tmp267_);
                                    _g_free0 (_tmp265_);
                                    _tmp270_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) memcpy_call);
                                    _tmp271_ = _tmp270_;
                                    vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp271_);
                                    _vala_ccode_node_unref0 (_tmp271_);
                                    _tmp272_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp273_ = g_strdup_printf ("dbus_%s", _tmp272_);
                                    _tmp274_ = _tmp273_;
                                    _tmp275_ = vala_ccode_identifier_new (_tmp274_);
                                    _tmp276_ = _tmp275_;
                                    _tmp277_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp276_, "len");
                                    _tmp278_ = _tmp277_;
                                    _tmp279_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, param, 1);
                                    _tmp280_ = _tmp279_;
                                    _tmp281_ = vala_ccode_identifier_new (_tmp280_);
                                    _tmp282_ = _tmp281_;
                                    _tmp283_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp278_, (ValaCCodeExpression*) _tmp282_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                                    _tmp284_ = _tmp283_;
                                    _vala_ccode_node_unref0 (_tmp282_);
                                    _g_free0 (_tmp280_);
                                    _vala_ccode_node_unref0 (_tmp278_);
                                    _vala_ccode_node_unref0 (_tmp276_);
                                    _g_free0 (_tmp274_);
                                    len_assignment = _tmp284_;
                                    _tmp285_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) len_assignment);
                                    _tmp286_ = _tmp285_;
                                    vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp286_);
                                    _vala_ccode_node_unref0 (_tmp286_);
                                    _vala_ccode_node_unref0 (len_assignment);
                                    _vala_ccode_node_unref0 (memcpy_call);
                              } else {
                                    ValaCCodeIdentifier* _tmp287_ = NULL;
                                    ValaCCodeIdentifier* _tmp288_;
                                    ValaCCodeFunctionCall* _tmp289_ = NULL;
                                    ValaCCodeFunctionCall* _tmp290_;
                                    ValaCCodeFunctionCall* cappend_call;
                                    const gchar* _tmp291_ = NULL;
                                    gchar* _tmp292_ = NULL;
                                    gchar* _tmp293_;
                                    ValaCCodeIdentifier* _tmp294_ = NULL;
                                    ValaCCodeIdentifier* _tmp295_;
                                    const gchar* _tmp296_ = NULL;
                                    ValaCCodeIdentifier* _tmp297_ = NULL;
                                    ValaCCodeIdentifier* _tmp298_;
                                    gchar* _tmp299_ = NULL;
                                    gchar* _tmp300_;
                                    ValaCCodeIdentifier* _tmp301_ = NULL;
                                    ValaCCodeIdentifier* _tmp302_;
                                    ValaCCodeExpressionStatement* _tmp303_ = NULL;
                                    ValaCCodeExpressionStatement* _tmp304_;
                                    _tmp287_ = vala_ccode_identifier_new ("g_array_append_vals");
                                    _tmp288_ = _tmp287_;
                                    _tmp289_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp288_);
                                    _tmp290_ = _tmp289_;
                                    _vala_ccode_node_unref0 (_tmp288_);
                                    cappend_call = _tmp290_;
                                    _tmp291_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp292_ = g_strdup_printf ("dbus_%s", _tmp291_);
                                    _tmp293_ = _tmp292_;
                                    _tmp294_ = vala_ccode_identifier_new (_tmp293_);
                                    _tmp295_ = _tmp294_;
                                    vala_ccode_function_call_add_argument (cappend_call, (ValaCCodeExpression*) _tmp295_);
                                    _vala_ccode_node_unref0 (_tmp295_);
                                    _g_free0 (_tmp293_);
                                    _tmp296_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp297_ = vala_ccode_identifier_new (_tmp296_);
                                    _tmp298_ = _tmp297_;
                                    vala_ccode_function_call_add_argument (cappend_call, (ValaCCodeExpression*) _tmp298_);
                                    _vala_ccode_node_unref0 (_tmp298_);
                                    _tmp299_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, param, 1);
                                    _tmp300_ = _tmp299_;
                                    _tmp301_ = vala_ccode_identifier_new (_tmp300_);
                                    _tmp302_ = _tmp301_;
                                    vala_ccode_function_call_add_argument (cappend_call, (ValaCCodeExpression*) _tmp302_);
                                    _vala_ccode_node_unref0 (_tmp302_);
                                    _g_free0 (_tmp300_);
                                    _tmp303_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cappend_call);
                                    _tmp304_ = _tmp303_;
                                    vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp304_);
                                    _vala_ccode_node_unref0 (_tmp304_);
                                    _vala_ccode_node_unref0 (cappend_call);
                              }
                              _tmp305_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp306_ = g_strdup_printf ("dbus_%s", _tmp305_);
                              _tmp307_ = _tmp306_;
                              _tmp308_ = vala_ccode_identifier_new (_tmp307_);
                              _tmp309_ = _tmp308_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp309_);
                              _vala_ccode_node_unref0 (_tmp309_);
                              _g_free0 (_tmp307_);
                              _vala_ccode_node_unref0 (array_construct);
                              _vala_ccode_node_unref0 (_cdecl_);
                              _vala_ccode_node_unref0 (sizeof_call);
                        } else {
                              ValaCCodeIdentifier* _tmp310_ = NULL;
                              ValaCCodeIdentifier* _tmp311_;
                              const gchar* _tmp312_ = NULL;
                              ValaCCodeIdentifier* _tmp313_ = NULL;
                              ValaCCodeIdentifier* _tmp314_;
                              _tmp310_ = vala_ccode_identifier_new ("G_TYPE_STRV");
                              _tmp311_ = _tmp310_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp311_);
                              _vala_ccode_node_unref0 (_tmp311_);
                              _tmp312_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp313_ = vala_ccode_identifier_new (_tmp312_);
                              _tmp314_ = _tmp313_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp314_);
                              _vala_ccode_node_unref0 (_tmp314_);
                        }
                  } else {
                        ValaDataType* _tmp315_ = NULL;
                        gchar* _tmp316_ = NULL;
                        gchar* _tmp317_;
                        gboolean _tmp318_;
                        gboolean _tmp319_;
                        _tmp315_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp316_ = vala_dbus_module_get_type_signature (_tmp315_);
                        _tmp317_ = _tmp316_;
                        _tmp318_ = g_str_has_prefix (_tmp317_, "(");
                        _tmp319_ = _tmp318_;
                        _g_free0 (_tmp317_);
                        if (_tmp319_) {
                              ValaDataType* _tmp320_ = NULL;
                              ValaTypeSymbol* _tmp321_ = NULL;
                              ValaStruct* _tmp322_;
                              ValaStruct* st;
                              ValaCCodeIdentifier* _tmp323_ = NULL;
                              ValaCCodeIdentifier* _tmp324_;
                              ValaCCodeFunctionCall* _tmp325_ = NULL;
                              ValaCCodeFunctionCall* _tmp326_;
                              ValaCCodeFunctionCall* array_construct;
                              ValaCCodeConstant* _tmp327_ = NULL;
                              ValaCCodeConstant* _tmp328_;
                              ValaCCodeDeclaration* _tmp329_ = NULL;
                              ValaCCodeDeclaration* _cdecl_;
                              const gchar* _tmp330_ = NULL;
                              gchar* _tmp331_ = NULL;
                              gchar* _tmp332_;
                              ValaCCodeVariableDeclarator* _tmp333_ = NULL;
                              ValaCCodeVariableDeclarator* _tmp334_;
                              ValaDataType* _tmp391_ = NULL;
                              ValaCCodeExpression* _tmp392_ = NULL;
                              ValaCCodeExpression* _tmp393_;
                              const gchar* _tmp394_ = NULL;
                              gchar* _tmp395_ = NULL;
                              gchar* _tmp396_;
                              ValaCCodeIdentifier* _tmp397_ = NULL;
                              ValaCCodeIdentifier* _tmp398_;
                              _tmp320_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp321_ = vala_data_type_get_data_type (_tmp320_);
                              _tmp322_ = _vala_code_node_ref0 (VALA_STRUCT (_tmp321_));
                              st = _tmp322_;
                              _tmp323_ = vala_ccode_identifier_new ("g_value_array_new");
                              _tmp324_ = _tmp323_;
                              _tmp325_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp324_);
                              _tmp326_ = _tmp325_;
                              _vala_ccode_node_unref0 (_tmp324_);
                              array_construct = _tmp326_;
                              _tmp327_ = vala_ccode_constant_new ("0");
                              _tmp328_ = _tmp327_;
                              vala_ccode_function_call_add_argument (array_construct, (ValaCCodeExpression*) _tmp328_);
                              _vala_ccode_node_unref0 (_tmp328_);
                              _tmp329_ = vala_ccode_declaration_new ("GValueArray*");
                              _cdecl_ = _tmp329_;
                              _tmp330_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp331_ = g_strdup_printf ("dbus_%s", _tmp330_);
                              _tmp332_ = _tmp331_;
                              _tmp333_ = vala_ccode_variable_declarator_new (_tmp332_, (ValaCCodeExpression*) array_construct, NULL);
                              _tmp334_ = _tmp333_;
                              vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp334_);
                              _vala_ccode_node_unref0 (_tmp334_);
                              _g_free0 (_tmp332_);
                              vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
                              {
                                    ValaList* _tmp335_ = NULL;
                                    ValaList* _f_list;
                                    gint _tmp336_;
                                    gint _f_size;
                                    gint _f_index;
                                    _tmp335_ = vala_struct_get_fields (st);
                                    _f_list = _tmp335_;
                                    _tmp336_ = vala_collection_get_size ((ValaCollection*) _f_list);
                                    _f_size = _tmp336_;
                                    _f_index = -1;
                                    while (TRUE) {
                                          gpointer _tmp337_ = NULL;
                                          ValaField* f;
                                          ValaMemberBinding _tmp338_;
                                          const gchar* _tmp339_ = NULL;
                                          const gchar* _tmp340_ = NULL;
                                          gchar* _tmp341_ = NULL;
                                          gchar* val_name;
                                          ValaCCodeInitializerList* _tmp342_ = NULL;
                                          ValaCCodeInitializerList* cvalinit;
                                          ValaCCodeConstant* _tmp343_ = NULL;
                                          ValaCCodeConstant* _tmp344_;
                                          ValaCCodeDeclaration* _tmp345_ = NULL;
                                          ValaCCodeDeclaration* cval_decl;
                                          ValaCCodeVariableDeclarator* _tmp346_ = NULL;
                                          ValaCCodeVariableDeclarator* _tmp347_;
                                          ValaCCodeIdentifier* _tmp348_ = NULL;
                                          ValaCCodeIdentifier* _tmp349_;
                                          ValaCCodeUnaryExpression* _tmp350_ = NULL;
                                          ValaCCodeUnaryExpression* _tmp351_;
                                          ValaCCodeUnaryExpression* val_ptr;
                                          ValaCCodeIdentifier* _tmp352_ = NULL;
                                          ValaCCodeIdentifier* _tmp353_;
                                          ValaCCodeFunctionCall* _tmp354_ = NULL;
                                          ValaCCodeFunctionCall* _tmp355_;
                                          ValaCCodeFunctionCall* cinit_call;
                                          ValaDataType* _tmp356_ = NULL;
                                          ValaTypeSymbol* _tmp357_ = NULL;
                                          gchar* _tmp358_ = NULL;
                                          gchar* _tmp359_;
                                          ValaCCodeIdentifier* _tmp360_ = NULL;
                                          ValaCCodeIdentifier* _tmp361_;
                                          ValaCCodeExpressionStatement* _tmp362_ = NULL;
                                          ValaCCodeExpressionStatement* _tmp363_;
                                          ValaDataType* _tmp364_ = NULL;
                                          ValaTypeSymbol* _tmp365_ = NULL;
                                          gchar* _tmp366_ = NULL;
                                          gchar* _tmp367_;
                                          ValaCCodeIdentifier* _tmp368_ = NULL;
                                          ValaCCodeIdentifier* _tmp369_;
                                          ValaCCodeFunctionCall* _tmp370_ = NULL;
                                          ValaCCodeFunctionCall* _tmp371_;
                                          ValaCCodeFunctionCall* cset_call;
                                          const gchar* _tmp372_ = NULL;
                                          ValaCCodeIdentifier* _tmp373_ = NULL;
                                          ValaCCodeIdentifier* _tmp374_;
                                          const gchar* _tmp375_ = NULL;
                                          ValaCCodeMemberAccess* _tmp376_ = NULL;
                                          ValaCCodeMemberAccess* _tmp377_;
                                          ValaCCodeExpressionStatement* _tmp378_ = NULL;
                                          ValaCCodeExpressionStatement* _tmp379_;
                                          ValaCCodeIdentifier* _tmp380_ = NULL;
                                          ValaCCodeIdentifier* _tmp381_;
                                          ValaCCodeFunctionCall* _tmp382_ = NULL;
                                          ValaCCodeFunctionCall* _tmp383_;
                                          ValaCCodeFunctionCall* cappend_call;
                                          const gchar* _tmp384_ = NULL;
                                          gchar* _tmp385_ = NULL;
                                          gchar* _tmp386_;
                                          ValaCCodeIdentifier* _tmp387_ = NULL;
                                          ValaCCodeIdentifier* _tmp388_;
                                          ValaCCodeExpressionStatement* _tmp389_ = NULL;
                                          ValaCCodeExpressionStatement* _tmp390_;
                                          _f_index = _f_index + 1;
                                          if (!(_f_index < _f_size)) {
                                                break;
                                          }
                                          _tmp337_ = vala_list_get (_f_list, _f_index);
                                          f = (ValaField*) _tmp337_;
                                          _tmp338_ = vala_field_get_binding (f);
                                          if (_tmp338_ != VALA_MEMBER_BINDING_INSTANCE) {
                                                _vala_code_node_unref0 (f);
                                                continue;
                                          }
                                          _tmp339_ = vala_symbol_get_name ((ValaSymbol*) param);
                                          _tmp340_ = vala_symbol_get_name ((ValaSymbol*) f);
                                          _tmp341_ = g_strdup_printf ("val_%s_%s", _tmp339_, _tmp340_);
                                          val_name = _tmp341_;
                                          _tmp342_ = vala_ccode_initializer_list_new ();
                                          cvalinit = _tmp342_;
                                          _tmp343_ = vala_ccode_constant_new ("0");
                                          _tmp344_ = _tmp343_;
                                          vala_ccode_initializer_list_append (cvalinit, (ValaCCodeExpression*) _tmp344_);
                                          _vala_ccode_node_unref0 (_tmp344_);
                                          _tmp345_ = vala_ccode_declaration_new ("GValue");
                                          cval_decl = _tmp345_;
                                          _tmp346_ = vala_ccode_variable_declarator_new_zero (val_name, (ValaCCodeExpression*) cvalinit, NULL);
                                          _tmp347_ = _tmp346_;
                                          vala_ccode_declaration_add_declarator (cval_decl, (ValaCCodeDeclarator*) _tmp347_);
                                          _vala_ccode_node_unref0 (_tmp347_);
                                          vala_ccode_block_add_statement (block, (ValaCCodeNode*) cval_decl);
                                          _tmp348_ = vala_ccode_identifier_new (val_name);
                                          _tmp349_ = _tmp348_;
                                          _tmp350_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp349_);
                                          _tmp351_ = _tmp350_;
                                          _vala_ccode_node_unref0 (_tmp349_);
                                          val_ptr = _tmp351_;
                                          _tmp352_ = vala_ccode_identifier_new ("g_value_init");
                                          _tmp353_ = _tmp352_;
                                          _tmp354_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp353_);
                                          _tmp355_ = _tmp354_;
                                          _vala_ccode_node_unref0 (_tmp353_);
                                          cinit_call = _tmp355_;
                                          vala_ccode_function_call_add_argument (cinit_call, (ValaCCodeExpression*) val_ptr);
                                          _tmp356_ = vala_variable_get_variable_type ((ValaVariable*) f);
                                          _tmp357_ = vala_data_type_get_data_type (_tmp356_);
                                          _tmp358_ = vala_typesymbol_get_type_id (_tmp357_);
                                          _tmp359_ = _tmp358_;
                                          _tmp360_ = vala_ccode_identifier_new (_tmp359_);
                                          _tmp361_ = _tmp360_;
                                          vala_ccode_function_call_add_argument (cinit_call, (ValaCCodeExpression*) _tmp361_);
                                          _vala_ccode_node_unref0 (_tmp361_);
                                          _g_free0 (_tmp359_);
                                          _tmp362_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cinit_call);
                                          _tmp363_ = _tmp362_;
                                          vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp363_);
                                          _vala_ccode_node_unref0 (_tmp363_);
                                          _tmp364_ = vala_variable_get_variable_type ((ValaVariable*) f);
                                          _tmp365_ = vala_data_type_get_data_type (_tmp364_);
                                          _tmp366_ = vala_typesymbol_get_set_value_function (_tmp365_);
                                          _tmp367_ = _tmp366_;
                                          _tmp368_ = vala_ccode_identifier_new (_tmp367_);
                                          _tmp369_ = _tmp368_;
                                          _tmp370_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp369_);
                                          _tmp371_ = _tmp370_;
                                          _vala_ccode_node_unref0 (_tmp369_);
                                          _g_free0 (_tmp367_);
                                          cset_call = _tmp371_;
                                          vala_ccode_function_call_add_argument (cset_call, (ValaCCodeExpression*) val_ptr);
                                          _tmp372_ = vala_symbol_get_name ((ValaSymbol*) param);
                                          _tmp373_ = vala_ccode_identifier_new (_tmp372_);
                                          _tmp374_ = _tmp373_;
                                          _tmp375_ = vala_symbol_get_name ((ValaSymbol*) f);
                                          _tmp376_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp374_, _tmp375_);
                                          _tmp377_ = _tmp376_;
                                          vala_ccode_function_call_add_argument (cset_call, (ValaCCodeExpression*) _tmp377_);
                                          _vala_ccode_node_unref0 (_tmp377_);
                                          _vala_ccode_node_unref0 (_tmp374_);
                                          _tmp378_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cset_call);
                                          _tmp379_ = _tmp378_;
                                          vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp379_);
                                          _vala_ccode_node_unref0 (_tmp379_);
                                          _tmp380_ = vala_ccode_identifier_new ("g_value_array_append");
                                          _tmp381_ = _tmp380_;
                                          _tmp382_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp381_);
                                          _tmp383_ = _tmp382_;
                                          _vala_ccode_node_unref0 (_tmp381_);
                                          cappend_call = _tmp383_;
                                          _tmp384_ = vala_symbol_get_name ((ValaSymbol*) param);
                                          _tmp385_ = g_strdup_printf ("dbus_%s", _tmp384_);
                                          _tmp386_ = _tmp385_;
                                          _tmp387_ = vala_ccode_identifier_new (_tmp386_);
                                          _tmp388_ = _tmp387_;
                                          vala_ccode_function_call_add_argument (cappend_call, (ValaCCodeExpression*) _tmp388_);
                                          _vala_ccode_node_unref0 (_tmp388_);
                                          _g_free0 (_tmp386_);
                                          vala_ccode_function_call_add_argument (cappend_call, (ValaCCodeExpression*) val_ptr);
                                          _tmp389_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cappend_call);
                                          _tmp390_ = _tmp389_;
                                          vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp390_);
                                          _vala_ccode_node_unref0 (_tmp390_);
                                          _vala_ccode_node_unref0 (cappend_call);
                                          _vala_ccode_node_unref0 (cset_call);
                                          _vala_ccode_node_unref0 (cinit_call);
                                          _vala_ccode_node_unref0 (val_ptr);
                                          _vala_ccode_node_unref0 (cval_decl);
                                          _vala_ccode_node_unref0 (cvalinit);
                                          _g_free0 (val_name);
                                          _vala_code_node_unref0 (f);
                                    }
                                    _vala_iterable_unref0 (_f_list);
                              }
                              _tmp391_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp392_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp391_);
                              _tmp393_ = _tmp392_;
                              vala_ccode_function_call_add_argument (ccall, _tmp393_);
                              _vala_ccode_node_unref0 (_tmp393_);
                              _tmp394_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp395_ = g_strdup_printf ("dbus_%s", _tmp394_);
                              _tmp396_ = _tmp395_;
                              _tmp397_ = vala_ccode_identifier_new (_tmp396_);
                              _tmp398_ = _tmp397_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp398_);
                              _vala_ccode_node_unref0 (_tmp398_);
                              _g_free0 (_tmp396_);
                              _vala_ccode_node_unref0 (_cdecl_);
                              _vala_ccode_node_unref0 (array_construct);
                              _vala_code_node_unref0 (st);
                        } else {
                              ValaDataType* _tmp399_ = NULL;
                              ValaCCodeExpression* _tmp400_ = NULL;
                              ValaCCodeExpression* _tmp401_;
                              const gchar* _tmp402_ = NULL;
                              ValaCCodeIdentifier* _tmp403_ = NULL;
                              ValaCCodeIdentifier* _tmp404_;
                              _tmp399_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp400_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp399_);
                              _tmp401_ = _tmp400_;
                              vala_ccode_function_call_add_argument (ccall, _tmp401_);
                              _vala_ccode_node_unref0 (_tmp401_);
                              _tmp402_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp403_ = vala_ccode_identifier_new (_tmp402_);
                              _tmp404_ = _tmp403_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp404_);
                              _vala_ccode_node_unref0 (_tmp404_);
                        }
                  }
                  _vala_code_node_unref0 (array_type);
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp405_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
      _tmp406_ = _tmp405_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp406_);
      _vala_ccode_node_unref0 (_tmp406_);
      _tmp407_ = vala_ccode_fragment_new ();
      out_marshalling_fragment = _tmp407_;
      {
            ValaList* _tmp408_ = NULL;
            ValaList* _param_list;
            gint _tmp409_;
            gint _param_size;
            gint _param_index;
            _tmp408_ = vala_method_get_parameters (method);
            _param_list = _tmp408_;
            _tmp409_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp409_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp410_ = NULL;
                  ValaParameter* param;
                  ValaDataType* _tmp411_ = NULL;
                  ValaParameterDirection _tmp412_;
                  ValaDataType* _tmp413_ = NULL;
                  gchar* _tmp414_ = NULL;
                  gchar* _tmp415_;
                  gboolean _tmp416_;
                  gboolean _tmp417_;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp410_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp410_;
                  _tmp411_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  if (VALA_IS_METHOD_TYPE (_tmp411_)) {
                        _vala_code_node_unref0 (param);
                        break;
                  }
                  _tmp412_ = vala_parameter_get_direction (param);
                  if (_tmp412_ != VALA_PARAMETER_DIRECTION_OUT) {
                        _vala_code_node_unref0 (param);
                        continue;
                  }
                  _tmp413_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp414_ = vala_dbus_module_get_type_signature (_tmp413_);
                  _tmp415_ = _tmp414_;
                  _tmp416_ = g_str_has_prefix (_tmp415_, "(");
                  _tmp417_ = _tmp416_;
                  _g_free0 (_tmp415_);
                  if (_tmp417_) {
                        ValaDataType* _tmp418_ = NULL;
                        ValaTypeSymbol* _tmp419_ = NULL;
                        ValaStruct* _tmp420_;
                        ValaStruct* st;
                        ValaCCodeDeclaration* _tmp421_ = NULL;
                        ValaCCodeDeclaration* _cdecl_;
                        const gchar* _tmp422_ = NULL;
                        gchar* _tmp423_ = NULL;
                        gchar* _tmp424_;
                        ValaCCodeVariableDeclarator* _tmp425_ = NULL;
                        ValaCCodeVariableDeclarator* _tmp426_;
                        gint i;
                        ValaDataType* _tmp471_ = NULL;
                        ValaCCodeExpression* _tmp472_ = NULL;
                        ValaCCodeExpression* _tmp473_;
                        const gchar* _tmp474_ = NULL;
                        gchar* _tmp475_ = NULL;
                        gchar* _tmp476_;
                        ValaCCodeIdentifier* _tmp477_ = NULL;
                        ValaCCodeIdentifier* _tmp478_;
                        ValaCCodeUnaryExpression* _tmp479_ = NULL;
                        ValaCCodeUnaryExpression* _tmp480_;
                        _tmp418_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp419_ = vala_data_type_get_data_type (_tmp418_);
                        _tmp420_ = _vala_code_node_ref0 (VALA_STRUCT (_tmp419_));
                        st = _tmp420_;
                        _tmp421_ = vala_ccode_declaration_new ("GValueArray*");
                        _cdecl_ = _tmp421_;
                        _tmp422_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp423_ = g_strdup_printf ("dbus_%s", _tmp422_);
                        _tmp424_ = _tmp423_;
                        _tmp425_ = vala_ccode_variable_declarator_new (_tmp424_, NULL, NULL);
                        _tmp426_ = _tmp425_;
                        vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp426_);
                        _vala_ccode_node_unref0 (_tmp426_);
                        _g_free0 (_tmp424_);
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
                        i = 0;
                        {
                              ValaList* _tmp427_ = NULL;
                              ValaList* _f_list;
                              gint _tmp428_;
                              gint _f_size;
                              gint _f_index;
                              _tmp427_ = vala_struct_get_fields (st);
                              _f_list = _tmp427_;
                              _tmp428_ = vala_collection_get_size ((ValaCollection*) _f_list);
                              _f_size = _tmp428_;
                              _f_index = -1;
                              while (TRUE) {
                                    gpointer _tmp429_ = NULL;
                                    ValaField* f;
                                    ValaMemberBinding _tmp430_;
                                    ValaDataType* _tmp431_ = NULL;
                                    ValaTypeSymbol* _tmp432_ = NULL;
                                    gchar* _tmp433_ = NULL;
                                    gchar* _tmp434_;
                                    ValaCCodeIdentifier* _tmp435_ = NULL;
                                    ValaCCodeIdentifier* _tmp436_;
                                    ValaCCodeFunctionCall* _tmp437_ = NULL;
                                    ValaCCodeFunctionCall* _tmp438_;
                                    ValaCCodeFunctionCall* cget_call;
                                    const gchar* _tmp439_ = NULL;
                                    gchar* _tmp440_ = NULL;
                                    gchar* _tmp441_;
                                    ValaCCodeIdentifier* _tmp442_ = NULL;
                                    ValaCCodeIdentifier* _tmp443_;
                                    ValaCCodeMemberAccess* _tmp444_ = NULL;
                                    ValaCCodeMemberAccess* _tmp445_;
                                    gchar* _tmp446_ = NULL;
                                    gchar* _tmp447_;
                                    ValaCCodeConstant* _tmp448_ = NULL;
                                    ValaCCodeConstant* _tmp449_;
                                    ValaCCodeElementAccess* _tmp450_ = NULL;
                                    ValaCCodeElementAccess* _tmp451_;
                                    ValaCCodeUnaryExpression* _tmp452_ = NULL;
                                    ValaCCodeUnaryExpression* _tmp453_;
                                    ValaCCodeFunctionCall* _tmp454_;
                                    ValaCCodeFunctionCall* converted_value;
                                    ValaDataType* _tmp455_ = NULL;
                                    gboolean _tmp456_;
                                    const gchar* _tmp461_ = NULL;
                                    ValaCCodeIdentifier* _tmp462_ = NULL;
                                    ValaCCodeIdentifier* _tmp463_;
                                    const gchar* _tmp464_ = NULL;
                                    ValaCCodeMemberAccess* _tmp465_ = NULL;
                                    ValaCCodeMemberAccess* _tmp466_;
                                    ValaCCodeAssignment* _tmp467_ = NULL;
                                    ValaCCodeAssignment* _tmp468_;
                                    ValaCCodeAssignment* assign;
                                    ValaCCodeExpressionStatement* _tmp469_ = NULL;
                                    ValaCCodeExpressionStatement* _tmp470_;
                                    _f_index = _f_index + 1;
                                    if (!(_f_index < _f_size)) {
                                          break;
                                    }
                                    _tmp429_ = vala_list_get (_f_list, _f_index);
                                    f = (ValaField*) _tmp429_;
                                    _tmp430_ = vala_field_get_binding (f);
                                    if (_tmp430_ != VALA_MEMBER_BINDING_INSTANCE) {
                                          _vala_code_node_unref0 (f);
                                          continue;
                                    }
                                    _tmp431_ = vala_variable_get_variable_type ((ValaVariable*) f);
                                    _tmp432_ = vala_data_type_get_data_type (_tmp431_);
                                    _tmp433_ = vala_typesymbol_get_get_value_function (_tmp432_);
                                    _tmp434_ = _tmp433_;
                                    _tmp435_ = vala_ccode_identifier_new (_tmp434_);
                                    _tmp436_ = _tmp435_;
                                    _tmp437_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp436_);
                                    _tmp438_ = _tmp437_;
                                    _vala_ccode_node_unref0 (_tmp436_);
                                    _g_free0 (_tmp434_);
                                    cget_call = _tmp438_;
                                    _tmp439_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp440_ = g_strdup_printf ("dbus_%s", _tmp439_);
                                    _tmp441_ = _tmp440_;
                                    _tmp442_ = vala_ccode_identifier_new (_tmp441_);
                                    _tmp443_ = _tmp442_;
                                    _tmp444_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp443_, "values");
                                    _tmp445_ = _tmp444_;
                                    _tmp446_ = g_strdup_printf ("%i", i);
                                    _tmp447_ = _tmp446_;
                                    _tmp448_ = vala_ccode_constant_new (_tmp447_);
                                    _tmp449_ = _tmp448_;
                                    _tmp450_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp445_, (ValaCCodeExpression*) _tmp449_);
                                    _tmp451_ = _tmp450_;
                                    _tmp452_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp451_);
                                    _tmp453_ = _tmp452_;
                                    vala_ccode_function_call_add_argument (cget_call, (ValaCCodeExpression*) _tmp453_);
                                    _vala_ccode_node_unref0 (_tmp453_);
                                    _vala_ccode_node_unref0 (_tmp451_);
                                    _vala_ccode_node_unref0 (_tmp449_);
                                    _g_free0 (_tmp447_);
                                    _vala_ccode_node_unref0 (_tmp445_);
                                    _vala_ccode_node_unref0 (_tmp443_);
                                    _g_free0 (_tmp441_);
                                    _tmp454_ = _vala_ccode_node_ref0 (cget_call);
                                    converted_value = _tmp454_;
                                    _tmp455_ = vala_variable_get_variable_type ((ValaVariable*) f);
                                    _tmp456_ = vala_ccode_base_module_requires_copy ((ValaCCodeBaseModule*) self, _tmp455_);
                                    if (_tmp456_) {
                                          ValaDataType* _tmp457_ = NULL;
                                          ValaSourceReference* _tmp458_ = NULL;
                                          ValaCCodeExpression* _tmp459_ = NULL;
                                          ValaCCodeExpression* dupexpr;
                                          ValaCCodeFunctionCall* _tmp460_ = NULL;
                                          _tmp457_ = vala_variable_get_variable_type ((ValaVariable*) f);
                                          _tmp458_ = vala_code_node_get_source_reference ((ValaCodeNode*) expr);
                                          _tmp459_ = vala_ccode_base_module_get_dup_func_expression ((ValaCCodeBaseModule*) self, _tmp457_, _tmp458_, FALSE);
                                          dupexpr = _tmp459_;
                                          _tmp460_ = vala_ccode_function_call_new (dupexpr);
                                          _vala_ccode_node_unref0 (converted_value);
                                          converted_value = _tmp460_;
                                          vala_ccode_function_call_add_argument (converted_value, (ValaCCodeExpression*) cget_call);
                                          _vala_ccode_node_unref0 (dupexpr);
                                    }
                                    _tmp461_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp462_ = vala_ccode_identifier_new (_tmp461_);
                                    _tmp463_ = _tmp462_;
                                    _tmp464_ = vala_symbol_get_name ((ValaSymbol*) f);
                                    _tmp465_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp463_, _tmp464_);
                                    _tmp466_ = _tmp465_;
                                    _tmp467_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp466_, (ValaCCodeExpression*) converted_value, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                                    _tmp468_ = _tmp467_;
                                    _vala_ccode_node_unref0 (_tmp466_);
                                    _vala_ccode_node_unref0 (_tmp463_);
                                    assign = _tmp468_;
                                    _tmp469_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) assign);
                                    _tmp470_ = _tmp469_;
                                    vala_ccode_fragment_append (out_marshalling_fragment, (ValaCCodeNode*) _tmp470_);
                                    _vala_ccode_node_unref0 (_tmp470_);
                                    i++;
                                    _vala_ccode_node_unref0 (assign);
                                    _vala_ccode_node_unref0 (converted_value);
                                    _vala_ccode_node_unref0 (cget_call);
                                    _vala_code_node_unref0 (f);
                              }
                              _vala_iterable_unref0 (_f_list);
                        }
                        _tmp471_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp472_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp471_);
                        _tmp473_ = _tmp472_;
                        vala_ccode_function_call_add_argument (ccall, _tmp473_);
                        _vala_ccode_node_unref0 (_tmp473_);
                        _tmp474_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp475_ = g_strdup_printf ("dbus_%s", _tmp474_);
                        _tmp476_ = _tmp475_;
                        _tmp477_ = vala_ccode_identifier_new (_tmp476_);
                        _tmp478_ = _tmp477_;
                        _tmp479_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp478_);
                        _tmp480_ = _tmp479_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp480_);
                        _vala_ccode_node_unref0 (_tmp480_);
                        _vala_ccode_node_unref0 (_tmp478_);
                        _g_free0 (_tmp476_);
                        _vala_ccode_node_unref0 (_cdecl_);
                        _vala_code_node_unref0 (st);
                  } else {
                        ValaDataType* _tmp481_ = NULL;
                        ValaCCodeExpression* _tmp482_ = NULL;
                        ValaCCodeExpression* _tmp483_;
                        const gchar* _tmp484_ = NULL;
                        ValaCCodeIdentifier* _tmp485_ = NULL;
                        ValaCCodeIdentifier* _tmp486_;
                        _tmp481_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp482_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp481_);
                        _tmp483_ = _tmp482_;
                        vala_ccode_function_call_add_argument (ccall, _tmp483_);
                        _vala_ccode_node_unref0 (_tmp483_);
                        _tmp484_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp485_ = vala_ccode_identifier_new (_tmp484_);
                        _tmp486_ = _tmp485_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp486_);
                        _vala_ccode_node_unref0 (_tmp486_);
                  }
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp487_ = vala_method_get_return_type (method);
      if (!VALA_IS_VOID_TYPE (_tmp487_)) {
            ValaDataType* _tmp488_ = NULL;
            ValaCCodeExpression* _tmp489_ = NULL;
            ValaCCodeExpression* _tmp490_;
            ValaDataType* _tmp491_ = NULL;
            ValaDataType* _tmp492_;
            ValaArrayType* _tmp493_;
            ValaArrayType* array_type;
            gboolean _tmp494_ = FALSE;
            _tmp488_ = vala_method_get_return_type (method);
            _tmp489_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp488_);
            _tmp490_ = _tmp489_;
            vala_ccode_function_call_add_argument (ccall, _tmp490_);
            _vala_ccode_node_unref0 (_tmp490_);
            _tmp491_ = vala_method_get_return_type (method);
            _tmp492_ = _tmp491_;
            _tmp493_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp492_) ? ((ValaArrayType*) _tmp492_) : NULL);
            array_type = _tmp493_;
            if (array_type != NULL) {
                  ValaDataType* _tmp495_ = NULL;
                  ValaTypeSymbol* _tmp496_ = NULL;
                  ValaTypeSymbol* _tmp497_ = NULL;
                  _tmp495_ = vala_array_type_get_element_type (array_type);
                  _tmp496_ = vala_data_type_get_data_type (_tmp495_);
                  _tmp497_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->string_type);
                  _tmp494_ = _tmp496_ != _tmp497_;
            } else {
                  _tmp494_ = FALSE;
            }
            if (_tmp494_) {
                  ValaCCodeDeclaration* _cdecl_ = NULL;
                  gboolean _tmp498_;
                  ValaCCodeVariableDeclarator* _tmp501_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp502_;
                  ValaCCodeIdentifier* _tmp503_ = NULL;
                  ValaCCodeIdentifier* _tmp504_;
                  ValaCCodeUnaryExpression* _tmp505_ = NULL;
                  ValaCCodeUnaryExpression* _tmp506_;
                  ValaCCodeIdentifier* _tmp507_ = NULL;
                  ValaCCodeIdentifier* _tmp508_;
                  ValaCCodeExpressionStatement* _tmp509_ = NULL;
                  ValaCCodeExpressionStatement* _tmp510_;
                  ValaCCodeBlock* _tmp511_ = NULL;
                  ValaCCodeBlock* creturnblock;
                  ValaDataType* _tmp512_ = NULL;
                  ValaCCodeExpression* _tmp513_ = NULL;
                  ValaCCodeExpression* _tmp514_;
                  ValaCCodeReturnStatement* _tmp515_ = NULL;
                  ValaCCodeReturnStatement* _tmp516_;
                  ValaCCodeIdentifier* _tmp517_ = NULL;
                  ValaCCodeIdentifier* _tmp518_;
                  ValaCCodeUnaryExpression* _tmp519_ = NULL;
                  ValaCCodeUnaryExpression* _tmp520_;
                  ValaCCodeIfStatement* _tmp521_ = NULL;
                  ValaCCodeIfStatement* _tmp522_;
                  ValaCCodeIfStatement* cerrorif;
                  ValaCCodeIdentifier* _tmp523_ = NULL;
                  ValaCCodeIdentifier* _tmp524_;
                  ValaCCodeMemberAccess* _tmp525_ = NULL;
                  ValaCCodeMemberAccess* _tmp526_;
                  ValaCCodeMemberAccess* garray_length;
                  ValaCCodeIdentifier* _tmp527_ = NULL;
                  ValaCCodeIdentifier* _tmp528_;
                  ValaCCodeUnaryExpression* _tmp529_ = NULL;
                  ValaCCodeUnaryExpression* _tmp530_;
                  ValaCCodeUnaryExpression* result_length;
                  ValaCCodeAssignment* _tmp531_ = NULL;
                  ValaCCodeAssignment* assign;
                  ValaCCodeExpressionStatement* _tmp532_ = NULL;
                  ValaCCodeExpressionStatement* _tmp533_;
                  const gchar* _tmp534_ = NULL;
                  gboolean _tmp535_;
                  ValaCCodeIdentifier* _tmp536_ = NULL;
                  ValaCCodeIdentifier* _tmp537_;
                  ValaCCodeMemberAccess* _tmp538_ = NULL;
                  ValaCCodeMemberAccess* _tmp539_;
                  ValaDataType* _tmp540_ = NULL;
                  gchar* _tmp541_ = NULL;
                  gchar* _tmp542_;
                  ValaCCodeCastExpression* _tmp543_ = NULL;
                  ValaCCodeCastExpression* _tmp544_;
                  ValaCCodeReturnStatement* _tmp545_ = NULL;
                  ValaCCodeReturnStatement* _tmp546_;
                  _tmp498_ = vala_dbus_client_module_dbus_use_ptr_array (self, array_type);
                  if (_tmp498_) {
                        ValaCCodeDeclaration* _tmp499_ = NULL;
                        _tmp499_ = vala_ccode_declaration_new ("GPtrArray*");
                        _vala_ccode_node_unref0 (_cdecl_);
                        _cdecl_ = _tmp499_;
                  } else {
                        ValaCCodeDeclaration* _tmp500_ = NULL;
                        _tmp500_ = vala_ccode_declaration_new ("GArray*");
                        _vala_ccode_node_unref0 (_cdecl_);
                        _cdecl_ = _tmp500_;
                  }
                  _tmp501_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
                  _tmp502_ = _tmp501_;
                  vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp502_);
                  _vala_ccode_node_unref0 (_tmp502_);
                  vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
                  _tmp503_ = vala_ccode_identifier_new ("result");
                  _tmp504_ = _tmp503_;
                  _tmp505_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp504_);
                  _tmp506_ = _tmp505_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp506_);
                  _vala_ccode_node_unref0 (_tmp506_);
                  _vala_ccode_node_unref0 (_tmp504_);
                  _tmp507_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
                  _tmp508_ = _tmp507_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp508_);
                  _vala_ccode_node_unref0 (_tmp508_);
                  _tmp509_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                  _tmp510_ = _tmp509_;
                  vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp510_);
                  _vala_ccode_node_unref0 (_tmp510_);
                  _tmp511_ = vala_ccode_block_new ();
                  creturnblock = _tmp511_;
                  _tmp512_ = vala_method_get_return_type (method);
                  _tmp513_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp512_, FALSE);
                  _tmp514_ = _tmp513_;
                  _tmp515_ = vala_ccode_return_statement_new (_tmp514_);
                  _tmp516_ = _tmp515_;
                  vala_ccode_block_add_statement (creturnblock, (ValaCCodeNode*) _tmp516_);
                  _vala_ccode_node_unref0 (_tmp516_);
                  _vala_ccode_node_unref0 (_tmp514_);
                  _tmp517_ = vala_ccode_identifier_new ("error");
                  _tmp518_ = _tmp517_;
                  _tmp519_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp518_);
                  _tmp520_ = _tmp519_;
                  _tmp521_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp520_, (ValaCCodeStatement*) creturnblock, NULL);
                  _tmp522_ = _tmp521_;
                  _vala_ccode_node_unref0 (_tmp520_);
                  _vala_ccode_node_unref0 (_tmp518_);
                  cerrorif = _tmp522_;
                  vala_ccode_block_add_statement (block, (ValaCCodeNode*) cerrorif);
                  vala_ccode_block_add_statement (block, (ValaCCodeNode*) out_marshalling_fragment);
                  _tmp523_ = vala_ccode_identifier_new ("result");
                  _tmp524_ = _tmp523_;
                  _tmp525_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp524_, "len");
                  _tmp526_ = _tmp525_;
                  _vala_ccode_node_unref0 (_tmp524_);
                  garray_length = _tmp526_;
                  _tmp527_ = vala_ccode_identifier_new ("result_length1");
                  _tmp528_ = _tmp527_;
                  _tmp529_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp528_);
                  _tmp530_ = _tmp529_;
                  _vala_ccode_node_unref0 (_tmp528_);
                  result_length = _tmp530_;
                  _tmp531_ = vala_ccode_assignment_new ((ValaCCodeExpression*) result_length, (ValaCCodeExpression*) garray_length, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                  assign = _tmp531_;
                  _tmp532_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) assign);
                  _tmp533_ = _tmp532_;
                  vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp533_);
                  _vala_ccode_node_unref0 (_tmp533_);
                  _tmp535_ = vala_dbus_client_module_dbus_use_ptr_array (self, array_type);
                  if (_tmp535_) {
                        _tmp534_ = "pdata";
                  } else {
                        _tmp534_ = "data";
                  }
                  _tmp536_ = vala_ccode_identifier_new ("result");
                  _tmp537_ = _tmp536_;
                  _tmp538_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp537_, _tmp534_);
                  _tmp539_ = _tmp538_;
                  _tmp540_ = vala_method_get_return_type (method);
                  _tmp541_ = vala_data_type_get_cname (_tmp540_);
                  _tmp542_ = _tmp541_;
                  _tmp543_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp539_, _tmp542_);
                  _tmp544_ = _tmp543_;
                  _tmp545_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp544_);
                  _tmp546_ = _tmp545_;
                  vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp546_);
                  _vala_ccode_node_unref0 (_tmp546_);
                  _vala_ccode_node_unref0 (_tmp544_);
                  _g_free0 (_tmp542_);
                  _vala_ccode_node_unref0 (_tmp539_);
                  _vala_ccode_node_unref0 (_tmp537_);
                  _vala_ccode_node_unref0 (assign);
                  _vala_ccode_node_unref0 (result_length);
                  _vala_ccode_node_unref0 (garray_length);
                  _vala_ccode_node_unref0 (cerrorif);
                  _vala_ccode_node_unref0 (creturnblock);
                  _vala_ccode_node_unref0 (_cdecl_);
            } else {
                  ValaDataType* _tmp547_ = NULL;
                  gboolean _tmp548_;
                  _tmp547_ = vala_method_get_return_type (method);
                  _tmp548_ = vala_data_type_is_real_non_null_struct_type (_tmp547_);
                  if (_tmp548_) {
                        ValaDataType* _tmp549_ = NULL;
                        ValaTypeSymbol* _tmp550_ = NULL;
                        ValaStruct* _tmp551_;
                        ValaStruct* st;
                        gchar* _tmp552_ = NULL;
                        gchar* _tmp553_;
                        gboolean _tmp554_;
                        ValaCCodeBlock* _tmp612_ = NULL;
                        ValaCCodeBlock* creturnblock;
                        ValaCCodeReturnStatement* _tmp613_ = NULL;
                        ValaCCodeReturnStatement* _tmp614_;
                        ValaCCodeIdentifier* _tmp615_ = NULL;
                        ValaCCodeIdentifier* _tmp616_;
                        ValaCCodeUnaryExpression* _tmp617_ = NULL;
                        ValaCCodeUnaryExpression* _tmp618_;
                        ValaCCodeIfStatement* _tmp619_ = NULL;
                        ValaCCodeIfStatement* _tmp620_;
                        ValaCCodeIfStatement* cerrorif;
                        _tmp549_ = vala_method_get_return_type (method);
                        _tmp550_ = vala_data_type_get_data_type (_tmp549_);
                        _tmp551_ = _vala_code_node_ref0 (VALA_STRUCT (_tmp550_));
                        st = _tmp551_;
                        _tmp552_ = vala_symbol_get_full_name ((ValaSymbol*) st);
                        _tmp553_ = _tmp552_;
                        _tmp554_ = g_strcmp0 (_tmp553_, "GLib.Value") == 0;
                        _g_free0 (_tmp553_);
                        if (_tmp554_) {
                              ValaCCodeIdentifier* _tmp555_ = NULL;
                              ValaCCodeIdentifier* _tmp556_;
                              ValaCCodeIdentifier* _tmp557_ = NULL;
                              ValaCCodeIdentifier* _tmp558_;
                              ValaCCodeExpressionStatement* _tmp559_ = NULL;
                              ValaCCodeExpressionStatement* _tmp560_;
                              _tmp555_ = vala_ccode_identifier_new ("result");
                              _tmp556_ = _tmp555_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp556_);
                              _vala_ccode_node_unref0 (_tmp556_);
                              _tmp557_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
                              _tmp558_ = _tmp557_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp558_);
                              _vala_ccode_node_unref0 (_tmp558_);
                              _tmp559_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                              _tmp560_ = _tmp559_;
                              vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp560_);
                              _vala_ccode_node_unref0 (_tmp560_);
                        } else {
                              ValaCCodeDeclaration* _tmp561_ = NULL;
                              ValaCCodeDeclaration* _cdecl_;
                              ValaCCodeVariableDeclarator* _tmp562_ = NULL;
                              ValaCCodeVariableDeclarator* _tmp563_;
                              gint i;
                              ValaCCodeIdentifier* _tmp604_ = NULL;
                              ValaCCodeIdentifier* _tmp605_;
                              ValaCCodeUnaryExpression* _tmp606_ = NULL;
                              ValaCCodeUnaryExpression* _tmp607_;
                              ValaCCodeIdentifier* _tmp608_ = NULL;
                              ValaCCodeIdentifier* _tmp609_;
                              ValaCCodeExpressionStatement* _tmp610_ = NULL;
                              ValaCCodeExpressionStatement* _tmp611_;
                              _tmp561_ = vala_ccode_declaration_new ("GValueArray*");
                              _cdecl_ = _tmp561_;
                              _tmp562_ = vala_ccode_variable_declarator_new ("dbus_result", NULL, NULL);
                              _tmp563_ = _tmp562_;
                              vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp563_);
                              _vala_ccode_node_unref0 (_tmp563_);
                              vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
                              i = 0;
                              {
                                    ValaList* _tmp564_ = NULL;
                                    ValaList* _f_list;
                                    gint _tmp565_;
                                    gint _f_size;
                                    gint _f_index;
                                    _tmp564_ = vala_struct_get_fields (st);
                                    _f_list = _tmp564_;
                                    _tmp565_ = vala_collection_get_size ((ValaCollection*) _f_list);
                                    _f_size = _tmp565_;
                                    _f_index = -1;
                                    while (TRUE) {
                                          gpointer _tmp566_ = NULL;
                                          ValaField* f;
                                          ValaMemberBinding _tmp567_;
                                          ValaDataType* _tmp568_ = NULL;
                                          ValaTypeSymbol* _tmp569_ = NULL;
                                          gchar* _tmp570_ = NULL;
                                          gchar* _tmp571_;
                                          ValaCCodeIdentifier* _tmp572_ = NULL;
                                          ValaCCodeIdentifier* _tmp573_;
                                          ValaCCodeFunctionCall* _tmp574_ = NULL;
                                          ValaCCodeFunctionCall* _tmp575_;
                                          ValaCCodeFunctionCall* cget_call;
                                          ValaCCodeIdentifier* _tmp576_ = NULL;
                                          ValaCCodeIdentifier* _tmp577_;
                                          ValaCCodeMemberAccess* _tmp578_ = NULL;
                                          ValaCCodeMemberAccess* _tmp579_;
                                          gchar* _tmp580_ = NULL;
                                          gchar* _tmp581_;
                                          ValaCCodeConstant* _tmp582_ = NULL;
                                          ValaCCodeConstant* _tmp583_;
                                          ValaCCodeElementAccess* _tmp584_ = NULL;
                                          ValaCCodeElementAccess* _tmp585_;
                                          ValaCCodeUnaryExpression* _tmp586_ = NULL;
                                          ValaCCodeUnaryExpression* _tmp587_;
                                          ValaCCodeFunctionCall* _tmp588_;
                                          ValaCCodeFunctionCall* converted_value;
                                          ValaDataType* _tmp589_ = NULL;
                                          gboolean _tmp590_;
                                          ValaCCodeIdentifier* _tmp595_ = NULL;
                                          ValaCCodeIdentifier* _tmp596_;
                                          const gchar* _tmp597_ = NULL;
                                          ValaCCodeMemberAccess* _tmp598_ = NULL;
                                          ValaCCodeMemberAccess* _tmp599_;
                                          ValaCCodeAssignment* _tmp600_ = NULL;
                                          ValaCCodeAssignment* _tmp601_;
                                          ValaCCodeAssignment* assign;
                                          ValaCCodeExpressionStatement* _tmp602_ = NULL;
                                          ValaCCodeExpressionStatement* _tmp603_;
                                          _f_index = _f_index + 1;
                                          if (!(_f_index < _f_size)) {
                                                break;
                                          }
                                          _tmp566_ = vala_list_get (_f_list, _f_index);
                                          f = (ValaField*) _tmp566_;
                                          _tmp567_ = vala_field_get_binding (f);
                                          if (_tmp567_ != VALA_MEMBER_BINDING_INSTANCE) {
                                                _vala_code_node_unref0 (f);
                                                continue;
                                          }
                                          _tmp568_ = vala_variable_get_variable_type ((ValaVariable*) f);
                                          _tmp569_ = vala_data_type_get_data_type (_tmp568_);
                                          _tmp570_ = vala_typesymbol_get_get_value_function (_tmp569_);
                                          _tmp571_ = _tmp570_;
                                          _tmp572_ = vala_ccode_identifier_new (_tmp571_);
                                          _tmp573_ = _tmp572_;
                                          _tmp574_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp573_);
                                          _tmp575_ = _tmp574_;
                                          _vala_ccode_node_unref0 (_tmp573_);
                                          _g_free0 (_tmp571_);
                                          cget_call = _tmp575_;
                                          _tmp576_ = vala_ccode_identifier_new ("dbus_result");
                                          _tmp577_ = _tmp576_;
                                          _tmp578_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp577_, "values");
                                          _tmp579_ = _tmp578_;
                                          _tmp580_ = g_strdup_printf ("%i", i);
                                          _tmp581_ = _tmp580_;
                                          _tmp582_ = vala_ccode_constant_new (_tmp581_);
                                          _tmp583_ = _tmp582_;
                                          _tmp584_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp579_, (ValaCCodeExpression*) _tmp583_);
                                          _tmp585_ = _tmp584_;
                                          _tmp586_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp585_);
                                          _tmp587_ = _tmp586_;
                                          vala_ccode_function_call_add_argument (cget_call, (ValaCCodeExpression*) _tmp587_);
                                          _vala_ccode_node_unref0 (_tmp587_);
                                          _vala_ccode_node_unref0 (_tmp585_);
                                          _vala_ccode_node_unref0 (_tmp583_);
                                          _g_free0 (_tmp581_);
                                          _vala_ccode_node_unref0 (_tmp579_);
                                          _vala_ccode_node_unref0 (_tmp577_);
                                          _tmp588_ = _vala_ccode_node_ref0 (cget_call);
                                          converted_value = _tmp588_;
                                          _tmp589_ = vala_variable_get_variable_type ((ValaVariable*) f);
                                          _tmp590_ = vala_ccode_base_module_requires_copy ((ValaCCodeBaseModule*) self, _tmp589_);
                                          if (_tmp590_) {
                                                ValaDataType* _tmp591_ = NULL;
                                                ValaSourceReference* _tmp592_ = NULL;
                                                ValaCCodeExpression* _tmp593_ = NULL;
                                                ValaCCodeExpression* dupexpr;
                                                ValaCCodeFunctionCall* _tmp594_ = NULL;
                                                _tmp591_ = vala_variable_get_variable_type ((ValaVariable*) f);
                                                _tmp592_ = vala_code_node_get_source_reference ((ValaCodeNode*) expr);
                                                _tmp593_ = vala_ccode_base_module_get_dup_func_expression ((ValaCCodeBaseModule*) self, _tmp591_, _tmp592_, FALSE);
                                                dupexpr = _tmp593_;
                                                _tmp594_ = vala_ccode_function_call_new (dupexpr);
                                                _vala_ccode_node_unref0 (converted_value);
                                                converted_value = _tmp594_;
                                                vala_ccode_function_call_add_argument (converted_value, (ValaCCodeExpression*) cget_call);
                                                _vala_ccode_node_unref0 (dupexpr);
                                          }
                                          _tmp595_ = vala_ccode_identifier_new ("result");
                                          _tmp596_ = _tmp595_;
                                          _tmp597_ = vala_symbol_get_name ((ValaSymbol*) f);
                                          _tmp598_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp596_, _tmp597_);
                                          _tmp599_ = _tmp598_;
                                          _tmp600_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp599_, (ValaCCodeExpression*) converted_value, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                                          _tmp601_ = _tmp600_;
                                          _vala_ccode_node_unref0 (_tmp599_);
                                          _vala_ccode_node_unref0 (_tmp596_);
                                          assign = _tmp601_;
                                          _tmp602_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) assign);
                                          _tmp603_ = _tmp602_;
                                          vala_ccode_fragment_append (out_marshalling_fragment, (ValaCCodeNode*) _tmp603_);
                                          _vala_ccode_node_unref0 (_tmp603_);
                                          i++;
                                          _vala_ccode_node_unref0 (assign);
                                          _vala_ccode_node_unref0 (converted_value);
                                          _vala_ccode_node_unref0 (cget_call);
                                          _vala_code_node_unref0 (f);
                                    }
                                    _vala_iterable_unref0 (_f_list);
                              }
                              _tmp604_ = vala_ccode_identifier_new ("dbus_result");
                              _tmp605_ = _tmp604_;
                              _tmp606_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp605_);
                              _tmp607_ = _tmp606_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp607_);
                              _vala_ccode_node_unref0 (_tmp607_);
                              _vala_ccode_node_unref0 (_tmp605_);
                              _tmp608_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
                              _tmp609_ = _tmp608_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp609_);
                              _vala_ccode_node_unref0 (_tmp609_);
                              _tmp610_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                              _tmp611_ = _tmp610_;
                              vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp611_);
                              _vala_ccode_node_unref0 (_tmp611_);
                              _vala_ccode_node_unref0 (_cdecl_);
                        }
                        _tmp612_ = vala_ccode_block_new ();
                        creturnblock = _tmp612_;
                        _tmp613_ = vala_ccode_return_statement_new (NULL);
                        _tmp614_ = _tmp613_;
                        vala_ccode_block_add_statement (creturnblock, (ValaCCodeNode*) _tmp614_);
                        _vala_ccode_node_unref0 (_tmp614_);
                        _tmp615_ = vala_ccode_identifier_new ("error");
                        _tmp616_ = _tmp615_;
                        _tmp617_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp616_);
                        _tmp618_ = _tmp617_;
                        _tmp619_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp618_, (ValaCCodeStatement*) creturnblock, NULL);
                        _tmp620_ = _tmp619_;
                        _vala_ccode_node_unref0 (_tmp618_);
                        _vala_ccode_node_unref0 (_tmp616_);
                        cerrorif = _tmp620_;
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) cerrorif);
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) out_marshalling_fragment);
                        _vala_ccode_node_unref0 (cerrorif);
                        _vala_ccode_node_unref0 (creturnblock);
                        _vala_code_node_unref0 (st);
                  } else {
                        ValaDataType* _tmp621_ = NULL;
                        gchar* _tmp622_ = NULL;
                        gchar* _tmp623_;
                        ValaCCodeDeclaration* _tmp624_ = NULL;
                        ValaCCodeDeclaration* _tmp625_;
                        ValaCCodeDeclaration* _cdecl_;
                        ValaCCodeVariableDeclarator* _tmp626_ = NULL;
                        ValaCCodeVariableDeclarator* _tmp627_;
                        ValaCCodeIdentifier* _tmp628_ = NULL;
                        ValaCCodeIdentifier* _tmp629_;
                        ValaCCodeUnaryExpression* _tmp630_ = NULL;
                        ValaCCodeUnaryExpression* _tmp631_;
                        ValaCCodeIdentifier* _tmp632_ = NULL;
                        ValaCCodeIdentifier* _tmp633_;
                        ValaCCodeExpressionStatement* _tmp634_ = NULL;
                        ValaCCodeExpressionStatement* _tmp635_;
                        ValaCCodeBlock* _tmp636_ = NULL;
                        ValaCCodeBlock* creturnblock;
                        ValaDataType* _tmp637_ = NULL;
                        ValaCCodeExpression* _tmp638_ = NULL;
                        ValaCCodeExpression* _tmp639_;
                        ValaCCodeReturnStatement* _tmp640_ = NULL;
                        ValaCCodeReturnStatement* _tmp641_;
                        ValaCCodeIdentifier* _tmp642_ = NULL;
                        ValaCCodeIdentifier* _tmp643_;
                        ValaCCodeUnaryExpression* _tmp644_ = NULL;
                        ValaCCodeUnaryExpression* _tmp645_;
                        ValaCCodeIfStatement* _tmp646_ = NULL;
                        ValaCCodeIfStatement* _tmp647_;
                        ValaCCodeIfStatement* cerrorif;
                        ValaCCodeIdentifier* _tmp661_ = NULL;
                        ValaCCodeIdentifier* _tmp662_;
                        ValaCCodeReturnStatement* _tmp663_ = NULL;
                        ValaCCodeReturnStatement* _tmp664_;
                        _tmp621_ = vala_method_get_return_type (method);
                        _tmp622_ = vala_data_type_get_cname (_tmp621_);
                        _tmp623_ = _tmp622_;
                        _tmp624_ = vala_ccode_declaration_new (_tmp623_);
                        _tmp625_ = _tmp624_;
                        _g_free0 (_tmp623_);
                        _cdecl_ = _tmp625_;
                        _tmp626_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
                        _tmp627_ = _tmp626_;
                        vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp627_);
                        _vala_ccode_node_unref0 (_tmp627_);
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
                        _tmp628_ = vala_ccode_identifier_new ("result");
                        _tmp629_ = _tmp628_;
                        _tmp630_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp629_);
                        _tmp631_ = _tmp630_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp631_);
                        _vala_ccode_node_unref0 (_tmp631_);
                        _vala_ccode_node_unref0 (_tmp629_);
                        _tmp632_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
                        _tmp633_ = _tmp632_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp633_);
                        _vala_ccode_node_unref0 (_tmp633_);
                        _tmp634_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                        _tmp635_ = _tmp634_;
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp635_);
                        _vala_ccode_node_unref0 (_tmp635_);
                        _tmp636_ = vala_ccode_block_new ();
                        creturnblock = _tmp636_;
                        _tmp637_ = vala_method_get_return_type (method);
                        _tmp638_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp637_, FALSE);
                        _tmp639_ = _tmp638_;
                        _tmp640_ = vala_ccode_return_statement_new (_tmp639_);
                        _tmp641_ = _tmp640_;
                        vala_ccode_block_add_statement (creturnblock, (ValaCCodeNode*) _tmp641_);
                        _vala_ccode_node_unref0 (_tmp641_);
                        _vala_ccode_node_unref0 (_tmp639_);
                        _tmp642_ = vala_ccode_identifier_new ("error");
                        _tmp643_ = _tmp642_;
                        _tmp644_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp643_);
                        _tmp645_ = _tmp644_;
                        _tmp646_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp645_, (ValaCCodeStatement*) creturnblock, NULL);
                        _tmp647_ = _tmp646_;
                        _vala_ccode_node_unref0 (_tmp645_);
                        _vala_ccode_node_unref0 (_tmp643_);
                        cerrorif = _tmp647_;
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) cerrorif);
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) out_marshalling_fragment);
                        if (array_type != NULL) {
                              ValaCCodeIdentifier* _tmp648_ = NULL;
                              ValaCCodeIdentifier* _tmp649_;
                              ValaCCodeFunctionCall* _tmp650_ = NULL;
                              ValaCCodeFunctionCall* _tmp651_;
                              ValaCCodeFunctionCall* cstrvlen;
                              ValaCCodeIdentifier* _tmp652_ = NULL;
                              ValaCCodeIdentifier* _tmp653_;
                              ValaCCodeIdentifier* _tmp654_ = NULL;
                              ValaCCodeIdentifier* _tmp655_;
                              ValaCCodeUnaryExpression* _tmp656_ = NULL;
                              ValaCCodeUnaryExpression* _tmp657_;
                              ValaCCodeUnaryExpression* result_length;
                              ValaCCodeAssignment* _tmp658_ = NULL;
                              ValaCCodeAssignment* assign;
                              ValaCCodeExpressionStatement* _tmp659_ = NULL;
                              ValaCCodeExpressionStatement* _tmp660_;
                              _tmp648_ = vala_ccode_identifier_new ("g_strv_length");
                              _tmp649_ = _tmp648_;
                              _tmp650_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp649_);
                              _tmp651_ = _tmp650_;
                              _vala_ccode_node_unref0 (_tmp649_);
                              cstrvlen = _tmp651_;
                              _tmp652_ = vala_ccode_identifier_new ("result");
                              _tmp653_ = _tmp652_;
                              vala_ccode_function_call_add_argument (cstrvlen, (ValaCCodeExpression*) _tmp653_);
                              _vala_ccode_node_unref0 (_tmp653_);
                              _tmp654_ = vala_ccode_identifier_new ("result_length1");
                              _tmp655_ = _tmp654_;
                              _tmp656_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp655_);
                              _tmp657_ = _tmp656_;
                              _vala_ccode_node_unref0 (_tmp655_);
                              result_length = _tmp657_;
                              _tmp658_ = vala_ccode_assignment_new ((ValaCCodeExpression*) result_length, (ValaCCodeExpression*) cstrvlen, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                              assign = _tmp658_;
                              _tmp659_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) assign);
                              _tmp660_ = _tmp659_;
                              vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp660_);
                              _vala_ccode_node_unref0 (_tmp660_);
                              _vala_ccode_node_unref0 (assign);
                              _vala_ccode_node_unref0 (result_length);
                              _vala_ccode_node_unref0 (cstrvlen);
                        }
                        _tmp661_ = vala_ccode_identifier_new ("result");
                        _tmp662_ = _tmp661_;
                        _tmp663_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp662_);
                        _tmp664_ = _tmp663_;
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp664_);
                        _vala_ccode_node_unref0 (_tmp664_);
                        _vala_ccode_node_unref0 (_tmp662_);
                        _vala_ccode_node_unref0 (cerrorif);
                        _vala_ccode_node_unref0 (creturnblock);
                        _vala_ccode_node_unref0 (_cdecl_);
                  }
            }
            _vala_code_node_unref0 (array_type);
      } else {
            ValaCCodeIdentifier* _tmp665_ = NULL;
            ValaCCodeIdentifier* _tmp666_;
            ValaCCodeExpressionStatement* _tmp667_ = NULL;
            ValaCCodeExpressionStatement* _tmp668_;
            ValaCCodeBlock* _tmp669_ = NULL;
            ValaCCodeBlock* creturnblock;
            ValaCCodeReturnStatement* _tmp670_ = NULL;
            ValaCCodeReturnStatement* _tmp671_;
            ValaCCodeIdentifier* _tmp672_ = NULL;
            ValaCCodeIdentifier* _tmp673_;
            ValaCCodeUnaryExpression* _tmp674_ = NULL;
            ValaCCodeUnaryExpression* _tmp675_;
            ValaCCodeIfStatement* _tmp676_ = NULL;
            ValaCCodeIfStatement* _tmp677_;
            ValaCCodeIfStatement* cerrorif;
            _tmp665_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
            _tmp666_ = _tmp665_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp666_);
            _vala_ccode_node_unref0 (_tmp666_);
            _tmp667_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
            _tmp668_ = _tmp667_;
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp668_);
            _vala_ccode_node_unref0 (_tmp668_);
            _tmp669_ = vala_ccode_block_new ();
            creturnblock = _tmp669_;
            _tmp670_ = vala_ccode_return_statement_new (NULL);
            _tmp671_ = _tmp670_;
            vala_ccode_block_add_statement (creturnblock, (ValaCCodeNode*) _tmp671_);
            _vala_ccode_node_unref0 (_tmp671_);
            _tmp672_ = vala_ccode_identifier_new ("error");
            _tmp673_ = _tmp672_;
            _tmp674_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp673_);
            _tmp675_ = _tmp674_;
            _tmp676_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp675_, (ValaCCodeStatement*) creturnblock, NULL);
            _tmp677_ = _tmp676_;
            _vala_ccode_node_unref0 (_tmp675_);
            _vala_ccode_node_unref0 (_tmp673_);
            cerrorif = _tmp677_;
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) cerrorif);
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) out_marshalling_fragment);
            _vala_ccode_node_unref0 (cerrorif);
            _vala_ccode_node_unref0 (creturnblock);
      }
      _vala_ccode_node_unref0 (out_marshalling_fragment);
      _vala_code_node_unref0 (callback);
      _vala_ccode_node_unref0 (ccall);
      _vala_code_node_unref0 (expr);
      _vala_code_node_unref0 (dynamic_method);
}


static ValaCCodeExpression* vala_dbus_client_module_real_get_dbus_g_type (ValaGSignalModule* base, ValaDataType* data_type) {
      ValaDBusClientModule * self;
      ValaCCodeExpression* result = NULL;
      self = (ValaDBusClientModule*) base;
      g_return_val_if_fail (data_type != NULL, NULL);
      if (VALA_IS_ARRAY_TYPE (data_type)) {
            ValaDataType* _tmp0_;
            ValaArrayType* _tmp1_;
            ValaArrayType* array_type;
            ValaDataType* _tmp2_ = NULL;
            ValaTypeSymbol* _tmp3_ = NULL;
            ValaTypeSymbol* _tmp4_ = NULL;
            ValaCCodeIdentifier* _tmp6_ = NULL;
            ValaCCodeIdentifier* _tmp7_;
            ValaCCodeFunctionCall* _tmp8_ = NULL;
            ValaCCodeFunctionCall* _tmp9_;
            ValaCCodeFunctionCall* carray_type;
            gboolean _tmp10_;
            ValaDataType* _tmp15_ = NULL;
            ValaCCodeExpression* _tmp16_ = NULL;
            ValaCCodeExpression* _tmp17_;
            _tmp0_ = data_type;
            _tmp1_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp0_) ? ((ValaArrayType*) _tmp0_) : NULL);
            array_type = _tmp1_;
            _tmp2_ = vala_array_type_get_element_type (array_type);
            _tmp3_ = vala_data_type_get_data_type (_tmp2_);
            _tmp4_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->string_type);
            if (_tmp3_ == _tmp4_) {
                  ValaCCodeIdentifier* _tmp5_ = NULL;
                  _tmp5_ = vala_ccode_identifier_new ("G_TYPE_STRV");
                  result = (ValaCCodeExpression*) _tmp5_;
                  _vala_code_node_unref0 (array_type);
                  return result;
            }
            _tmp6_ = vala_ccode_identifier_new ("dbus_g_type_get_collection");
            _tmp7_ = _tmp6_;
            _tmp8_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp7_);
            _tmp9_ = _tmp8_;
            _vala_ccode_node_unref0 (_tmp7_);
            carray_type = _tmp9_;
            _tmp10_ = vala_dbus_client_module_dbus_use_ptr_array (self, array_type);
            if (_tmp10_) {
                  ValaCCodeConstant* _tmp11_ = NULL;
                  ValaCCodeConstant* _tmp12_;
                  _tmp11_ = vala_ccode_constant_new ("\"GPtrArray\"");
                  _tmp12_ = _tmp11_;
                  vala_ccode_function_call_add_argument (carray_type, (ValaCCodeExpression*) _tmp12_);
                  _vala_ccode_node_unref0 (_tmp12_);
            } else {
                  ValaCCodeConstant* _tmp13_ = NULL;
                  ValaCCodeConstant* _tmp14_;
                  _tmp13_ = vala_ccode_constant_new ("\"GArray\"");
                  _tmp14_ = _tmp13_;
                  vala_ccode_function_call_add_argument (carray_type, (ValaCCodeExpression*) _tmp14_);
                  _vala_ccode_node_unref0 (_tmp14_);
            }
            _tmp15_ = vala_array_type_get_element_type (array_type);
            _tmp16_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp15_);
            _tmp17_ = _tmp16_;
            vala_ccode_function_call_add_argument (carray_type, _tmp17_);
            _vala_ccode_node_unref0 (_tmp17_);
            result = (ValaCCodeExpression*) carray_type;
            _vala_code_node_unref0 (array_type);
            return result;
      } else {
            ValaTypeSymbol* _tmp18_ = NULL;
            _tmp18_ = vala_data_type_get_data_type (data_type);
            if (VALA_IS_ENUM (_tmp18_)) {
                  ValaTypeSymbol* _tmp19_ = NULL;
                  ValaEnum* _tmp20_;
                  ValaEnum* en;
                  gboolean _tmp21_;
                  _tmp19_ = vala_data_type_get_data_type (data_type);
                  _tmp20_ = _vala_code_node_ref0 (VALA_ENUM (_tmp19_));
                  en = _tmp20_;
                  _tmp21_ = vala_enum_get_is_flags (en);
                  if (_tmp21_) {
                        ValaCCodeIdentifier* _tmp22_ = NULL;
                        _tmp22_ = vala_ccode_identifier_new ("G_TYPE_UINT");
                        result = (ValaCCodeExpression*) _tmp22_;
                        _vala_code_node_unref0 (en);
                        return result;
                  } else {
                        ValaCCodeIdentifier* _tmp23_ = NULL;
                        _tmp23_ = vala_ccode_identifier_new ("G_TYPE_INT");
                        result = (ValaCCodeExpression*) _tmp23_;
                        _vala_code_node_unref0 (en);
                        return result;
                  }
                  _vala_code_node_unref0 (en);
            } else {
                  ValaTypeSymbol* _tmp24_ = NULL;
                  _tmp24_ = vala_data_type_get_data_type (data_type);
                  if (_tmp24_ == NULL) {
                        gchar* _tmp25_ = NULL;
                        gchar* _tmp26_;
                        ValaCCodeIdentifier* _tmp27_ = NULL;
                        _tmp25_ = vala_code_node_to_string ((ValaCodeNode*) data_type);
                        _tmp26_ = _tmp25_;
                        g_critical ("valadbusclientmodule.vala:569: Internal error during DBus type generat" \
"ion with: %s", _tmp26_);
                        _g_free0 (_tmp26_);
                        _tmp27_ = vala_ccode_identifier_new ("G_TYPE_NONE");
                        result = (ValaCCodeExpression*) _tmp27_;
                        return result;
                  } else {
                        ValaTypeSymbol* _tmp28_ = NULL;
                        gchar* _tmp29_ = NULL;
                        gchar* _tmp30_;
                        gboolean _tmp31_;
                        _tmp28_ = vala_data_type_get_data_type (data_type);
                        _tmp29_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp28_);
                        _tmp30_ = _tmp29_;
                        _tmp31_ = g_strcmp0 (_tmp30_, "GLib.HashTable") == 0;
                        _g_free0 (_tmp30_);
                        if (_tmp31_) {
                              ValaCCodeIdentifier* _tmp32_ = NULL;
                              ValaCCodeIdentifier* _tmp33_;
                              ValaCCodeFunctionCall* _tmp34_ = NULL;
                              ValaCCodeFunctionCall* _tmp35_;
                              ValaCCodeFunctionCall* cmap_type;
                              ValaList* _tmp36_ = NULL;
                              ValaList* type_args;
                              ValaCCodeConstant* _tmp37_ = NULL;
                              ValaCCodeConstant* _tmp38_;
                              _tmp32_ = vala_ccode_identifier_new ("dbus_g_type_get_map");
                              _tmp33_ = _tmp32_;
                              _tmp34_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp33_);
                              _tmp35_ = _tmp34_;
                              _vala_ccode_node_unref0 (_tmp33_);
                              cmap_type = _tmp35_;
                              _tmp36_ = vala_data_type_get_type_arguments (data_type);
                              type_args = _tmp36_;
                              _tmp37_ = vala_ccode_constant_new ("\"GHashTable\"");
                              _tmp38_ = _tmp37_;
                              vala_ccode_function_call_add_argument (cmap_type, (ValaCCodeExpression*) _tmp38_);
                              _vala_ccode_node_unref0 (_tmp38_);
                              {
                                    ValaList* _tmp39_;
                                    ValaList* _type_arg_list;
                                    gint _tmp40_;
                                    gint _type_arg_size;
                                    gint _type_arg_index;
                                    _tmp39_ = _vala_iterable_ref0 (type_args);
                                    _type_arg_list = _tmp39_;
                                    _tmp40_ = vala_collection_get_size ((ValaCollection*) _type_arg_list);
                                    _type_arg_size = _tmp40_;
                                    _type_arg_index = -1;
                                    while (TRUE) {
                                          gpointer _tmp41_ = NULL;
                                          ValaDataType* type_arg;
                                          ValaCCodeExpression* _tmp42_ = NULL;
                                          ValaCCodeExpression* _tmp43_;
                                          _type_arg_index = _type_arg_index + 1;
                                          if (!(_type_arg_index < _type_arg_size)) {
                                                break;
                                          }
                                          _tmp41_ = vala_list_get (_type_arg_list, _type_arg_index);
                                          type_arg = (ValaDataType*) _tmp41_;
                                          _tmp42_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, type_arg);
                                          _tmp43_ = _tmp42_;
                                          vala_ccode_function_call_add_argument (cmap_type, _tmp43_);
                                          _vala_ccode_node_unref0 (_tmp43_);
                                          _vala_code_node_unref0 (type_arg);
                                    }
                                    _vala_iterable_unref0 (_type_arg_list);
                              }
                              result = (ValaCCodeExpression*) cmap_type;
                              _vala_iterable_unref0 (type_args);
                              return result;
                        } else {
                              gchar* _tmp44_ = NULL;
                              gchar* _tmp45_;
                              gboolean _tmp46_;
                              gboolean _tmp47_;
                              _tmp44_ = vala_dbus_module_get_type_signature (data_type);
                              _tmp45_ = _tmp44_;
                              _tmp46_ = g_str_has_prefix (_tmp45_, "(");
                              _tmp47_ = _tmp46_;
                              _g_free0 (_tmp45_);
                              if (_tmp47_) {
                                    ValaTypeSymbol* _tmp48_ = NULL;
                                    ValaStruct* _tmp49_;
                                    ValaStruct* st;
                                    ValaCCodeIdentifier* _tmp50_ = NULL;
                                    ValaCCodeIdentifier* _tmp51_;
                                    ValaCCodeFunctionCall* _tmp52_ = NULL;
                                    ValaCCodeFunctionCall* _tmp53_;
                                    ValaCCodeFunctionCall* type_call;
                                    ValaCCodeConstant* _tmp54_ = NULL;
                                    ValaCCodeConstant* _tmp55_;
                                    ValaCCodeConstant* _tmp63_ = NULL;
                                    ValaCCodeConstant* _tmp64_;
                                    _tmp48_ = vala_data_type_get_data_type (data_type);
                                    _tmp49_ = _vala_code_node_ref0 (VALA_STRUCT (_tmp48_));
                                    st = _tmp49_;
                                    _tmp50_ = vala_ccode_identifier_new ("dbus_g_type_get_struct");
                                    _tmp51_ = _tmp50_;
                                    _tmp52_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp51_);
                                    _tmp53_ = _tmp52_;
                                    _vala_ccode_node_unref0 (_tmp51_);
                                    type_call = _tmp53_;
                                    _tmp54_ = vala_ccode_constant_new ("\"GValueArray\"");
                                    _tmp55_ = _tmp54_;
                                    vala_ccode_function_call_add_argument (type_call, (ValaCCodeExpression*) _tmp55_);
                                    _vala_ccode_node_unref0 (_tmp55_);
                                    {
                                          ValaList* _tmp56_ = NULL;
                                          ValaList* _f_list;
                                          gint _tmp57_;
                                          gint _f_size;
                                          gint _f_index;
                                          _tmp56_ = vala_struct_get_fields (st);
                                          _f_list = _tmp56_;
                                          _tmp57_ = vala_collection_get_size ((ValaCollection*) _f_list);
                                          _f_size = _tmp57_;
                                          _f_index = -1;
                                          while (TRUE) {
                                                gpointer _tmp58_ = NULL;
                                                ValaField* f;
                                                ValaMemberBinding _tmp59_;
                                                ValaDataType* _tmp60_ = NULL;
                                                ValaCCodeExpression* _tmp61_ = NULL;
                                                ValaCCodeExpression* _tmp62_;
                                                _f_index = _f_index + 1;
                                                if (!(_f_index < _f_size)) {
                                                      break;
                                                }
                                                _tmp58_ = vala_list_get (_f_list, _f_index);
                                                f = (ValaField*) _tmp58_;
                                                _tmp59_ = vala_field_get_binding (f);
                                                if (_tmp59_ != VALA_MEMBER_BINDING_INSTANCE) {
                                                      _vala_code_node_unref0 (f);
                                                      continue;
                                                }
                                                _tmp60_ = vala_variable_get_variable_type ((ValaVariable*) f);
                                                _tmp61_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp60_);
                                                _tmp62_ = _tmp61_;
                                                vala_ccode_function_call_add_argument (type_call, _tmp62_);
                                                _vala_ccode_node_unref0 (_tmp62_);
                                                _vala_code_node_unref0 (f);
                                          }
                                          _vala_iterable_unref0 (_f_list);
                                    }
                                    _tmp63_ = vala_ccode_constant_new ("G_TYPE_INVALID");
                                    _tmp64_ = _tmp63_;
                                    vala_ccode_function_call_add_argument (type_call, (ValaCCodeExpression*) _tmp64_);
                                    _vala_ccode_node_unref0 (_tmp64_);
                                    result = (ValaCCodeExpression*) type_call;
                                    _vala_code_node_unref0 (st);
                                    return result;
                              } else {
                                    ValaTypeSymbol* _tmp65_ = NULL;
                                    gchar* _tmp66_ = NULL;
                                    gchar* _tmp67_;
                                    ValaCCodeIdentifier* _tmp68_ = NULL;
                                    ValaCCodeExpression* _tmp69_;
                                    _tmp65_ = vala_data_type_get_data_type (data_type);
                                    _tmp66_ = vala_typesymbol_get_type_id (_tmp65_);
                                    _tmp67_ = _tmp66_;
                                    _tmp68_ = vala_ccode_identifier_new (_tmp67_);
                                    _tmp69_ = (ValaCCodeExpression*) _tmp68_;
                                    _g_free0 (_tmp67_);
                                    result = _tmp69_;
                                    return result;
                              }
                        }
                  }
            }
      }
}


gboolean vala_dbus_client_module_dbus_use_ptr_array (ValaDBusClientModule* self, ValaArrayType* array_type) {
      gboolean result = FALSE;
      ValaDataType* _tmp0_ = NULL;
      ValaTypeSymbol* _tmp1_ = NULL;
      ValaTypeSymbol* _tmp2_ = NULL;
      g_return_val_if_fail (self != NULL, FALSE);
      g_return_val_if_fail (array_type != NULL, FALSE);
      _tmp0_ = vala_array_type_get_element_type (array_type);
      _tmp1_ = vala_data_type_get_data_type (_tmp0_);
      _tmp2_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->string_type);
      if (_tmp1_ == _tmp2_) {
            result = FALSE;
            return result;
      } else {
            gboolean _tmp3_ = FALSE;
            gboolean _tmp4_ = FALSE;
            gboolean _tmp5_ = FALSE;
            gboolean _tmp6_ = FALSE;
            gboolean _tmp7_ = FALSE;
            gboolean _tmp8_ = FALSE;
            gboolean _tmp9_ = FALSE;
            gboolean _tmp10_ = FALSE;
            gboolean _tmp11_ = FALSE;
            gboolean _tmp12_ = FALSE;
            gboolean _tmp13_ = FALSE;
            gboolean _tmp14_ = FALSE;
            gboolean _tmp15_ = FALSE;
            ValaDataType* _tmp16_ = NULL;
            ValaTypeSymbol* _tmp17_ = NULL;
            ValaTypeSymbol* _tmp18_ = NULL;
            _tmp16_ = vala_array_type_get_element_type (array_type);
            _tmp17_ = vala_data_type_get_data_type (_tmp16_);
            _tmp18_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->bool_type);
            if (_tmp17_ == _tmp18_) {
                  _tmp15_ = TRUE;
            } else {
                  ValaDataType* _tmp19_ = NULL;
                  ValaTypeSymbol* _tmp20_ = NULL;
                  ValaTypeSymbol* _tmp21_ = NULL;
                  _tmp19_ = vala_array_type_get_element_type (array_type);
                  _tmp20_ = vala_data_type_get_data_type (_tmp19_);
                  _tmp21_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->char_type);
                  _tmp15_ = _tmp20_ == _tmp21_;
            }
            if (_tmp15_) {
                  _tmp14_ = TRUE;
            } else {
                  ValaDataType* _tmp22_ = NULL;
                  ValaTypeSymbol* _tmp23_ = NULL;
                  ValaTypeSymbol* _tmp24_ = NULL;
                  _tmp22_ = vala_array_type_get_element_type (array_type);
                  _tmp23_ = vala_data_type_get_data_type (_tmp22_);
                  _tmp24_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->uchar_type);
                  _tmp14_ = _tmp23_ == _tmp24_;
            }
            if (_tmp14_) {
                  _tmp13_ = TRUE;
            } else {
                  ValaDataType* _tmp25_ = NULL;
                  ValaTypeSymbol* _tmp26_ = NULL;
                  ValaTypeSymbol* _tmp27_ = NULL;
                  _tmp25_ = vala_array_type_get_element_type (array_type);
                  _tmp26_ = vala_data_type_get_data_type (_tmp25_);
                  _tmp27_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->int_type);
                  _tmp13_ = _tmp26_ == _tmp27_;
            }
            if (_tmp13_) {
                  _tmp12_ = TRUE;
            } else {
                  ValaDataType* _tmp28_ = NULL;
                  ValaTypeSymbol* _tmp29_ = NULL;
                  ValaTypeSymbol* _tmp30_ = NULL;
                  _tmp28_ = vala_array_type_get_element_type (array_type);
                  _tmp29_ = vala_data_type_get_data_type (_tmp28_);
                  _tmp30_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->uint_type);
                  _tmp12_ = _tmp29_ == _tmp30_;
            }
            if (_tmp12_) {
                  _tmp11_ = TRUE;
            } else {
                  ValaDataType* _tmp31_ = NULL;
                  ValaTypeSymbol* _tmp32_ = NULL;
                  ValaTypeSymbol* _tmp33_ = NULL;
                  _tmp31_ = vala_array_type_get_element_type (array_type);
                  _tmp32_ = vala_data_type_get_data_type (_tmp31_);
                  _tmp33_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->long_type);
                  _tmp11_ = _tmp32_ == _tmp33_;
            }
            if (_tmp11_) {
                  _tmp10_ = TRUE;
            } else {
                  ValaDataType* _tmp34_ = NULL;
                  ValaTypeSymbol* _tmp35_ = NULL;
                  ValaTypeSymbol* _tmp36_ = NULL;
                  _tmp34_ = vala_array_type_get_element_type (array_type);
                  _tmp35_ = vala_data_type_get_data_type (_tmp34_);
                  _tmp36_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->ulong_type);
                  _tmp10_ = _tmp35_ == _tmp36_;
            }
            if (_tmp10_) {
                  _tmp9_ = TRUE;
            } else {
                  ValaDataType* _tmp37_ = NULL;
                  ValaTypeSymbol* _tmp38_ = NULL;
                  ValaTypeSymbol* _tmp39_ = NULL;
                  _tmp37_ = vala_array_type_get_element_type (array_type);
                  _tmp38_ = vala_data_type_get_data_type (_tmp37_);
                  _tmp39_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->int8_type);
                  _tmp9_ = _tmp38_ == _tmp39_;
            }
            if (_tmp9_) {
                  _tmp8_ = TRUE;
            } else {
                  ValaDataType* _tmp40_ = NULL;
                  ValaTypeSymbol* _tmp41_ = NULL;
                  ValaTypeSymbol* _tmp42_ = NULL;
                  _tmp40_ = vala_array_type_get_element_type (array_type);
                  _tmp41_ = vala_data_type_get_data_type (_tmp40_);
                  _tmp42_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->uint8_type);
                  _tmp8_ = _tmp41_ == _tmp42_;
            }
            if (_tmp8_) {
                  _tmp7_ = TRUE;
            } else {
                  ValaDataType* _tmp43_ = NULL;
                  ValaTypeSymbol* _tmp44_ = NULL;
                  ValaTypeSymbol* _tmp45_ = NULL;
                  _tmp43_ = vala_array_type_get_element_type (array_type);
                  _tmp44_ = vala_data_type_get_data_type (_tmp43_);
                  _tmp45_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->int32_type);
                  _tmp7_ = _tmp44_ == _tmp45_;
            }
            if (_tmp7_) {
                  _tmp6_ = TRUE;
            } else {
                  ValaDataType* _tmp46_ = NULL;
                  ValaTypeSymbol* _tmp47_ = NULL;
                  ValaTypeSymbol* _tmp48_ = NULL;
                  _tmp46_ = vala_array_type_get_element_type (array_type);
                  _tmp47_ = vala_data_type_get_data_type (_tmp46_);
                  _tmp48_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->uint32_type);
                  _tmp6_ = _tmp47_ == _tmp48_;
            }
            if (_tmp6_) {
                  _tmp5_ = TRUE;
            } else {
                  ValaDataType* _tmp49_ = NULL;
                  ValaTypeSymbol* _tmp50_ = NULL;
                  ValaTypeSymbol* _tmp51_ = NULL;
                  _tmp49_ = vala_array_type_get_element_type (array_type);
                  _tmp50_ = vala_data_type_get_data_type (_tmp49_);
                  _tmp51_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->int64_type);
                  _tmp5_ = _tmp50_ == _tmp51_;
            }
            if (_tmp5_) {
                  _tmp4_ = TRUE;
            } else {
                  ValaDataType* _tmp52_ = NULL;
                  ValaTypeSymbol* _tmp53_ = NULL;
                  ValaTypeSymbol* _tmp54_ = NULL;
                  _tmp52_ = vala_array_type_get_element_type (array_type);
                  _tmp53_ = vala_data_type_get_data_type (_tmp52_);
                  _tmp54_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->uint64_type);
                  _tmp4_ = _tmp53_ == _tmp54_;
            }
            if (_tmp4_) {
                  _tmp3_ = TRUE;
            } else {
                  ValaDataType* _tmp55_ = NULL;
                  ValaTypeSymbol* _tmp56_ = NULL;
                  ValaTypeSymbol* _tmp57_ = NULL;
                  _tmp55_ = vala_array_type_get_element_type (array_type);
                  _tmp56_ = vala_data_type_get_data_type (_tmp55_);
                  _tmp57_ = vala_data_type_get_data_type (((ValaCCodeBaseModule*) self)->double_type);
                  _tmp3_ = _tmp56_ == _tmp57_;
            }
            if (_tmp3_) {
                  result = FALSE;
                  return result;
            } else {
                  result = TRUE;
                  return result;
            }
      }
}


static gchar* vala_dbus_client_module_real_get_dynamic_property_getter_cname (ValaCCodeBaseModule* base, ValaDynamicProperty* prop) {
      ValaDBusClientModule * self;
      gchar* result = NULL;
      ValaDataType* _tmp0_ = NULL;
      ValaTypeSymbol* _tmp1_ = NULL;
      const gchar* _tmp3_ = NULL;
      gint _tmp4_;
      gchar* _tmp5_ = NULL;
      gchar* getter_cname;
      ValaDataType* _tmp6_ = NULL;
      gchar* _tmp7_ = NULL;
      gchar* _tmp8_;
      gboolean _tmp9_;
      ValaDataType* _tmp17_ = NULL;
      gchar* _tmp18_ = NULL;
      gchar* _tmp19_;
      ValaCCodeFunction* _tmp20_ = NULL;
      ValaCCodeFunction* _tmp21_;
      ValaCCodeFunction* func;
      ValaCCodeModifiers _tmp22_;
      ValaDataType* _tmp23_ = NULL;
      gchar* _tmp24_ = NULL;
      gchar* _tmp25_;
      ValaCCodeParameter* _tmp26_ = NULL;
      ValaCCodeParameter* _tmp27_;
      ValaCCodeBlock* _tmp28_ = NULL;
      ValaCCodeBlock* block;
      self = (ValaDBusClientModule*) base;
      g_return_val_if_fail (prop != NULL, NULL);
      _tmp0_ = vala_dynamic_property_get_dynamic_type (prop);
      _tmp1_ = vala_data_type_get_data_type (_tmp0_);
      if (_tmp1_ != ((ValaCCodeBaseModule*) self)->dbus_object_type) {
            gchar* _tmp2_ = NULL;
            _tmp2_ = VALA_CCODE_BASE_MODULE_CLASS (vala_dbus_client_module_parent_class)->get_dynamic_property_getter_cname ((ValaCCodeBaseModule*) VALA_DBUS_MODULE (self), prop);
            result = _tmp2_;
            return result;
      }
      _tmp3_ = vala_symbol_get_name ((ValaSymbol*) prop);
      _tmp4_ = self->priv->dynamic_property_id;
      self->priv->dynamic_property_id = _tmp4_ + 1;
      _tmp5_ = g_strdup_printf ("_dynamic_get_%s%d", _tmp3_, _tmp4_);
      getter_cname = _tmp5_;
      _tmp6_ = vala_property_get_property_type ((ValaProperty*) prop);
      _tmp7_ = vala_dbus_module_get_type_signature (_tmp6_);
      _tmp8_ = _tmp7_;
      _tmp9_ = _tmp8_ == NULL;
      _g_free0 (_tmp8_);
      if (_tmp9_) {
            ValaDataType* _tmp10_ = NULL;
            ValaSourceReference* _tmp11_ = NULL;
            ValaDataType* _tmp12_ = NULL;
            gchar* _tmp13_ = NULL;
            gchar* _tmp14_;
            gchar* _tmp15_ = NULL;
            gchar* _tmp16_;
            _tmp10_ = vala_property_get_property_type ((ValaProperty*) prop);
            _tmp11_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp10_);
            _tmp12_ = vala_property_get_property_type ((ValaProperty*) prop);
            _tmp13_ = vala_code_node_to_string ((ValaCodeNode*) _tmp12_);
            _tmp14_ = _tmp13_;
            _tmp15_ = g_strdup_printf ("D-Bus serialization of type `%s' is not supported", _tmp14_);
            _tmp16_ = _tmp15_;
            vala_report_error (_tmp11_, _tmp16_);
            _g_free0 (_tmp16_);
            _g_free0 (_tmp14_);
            result = getter_cname;
            return result;
      }
      _tmp17_ = vala_property_get_property_type ((ValaProperty*) prop);
      _tmp18_ = vala_data_type_get_cname (_tmp17_);
      _tmp19_ = _tmp18_;
      _tmp20_ = vala_ccode_function_new (getter_cname, _tmp19_);
      _tmp21_ = _tmp20_;
      _g_free0 (_tmp19_);
      func = _tmp21_;
      _tmp22_ = vala_ccode_function_get_modifiers (func);
      vala_ccode_function_set_modifiers (func, _tmp22_ | (VALA_CCODE_MODIFIERS_STATIC | VALA_CCODE_MODIFIERS_INLINE));
      _tmp23_ = vala_dynamic_property_get_dynamic_type (prop);
      _tmp24_ = vala_data_type_get_cname (_tmp23_);
      _tmp25_ = _tmp24_;
      _tmp26_ = vala_ccode_parameter_new ("obj", _tmp25_);
      _tmp27_ = _tmp26_;
      vala_ccode_function_add_parameter (func, _tmp27_);
      _vala_ccode_node_unref0 (_tmp27_);
      _g_free0 (_tmp25_);
      _tmp28_ = vala_ccode_block_new ();
      block = _tmp28_;
      vala_dbus_client_module_generate_dbus_property_getter_wrapper (self, prop, block);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, func);
      vala_ccode_function_set_block (func, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, func);
      result = getter_cname;
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (func);
      return result;
}


static gchar* vala_dbus_client_module_real_get_dynamic_property_setter_cname (ValaCCodeBaseModule* base, ValaDynamicProperty* prop) {
      ValaDBusClientModule * self;
      gchar* result = NULL;
      ValaDataType* _tmp0_ = NULL;
      ValaTypeSymbol* _tmp1_ = NULL;
      const gchar* _tmp3_ = NULL;
      gint _tmp4_;
      gchar* _tmp5_ = NULL;
      gchar* setter_cname;
      ValaDataType* _tmp6_ = NULL;
      gchar* _tmp7_ = NULL;
      gchar* _tmp8_;
      gboolean _tmp9_;
      ValaCCodeFunction* _tmp17_ = NULL;
      ValaCCodeFunction* func;
      ValaCCodeModifiers _tmp18_;
      ValaDataType* _tmp19_ = NULL;
      gchar* _tmp20_ = NULL;
      gchar* _tmp21_;
      ValaCCodeParameter* _tmp22_ = NULL;
      ValaCCodeParameter* _tmp23_;
      ValaDataType* _tmp24_ = NULL;
      gchar* _tmp25_ = NULL;
      gchar* _tmp26_;
      ValaCCodeParameter* _tmp27_ = NULL;
      ValaCCodeParameter* _tmp28_;
      ValaCCodeBlock* _tmp29_ = NULL;
      ValaCCodeBlock* block;
      self = (ValaDBusClientModule*) base;
      g_return_val_if_fail (prop != NULL, NULL);
      _tmp0_ = vala_dynamic_property_get_dynamic_type (prop);
      _tmp1_ = vala_data_type_get_data_type (_tmp0_);
      if (_tmp1_ != ((ValaCCodeBaseModule*) self)->dbus_object_type) {
            gchar* _tmp2_ = NULL;
            _tmp2_ = VALA_CCODE_BASE_MODULE_CLASS (vala_dbus_client_module_parent_class)->get_dynamic_property_setter_cname ((ValaCCodeBaseModule*) VALA_DBUS_MODULE (self), prop);
            result = _tmp2_;
            return result;
      }
      _tmp3_ = vala_symbol_get_name ((ValaSymbol*) prop);
      _tmp4_ = self->priv->dynamic_property_id;
      self->priv->dynamic_property_id = _tmp4_ + 1;
      _tmp5_ = g_strdup_printf ("_dynamic_set_%s%d", _tmp3_, _tmp4_);
      setter_cname = _tmp5_;
      _tmp6_ = vala_property_get_property_type ((ValaProperty*) prop);
      _tmp7_ = vala_dbus_module_get_type_signature (_tmp6_);
      _tmp8_ = _tmp7_;
      _tmp9_ = _tmp8_ == NULL;
      _g_free0 (_tmp8_);
      if (_tmp9_) {
            ValaDataType* _tmp10_ = NULL;
            ValaSourceReference* _tmp11_ = NULL;
            ValaDataType* _tmp12_ = NULL;
            gchar* _tmp13_ = NULL;
            gchar* _tmp14_;
            gchar* _tmp15_ = NULL;
            gchar* _tmp16_;
            _tmp10_ = vala_property_get_property_type ((ValaProperty*) prop);
            _tmp11_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp10_);
            _tmp12_ = vala_property_get_property_type ((ValaProperty*) prop);
            _tmp13_ = vala_code_node_to_string ((ValaCodeNode*) _tmp12_);
            _tmp14_ = _tmp13_;
            _tmp15_ = g_strdup_printf ("D-Bus serialization of type `%s' is not supported", _tmp14_);
            _tmp16_ = _tmp15_;
            vala_report_error (_tmp11_, _tmp16_);
            _g_free0 (_tmp16_);
            _g_free0 (_tmp14_);
            result = setter_cname;
            return result;
      }
      _tmp17_ = vala_ccode_function_new (setter_cname, "void");
      func = _tmp17_;
      _tmp18_ = vala_ccode_function_get_modifiers (func);
      vala_ccode_function_set_modifiers (func, _tmp18_ | (VALA_CCODE_MODIFIERS_STATIC | VALA_CCODE_MODIFIERS_INLINE));
      _tmp19_ = vala_dynamic_property_get_dynamic_type (prop);
      _tmp20_ = vala_data_type_get_cname (_tmp19_);
      _tmp21_ = _tmp20_;
      _tmp22_ = vala_ccode_parameter_new ("obj", _tmp21_);
      _tmp23_ = _tmp22_;
      vala_ccode_function_add_parameter (func, _tmp23_);
      _vala_ccode_node_unref0 (_tmp23_);
      _g_free0 (_tmp21_);
      _tmp24_ = vala_property_get_property_type ((ValaProperty*) prop);
      _tmp25_ = vala_data_type_get_cname (_tmp24_);
      _tmp26_ = _tmp25_;
      _tmp27_ = vala_ccode_parameter_new ("value", _tmp26_);
      _tmp28_ = _tmp27_;
      vala_ccode_function_add_parameter (func, _tmp28_);
      _vala_ccode_node_unref0 (_tmp28_);
      _g_free0 (_tmp26_);
      _tmp29_ = vala_ccode_block_new ();
      block = _tmp29_;
      vala_dbus_client_module_generate_dbus_property_setter_wrapper (self, prop, block);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, func);
      vala_ccode_function_set_block (func, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, func);
      result = setter_cname;
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (func);
      return result;
}


static void vala_dbus_client_module_create_dbus_property_proxy (ValaDBusClientModule* self, ValaDynamicProperty* node, ValaCCodeBlock* block) {
      ValaCCodeIdentifier* _tmp0_ = NULL;
      ValaCCodeIdentifier* _tmp1_;
      ValaCCodeFunctionCall* _tmp2_ = NULL;
      ValaCCodeFunctionCall* _tmp3_;
      ValaCCodeFunctionCall* prop_proxy_call;
      ValaCCodeIdentifier* _tmp4_ = NULL;
      ValaCCodeIdentifier* _tmp5_;
      ValaCCodeConstant* _tmp6_ = NULL;
      ValaCCodeConstant* _tmp7_;
      ValaCCodeConstant* _tmp8_ = NULL;
      ValaCCodeConstant* _tmp9_;
      ValaCCodeDeclaration* _tmp10_ = NULL;
      ValaCCodeDeclaration* prop_proxy_decl;
      ValaCCodeVariableDeclarator* _tmp11_ = NULL;
      ValaCCodeVariableDeclarator* _tmp12_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (node != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_ccode_identifier_new ("dbus_g_proxy_new_from_proxy");
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp1_);
      _tmp3_ = _tmp2_;
      _vala_ccode_node_unref0 (_tmp1_);
      prop_proxy_call = _tmp3_;
      _tmp4_ = vala_ccode_identifier_new ("obj");
      _tmp5_ = _tmp4_;
      vala_ccode_function_call_add_argument (prop_proxy_call, (ValaCCodeExpression*) _tmp5_);
      _vala_ccode_node_unref0 (_tmp5_);
      _tmp6_ = vala_ccode_constant_new ("DBUS_INTERFACE_PROPERTIES");
      _tmp7_ = _tmp6_;
      vala_ccode_function_call_add_argument (prop_proxy_call, (ValaCCodeExpression*) _tmp7_);
      _vala_ccode_node_unref0 (_tmp7_);
      _tmp8_ = vala_ccode_constant_new ("NULL");
      _tmp9_ = _tmp8_;
      vala_ccode_function_call_add_argument (prop_proxy_call, (ValaCCodeExpression*) _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _tmp10_ = vala_ccode_declaration_new ("DBusGProxy*");
      prop_proxy_decl = _tmp10_;
      _tmp11_ = vala_ccode_variable_declarator_new ("property_proxy", (ValaCCodeExpression*) prop_proxy_call, NULL);
      _tmp12_ = _tmp11_;
      vala_ccode_declaration_add_declarator (prop_proxy_decl, (ValaCCodeDeclarator*) _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) prop_proxy_decl);
      _vala_ccode_node_unref0 (prop_proxy_decl);
      _vala_ccode_node_unref0 (prop_proxy_call);
}


static void vala_dbus_client_module_generate_dbus_property_getter_wrapper (ValaDBusClientModule* self, ValaDynamicProperty* node, ValaCCodeBlock* block) {
      ValaCCodeInitializerList* _tmp0_ = NULL;
      ValaCCodeInitializerList* cvalinit;
      ValaCCodeConstant* _tmp1_ = NULL;
      ValaCCodeConstant* _tmp2_;
      ValaCCodeDeclaration* _tmp3_ = NULL;
      ValaCCodeDeclaration* cval_decl;
      ValaCCodeVariableDeclarator* _tmp4_ = NULL;
      ValaCCodeVariableDeclarator* _tmp5_;
      ValaCCodeIdentifier* _tmp6_ = NULL;
      ValaCCodeIdentifier* _tmp7_;
      ValaCCodeUnaryExpression* _tmp8_ = NULL;
      ValaCCodeUnaryExpression* _tmp9_;
      ValaCCodeUnaryExpression* val_ptr;
      ValaDataType* _tmp10_ = NULL;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      ValaCCodeDeclaration* _tmp13_ = NULL;
      ValaCCodeDeclaration* _tmp14_;
      ValaCCodeDeclaration* _cdecl_;
      ValaCCodeVariableDeclarator* _tmp15_ = NULL;
      ValaCCodeVariableDeclarator* _tmp16_;
      ValaCCodeIdentifier* _tmp17_ = NULL;
      ValaCCodeIdentifier* _tmp18_;
      ValaCCodeFunctionCall* _tmp19_ = NULL;
      ValaCCodeFunctionCall* _tmp20_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp21_ = NULL;
      ValaCCodeIdentifier* _tmp22_;
      ValaCCodeConstant* _tmp23_ = NULL;
      ValaCCodeConstant* _tmp24_;
      ValaCCodeConstant* _tmp25_ = NULL;
      ValaCCodeConstant* _tmp26_;
      ValaCCodeIdentifier* _tmp27_ = NULL;
      ValaCCodeIdentifier* _tmp28_;
      ValaCCodeIdentifier* _tmp29_ = NULL;
      ValaCCodeIdentifier* _tmp30_;
      ValaCCodeFunctionCall* _tmp31_ = NULL;
      ValaCCodeFunctionCall* _tmp32_;
      ValaCCodeFunctionCall* get_iface;
      ValaCCodeIdentifier* _tmp33_ = NULL;
      ValaCCodeIdentifier* _tmp34_;
      ValaCCodeIdentifier* _tmp35_ = NULL;
      ValaCCodeIdentifier* _tmp36_;
      const gchar* _tmp37_ = NULL;
      gchar* _tmp38_ = NULL;
      gchar* _tmp39_;
      gchar* _tmp40_ = NULL;
      gchar* _tmp41_;
      ValaCCodeConstant* _tmp42_ = NULL;
      ValaCCodeConstant* _tmp43_;
      ValaCCodeIdentifier* _tmp44_ = NULL;
      ValaCCodeIdentifier* _tmp45_;
      ValaCCodeIdentifier* _tmp46_ = NULL;
      ValaCCodeIdentifier* _tmp47_;
      ValaCCodeIdentifier* _tmp48_ = NULL;
      ValaCCodeIdentifier* _tmp49_;
      ValaCCodeExpressionStatement* _tmp50_ = NULL;
      ValaCCodeExpressionStatement* _tmp51_;
      ValaCCodeIdentifier* _tmp52_ = NULL;
      ValaCCodeIdentifier* _tmp53_;
      ValaCCodeFunctionCall* _tmp54_ = NULL;
      ValaCCodeFunctionCall* _tmp55_;
      ValaCCodeFunctionCall* prop_proxy_unref;
      ValaCCodeIdentifier* _tmp56_ = NULL;
      ValaCCodeIdentifier* _tmp57_;
      ValaCCodeExpressionStatement* _tmp58_ = NULL;
      ValaCCodeExpressionStatement* _tmp59_;
      ValaDataType* _tmp60_ = NULL;
      ValaTypeSymbol* _tmp61_ = NULL;
      gchar* _tmp62_ = NULL;
      gchar* _tmp63_;
      ValaCCodeIdentifier* _tmp64_ = NULL;
      ValaCCodeIdentifier* _tmp65_;
      ValaCCodeFunctionCall* _tmp66_ = NULL;
      ValaCCodeFunctionCall* _tmp67_;
      ValaCCodeFunctionCall* cget_call;
      ValaCCodeIdentifier* _tmp68_ = NULL;
      ValaCCodeIdentifier* _tmp69_;
      ValaCCodeAssignment* _tmp70_ = NULL;
      ValaCCodeAssignment* _tmp71_;
      ValaCCodeAssignment* assign;
      ValaCCodeExpressionStatement* _tmp72_ = NULL;
      ValaCCodeExpressionStatement* _tmp73_;
      ValaCCodeIdentifier* _tmp74_ = NULL;
      ValaCCodeIdentifier* _tmp75_;
      ValaCCodeReturnStatement* _tmp76_ = NULL;
      ValaCCodeReturnStatement* _tmp77_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (node != NULL);
      g_return_if_fail (block != NULL);
      vala_dbus_client_module_create_dbus_property_proxy (self, node, block);
      _tmp0_ = vala_ccode_initializer_list_new ();
      cvalinit = _tmp0_;
      _tmp1_ = vala_ccode_constant_new ("0");
      _tmp2_ = _tmp1_;
      vala_ccode_initializer_list_append (cvalinit, (ValaCCodeExpression*) _tmp2_);
      _vala_ccode_node_unref0 (_tmp2_);
      _tmp3_ = vala_ccode_declaration_new ("GValue");
      cval_decl = _tmp3_;
      _tmp4_ = vala_ccode_variable_declarator_new_zero ("gvalue", (ValaCCodeExpression*) cvalinit, NULL);
      _tmp5_ = _tmp4_;
      vala_ccode_declaration_add_declarator (cval_decl, (ValaCCodeDeclarator*) _tmp5_);
      _vala_ccode_node_unref0 (_tmp5_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) cval_decl);
      _tmp6_ = vala_ccode_identifier_new ("gvalue");
      _tmp7_ = _tmp6_;
      _tmp8_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp7_);
      _tmp9_ = _tmp8_;
      _vala_ccode_node_unref0 (_tmp7_);
      val_ptr = _tmp9_;
      _tmp10_ = vala_property_get_property_type ((ValaProperty*) node);
      _tmp11_ = vala_data_type_get_cname (_tmp10_);
      _tmp12_ = _tmp11_;
      _tmp13_ = vala_ccode_declaration_new (_tmp12_);
      _tmp14_ = _tmp13_;
      _g_free0 (_tmp12_);
      _cdecl_ = _tmp14_;
      _tmp15_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
      _tmp16_ = _tmp15_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp17_ = vala_ccode_identifier_new ("dbus_g_proxy_call");
      _tmp18_ = _tmp17_;
      _tmp19_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp18_);
      _tmp20_ = _tmp19_;
      _vala_ccode_node_unref0 (_tmp18_);
      ccall = _tmp20_;
      _tmp21_ = vala_ccode_identifier_new ("property_proxy");
      _tmp22_ = _tmp21_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp22_);
      _vala_ccode_node_unref0 (_tmp22_);
      _tmp23_ = vala_ccode_constant_new ("\"Get\"");
      _tmp24_ = _tmp23_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_ccode_constant_new ("NULL");
      _tmp26_ = _tmp25_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      _tmp27_ = vala_ccode_identifier_new ("G_TYPE_STRING");
      _tmp28_ = _tmp27_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp28_);
      _vala_ccode_node_unref0 (_tmp28_);
      _tmp29_ = vala_ccode_identifier_new ("dbus_g_proxy_get_interface");
      _tmp30_ = _tmp29_;
      _tmp31_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp30_);
      _tmp32_ = _tmp31_;
      _vala_ccode_node_unref0 (_tmp30_);
      get_iface = _tmp32_;
      _tmp33_ = vala_ccode_identifier_new ("obj");
      _tmp34_ = _tmp33_;
      vala_ccode_function_call_add_argument (get_iface, (ValaCCodeExpression*) _tmp34_);
      _vala_ccode_node_unref0 (_tmp34_);
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) get_iface);
      _tmp35_ = vala_ccode_identifier_new ("G_TYPE_STRING");
      _tmp36_ = _tmp35_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      _tmp37_ = vala_symbol_get_name ((ValaSymbol*) node);
      _tmp38_ = vala_dbus_client_module_get_dynamic_dbus_name (self, _tmp37_);
      _tmp39_ = _tmp38_;
      _tmp40_ = g_strdup_printf ("\"%s\"", _tmp39_);
      _tmp41_ = _tmp40_;
      _tmp42_ = vala_ccode_constant_new (_tmp41_);
      _tmp43_ = _tmp42_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp43_);
      _vala_ccode_node_unref0 (_tmp43_);
      _g_free0 (_tmp41_);
      _g_free0 (_tmp39_);
      _tmp44_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
      _tmp45_ = _tmp44_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp45_);
      _vala_ccode_node_unref0 (_tmp45_);
      _tmp46_ = vala_ccode_identifier_new ("G_TYPE_VALUE");
      _tmp47_ = _tmp46_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp47_);
      _vala_ccode_node_unref0 (_tmp47_);
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) val_ptr);
      _tmp48_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
      _tmp49_ = _tmp48_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp49_);
      _vala_ccode_node_unref0 (_tmp49_);
      _tmp50_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
      _tmp51_ = _tmp50_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp51_);
      _vala_ccode_node_unref0 (_tmp51_);
      _tmp52_ = vala_ccode_identifier_new ("g_object_unref");
      _tmp53_ = _tmp52_;
      _tmp54_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp53_);
      _tmp55_ = _tmp54_;
      _vala_ccode_node_unref0 (_tmp53_);
      prop_proxy_unref = _tmp55_;
      _tmp56_ = vala_ccode_identifier_new ("property_proxy");
      _tmp57_ = _tmp56_;
      vala_ccode_function_call_add_argument (prop_proxy_unref, (ValaCCodeExpression*) _tmp57_);
      _vala_ccode_node_unref0 (_tmp57_);
      _tmp58_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) prop_proxy_unref);
      _tmp59_ = _tmp58_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp59_);
      _vala_ccode_node_unref0 (_tmp59_);
      _tmp60_ = vala_property_get_property_type ((ValaProperty*) node);
      _tmp61_ = vala_data_type_get_data_type (_tmp60_);
      _tmp62_ = vala_typesymbol_get_get_value_function (_tmp61_);
      _tmp63_ = _tmp62_;
      _tmp64_ = vala_ccode_identifier_new (_tmp63_);
      _tmp65_ = _tmp64_;
      _tmp66_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp65_);
      _tmp67_ = _tmp66_;
      _vala_ccode_node_unref0 (_tmp65_);
      _g_free0 (_tmp63_);
      cget_call = _tmp67_;
      vala_ccode_function_call_add_argument (cget_call, (ValaCCodeExpression*) val_ptr);
      _tmp68_ = vala_ccode_identifier_new ("result");
      _tmp69_ = _tmp68_;
      _tmp70_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp69_, (ValaCCodeExpression*) cget_call, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp71_ = _tmp70_;
      _vala_ccode_node_unref0 (_tmp69_);
      assign = _tmp71_;
      _tmp72_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) assign);
      _tmp73_ = _tmp72_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp73_);
      _vala_ccode_node_unref0 (_tmp73_);
      _tmp74_ = vala_ccode_identifier_new ("result");
      _tmp75_ = _tmp74_;
      _tmp76_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp75_);
      _tmp77_ = _tmp76_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp77_);
      _vala_ccode_node_unref0 (_tmp77_);
      _vala_ccode_node_unref0 (_tmp75_);
      _vala_ccode_node_unref0 (assign);
      _vala_ccode_node_unref0 (cget_call);
      _vala_ccode_node_unref0 (prop_proxy_unref);
      _vala_ccode_node_unref0 (get_iface);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (_cdecl_);
      _vala_ccode_node_unref0 (val_ptr);
      _vala_ccode_node_unref0 (cval_decl);
      _vala_ccode_node_unref0 (cvalinit);
}


static void vala_dbus_client_module_generate_dbus_property_setter_wrapper (ValaDBusClientModule* self, ValaDynamicProperty* node, ValaCCodeBlock* block) {
      ValaCCodeInitializerList* _tmp0_ = NULL;
      ValaCCodeInitializerList* cvalinit;
      ValaCCodeConstant* _tmp1_ = NULL;
      ValaCCodeConstant* _tmp2_;
      ValaCCodeDeclaration* _tmp3_ = NULL;
      ValaCCodeDeclaration* cval_decl;
      ValaCCodeVariableDeclarator* _tmp4_ = NULL;
      ValaCCodeVariableDeclarator* _tmp5_;
      ValaCCodeIdentifier* _tmp6_ = NULL;
      ValaCCodeIdentifier* _tmp7_;
      ValaCCodeUnaryExpression* _tmp8_ = NULL;
      ValaCCodeUnaryExpression* _tmp9_;
      ValaCCodeUnaryExpression* val_ptr;
      ValaCCodeIdentifier* _tmp10_ = NULL;
      ValaCCodeIdentifier* _tmp11_;
      ValaCCodeFunctionCall* _tmp12_ = NULL;
      ValaCCodeFunctionCall* _tmp13_;
      ValaCCodeFunctionCall* cinit_call;
      ValaDataType* _tmp14_ = NULL;
      ValaTypeSymbol* _tmp15_ = NULL;
      gchar* _tmp16_ = NULL;
      gchar* _tmp17_;
      ValaCCodeIdentifier* _tmp18_ = NULL;
      ValaCCodeIdentifier* _tmp19_;
      ValaCCodeExpressionStatement* _tmp20_ = NULL;
      ValaCCodeExpressionStatement* _tmp21_;
      ValaDataType* _tmp22_ = NULL;
      ValaTypeSymbol* _tmp23_ = NULL;
      gchar* _tmp24_ = NULL;
      gchar* _tmp25_;
      ValaCCodeIdentifier* _tmp26_ = NULL;
      ValaCCodeIdentifier* _tmp27_;
      ValaCCodeFunctionCall* _tmp28_ = NULL;
      ValaCCodeFunctionCall* _tmp29_;
      ValaCCodeFunctionCall* cset_call;
      ValaCCodeIdentifier* _tmp30_ = NULL;
      ValaCCodeIdentifier* _tmp31_;
      ValaCCodeExpressionStatement* _tmp32_ = NULL;
      ValaCCodeExpressionStatement* _tmp33_;
      ValaCCodeIdentifier* _tmp34_ = NULL;
      ValaCCodeIdentifier* _tmp35_;
      ValaCCodeFunctionCall* _tmp36_ = NULL;
      ValaCCodeFunctionCall* _tmp37_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp38_ = NULL;
      ValaCCodeIdentifier* _tmp39_;
      ValaCCodeConstant* _tmp40_ = NULL;
      ValaCCodeConstant* _tmp41_;
      ValaCCodeConstant* _tmp42_ = NULL;
      ValaCCodeConstant* _tmp43_;
      ValaCCodeIdentifier* _tmp44_ = NULL;
      ValaCCodeIdentifier* _tmp45_;
      ValaCCodeIdentifier* _tmp46_ = NULL;
      ValaCCodeIdentifier* _tmp47_;
      ValaCCodeFunctionCall* _tmp48_ = NULL;
      ValaCCodeFunctionCall* _tmp49_;
      ValaCCodeFunctionCall* get_iface;
      ValaCCodeIdentifier* _tmp50_ = NULL;
      ValaCCodeIdentifier* _tmp51_;
      ValaCCodeIdentifier* _tmp52_ = NULL;
      ValaCCodeIdentifier* _tmp53_;
      const gchar* _tmp54_ = NULL;
      gchar* _tmp55_ = NULL;
      gchar* _tmp56_;
      gchar* _tmp57_ = NULL;
      gchar* _tmp58_;
      ValaCCodeConstant* _tmp59_ = NULL;
      ValaCCodeConstant* _tmp60_;
      ValaCCodeIdentifier* _tmp61_ = NULL;
      ValaCCodeIdentifier* _tmp62_;
      ValaCCodeIdentifier* _tmp63_ = NULL;
      ValaCCodeIdentifier* _tmp64_;
      ValaCCodeIdentifier* _tmp65_ = NULL;
      ValaCCodeIdentifier* _tmp66_;
      ValaCCodeExpressionStatement* _tmp67_ = NULL;
      ValaCCodeExpressionStatement* _tmp68_;
      ValaCCodeIdentifier* _tmp69_ = NULL;
      ValaCCodeIdentifier* _tmp70_;
      ValaCCodeFunctionCall* _tmp71_ = NULL;
      ValaCCodeFunctionCall* _tmp72_;
      ValaCCodeFunctionCall* prop_proxy_unref;
      ValaCCodeIdentifier* _tmp73_ = NULL;
      ValaCCodeIdentifier* _tmp74_;
      ValaCCodeExpressionStatement* _tmp75_ = NULL;
      ValaCCodeExpressionStatement* _tmp76_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (node != NULL);
      g_return_if_fail (block != NULL);
      vala_dbus_client_module_create_dbus_property_proxy (self, node, block);
      _tmp0_ = vala_ccode_initializer_list_new ();
      cvalinit = _tmp0_;
      _tmp1_ = vala_ccode_constant_new ("0");
      _tmp2_ = _tmp1_;
      vala_ccode_initializer_list_append (cvalinit, (ValaCCodeExpression*) _tmp2_);
      _vala_ccode_node_unref0 (_tmp2_);
      _tmp3_ = vala_ccode_declaration_new ("GValue");
      cval_decl = _tmp3_;
      _tmp4_ = vala_ccode_variable_declarator_new_zero ("gvalue", (ValaCCodeExpression*) cvalinit, NULL);
      _tmp5_ = _tmp4_;
      vala_ccode_declaration_add_declarator (cval_decl, (ValaCCodeDeclarator*) _tmp5_);
      _vala_ccode_node_unref0 (_tmp5_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) cval_decl);
      _tmp6_ = vala_ccode_identifier_new ("gvalue");
      _tmp7_ = _tmp6_;
      _tmp8_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp7_);
      _tmp9_ = _tmp8_;
      _vala_ccode_node_unref0 (_tmp7_);
      val_ptr = _tmp9_;
      _tmp10_ = vala_ccode_identifier_new ("g_value_init");
      _tmp11_ = _tmp10_;
      _tmp12_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp11_);
      _tmp13_ = _tmp12_;
      _vala_ccode_node_unref0 (_tmp11_);
      cinit_call = _tmp13_;
      vala_ccode_function_call_add_argument (cinit_call, (ValaCCodeExpression*) val_ptr);
      _tmp14_ = vala_property_get_property_type ((ValaProperty*) node);
      _tmp15_ = vala_data_type_get_data_type (_tmp14_);
      _tmp16_ = vala_typesymbol_get_type_id (_tmp15_);
      _tmp17_ = _tmp16_;
      _tmp18_ = vala_ccode_identifier_new (_tmp17_);
      _tmp19_ = _tmp18_;
      vala_ccode_function_call_add_argument (cinit_call, (ValaCCodeExpression*) _tmp19_);
      _vala_ccode_node_unref0 (_tmp19_);
      _g_free0 (_tmp17_);
      _tmp20_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cinit_call);
      _tmp21_ = _tmp20_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp21_);
      _vala_ccode_node_unref0 (_tmp21_);
      _tmp22_ = vala_property_get_property_type ((ValaProperty*) node);
      _tmp23_ = vala_data_type_get_data_type (_tmp22_);
      _tmp24_ = vala_typesymbol_get_set_value_function (_tmp23_);
      _tmp25_ = _tmp24_;
      _tmp26_ = vala_ccode_identifier_new (_tmp25_);
      _tmp27_ = _tmp26_;
      _tmp28_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp27_);
      _tmp29_ = _tmp28_;
      _vala_ccode_node_unref0 (_tmp27_);
      _g_free0 (_tmp25_);
      cset_call = _tmp29_;
      vala_ccode_function_call_add_argument (cset_call, (ValaCCodeExpression*) val_ptr);
      _tmp30_ = vala_ccode_identifier_new ("value");
      _tmp31_ = _tmp30_;
      vala_ccode_function_call_add_argument (cset_call, (ValaCCodeExpression*) _tmp31_);
      _vala_ccode_node_unref0 (_tmp31_);
      _tmp32_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cset_call);
      _tmp33_ = _tmp32_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp33_);
      _vala_ccode_node_unref0 (_tmp33_);
      _tmp34_ = vala_ccode_identifier_new ("dbus_g_proxy_call");
      _tmp35_ = _tmp34_;
      _tmp36_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp35_);
      _tmp37_ = _tmp36_;
      _vala_ccode_node_unref0 (_tmp35_);
      ccall = _tmp37_;
      _tmp38_ = vala_ccode_identifier_new ("property_proxy");
      _tmp39_ = _tmp38_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp39_);
      _vala_ccode_node_unref0 (_tmp39_);
      _tmp40_ = vala_ccode_constant_new ("\"Set\"");
      _tmp41_ = _tmp40_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp41_);
      _vala_ccode_node_unref0 (_tmp41_);
      _tmp42_ = vala_ccode_constant_new ("NULL");
      _tmp43_ = _tmp42_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp43_);
      _vala_ccode_node_unref0 (_tmp43_);
      _tmp44_ = vala_ccode_identifier_new ("G_TYPE_STRING");
      _tmp45_ = _tmp44_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp45_);
      _vala_ccode_node_unref0 (_tmp45_);
      _tmp46_ = vala_ccode_identifier_new ("dbus_g_proxy_get_interface");
      _tmp47_ = _tmp46_;
      _tmp48_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp47_);
      _tmp49_ = _tmp48_;
      _vala_ccode_node_unref0 (_tmp47_);
      get_iface = _tmp49_;
      _tmp50_ = vala_ccode_identifier_new ("obj");
      _tmp51_ = _tmp50_;
      vala_ccode_function_call_add_argument (get_iface, (ValaCCodeExpression*) _tmp51_);
      _vala_ccode_node_unref0 (_tmp51_);
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) get_iface);
      _tmp52_ = vala_ccode_identifier_new ("G_TYPE_STRING");
      _tmp53_ = _tmp52_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp53_);
      _vala_ccode_node_unref0 (_tmp53_);
      _tmp54_ = vala_symbol_get_name ((ValaSymbol*) node);
      _tmp55_ = vala_dbus_client_module_get_dynamic_dbus_name (self, _tmp54_);
      _tmp56_ = _tmp55_;
      _tmp57_ = g_strdup_printf ("\"%s\"", _tmp56_);
      _tmp58_ = _tmp57_;
      _tmp59_ = vala_ccode_constant_new (_tmp58_);
      _tmp60_ = _tmp59_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp60_);
      _vala_ccode_node_unref0 (_tmp60_);
      _g_free0 (_tmp58_);
      _g_free0 (_tmp56_);
      _tmp61_ = vala_ccode_identifier_new ("G_TYPE_VALUE");
      _tmp62_ = _tmp61_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp62_);
      _vala_ccode_node_unref0 (_tmp62_);
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) val_ptr);
      _tmp63_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
      _tmp64_ = _tmp63_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp64_);
      _vala_ccode_node_unref0 (_tmp64_);
      _tmp65_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
      _tmp66_ = _tmp65_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp66_);
      _vala_ccode_node_unref0 (_tmp66_);
      _tmp67_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
      _tmp68_ = _tmp67_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp68_);
      _vala_ccode_node_unref0 (_tmp68_);
      _tmp69_ = vala_ccode_identifier_new ("g_object_unref");
      _tmp70_ = _tmp69_;
      _tmp71_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp70_);
      _tmp72_ = _tmp71_;
      _vala_ccode_node_unref0 (_tmp70_);
      prop_proxy_unref = _tmp72_;
      _tmp73_ = vala_ccode_identifier_new ("property_proxy");
      _tmp74_ = _tmp73_;
      vala_ccode_function_call_add_argument (prop_proxy_unref, (ValaCCodeExpression*) _tmp74_);
      _vala_ccode_node_unref0 (_tmp74_);
      _tmp75_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) prop_proxy_unref);
      _tmp76_ = _tmp75_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp76_);
      _vala_ccode_node_unref0 (_tmp76_);
      _vala_ccode_node_unref0 (prop_proxy_unref);
      _vala_ccode_node_unref0 (get_iface);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (cset_call);
      _vala_ccode_node_unref0 (cinit_call);
      _vala_ccode_node_unref0 (val_ptr);
      _vala_ccode_node_unref0 (cval_decl);
      _vala_ccode_node_unref0 (cvalinit);
}


static gchar* vala_dbus_client_module_real_get_dynamic_signal_connect_wrapper_name (ValaCCodeBaseModule* base, ValaDynamicSignal* sig) {
      ValaDBusClientModule * self;
      gchar* result = NULL;
      ValaDataType* _tmp0_ = NULL;
      ValaTypeSymbol* _tmp1_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* connect_wrapper_name;
      ValaCCodeFunction* _tmp7_ = NULL;
      ValaCCodeFunction* func;
      ValaCCodeParameter* _tmp8_ = NULL;
      ValaCCodeParameter* _tmp9_;
      ValaCCodeParameter* _tmp10_ = NULL;
      ValaCCodeParameter* _tmp11_;
      ValaCCodeParameter* _tmp12_ = NULL;
      ValaCCodeParameter* _tmp13_;
      ValaCCodeParameter* _tmp14_ = NULL;
      ValaCCodeParameter* _tmp15_;
      ValaCCodeBlock* _tmp16_ = NULL;
      ValaCCodeBlock* block;
      self = (ValaDBusClientModule*) base;
      g_return_val_if_fail (sig != NULL, NULL);
      _tmp0_ = vala_dynamic_signal_get_dynamic_type (sig);
      _tmp1_ = vala_data_type_get_data_type (_tmp0_);
      if (_tmp1_ != ((ValaCCodeBaseModule*) self)->dbus_object_type) {
            gchar* _tmp2_ = NULL;
            _tmp2_ = VALA_CCODE_BASE_MODULE_CLASS (vala_dbus_client_module_parent_class)->get_dynamic_signal_connect_wrapper_name ((ValaCCodeBaseModule*) VALA_DBUS_MODULE (self), sig);
            result = _tmp2_;
            return result;
      }
      _tmp3_ = vala_ccode_base_module_get_dynamic_signal_cname ((ValaCCodeBaseModule*) self, sig);
      _tmp4_ = _tmp3_;
      _tmp5_ = g_strdup_printf ("_%sconnect", _tmp4_);
      _tmp6_ = _tmp5_;
      _g_free0 (_tmp4_);
      connect_wrapper_name = _tmp6_;
      _tmp7_ = vala_ccode_function_new (connect_wrapper_name, "void");
      func = _tmp7_;
      _tmp8_ = vala_ccode_parameter_new ("obj", "gpointer");
      _tmp9_ = _tmp8_;
      vala_ccode_function_add_parameter (func, _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _tmp10_ = vala_ccode_parameter_new ("signal_name", "const char *");
      _tmp11_ = _tmp10_;
      vala_ccode_function_add_parameter (func, _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_parameter_new ("handler", "GCallback");
      _tmp13_ = _tmp12_;
      vala_ccode_function_add_parameter (func, _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      _tmp14_ = vala_ccode_parameter_new ("data", "gpointer");
      _tmp15_ = _tmp14_;
      vala_ccode_function_add_parameter (func, _tmp15_);
      _vala_ccode_node_unref0 (_tmp15_);
      _tmp16_ = vala_ccode_block_new ();
      block = _tmp16_;
      vala_dbus_client_module_generate_dbus_connect_wrapper (self, sig, block);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, func);
      vala_ccode_function_set_block (func, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, func);
      result = connect_wrapper_name;
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (func);
      return result;
}


static gchar* vala_dbus_client_module_real_get_dynamic_signal_disconnect_wrapper_name (ValaCCodeBaseModule* base, ValaDynamicSignal* sig) {
      ValaDBusClientModule * self;
      gchar* result = NULL;
      ValaDataType* _tmp0_ = NULL;
      ValaTypeSymbol* _tmp1_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* disconnect_wrapper_name;
      ValaCCodeFunction* _tmp7_ = NULL;
      ValaCCodeFunction* func;
      ValaCCodeParameter* _tmp8_ = NULL;
      ValaCCodeParameter* _tmp9_;
      ValaCCodeParameter* _tmp10_ = NULL;
      ValaCCodeParameter* _tmp11_;
      ValaCCodeParameter* _tmp12_ = NULL;
      ValaCCodeParameter* _tmp13_;
      ValaCCodeParameter* _tmp14_ = NULL;
      ValaCCodeParameter* _tmp15_;
      ValaCCodeBlock* _tmp16_ = NULL;
      ValaCCodeBlock* block;
      self = (ValaDBusClientModule*) base;
      g_return_val_if_fail (sig != NULL, NULL);
      _tmp0_ = vala_dynamic_signal_get_dynamic_type (sig);
      _tmp1_ = vala_data_type_get_data_type (_tmp0_);
      if (_tmp1_ != ((ValaCCodeBaseModule*) self)->dbus_object_type) {
            gchar* _tmp2_ = NULL;
            _tmp2_ = VALA_CCODE_BASE_MODULE_CLASS (vala_dbus_client_module_parent_class)->get_dynamic_signal_disconnect_wrapper_name ((ValaCCodeBaseModule*) VALA_DBUS_MODULE (self), sig);
            result = _tmp2_;
            return result;
      }
      _tmp3_ = vala_ccode_base_module_get_dynamic_signal_cname ((ValaCCodeBaseModule*) self, sig);
      _tmp4_ = _tmp3_;
      _tmp5_ = g_strdup_printf ("_%sdisconnect", _tmp4_);
      _tmp6_ = _tmp5_;
      _g_free0 (_tmp4_);
      disconnect_wrapper_name = _tmp6_;
      _tmp7_ = vala_ccode_function_new (disconnect_wrapper_name, "void");
      func = _tmp7_;
      _tmp8_ = vala_ccode_parameter_new ("obj", "gpointer");
      _tmp9_ = _tmp8_;
      vala_ccode_function_add_parameter (func, _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _tmp10_ = vala_ccode_parameter_new ("signal_name", "const char *");
      _tmp11_ = _tmp10_;
      vala_ccode_function_add_parameter (func, _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_parameter_new ("handler", "GCallback");
      _tmp13_ = _tmp12_;
      vala_ccode_function_add_parameter (func, _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      _tmp14_ = vala_ccode_parameter_new ("data", "gpointer");
      _tmp15_ = _tmp14_;
      vala_ccode_function_add_parameter (func, _tmp15_);
      _vala_ccode_node_unref0 (_tmp15_);
      _tmp16_ = vala_ccode_block_new ();
      block = _tmp16_;
      vala_dbus_client_module_generate_dbus_disconnect_wrapper (self, sig, block);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, func);
      vala_ccode_function_set_block (func, block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, func);
      result = disconnect_wrapper_name;
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (func);
      return result;
}


static void vala_dbus_client_module_generate_dbus_connect_wrapper (ValaDBusClientModule* self, ValaDynamicSignal* sig, ValaCCodeBlock* block) {
      ValaExpression* _tmp0_ = NULL;
      ValaSymbol* _tmp1_ = NULL;
      ValaMethod* _tmp2_;
      ValaMethod* m;
      ValaCCodeIdentifier* _tmp3_ = NULL;
      ValaCCodeIdentifier* _tmp4_;
      ValaCCodeFunctionCall* _tmp5_ = NULL;
      ValaCCodeFunctionCall* _tmp6_;
      ValaCCodeFunctionCall* register_call;
      ValaList* _tmp7_ = NULL;
      ValaList* _tmp8_;
      ValaDataType* _tmp9_ = NULL;
      ValaList* _tmp10_ = NULL;
      ValaList* _tmp11_;
      ValaDataType* _tmp12_ = NULL;
      gchar* _tmp13_ = NULL;
      gchar* _tmp14_;
      ValaCCodeIdentifier* _tmp15_ = NULL;
      ValaCCodeIdentifier* _tmp16_;
      ValaCCodeIdentifier* _tmp17_ = NULL;
      ValaCCodeIdentifier* _tmp18_;
      ValaCCodeIdentifier* _tmp19_ = NULL;
      ValaCCodeIdentifier* _tmp20_;
      ValaCCodeFunctionCall* _tmp21_ = NULL;
      ValaCCodeFunctionCall* _tmp22_;
      ValaCCodeFunctionCall* add_call;
      ValaCCodeIdentifier* _tmp23_ = NULL;
      ValaCCodeIdentifier* _tmp24_;
      const gchar* _tmp25_ = NULL;
      gchar* _tmp26_ = NULL;
      gchar* _tmp27_;
      gchar* _tmp28_ = NULL;
      gchar* _tmp29_;
      ValaCCodeConstant* _tmp30_ = NULL;
      ValaCCodeConstant* _tmp31_;
      gboolean first;
      ValaCCodeIdentifier* _tmp41_ = NULL;
      ValaCCodeIdentifier* _tmp42_;
      ValaCCodeIdentifier* _tmp43_ = NULL;
      ValaCCodeIdentifier* _tmp44_;
      ValaCCodeExpressionStatement* _tmp45_ = NULL;
      ValaCCodeExpressionStatement* _tmp46_;
      ValaCCodeExpressionStatement* _tmp47_ = NULL;
      ValaCCodeExpressionStatement* _tmp48_;
      ValaCCodeIdentifier* _tmp49_ = NULL;
      ValaCCodeIdentifier* _tmp50_;
      ValaCCodeFunctionCall* _tmp51_ = NULL;
      ValaCCodeFunctionCall* _tmp52_;
      ValaCCodeFunctionCall* call;
      ValaCCodeIdentifier* _tmp53_ = NULL;
      ValaCCodeIdentifier* _tmp54_;
      const gchar* _tmp55_ = NULL;
      gchar* _tmp56_ = NULL;
      gchar* _tmp57_;
      gchar* _tmp58_ = NULL;
      gchar* _tmp59_;
      ValaCCodeConstant* _tmp60_ = NULL;
      ValaCCodeConstant* _tmp61_;
      ValaCCodeIdentifier* _tmp62_ = NULL;
      ValaCCodeIdentifier* _tmp63_;
      ValaCCodeIdentifier* _tmp64_ = NULL;
      ValaCCodeIdentifier* _tmp65_;
      ValaCCodeConstant* _tmp66_ = NULL;
      ValaCCodeConstant* _tmp67_;
      ValaCCodeExpressionStatement* _tmp68_ = NULL;
      ValaCCodeExpressionStatement* _tmp69_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (sig != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_dynamic_signal_get_handler (sig);
      _tmp1_ = vala_expression_get_symbol_reference (_tmp0_);
      _tmp2_ = _vala_code_node_ref0 (VALA_METHOD (_tmp1_));
      m = _tmp2_;
      vala_code_node_accept ((ValaCodeNode*) sig, (ValaCodeVisitor*) self);
      _tmp3_ = vala_ccode_identifier_new ("dbus_g_object_register_marshaller");
      _tmp4_ = _tmp3_;
      _tmp5_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp4_);
      _tmp6_ = _tmp5_;
      _vala_ccode_node_unref0 (_tmp4_);
      register_call = _tmp6_;
      _tmp7_ = vala_signal_get_parameters ((ValaSignal*) sig);
      _tmp8_ = _tmp7_;
      _tmp9_ = vala_signal_get_return_type ((ValaSignal*) sig);
      vala_ccode_base_module_generate_marshaller ((ValaCCodeBaseModule*) self, _tmp8_, _tmp9_, TRUE);
      _vala_iterable_unref0 (_tmp8_);
      _tmp10_ = vala_signal_get_parameters ((ValaSignal*) sig);
      _tmp11_ = _tmp10_;
      _tmp12_ = vala_signal_get_return_type ((ValaSignal*) sig);
      _tmp13_ = vala_ccode_base_module_get_marshaller_function ((ValaCCodeBaseModule*) self, _tmp11_, _tmp12_, NULL, TRUE);
      _tmp14_ = _tmp13_;
      _tmp15_ = vala_ccode_identifier_new (_tmp14_);
      _tmp16_ = _tmp15_;
      vala_ccode_function_call_add_argument (register_call, (ValaCCodeExpression*) _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      _g_free0 (_tmp14_);
      _vala_iterable_unref0 (_tmp11_);
      _tmp17_ = vala_ccode_identifier_new ("G_TYPE_NONE");
      _tmp18_ = _tmp17_;
      vala_ccode_function_call_add_argument (register_call, (ValaCCodeExpression*) _tmp18_);
      _vala_ccode_node_unref0 (_tmp18_);
      _tmp19_ = vala_ccode_identifier_new ("dbus_g_proxy_add_signal");
      _tmp20_ = _tmp19_;
      _tmp21_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp20_);
      _tmp22_ = _tmp21_;
      _vala_ccode_node_unref0 (_tmp20_);
      add_call = _tmp22_;
      _tmp23_ = vala_ccode_identifier_new ("obj");
      _tmp24_ = _tmp23_;
      vala_ccode_function_call_add_argument (add_call, (ValaCCodeExpression*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_symbol_get_name ((ValaSymbol*) sig);
      _tmp26_ = vala_dbus_client_module_get_dynamic_dbus_name (self, _tmp25_);
      _tmp27_ = _tmp26_;
      _tmp28_ = g_strdup_printf ("\"%s\"", _tmp27_);
      _tmp29_ = _tmp28_;
      _tmp30_ = vala_ccode_constant_new (_tmp29_);
      _tmp31_ = _tmp30_;
      vala_ccode_function_call_add_argument (add_call, (ValaCCodeExpression*) _tmp31_);
      _vala_ccode_node_unref0 (_tmp31_);
      _g_free0 (_tmp29_);
      _g_free0 (_tmp27_);
      first = TRUE;
      {
            ValaList* _tmp32_ = NULL;
            ValaList* _param_list;
            gint _tmp33_;
            gint _param_size;
            gint _param_index;
            _tmp32_ = vala_method_get_parameters (m);
            _param_list = _tmp32_;
            _tmp33_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp33_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp34_ = NULL;
                  ValaParameter* param;
                  ValaDataType* _tmp35_ = NULL;
                  ValaCCodeExpression* _tmp36_ = NULL;
                  ValaCCodeExpression* _tmp37_;
                  ValaDataType* _tmp38_ = NULL;
                  ValaCCodeExpression* _tmp39_ = NULL;
                  ValaCCodeExpression* _tmp40_;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp34_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp34_;
                  if (first) {
                        first = FALSE;
                        _vala_code_node_unref0 (param);
                        continue;
                  }
                  _tmp35_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp36_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp35_);
                  _tmp37_ = _tmp36_;
                  vala_ccode_function_call_add_argument (register_call, _tmp37_);
                  _vala_ccode_node_unref0 (_tmp37_);
                  _tmp38_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp39_ = vala_gsignal_module_get_dbus_g_type ((ValaGSignalModule*) self, _tmp38_);
                  _tmp40_ = _tmp39_;
                  vala_ccode_function_call_add_argument (add_call, _tmp40_);
                  _vala_ccode_node_unref0 (_tmp40_);
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp41_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
      _tmp42_ = _tmp41_;
      vala_ccode_function_call_add_argument (register_call, (ValaCCodeExpression*) _tmp42_);
      _vala_ccode_node_unref0 (_tmp42_);
      _tmp43_ = vala_ccode_identifier_new ("G_TYPE_INVALID");
      _tmp44_ = _tmp43_;
      vala_ccode_function_call_add_argument (add_call, (ValaCCodeExpression*) _tmp44_);
      _vala_ccode_node_unref0 (_tmp44_);
      _tmp45_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) register_call);
      _tmp46_ = _tmp45_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp46_);
      _vala_ccode_node_unref0 (_tmp46_);
      _tmp47_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) add_call);
      _tmp48_ = _tmp47_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp48_);
      _vala_ccode_node_unref0 (_tmp48_);
      _tmp49_ = vala_ccode_identifier_new ("dbus_g_proxy_connect_signal");
      _tmp50_ = _tmp49_;
      _tmp51_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp50_);
      _tmp52_ = _tmp51_;
      _vala_ccode_node_unref0 (_tmp50_);
      call = _tmp52_;
      _tmp53_ = vala_ccode_identifier_new ("obj");
      _tmp54_ = _tmp53_;
      vala_ccode_function_call_add_argument (call, (ValaCCodeExpression*) _tmp54_);
      _vala_ccode_node_unref0 (_tmp54_);
      _tmp55_ = vala_symbol_get_name ((ValaSymbol*) sig);
      _tmp56_ = vala_dbus_client_module_get_dynamic_dbus_name (self, _tmp55_);
      _tmp57_ = _tmp56_;
      _tmp58_ = g_strdup_printf ("\"%s\"", _tmp57_);
      _tmp59_ = _tmp58_;
      _tmp60_ = vala_ccode_constant_new (_tmp59_);
      _tmp61_ = _tmp60_;
      vala_ccode_function_call_add_argument (call, (ValaCCodeExpression*) _tmp61_);
      _vala_ccode_node_unref0 (_tmp61_);
      _g_free0 (_tmp59_);
      _g_free0 (_tmp57_);
      _tmp62_ = vala_ccode_identifier_new ("handler");
      _tmp63_ = _tmp62_;
      vala_ccode_function_call_add_argument (call, (ValaCCodeExpression*) _tmp63_);
      _vala_ccode_node_unref0 (_tmp63_);
      _tmp64_ = vala_ccode_identifier_new ("data");
      _tmp65_ = _tmp64_;
      vala_ccode_function_call_add_argument (call, (ValaCCodeExpression*) _tmp65_);
      _vala_ccode_node_unref0 (_tmp65_);
      _tmp66_ = vala_ccode_constant_new ("NULL");
      _tmp67_ = _tmp66_;
      vala_ccode_function_call_add_argument (call, (ValaCCodeExpression*) _tmp67_);
      _vala_ccode_node_unref0 (_tmp67_);
      _tmp68_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) call);
      _tmp69_ = _tmp68_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp69_);
      _vala_ccode_node_unref0 (_tmp69_);
      _vala_ccode_node_unref0 (call);
      _vala_ccode_node_unref0 (add_call);
      _vala_ccode_node_unref0 (register_call);
      _vala_code_node_unref0 (m);
}


static void vala_dbus_client_module_generate_dbus_disconnect_wrapper (ValaDBusClientModule* self, ValaDynamicSignal* sig, ValaCCodeBlock* block) {
      ValaCCodeIdentifier* _tmp0_ = NULL;
      ValaCCodeIdentifier* _tmp1_;
      ValaCCodeFunctionCall* _tmp2_ = NULL;
      ValaCCodeFunctionCall* _tmp3_;
      ValaCCodeFunctionCall* call;
      ValaCCodeIdentifier* _tmp4_ = NULL;
      ValaCCodeIdentifier* _tmp5_;
      const gchar* _tmp6_ = NULL;
      gchar* _tmp7_ = NULL;
      gchar* _tmp8_;
      gchar* _tmp9_ = NULL;
      gchar* _tmp10_;
      ValaCCodeConstant* _tmp11_ = NULL;
      ValaCCodeConstant* _tmp12_;
      ValaCCodeIdentifier* _tmp13_ = NULL;
      ValaCCodeIdentifier* _tmp14_;
      ValaCCodeIdentifier* _tmp15_ = NULL;
      ValaCCodeIdentifier* _tmp16_;
      ValaCCodeExpressionStatement* _tmp17_ = NULL;
      ValaCCodeExpressionStatement* _tmp18_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (sig != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_ccode_identifier_new ("dbus_g_proxy_disconnect_signal");
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp1_);
      _tmp3_ = _tmp2_;
      _vala_ccode_node_unref0 (_tmp1_);
      call = _tmp3_;
      _tmp4_ = vala_ccode_identifier_new ("obj");
      _tmp5_ = _tmp4_;
      vala_ccode_function_call_add_argument (call, (ValaCCodeExpression*) _tmp5_);
      _vala_ccode_node_unref0 (_tmp5_);
      _tmp6_ = vala_symbol_get_name ((ValaSymbol*) sig);
      _tmp7_ = vala_dbus_client_module_get_dynamic_dbus_name (self, _tmp6_);
      _tmp8_ = _tmp7_;
      _tmp9_ = g_strdup_printf ("\"%s\"", _tmp8_);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_ccode_constant_new (_tmp10_);
      _tmp12_ = _tmp11_;
      vala_ccode_function_call_add_argument (call, (ValaCCodeExpression*) _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _g_free0 (_tmp10_);
      _g_free0 (_tmp8_);
      _tmp13_ = vala_ccode_identifier_new ("handler");
      _tmp14_ = _tmp13_;
      vala_ccode_function_call_add_argument (call, (ValaCCodeExpression*) _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      _tmp15_ = vala_ccode_identifier_new ("data");
      _tmp16_ = _tmp15_;
      vala_ccode_function_call_add_argument (call, (ValaCCodeExpression*) _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      _tmp17_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) call);
      _tmp18_ = _tmp17_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp18_);
      _vala_ccode_node_unref0 (_tmp18_);
      _vala_ccode_node_unref0 (call);
}


static void vala_dbus_client_module_real_visit_cast_expression (ValaCodeVisitor* base, ValaCastExpression* expr) {
      ValaDBusClientModule * self;
      ValaDataType* _tmp0_ = NULL;
      ValaDataType* _tmp1_;
      ValaObjectType* _tmp2_;
      ValaObjectType* type;
      ValaExpression* _tmp3_ = NULL;
      ValaExpression* _tmp4_;
      ValaMethodCall* _tmp5_;
      ValaMethodCall* call;
      gboolean _tmp6_ = FALSE;
      gboolean _tmp7_ = FALSE;
      gboolean _tmp8_ = FALSE;
      ValaExpression* _tmp13_ = NULL;
      ValaDataType* _tmp14_ = NULL;
      ValaDataType* _tmp15_;
      ValaMethodType* _tmp16_;
      ValaMethodType* mtype;
      gboolean _tmp17_ = FALSE;
      ValaList* _tmp21_ = NULL;
      ValaList* args;
      ValaExpression* _tmp22_ = NULL;
      ValaExpression* _tmp23_ = NULL;
      ValaExpression* _tmp24_;
      ValaExpression* connection;
      gpointer _tmp25_ = NULL;
      ValaExpression* bus_name;
      gpointer _tmp26_ = NULL;
      ValaExpression* object_path;
      ValaObjectTypeSymbol* _tmp27_ = NULL;
      gchar* _tmp28_ = NULL;
      gchar* _tmp29_;
      gchar* _tmp30_;
      gchar* _tmp31_;
      ValaCCodeIdentifier* _tmp32_ = NULL;
      ValaCCodeIdentifier* _tmp33_;
      ValaCCodeFunctionCall* _tmp34_ = NULL;
      ValaCCodeFunctionCall* _tmp35_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeExpression* _tmp36_ = NULL;
      ValaCCodeExpression* _tmp37_;
      ValaCCodeExpression* _tmp38_ = NULL;
      ValaCCodeExpression* _tmp39_;
      ValaCCodeExpression* _tmp40_ = NULL;
      ValaCCodeExpression* _tmp41_;
      self = (ValaDBusClientModule*) base;
      g_return_if_fail (expr != NULL);
      _tmp0_ = vala_cast_expression_get_type_reference (expr);
      _tmp1_ = _tmp0_;
      _tmp2_ = _vala_code_node_ref0 (VALA_IS_OBJECT_TYPE (_tmp1_) ? ((ValaObjectType*) _tmp1_) : NULL);
      type = _tmp2_;
      _tmp3_ = vala_cast_expression_get_inner (expr);
      _tmp4_ = _tmp3_;
      _tmp5_ = _vala_code_node_ref0 (VALA_IS_METHOD_CALL (_tmp4_) ? ((ValaMethodCall*) _tmp4_) : NULL);
      call = _tmp5_;
      if (type == NULL) {
            _tmp8_ = TRUE;
      } else {
            ValaObjectTypeSymbol* _tmp9_ = NULL;
            _tmp9_ = vala_object_type_get_type_symbol (type);
            _tmp8_ = !VALA_IS_INTERFACE (_tmp9_);
      }
      if (_tmp8_) {
            _tmp7_ = TRUE;
      } else {
            ValaObjectTypeSymbol* _tmp10_ = NULL;
            ValaAttribute* _tmp11_ = NULL;
            ValaAttribute* _tmp12_;
            _tmp10_ = vala_object_type_get_type_symbol (type);
            _tmp11_ = vala_code_node_get_attribute ((ValaCodeNode*) _tmp10_, "DBus");
            _tmp12_ = _tmp11_;
            _tmp7_ = _tmp12_ == NULL;
            _vala_code_node_unref0 (_tmp12_);
      }
      if (_tmp7_) {
            _tmp6_ = TRUE;
      } else {
            _tmp6_ = call == NULL;
      }
      if (_tmp6_) {
            VALA_CODE_VISITOR_CLASS (vala_dbus_client_module_parent_class)->visit_cast_expression ((ValaCodeVisitor*) VALA_DBUS_MODULE (self), expr);
            _vala_code_node_unref0 (call);
            _vala_code_node_unref0 (type);
            return;
      }
      _tmp13_ = vala_method_call_get_call (call);
      _tmp14_ = vala_expression_get_value_type (_tmp13_);
      _tmp15_ = _tmp14_;
      _tmp16_ = _vala_code_node_ref0 (VALA_IS_METHOD_TYPE (_tmp15_) ? ((ValaMethodType*) _tmp15_) : NULL);
      mtype = _tmp16_;
      if (mtype == NULL) {
            _tmp17_ = TRUE;
      } else {
            ValaMethod* _tmp18_ = NULL;
            gchar* _tmp19_ = NULL;
            gchar* _tmp20_;
            _tmp18_ = vala_method_type_get_method_symbol (mtype);
            _tmp19_ = vala_method_get_cname (_tmp18_);
            _tmp20_ = _tmp19_;
            _tmp17_ = g_strcmp0 (_tmp20_, "dbus_g_proxy_new_for_name") != 0;
            _g_free0 (_tmp20_);
      }
      if (_tmp17_) {
            VALA_CODE_VISITOR_CLASS (vala_dbus_client_module_parent_class)->visit_cast_expression ((ValaCodeVisitor*) VALA_DBUS_MODULE (self), expr);
            _vala_code_node_unref0 (mtype);
            _vala_code_node_unref0 (call);
            _vala_code_node_unref0 (type);
            return;
      }
      _tmp21_ = vala_method_call_get_argument_list (call);
      args = _tmp21_;
      _tmp22_ = vala_method_call_get_call (call);
      _tmp23_ = vala_member_access_get_inner (VALA_MEMBER_ACCESS (_tmp22_));
      _tmp24_ = _vala_code_node_ref0 (_tmp23_);
      connection = _tmp24_;
      _tmp25_ = vala_list_get (args, 0);
      bus_name = (ValaExpression*) _tmp25_;
      _tmp26_ = vala_list_get (args, 1);
      object_path = (ValaExpression*) _tmp26_;
      _tmp27_ = vala_object_type_get_type_symbol (type);
      _tmp28_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) _tmp27_);
      _tmp29_ = _tmp28_;
      _tmp30_ = g_strconcat (_tmp29_, "dbus_proxy_new", NULL);
      _tmp31_ = _tmp30_;
      _tmp32_ = vala_ccode_identifier_new (_tmp31_);
      _tmp33_ = _tmp32_;
      _tmp34_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp33_);
      _tmp35_ = _tmp34_;
      _vala_ccode_node_unref0 (_tmp33_);
      _g_free0 (_tmp31_);
      _g_free0 (_tmp29_);
      ccall = _tmp35_;
      vala_code_node_emit ((ValaCodeNode*) connection, (ValaCodeGenerator*) self);
      _tmp36_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, connection);
      _tmp37_ = _tmp36_;
      vala_ccode_function_call_add_argument (ccall, _tmp37_);
      _vala_ccode_node_unref0 (_tmp37_);
      vala_code_node_emit ((ValaCodeNode*) bus_name, (ValaCodeGenerator*) self);
      _tmp38_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, bus_name);
      _tmp39_ = _tmp38_;
      vala_ccode_function_call_add_argument (ccall, _tmp39_);
      _vala_ccode_node_unref0 (_tmp39_);
      vala_code_node_emit ((ValaCodeNode*) object_path, (ValaCodeGenerator*) self);
      _tmp40_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, object_path);
      _tmp41_ = _tmp40_;
      vala_ccode_function_call_add_argument (ccall, _tmp41_);
      _vala_ccode_node_unref0 (_tmp41_);
      vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) expr, (ValaCCodeExpression*) ccall);
      _vala_ccode_node_unref0 (ccall);
      _vala_code_node_unref0 (object_path);
      _vala_code_node_unref0 (bus_name);
      _vala_code_node_unref0 (connection);
      _vala_iterable_unref0 (args);
      _vala_code_node_unref0 (mtype);
      _vala_code_node_unref0 (call);
      _vala_code_node_unref0 (type);
}


static void vala_dbus_client_module_generate_proxy_interface_init (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface) {
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      gchar* lower_cname;
      gchar* _tmp9_;
      gchar* _tmp10_;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      gchar* _tmp13_;
      gchar* _tmp14_;
      gchar* _tmp15_;
      gchar* _tmp16_;
      ValaCCodeFunction* _tmp17_ = NULL;
      ValaCCodeFunction* _tmp18_;
      ValaCCodeFunction* proxy_iface_init;
      gchar* _tmp19_ = NULL;
      gchar* _tmp20_;
      gchar* _tmp21_;
      gchar* _tmp22_;
      ValaCCodeParameter* _tmp23_ = NULL;
      ValaCCodeParameter* _tmp24_;
      ValaCCodeBlock* _tmp25_ = NULL;
      ValaCCodeBlock* iface_block;
      g_return_if_fail (self != NULL);
      g_return_if_fail (main_iface != NULL);
      g_return_if_fail (iface != NULL);
      {
            ValaList* _tmp0_ = NULL;
            ValaList* _prereq_list;
            gint _tmp1_;
            gint _prereq_size;
            gint _prereq_index;
            _tmp0_ = vala_interface_get_prerequisites (iface);
            _prereq_list = _tmp0_;
            _tmp1_ = vala_collection_get_size ((ValaCollection*) _prereq_list);
            _prereq_size = _tmp1_;
            _prereq_index = -1;
            while (TRUE) {
                  gpointer _tmp2_ = NULL;
                  ValaDataType* prereq;
                  ValaTypeSymbol* _tmp3_ = NULL;
                  _prereq_index = _prereq_index + 1;
                  if (!(_prereq_index < _prereq_size)) {
                        break;
                  }
                  _tmp2_ = vala_list_get (_prereq_list, _prereq_index);
                  prereq = (ValaDataType*) _tmp2_;
                  _tmp3_ = vala_data_type_get_data_type (prereq);
                  if (VALA_IS_INTERFACE (_tmp3_)) {
                        ValaTypeSymbol* _tmp4_ = NULL;
                        _tmp4_ = vala_data_type_get_data_type (prereq);
                        vala_dbus_client_module_generate_proxy_interface_init (self, main_iface, VALA_INTERFACE (_tmp4_));
                  }
                  _vala_code_node_unref0 (prereq);
            }
            _vala_iterable_unref0 (_prereq_list);
      }
      _tmp5_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp6_ = _tmp5_;
      _tmp7_ = g_strconcat (_tmp6_, "dbus_proxy", NULL);
      _tmp8_ = _tmp7_;
      _g_free0 (_tmp6_);
      lower_cname = _tmp8_;
      _tmp9_ = g_strconcat (lower_cname, "_", NULL);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp12_ = _tmp11_;
      _tmp13_ = g_strconcat (_tmp10_, _tmp12_, NULL);
      _tmp14_ = _tmp13_;
      _tmp15_ = g_strconcat (_tmp14_, "_interface_init", NULL);
      _tmp16_ = _tmp15_;
      _tmp17_ = vala_ccode_function_new (_tmp16_, "void");
      _tmp18_ = _tmp17_;
      _g_free0 (_tmp16_);
      _g_free0 (_tmp14_);
      _g_free0 (_tmp12_);
      _g_free0 (_tmp10_);
      proxy_iface_init = _tmp18_;
      _tmp19_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp20_ = _tmp19_;
      _tmp21_ = g_strconcat (_tmp20_, "Iface*", NULL);
      _tmp22_ = _tmp21_;
      _tmp23_ = vala_ccode_parameter_new ("iface", _tmp22_);
      _tmp24_ = _tmp23_;
      vala_ccode_function_add_parameter (proxy_iface_init, _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _g_free0 (_tmp22_);
      _g_free0 (_tmp20_);
      _tmp25_ = vala_ccode_block_new ();
      iface_block = _tmp25_;
      {
            ValaList* _tmp26_ = NULL;
            ValaList* _m_list;
            gint _tmp27_;
            gint _m_size;
            gint _m_index;
            _tmp26_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) iface);
            _m_list = _tmp26_;
            _tmp27_ = vala_collection_get_size ((ValaCollection*) _m_list);
            _m_size = _tmp27_;
            _m_index = -1;
            while (TRUE) {
                  gpointer _tmp28_ = NULL;
                  ValaMethod* m;
                  ValaCCodeIdentifier* _tmp29_ = NULL;
                  ValaCCodeIdentifier* _tmp30_;
                  const gchar* _tmp31_ = NULL;
                  ValaCCodeMemberAccess* _tmp32_ = NULL;
                  ValaCCodeMemberAccess* _tmp33_;
                  ValaCCodeMemberAccess* vfunc_entry;
                  gboolean _tmp34_;
                  _m_index = _m_index + 1;
                  if (!(_m_index < _m_size)) {
                        break;
                  }
                  _tmp28_ = vala_list_get (_m_list, _m_index);
                  m = (ValaMethod*) _tmp28_;
                  _tmp29_ = vala_ccode_identifier_new ("iface");
                  _tmp30_ = _tmp29_;
                  _tmp31_ = vala_method_get_vfunc_name (m);
                  _tmp32_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp30_, _tmp31_);
                  _tmp33_ = _tmp32_;
                  _vala_ccode_node_unref0 (_tmp30_);
                  vfunc_entry = _tmp33_;
                  _tmp34_ = vala_dbus_client_module_is_dbus_no_reply ((ValaCodeNode*) m);
                  if (_tmp34_) {
                        gboolean _tmp35_;
                        gchar* _tmp37_ = NULL;
                        gchar* _tmp38_;
                        ValaCCodeIdentifier* _tmp39_ = NULL;
                        ValaCCodeIdentifier* _tmp40_;
                        ValaCCodeAssignment* _tmp41_ = NULL;
                        ValaCCodeAssignment* _tmp42_;
                        ValaCCodeExpressionStatement* _tmp43_ = NULL;
                        ValaCCodeExpressionStatement* _tmp44_;
                        _tmp35_ = vala_method_get_coroutine (m);
                        if (_tmp35_) {
                              ValaSourceReference* _tmp36_ = NULL;
                              _tmp36_ = vala_code_node_get_source_reference ((ValaCodeNode*) m);
                              vala_report_error (_tmp36_, "No-reply DBus methods must not be async");
                        }
                        _tmp37_ = vala_dbus_client_module_generate_noreply_dbus_proxy_method (self, main_iface, iface, m);
                        _tmp38_ = _tmp37_;
                        _tmp39_ = vala_ccode_identifier_new (_tmp38_);
                        _tmp40_ = _tmp39_;
                        _tmp41_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp40_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp42_ = _tmp41_;
                        _tmp43_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp42_);
                        _tmp44_ = _tmp43_;
                        vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp44_);
                        _vala_ccode_node_unref0 (_tmp44_);
                        _vala_ccode_node_unref0 (_tmp42_);
                        _vala_ccode_node_unref0 (_tmp40_);
                        _g_free0 (_tmp38_);
                  } else {
                        gboolean _tmp45_;
                        _tmp45_ = vala_method_get_coroutine (m);
                        if (!_tmp45_) {
                              gchar* _tmp46_ = NULL;
                              gchar* _tmp47_;
                              ValaCCodeIdentifier* _tmp48_ = NULL;
                              ValaCCodeIdentifier* _tmp49_;
                              ValaCCodeAssignment* _tmp50_ = NULL;
                              ValaCCodeAssignment* _tmp51_;
                              ValaCCodeExpressionStatement* _tmp52_ = NULL;
                              ValaCCodeExpressionStatement* _tmp53_;
                              _tmp46_ = vala_dbus_client_module_generate_dbus_proxy_method (self, main_iface, iface, m);
                              _tmp47_ = _tmp46_;
                              _tmp48_ = vala_ccode_identifier_new (_tmp47_);
                              _tmp49_ = _tmp48_;
                              _tmp50_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp49_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                              _tmp51_ = _tmp50_;
                              _tmp52_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp51_);
                              _tmp53_ = _tmp52_;
                              vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp53_);
                              _vala_ccode_node_unref0 (_tmp53_);
                              _vala_ccode_node_unref0 (_tmp51_);
                              _vala_ccode_node_unref0 (_tmp49_);
                              _g_free0 (_tmp47_);
                        } else {
                              gchar* _tmp54_ = NULL;
                              gchar* _tmp55_;
                              ValaCCodeIdentifier* _tmp56_ = NULL;
                              ValaCCodeIdentifier* _tmp57_;
                              ValaCCodeAssignment* _tmp58_ = NULL;
                              ValaCCodeAssignment* _tmp59_;
                              ValaCCodeExpressionStatement* _tmp60_ = NULL;
                              ValaCCodeExpressionStatement* _tmp61_;
                              ValaCCodeIdentifier* _tmp62_ = NULL;
                              ValaCCodeIdentifier* _tmp63_;
                              gchar* _tmp64_ = NULL;
                              gchar* _tmp65_;
                              ValaCCodeMemberAccess* _tmp66_ = NULL;
                              gchar* _tmp67_ = NULL;
                              gchar* _tmp68_;
                              ValaCCodeIdentifier* _tmp69_ = NULL;
                              ValaCCodeIdentifier* _tmp70_;
                              ValaCCodeAssignment* _tmp71_ = NULL;
                              ValaCCodeAssignment* _tmp72_;
                              ValaCCodeExpressionStatement* _tmp73_ = NULL;
                              ValaCCodeExpressionStatement* _tmp74_;
                              _tmp54_ = vala_dbus_client_module_generate_async_dbus_proxy_method (self, main_iface, iface, m);
                              _tmp55_ = _tmp54_;
                              _tmp56_ = vala_ccode_identifier_new (_tmp55_);
                              _tmp57_ = _tmp56_;
                              _tmp58_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp57_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                              _tmp59_ = _tmp58_;
                              _tmp60_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp59_);
                              _tmp61_ = _tmp60_;
                              vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp61_);
                              _vala_ccode_node_unref0 (_tmp61_);
                              _vala_ccode_node_unref0 (_tmp59_);
                              _vala_ccode_node_unref0 (_tmp57_);
                              _g_free0 (_tmp55_);
                              _tmp62_ = vala_ccode_identifier_new ("iface");
                              _tmp63_ = _tmp62_;
                              _tmp64_ = vala_method_get_finish_vfunc_name (m);
                              _tmp65_ = _tmp64_;
                              _tmp66_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp63_, _tmp65_);
                              _vala_ccode_node_unref0 (vfunc_entry);
                              vfunc_entry = _tmp66_;
                              _g_free0 (_tmp65_);
                              _vala_ccode_node_unref0 (_tmp63_);
                              _tmp67_ = vala_dbus_client_module_generate_finish_dbus_proxy_method (self, main_iface, iface, m);
                              _tmp68_ = _tmp67_;
                              _tmp69_ = vala_ccode_identifier_new (_tmp68_);
                              _tmp70_ = _tmp69_;
                              _tmp71_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp70_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                              _tmp72_ = _tmp71_;
                              _tmp73_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp72_);
                              _tmp74_ = _tmp73_;
                              vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp74_);
                              _vala_ccode_node_unref0 (_tmp74_);
                              _vala_ccode_node_unref0 (_tmp72_);
                              _vala_ccode_node_unref0 (_tmp70_);
                              _g_free0 (_tmp68_);
                        }
                  }
                  _vala_ccode_node_unref0 (vfunc_entry);
                  _vala_code_node_unref0 (m);
            }
            _vala_iterable_unref0 (_m_list);
      }
      {
            ValaList* _tmp75_ = NULL;
            ValaList* _prop_list;
            gint _tmp76_;
            gint _prop_size;
            gint _prop_index;
            _tmp75_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) iface);
            _prop_list = _tmp75_;
            _tmp76_ = vala_collection_get_size ((ValaCollection*) _prop_list);
            _prop_size = _tmp76_;
            _prop_index = -1;
            while (TRUE) {
                  gpointer _tmp77_ = NULL;
                  ValaProperty* prop;
                  ValaPropertyAccessor* _tmp78_ = NULL;
                  ValaPropertyAccessor* _tmp94_ = NULL;
                  _prop_index = _prop_index + 1;
                  if (!(_prop_index < _prop_size)) {
                        break;
                  }
                  _tmp77_ = vala_list_get (_prop_list, _prop_index);
                  prop = (ValaProperty*) _tmp77_;
                  _tmp78_ = vala_property_get_get_accessor (prop);
                  if (_tmp78_ != NULL) {
                        ValaCCodeIdentifier* _tmp79_ = NULL;
                        ValaCCodeIdentifier* _tmp80_;
                        const gchar* _tmp81_ = NULL;
                        gchar* _tmp82_;
                        gchar* _tmp83_;
                        ValaCCodeMemberAccess* _tmp84_ = NULL;
                        ValaCCodeMemberAccess* _tmp85_;
                        ValaCCodeMemberAccess* vfunc_entry;
                        gchar* _tmp86_ = NULL;
                        gchar* _tmp87_;
                        ValaCCodeIdentifier* _tmp88_ = NULL;
                        ValaCCodeIdentifier* _tmp89_;
                        ValaCCodeAssignment* _tmp90_ = NULL;
                        ValaCCodeAssignment* _tmp91_;
                        ValaCCodeExpressionStatement* _tmp92_ = NULL;
                        ValaCCodeExpressionStatement* _tmp93_;
                        _tmp79_ = vala_ccode_identifier_new ("iface");
                        _tmp80_ = _tmp79_;
                        _tmp81_ = vala_symbol_get_name ((ValaSymbol*) prop);
                        _tmp82_ = g_strconcat ("get_", _tmp81_, NULL);
                        _tmp83_ = _tmp82_;
                        _tmp84_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp80_, _tmp83_);
                        _tmp85_ = _tmp84_;
                        _g_free0 (_tmp83_);
                        _vala_ccode_node_unref0 (_tmp80_);
                        vfunc_entry = _tmp85_;
                        _tmp86_ = vala_dbus_client_module_generate_dbus_proxy_property_get (self, main_iface, iface, prop);
                        _tmp87_ = _tmp86_;
                        _tmp88_ = vala_ccode_identifier_new (_tmp87_);
                        _tmp89_ = _tmp88_;
                        _tmp90_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp89_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp91_ = _tmp90_;
                        _tmp92_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp91_);
                        _tmp93_ = _tmp92_;
                        vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp93_);
                        _vala_ccode_node_unref0 (_tmp93_);
                        _vala_ccode_node_unref0 (_tmp91_);
                        _vala_ccode_node_unref0 (_tmp89_);
                        _g_free0 (_tmp87_);
                        _vala_ccode_node_unref0 (vfunc_entry);
                  }
                  _tmp94_ = vala_property_get_set_accessor (prop);
                  if (_tmp94_ != NULL) {
                        ValaCCodeIdentifier* _tmp95_ = NULL;
                        ValaCCodeIdentifier* _tmp96_;
                        const gchar* _tmp97_ = NULL;
                        gchar* _tmp98_;
                        gchar* _tmp99_;
                        ValaCCodeMemberAccess* _tmp100_ = NULL;
                        ValaCCodeMemberAccess* _tmp101_;
                        ValaCCodeMemberAccess* vfunc_entry;
                        gchar* _tmp102_ = NULL;
                        gchar* _tmp103_;
                        ValaCCodeIdentifier* _tmp104_ = NULL;
                        ValaCCodeIdentifier* _tmp105_;
                        ValaCCodeAssignment* _tmp106_ = NULL;
                        ValaCCodeAssignment* _tmp107_;
                        ValaCCodeExpressionStatement* _tmp108_ = NULL;
                        ValaCCodeExpressionStatement* _tmp109_;
                        _tmp95_ = vala_ccode_identifier_new ("iface");
                        _tmp96_ = _tmp95_;
                        _tmp97_ = vala_symbol_get_name ((ValaSymbol*) prop);
                        _tmp98_ = g_strconcat ("set_", _tmp97_, NULL);
                        _tmp99_ = _tmp98_;
                        _tmp100_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp96_, _tmp99_);
                        _tmp101_ = _tmp100_;
                        _g_free0 (_tmp99_);
                        _vala_ccode_node_unref0 (_tmp96_);
                        vfunc_entry = _tmp101_;
                        _tmp102_ = vala_dbus_client_module_generate_dbus_proxy_property_set (self, main_iface, iface, prop);
                        _tmp103_ = _tmp102_;
                        _tmp104_ = vala_ccode_identifier_new (_tmp103_);
                        _tmp105_ = _tmp104_;
                        _tmp106_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp105_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp107_ = _tmp106_;
                        _tmp108_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp107_);
                        _tmp109_ = _tmp108_;
                        vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp109_);
                        _vala_ccode_node_unref0 (_tmp109_);
                        _vala_ccode_node_unref0 (_tmp107_);
                        _vala_ccode_node_unref0 (_tmp105_);
                        _g_free0 (_tmp103_);
                        _vala_ccode_node_unref0 (vfunc_entry);
                  }
                  _vala_code_node_unref0 (prop);
            }
            _vala_iterable_unref0 (_prop_list);
      }
      vala_ccode_function_set_modifiers (proxy_iface_init, VALA_CCODE_MODIFIERS_STATIC);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, proxy_iface_init);
      vala_ccode_function_set_block (proxy_iface_init, iface_block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_iface_init);
      _vala_ccode_node_unref0 (iface_block);
      _vala_ccode_node_unref0 (proxy_iface_init);
      _g_free0 (lower_cname);
}


static gchar* vala_dbus_client_module_implement_interface (ValaDBusClientModule* self, ValaCCodeFunctionCall* define_type, ValaInterface* main_iface, ValaInterface* iface) {
      gchar* result = NULL;
      gchar* _tmp0_;
      gchar* _result_;
      gchar* _tmp9_ = NULL;
      gchar* _tmp10_;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      gchar* _tmp13_ = NULL;
      gchar* _tmp14_;
      gchar* _tmp15_ = NULL;
      gchar* _tmp16_;
      gchar* _tmp17_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (define_type != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      _tmp0_ = g_strdup ("");
      _result_ = _tmp0_;
      {
            ValaList* _tmp1_ = NULL;
            ValaList* _prereq_list;
            gint _tmp2_;
            gint _prereq_size;
            gint _prereq_index;
            _tmp1_ = vala_interface_get_prerequisites (iface);
            _prereq_list = _tmp1_;
            _tmp2_ = vala_collection_get_size ((ValaCollection*) _prereq_list);
            _prereq_size = _tmp2_;
            _prereq_index = -1;
            while (TRUE) {
                  gpointer _tmp3_ = NULL;
                  ValaDataType* prereq;
                  ValaTypeSymbol* _tmp4_ = NULL;
                  _prereq_index = _prereq_index + 1;
                  if (!(_prereq_index < _prereq_size)) {
                        break;
                  }
                  _tmp3_ = vala_list_get (_prereq_list, _prereq_index);
                  prereq = (ValaDataType*) _tmp3_;
                  _tmp4_ = vala_data_type_get_data_type (prereq);
                  if (VALA_IS_INTERFACE (_tmp4_)) {
                        ValaTypeSymbol* _tmp5_ = NULL;
                        gchar* _tmp6_ = NULL;
                        gchar* _tmp7_;
                        gchar* _tmp8_;
                        _tmp5_ = vala_data_type_get_data_type (prereq);
                        _tmp6_ = vala_dbus_client_module_implement_interface (self, define_type, main_iface, VALA_INTERFACE (_tmp5_));
                        _tmp7_ = _tmp6_;
                        _tmp8_ = g_strconcat (_result_, _tmp7_, NULL);
                        _g_free0 (_result_);
                        _result_ = _tmp8_;
                        _g_free0 (_tmp7_);
                  }
                  _vala_code_node_unref0 (prereq);
            }
            _vala_iterable_unref0 (_prereq_list);
      }
      _tmp9_ = vala_typesymbol_get_upper_case_cname ((ValaTypeSymbol*) iface, "TYPE_");
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp12_ = _tmp11_;
      _tmp13_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp14_ = _tmp13_;
      _tmp15_ = g_strdup_printf ("G_IMPLEMENT_INTERFACE (%s, %sdbus_proxy_%s_interface_init) ", _tmp10_, _tmp12_, _tmp14_);
      _tmp16_ = _tmp15_;
      _tmp17_ = g_strconcat (_result_, _tmp16_, NULL);
      _g_free0 (_result_);
      _result_ = _tmp17_;
      _g_free0 (_tmp16_);
      _g_free0 (_tmp14_);
      _g_free0 (_tmp12_);
      _g_free0 (_tmp10_);
      result = _result_;
      return result;
}


static void vala_dbus_client_module_implement_property (ValaDBusClientModule* self, ValaCCodeBlock* block, ValaInterface* main_iface, ValaInterface* iface) {
      ValaCCodeIdentifier* _tmp5_ = NULL;
      ValaCCodeIdentifier* _tmp6_;
      ValaCCodeFunctionCall* _tmp7_ = NULL;
      ValaCCodeFunctionCall* _tmp8_;
      ValaCCodeFunctionCall* gobject_class;
      ValaCCodeIdentifier* _tmp9_ = NULL;
      ValaCCodeIdentifier* _tmp10_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (block != NULL);
      g_return_if_fail (main_iface != NULL);
      g_return_if_fail (iface != NULL);
      {
            ValaList* _tmp0_ = NULL;
            ValaList* _prereq_list;
            gint _tmp1_;
            gint _prereq_size;
            gint _prereq_index;
            _tmp0_ = vala_interface_get_prerequisites (iface);
            _prereq_list = _tmp0_;
            _tmp1_ = vala_collection_get_size ((ValaCollection*) _prereq_list);
            _prereq_size = _tmp1_;
            _prereq_index = -1;
            while (TRUE) {
                  gpointer _tmp2_ = NULL;
                  ValaDataType* prereq;
                  ValaTypeSymbol* _tmp3_ = NULL;
                  _prereq_index = _prereq_index + 1;
                  if (!(_prereq_index < _prereq_size)) {
                        break;
                  }
                  _tmp2_ = vala_list_get (_prereq_list, _prereq_index);
                  prereq = (ValaDataType*) _tmp2_;
                  _tmp3_ = vala_data_type_get_data_type (prereq);
                  if (VALA_IS_INTERFACE (_tmp3_)) {
                        ValaTypeSymbol* _tmp4_ = NULL;
                        _tmp4_ = vala_data_type_get_data_type (prereq);
                        vala_dbus_client_module_implement_property (self, block, main_iface, VALA_INTERFACE (_tmp4_));
                  }
                  _vala_code_node_unref0 (prereq);
            }
            _vala_iterable_unref0 (_prereq_list);
      }
      _tmp5_ = vala_ccode_identifier_new ("G_OBJECT_CLASS");
      _tmp6_ = _tmp5_;
      _tmp7_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp6_);
      _tmp8_ = _tmp7_;
      _vala_ccode_node_unref0 (_tmp6_);
      gobject_class = _tmp8_;
      _tmp9_ = vala_ccode_identifier_new ("klass");
      _tmp10_ = _tmp9_;
      vala_ccode_function_call_add_argument (gobject_class, (ValaCCodeExpression*) _tmp10_);
      _vala_ccode_node_unref0 (_tmp10_);
      {
            ValaList* _tmp11_ = NULL;
            ValaList* _prop_list;
            gint _tmp12_;
            gint _prop_size;
            gint _prop_index;
            _tmp11_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) iface);
            _prop_list = _tmp11_;
            _tmp12_ = vala_collection_get_size ((ValaCollection*) _prop_list);
            _prop_size = _tmp12_;
            _prop_index = -1;
            while (TRUE) {
                  gpointer _tmp13_ = NULL;
                  ValaProperty* prop;
                  gboolean _tmp14_;
                  gboolean _tmp15_;
                  gchar* _tmp16_ = NULL;
                  gchar* _tmp17_;
                  const gchar* _tmp18_ = NULL;
                  gchar* _tmp19_ = NULL;
                  gchar* _tmp20_;
                  gchar* _tmp21_ = NULL;
                  gchar* _tmp22_;
                  gchar* _tmp23_ = NULL;
                  gchar* _tmp24_;
                  gchar* prop_ev;
                  ValaCCodeIdentifier* _tmp25_ = NULL;
                  ValaCCodeIdentifier* _tmp26_;
                  ValaCCodeFunctionCall* _tmp27_ = NULL;
                  ValaCCodeFunctionCall* _tmp28_;
                  ValaCCodeFunctionCall* cinst;
                  ValaCCodeConstant* _tmp29_ = NULL;
                  ValaCCodeConstant* _tmp30_;
                  ValaCCodeConstant* _tmp31_ = NULL;
                  ValaCCodeConstant* _tmp32_;
                  ValaCCodeExpressionStatement* _tmp33_ = NULL;
                  ValaCCodeExpressionStatement* _tmp34_;
                  ValaCCodeEnumValue* _tmp35_ = NULL;
                  ValaCCodeEnumValue* _tmp36_;
                  _prop_index = _prop_index + 1;
                  if (!(_prop_index < _prop_size)) {
                        break;
                  }
                  _tmp13_ = vala_list_get (_prop_list, _prop_index);
                  prop = (ValaProperty*) _tmp13_;
                  _tmp14_ = vala_property_get_is_abstract (prop);
                  if (!_tmp14_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp15_ = vala_ccode_base_module_is_gobject_property ((ValaCCodeBaseModule*) self, prop);
                  if (!_tmp15_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp16_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) main_iface, NULL);
                  _tmp17_ = _tmp16_;
                  _tmp18_ = vala_symbol_get_name ((ValaSymbol*) prop);
                  _tmp19_ = vala_symbol_camel_case_to_lower_case (_tmp18_);
                  _tmp20_ = _tmp19_;
                  _tmp21_ = g_strdup_printf ("%s_dbus_proxy_%s", _tmp17_, _tmp20_);
                  _tmp22_ = _tmp21_;
                  _tmp23_ = g_utf8_strup (_tmp22_, (gssize) (-1));
                  _tmp24_ = _tmp23_;
                  _g_free0 (_tmp22_);
                  _g_free0 (_tmp20_);
                  _g_free0 (_tmp17_);
                  prop_ev = _tmp24_;
                  _tmp25_ = vala_ccode_identifier_new ("g_object_class_override_property");
                  _tmp26_ = _tmp25_;
                  _tmp27_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp26_);
                  _tmp28_ = _tmp27_;
                  _vala_ccode_node_unref0 (_tmp26_);
                  cinst = _tmp28_;
                  vala_ccode_function_call_add_argument (cinst, (ValaCCodeExpression*) gobject_class);
                  _tmp29_ = vala_ccode_constant_new (prop_ev);
                  _tmp30_ = _tmp29_;
                  vala_ccode_function_call_add_argument (cinst, (ValaCCodeExpression*) _tmp30_);
                  _vala_ccode_node_unref0 (_tmp30_);
                  _tmp31_ = vala_property_get_canonical_cconstant (prop);
                  _tmp32_ = _tmp31_;
                  vala_ccode_function_call_add_argument (cinst, (ValaCCodeExpression*) _tmp32_);
                  _vala_ccode_node_unref0 (_tmp32_);
                  _tmp33_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cinst);
                  _tmp34_ = _tmp33_;
                  vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp34_);
                  _vala_ccode_node_unref0 (_tmp34_);
                  _tmp35_ = vala_ccode_enum_value_new (prop_ev, NULL);
                  _tmp36_ = _tmp35_;
                  vala_ccode_enum_add_value (((ValaCCodeBaseModule*) self)->prop_enum, _tmp36_);
                  _vala_ccode_node_unref0 (_tmp36_);
                  _vala_ccode_node_unref0 (cinst);
                  _g_free0 (prop_ev);
                  _vala_code_node_unref0 (prop);
            }
            _vala_iterable_unref0 (_prop_list);
      }
      _vala_ccode_node_unref0 (gobject_class);
}


static void vala_dbus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space) {
      ValaDBusClientModule * self;
      gchar* _tmp0_ = NULL;
      gchar* dbus_iface_name;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      gchar* _tmp3_;
      gchar* _tmp4_;
      gchar* lower_cname;
      gchar* _tmp5_;
      gchar* _tmp6_;
      gboolean _tmp7_;
      gboolean _tmp8_;
      gchar* _tmp9_;
      gchar* _tmp10_;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      gchar* _tmp13_;
      gchar* _tmp14_;
      ValaCCodeFunction* _tmp15_ = NULL;
      ValaCCodeFunction* _tmp16_;
      ValaCCodeFunction* proxy_new;
      ValaCCodeParameter* _tmp17_ = NULL;
      ValaCCodeParameter* _tmp18_;
      ValaCCodeParameter* _tmp19_ = NULL;
      ValaCCodeParameter* _tmp20_;
      ValaCCodeParameter* _tmp21_ = NULL;
      ValaCCodeParameter* _tmp22_;
      self = (ValaDBusClientModule*) base;
      g_return_if_fail (iface != NULL);
      g_return_if_fail (decl_space != NULL);
      VALA_CCODE_BASE_MODULE_CLASS (vala_dbus_client_module_parent_class)->generate_interface_declaration ((ValaCCodeBaseModule*) VALA_DBUS_MODULE (self), iface, decl_space);
      _tmp0_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp0_;
      if (dbus_iface_name == NULL) {
            _g_free0 (dbus_iface_name);
            return;
      }
      _tmp1_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp2_ = _tmp1_;
      _tmp3_ = g_strconcat (_tmp2_, "dbus_proxy", NULL);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp2_);
      lower_cname = _tmp4_;
      _tmp5_ = g_strconcat (lower_cname, "_new", NULL);
      _tmp6_ = _tmp5_;
      _tmp7_ = vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, decl_space, (ValaSymbol*) iface, _tmp6_);
      _tmp8_ = _tmp7_;
      _g_free0 (_tmp6_);
      if (_tmp8_) {
            _g_free0 (lower_cname);
            _g_free0 (dbus_iface_name);
            return;
      }
      vala_ccode_file_add_include (decl_space, "dbus/dbus-glib.h", FALSE);
      _tmp9_ = g_strconcat (lower_cname, "_new", NULL);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp12_ = _tmp11_;
      _tmp13_ = g_strconcat (_tmp12_, "*", NULL);
      _tmp14_ = _tmp13_;
      _tmp15_ = vala_ccode_function_new (_tmp10_, _tmp14_);
      _tmp16_ = _tmp15_;
      _g_free0 (_tmp14_);
      _g_free0 (_tmp12_);
      _g_free0 (_tmp10_);
      proxy_new = _tmp16_;
      _tmp17_ = vala_ccode_parameter_new ("connection", "DBusGConnection*");
      _tmp18_ = _tmp17_;
      vala_ccode_function_add_parameter (proxy_new, _tmp18_);
      _vala_ccode_node_unref0 (_tmp18_);
      _tmp19_ = vala_ccode_parameter_new ("name", "const char*");
      _tmp20_ = _tmp19_;
      vala_ccode_function_add_parameter (proxy_new, _tmp20_);
      _vala_ccode_node_unref0 (_tmp20_);
      _tmp21_ = vala_ccode_parameter_new ("path", "const char*");
      _tmp22_ = _tmp21_;
      vala_ccode_function_add_parameter (proxy_new, _tmp22_);
      _vala_ccode_node_unref0 (_tmp22_);
      vala_ccode_file_add_function_declaration (decl_space, proxy_new);
      _vala_ccode_node_unref0 (proxy_new);
      _g_free0 (lower_cname);
      _g_free0 (dbus_iface_name);
}


static void vala_dbus_client_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface) {
      ValaDBusClientModule * self;
      gchar* _tmp0_ = NULL;
      gchar* dbus_iface_name;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      gchar* _tmp3_;
      gchar* _tmp4_;
      gchar* cname;
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      gchar* lower_cname;
      gchar* _tmp9_ = NULL;
      gchar* _tmp10_;
      ValaCCodeVariableDeclarator* _tmp11_ = NULL;
      ValaCCodeVariableDeclarator* _tmp12_;
      ValaCCodeTypeDefinition* _tmp13_ = NULL;
      ValaCCodeTypeDefinition* _tmp14_;
      gchar* _tmp15_;
      gchar* _tmp16_;
      ValaCCodeVariableDeclarator* _tmp17_ = NULL;
      ValaCCodeVariableDeclarator* _tmp18_;
      ValaCCodeTypeDefinition* _tmp19_ = NULL;
      ValaCCodeTypeDefinition* _tmp20_;
      gchar* _tmp21_ = NULL;
      gchar* _tmp22_;
      ValaCCodeStruct* _tmp23_ = NULL;
      ValaCCodeStruct* _tmp24_;
      ValaCCodeStruct* instance_struct;
      gchar* _tmp25_;
      gchar* _tmp26_;
      ValaCCodeFunction* _tmp27_ = NULL;
      ValaCCodeFunction* _tmp28_;
      ValaCCodeFunction* type_fun;
      ValaCCodeIdentifier* _tmp29_ = NULL;
      ValaCCodeIdentifier* _tmp30_;
      ValaCCodeFunctionCall* _tmp31_ = NULL;
      ValaCCodeFunctionCall* _tmp32_;
      ValaCCodeFunctionCall* define_type;
      ValaCCodeIdentifier* _tmp33_ = NULL;
      ValaCCodeIdentifier* _tmp34_;
      ValaCCodeIdentifier* _tmp35_ = NULL;
      ValaCCodeIdentifier* _tmp36_;
      ValaCCodeIdentifier* _tmp37_ = NULL;
      ValaCCodeIdentifier* _tmp38_;
      ValaCCodeConstant* _tmp39_ = NULL;
      ValaCCodeConstant* _tmp40_;
      gchar* _tmp41_ = NULL;
      gchar* _tmp42_;
      ValaCCodeIdentifier* _tmp43_ = NULL;
      ValaCCodeIdentifier* _tmp44_;
      ValaCCodeExpressionStatement* _tmp45_ = NULL;
      ValaCCodeExpressionStatement* _tmp46_;
      gchar* _tmp47_;
      gchar* _tmp48_;
      gchar* _tmp49_ = NULL;
      gchar* _tmp50_;
      gchar* _tmp51_;
      gchar* _tmp52_;
      ValaCCodeFunction* _tmp53_ = NULL;
      ValaCCodeFunction* _tmp54_;
      ValaCCodeFunction* proxy_new;
      ValaCCodeParameter* _tmp55_ = NULL;
      ValaCCodeParameter* _tmp56_;
      ValaCCodeParameter* _tmp57_ = NULL;
      ValaCCodeParameter* _tmp58_;
      ValaCCodeParameter* _tmp59_ = NULL;
      ValaCCodeParameter* _tmp60_;
      ValaCCodeBlock* _tmp61_ = NULL;
      ValaCCodeBlock* new_block;
      ValaCCodeIdentifier* _tmp62_ = NULL;
      ValaCCodeIdentifier* _tmp63_;
      ValaCCodeFunctionCall* _tmp64_ = NULL;
      ValaCCodeFunctionCall* _tmp65_;
      ValaCCodeFunctionCall* new_call;
      gchar* _tmp66_;
      gchar* _tmp67_;
      ValaCCodeIdentifier* _tmp68_ = NULL;
      ValaCCodeIdentifier* _tmp69_;
      ValaCCodeFunctionCall* _tmp70_ = NULL;
      ValaCCodeFunctionCall* _tmp71_;
      ValaCCodeConstant* _tmp72_ = NULL;
      ValaCCodeConstant* _tmp73_;
      ValaCCodeIdentifier* _tmp74_ = NULL;
      ValaCCodeIdentifier* _tmp75_;
      ValaCCodeConstant* _tmp76_ = NULL;
      ValaCCodeConstant* _tmp77_;
      ValaCCodeIdentifier* _tmp78_ = NULL;
      ValaCCodeIdentifier* _tmp79_;
      ValaCCodeConstant* _tmp80_ = NULL;
      ValaCCodeConstant* _tmp81_;
      ValaCCodeIdentifier* _tmp82_ = NULL;
      ValaCCodeIdentifier* _tmp83_;
      ValaCCodeConstant* _tmp84_ = NULL;
      ValaCCodeConstant* _tmp85_;
      gchar* _tmp86_ = NULL;
      gchar* _tmp87_;
      ValaCCodeConstant* _tmp88_ = NULL;
      ValaCCodeConstant* _tmp89_;
      ValaCCodeConstant* _tmp90_ = NULL;
      ValaCCodeConstant* _tmp91_;
      gchar* _tmp92_ = NULL;
      gchar* _tmp93_;
      gchar* _tmp94_;
      gchar* _tmp95_;
      ValaCCodeDeclaration* _tmp96_ = NULL;
      ValaCCodeDeclaration* _tmp97_;
      ValaCCodeDeclaration* _cdecl_;
      ValaCCodeVariableDeclarator* _tmp98_ = NULL;
      ValaCCodeVariableDeclarator* _tmp99_;
      ValaCCodeIdentifier* _tmp100_ = NULL;
      ValaCCodeIdentifier* _tmp101_;
      ValaCCodeReturnStatement* _tmp102_ = NULL;
      ValaCCodeReturnStatement* _tmp103_;
      gchar* _tmp104_;
      gchar* _tmp105_;
      ValaCCodeFunction* _tmp106_ = NULL;
      ValaCCodeFunction* _tmp107_;
      ValaCCodeFunction* proxy_construct;
      ValaCCodeParameter* _tmp108_ = NULL;
      ValaCCodeParameter* _tmp109_;
      ValaCCodeParameter* _tmp110_ = NULL;
      ValaCCodeParameter* _tmp111_;
      ValaCCodeParameter* _tmp112_ = NULL;
      ValaCCodeParameter* _tmp113_;
      ValaCCodeBlock* _tmp114_ = NULL;
      ValaCCodeBlock* _tmp115_;
      ValaCCodeIdentifier* _tmp116_ = NULL;
      ValaCCodeIdentifier* _tmp117_;
      ValaCCodeFunctionCall* _tmp118_ = NULL;
      ValaCCodeFunctionCall* _tmp119_;
      ValaCCodeFunctionCall* parent_class;
      gchar* _tmp120_;
      gchar* _tmp121_;
      ValaCCodeIdentifier* _tmp122_ = NULL;
      ValaCCodeIdentifier* _tmp123_;
      ValaCCodeMemberAccess* _tmp124_ = NULL;
      ValaCCodeMemberAccess* _tmp125_;
      ValaCCodeFunctionCall* _tmp126_ = NULL;
      ValaCCodeFunctionCall* _tmp127_;
      ValaCCodeFunctionCall* chainup;
      ValaCCodeIdentifier* _tmp128_ = NULL;
      ValaCCodeIdentifier* _tmp129_;
      ValaCCodeIdentifier* _tmp130_ = NULL;
      ValaCCodeIdentifier* _tmp131_;
      ValaCCodeIdentifier* _tmp132_ = NULL;
      ValaCCodeIdentifier* _tmp133_;
      ValaCCodeDeclaration* _tmp134_ = NULL;
      ValaCCodeVariableDeclarator* _tmp135_ = NULL;
      ValaCCodeVariableDeclarator* _tmp136_;
      ValaCCodeBlock* _tmp137_ = NULL;
      ValaCCodeDeclaration* _tmp138_ = NULL;
      ValaCCodeVariableDeclarator* _tmp139_ = NULL;
      ValaCCodeVariableDeclarator* _tmp140_;
      ValaCCodeBlock* _tmp141_ = NULL;
      ValaCCodeIdentifier* _tmp142_ = NULL;
      ValaCCodeIdentifier* _tmp143_;
      ValaCCodeFunctionCall* _tmp144_ = NULL;
      ValaCCodeFunctionCall* _tmp145_;
      ValaCCodeFunctionCall* gconnection;
      ValaCCodeIdentifier* _tmp146_ = NULL;
      ValaCCodeIdentifier* _tmp147_;
      ValaCCodeConstant* _tmp148_ = NULL;
      ValaCCodeConstant* _tmp149_;
      ValaCCodeIdentifier* _tmp150_ = NULL;
      ValaCCodeIdentifier* _tmp151_;
      ValaCCodeUnaryExpression* _tmp152_ = NULL;
      ValaCCodeUnaryExpression* _tmp153_;
      ValaCCodeConstant* _tmp154_ = NULL;
      ValaCCodeConstant* _tmp155_;
      ValaCCodeBlock* _tmp156_ = NULL;
      ValaCCodeExpressionStatement* _tmp157_ = NULL;
      ValaCCodeExpressionStatement* _tmp158_;
      ValaCCodeDeclaration* _tmp159_ = NULL;
      ValaCCodeVariableDeclarator* _tmp160_ = NULL;
      ValaCCodeVariableDeclarator* _tmp161_;
      ValaCCodeBlock* _tmp162_ = NULL;
      ValaCCodeIdentifier* _tmp163_ = NULL;
      ValaCCodeIdentifier* _tmp164_;
      ValaCCodeFunctionCall* _tmp165_ = NULL;
      ValaCCodeFunctionCall* _tmp166_;
      ValaCCodeFunctionCall* path;
      ValaCCodeIdentifier* _tmp167_ = NULL;
      ValaCCodeIdentifier* _tmp168_;
      ValaCCodeConstant* _tmp169_ = NULL;
      ValaCCodeConstant* _tmp170_;
      ValaCCodeIdentifier* _tmp171_ = NULL;
      ValaCCodeIdentifier* _tmp172_;
      ValaCCodeUnaryExpression* _tmp173_ = NULL;
      ValaCCodeUnaryExpression* _tmp174_;
      ValaCCodeConstant* _tmp175_ = NULL;
      ValaCCodeConstant* _tmp176_;
      ValaCCodeBlock* _tmp177_ = NULL;
      ValaCCodeExpressionStatement* _tmp178_ = NULL;
      ValaCCodeExpressionStatement* _tmp179_;
      ValaCCodeIdentifier* _tmp180_ = NULL;
      ValaCCodeIdentifier* _tmp181_;
      ValaCCodeFunctionCall* _tmp182_ = NULL;
      ValaCCodeFunctionCall* _tmp183_;
      ValaCCodeFunctionCall* raw_connection;
      ValaCCodeIdentifier* _tmp184_ = NULL;
      ValaCCodeIdentifier* _tmp185_;
      ValaCCodeIdentifier* _tmp186_ = NULL;
      ValaCCodeIdentifier* _tmp187_;
      ValaCCodeFunctionCall* _tmp188_ = NULL;
      ValaCCodeFunctionCall* _tmp189_;
      ValaCCodeFunctionCall* filter_call;
      gchar* _tmp190_;
      gchar* _tmp191_;
      ValaCCodeIdentifier* _tmp192_ = NULL;
      ValaCCodeIdentifier* _tmp193_;
      ValaCCodeIdentifier* _tmp194_ = NULL;
      ValaCCodeIdentifier* _tmp195_;
      ValaCCodeConstant* _tmp196_ = NULL;
      ValaCCodeConstant* _tmp197_;
      ValaCCodeBlock* _tmp198_ = NULL;
      ValaCCodeExpressionStatement* _tmp199_ = NULL;
      ValaCCodeExpressionStatement* _tmp200_;
      ValaCCodeIdentifier* _tmp201_ = NULL;
      ValaCCodeIdentifier* _tmp202_;
      ValaCCodeFunctionCall* _tmp203_ = NULL;
      ValaCCodeFunctionCall* _tmp204_;
      ValaCCodeFunctionCall* filter_printf;
      gchar* _tmp205_;
      gchar* _tmp206_;
      gchar* _tmp207_;
      gchar* _tmp208_;
      ValaCCodeConstant* _tmp209_ = NULL;
      ValaCCodeConstant* _tmp210_;
      ValaCCodeIdentifier* _tmp211_ = NULL;
      ValaCCodeIdentifier* _tmp212_;
      ValaCCodeDeclaration* _tmp213_ = NULL;
      ValaCCodeVariableDeclarator* _tmp214_ = NULL;
      ValaCCodeVariableDeclarator* _tmp215_;
      ValaCCodeBlock* _tmp216_ = NULL;
      ValaCCodeIdentifier* _tmp217_ = NULL;
      ValaCCodeIdentifier* _tmp218_;
      ValaCCodeFunctionCall* _tmp219_ = NULL;
      ValaCCodeFunctionCall* _tmp220_;
      ValaCCodeFunctionCall* match_call;
      ValaCCodeIdentifier* _tmp221_ = NULL;
      ValaCCodeIdentifier* _tmp222_;
      ValaCCodeConstant* _tmp223_ = NULL;
      ValaCCodeConstant* _tmp224_;
      ValaCCodeBlock* _tmp225_ = NULL;
      ValaCCodeExpressionStatement* _tmp226_ = NULL;
      ValaCCodeExpressionStatement* _tmp227_;
      ValaCCodeIdentifier* _tmp228_ = NULL;
      ValaCCodeIdentifier* _tmp229_;
      ValaCCodeFunctionCall* _tmp230_ = NULL;
      ValaCCodeFunctionCall* _tmp231_;
      ValaCCodeFunctionCall* connection_free;
      ValaCCodeIdentifier* _tmp232_ = NULL;
      ValaCCodeIdentifier* _tmp233_;
      ValaCCodeBlock* _tmp234_ = NULL;
      ValaCCodeExpressionStatement* _tmp235_ = NULL;
      ValaCCodeExpressionStatement* _tmp236_;
      ValaCCodeIdentifier* _tmp237_ = NULL;
      ValaCCodeIdentifier* _tmp238_;
      ValaCCodeFunctionCall* _tmp239_ = NULL;
      ValaCCodeFunctionCall* _tmp240_;
      ValaCCodeFunctionCall* path_free;
      ValaCCodeIdentifier* _tmp241_ = NULL;
      ValaCCodeIdentifier* _tmp242_;
      ValaCCodeBlock* _tmp243_ = NULL;
      ValaCCodeExpressionStatement* _tmp244_ = NULL;
      ValaCCodeExpressionStatement* _tmp245_;
      ValaCCodeIdentifier* _tmp246_ = NULL;
      ValaCCodeIdentifier* _tmp247_;
      ValaCCodeFunctionCall* _tmp248_ = NULL;
      ValaCCodeFunctionCall* _tmp249_;
      ValaCCodeFunctionCall* filter_free;
      ValaCCodeIdentifier* _tmp250_ = NULL;
      ValaCCodeIdentifier* _tmp251_;
      ValaCCodeBlock* _tmp252_ = NULL;
      ValaCCodeExpressionStatement* _tmp253_ = NULL;
      ValaCCodeExpressionStatement* _tmp254_;
      ValaCCodeBlock* _tmp255_ = NULL;
      ValaCCodeIdentifier* _tmp256_ = NULL;
      ValaCCodeIdentifier* _tmp257_;
      ValaCCodeReturnStatement* _tmp258_ = NULL;
      ValaCCodeReturnStatement* _tmp259_;
      gchar* _tmp260_;
      gchar* _tmp261_;
      ValaCCodeFunction* _tmp262_ = NULL;
      ValaCCodeFunction* _tmp263_;
      ValaCCodeFunction* proxy_dispose;
      ValaCCodeParameter* _tmp264_ = NULL;
      ValaCCodeParameter* _tmp265_;
      ValaCCodeBlock* _tmp266_ = NULL;
      ValaCCodeBlock* _tmp267_;
      ValaCCodeDeclaration* _tmp268_ = NULL;
      ValaCCodeVariableDeclarator* _tmp269_ = NULL;
      ValaCCodeVariableDeclarator* _tmp270_;
      ValaCCodeBlock* _tmp271_ = NULL;
      ValaCCodeBlock* _tmp272_ = NULL;
      ValaCCodeBlock* dispose_return_block;
      ValaCCodeReturnStatement* _tmp273_ = NULL;
      ValaCCodeReturnStatement* _tmp274_;
      ValaCCodeBlock* _tmp275_ = NULL;
      ValaCCodeIdentifier* _tmp276_ = NULL;
      ValaCCodeIdentifier* _tmp277_;
      gchar* _tmp278_;
      gchar* _tmp279_;
      ValaCCodeCastExpression* _tmp280_ = NULL;
      ValaCCodeCastExpression* _tmp281_;
      ValaCCodeMemberAccess* _tmp282_ = NULL;
      ValaCCodeMemberAccess* _tmp283_;
      ValaCCodeIfStatement* _tmp284_ = NULL;
      ValaCCodeIfStatement* _tmp285_;
      ValaCCodeBlock* _tmp286_ = NULL;
      ValaCCodeIdentifier* _tmp287_ = NULL;
      ValaCCodeIdentifier* _tmp288_;
      gchar* _tmp289_;
      gchar* _tmp290_;
      ValaCCodeCastExpression* _tmp291_ = NULL;
      ValaCCodeCastExpression* _tmp292_;
      ValaCCodeMemberAccess* _tmp293_ = NULL;
      ValaCCodeMemberAccess* _tmp294_;
      ValaCCodeConstant* _tmp295_ = NULL;
      ValaCCodeConstant* _tmp296_;
      ValaCCodeAssignment* _tmp297_ = NULL;
      ValaCCodeAssignment* _tmp298_;
      ValaCCodeExpressionStatement* _tmp299_ = NULL;
      ValaCCodeExpressionStatement* _tmp300_;
      ValaCCodeIdentifier* _tmp301_ = NULL;
      ValaCCodeIdentifier* _tmp302_;
      ValaCCodeFunctionCall* _tmp303_ = NULL;
      ValaCCodeIdentifier* _tmp304_ = NULL;
      ValaCCodeIdentifier* _tmp305_;
      ValaCCodeConstant* _tmp306_ = NULL;
      ValaCCodeConstant* _tmp307_;
      ValaCCodeIdentifier* _tmp308_ = NULL;
      ValaCCodeIdentifier* _tmp309_;
      ValaCCodeUnaryExpression* _tmp310_ = NULL;
      ValaCCodeUnaryExpression* _tmp311_;
      ValaCCodeConstant* _tmp312_ = NULL;
      ValaCCodeConstant* _tmp313_;
      ValaCCodeBlock* _tmp314_ = NULL;
      ValaCCodeExpressionStatement* _tmp315_ = NULL;
      ValaCCodeExpressionStatement* _tmp316_;
      ValaCCodeIdentifier* _tmp317_ = NULL;
      ValaCCodeIdentifier* _tmp318_;
      ValaCCodeFunctionCall* _tmp319_ = NULL;
      gchar* _tmp320_;
      gchar* _tmp321_;
      ValaCCodeIdentifier* _tmp322_ = NULL;
      ValaCCodeIdentifier* _tmp323_;
      ValaCCodeIdentifier* _tmp324_ = NULL;
      ValaCCodeIdentifier* _tmp325_;
      ValaCCodeBlock* _tmp326_ = NULL;
      ValaCCodeExpressionStatement* _tmp327_ = NULL;
      ValaCCodeExpressionStatement* _tmp328_;
      ValaCCodeIdentifier* _tmp329_ = NULL;
      ValaCCodeIdentifier* _tmp330_;
      ValaCCodeFunctionCall* _tmp331_ = NULL;
      gchar* _tmp332_;
      gchar* _tmp333_;
      ValaCCodeIdentifier* _tmp334_ = NULL;
      ValaCCodeIdentifier* _tmp335_;
      ValaCCodeMemberAccess* _tmp336_ = NULL;
      ValaCCodeMemberAccess* _tmp337_;
      ValaCCodeFunctionCall* _tmp338_ = NULL;
      ValaCCodeIdentifier* _tmp339_ = NULL;
      ValaCCodeIdentifier* _tmp340_;
      ValaCCodeBlock* _tmp341_ = NULL;
      ValaCCodeExpressionStatement* _tmp342_ = NULL;
      ValaCCodeExpressionStatement* _tmp343_;
      gchar* _tmp344_;
      gchar* _tmp345_;
      ValaCCodeFunction* _tmp346_ = NULL;
      ValaCCodeFunction* _tmp347_;
      ValaCCodeFunction* proxy_class_init;
      gchar* _tmp348_;
      gchar* _tmp349_;
      ValaCCodeParameter* _tmp350_ = NULL;
      ValaCCodeParameter* _tmp351_;
      ValaCCodeBlock* _tmp352_ = NULL;
      ValaCCodeBlock* _tmp353_;
      ValaCCodeIdentifier* _tmp354_ = NULL;
      ValaCCodeIdentifier* _tmp355_;
      ValaCCodeFunctionCall* _tmp356_ = NULL;
      ValaCCodeFunctionCall* _tmp357_;
      ValaCCodeFunctionCall* gobject_class;
      ValaCCodeIdentifier* _tmp358_ = NULL;
      ValaCCodeIdentifier* _tmp359_;
      ValaCCodeBlock* _tmp360_ = NULL;
      ValaCCodeMemberAccess* _tmp361_ = NULL;
      ValaCCodeMemberAccess* _tmp362_;
      gchar* _tmp363_;
      gchar* _tmp364_;
      ValaCCodeIdentifier* _tmp365_ = NULL;
      ValaCCodeIdentifier* _tmp366_;
      ValaCCodeAssignment* _tmp367_ = NULL;
      ValaCCodeAssignment* _tmp368_;
      ValaCCodeExpressionStatement* _tmp369_ = NULL;
      ValaCCodeExpressionStatement* _tmp370_;
      ValaCCodeBlock* _tmp371_ = NULL;
      ValaCCodeMemberAccess* _tmp372_ = NULL;
      ValaCCodeMemberAccess* _tmp373_;
      gchar* _tmp374_;
      gchar* _tmp375_;
      ValaCCodeIdentifier* _tmp376_ = NULL;
      ValaCCodeIdentifier* _tmp377_;
      ValaCCodeAssignment* _tmp378_ = NULL;
      ValaCCodeAssignment* _tmp379_;
      ValaCCodeExpressionStatement* _tmp380_ = NULL;
      ValaCCodeExpressionStatement* _tmp381_;
      ValaCCodeBlock* _tmp382_ = NULL;
      ValaCCodeMemberAccess* _tmp383_ = NULL;
      ValaCCodeMemberAccess* _tmp384_;
      gchar* _tmp385_ = NULL;
      gchar* _tmp386_;
      ValaCCodeIdentifier* _tmp387_ = NULL;
      ValaCCodeIdentifier* _tmp388_;
      ValaCCodeAssignment* _tmp389_ = NULL;
      ValaCCodeAssignment* _tmp390_;
      ValaCCodeExpressionStatement* _tmp391_ = NULL;
      ValaCCodeExpressionStatement* _tmp392_;
      ValaCCodeBlock* _tmp393_ = NULL;
      ValaCCodeMemberAccess* _tmp394_ = NULL;
      ValaCCodeMemberAccess* _tmp395_;
      gchar* _tmp396_ = NULL;
      gchar* _tmp397_;
      ValaCCodeIdentifier* _tmp398_ = NULL;
      ValaCCodeIdentifier* _tmp399_;
      ValaCCodeAssignment* _tmp400_ = NULL;
      ValaCCodeAssignment* _tmp401_;
      ValaCCodeExpressionStatement* _tmp402_ = NULL;
      ValaCCodeExpressionStatement* _tmp403_;
      ValaCCodeEnum* _tmp404_ = NULL;
      gchar* _tmp405_ = NULL;
      gchar* _tmp406_;
      gchar* _tmp407_ = NULL;
      gchar* _tmp408_;
      ValaCCodeEnumValue* _tmp409_ = NULL;
      ValaCCodeEnumValue* _tmp410_;
      ValaCCodeBlock* _tmp411_ = NULL;
      gchar* _tmp412_;
      gchar* _tmp413_;
      ValaCCodeFunction* _tmp414_ = NULL;
      ValaCCodeFunction* _tmp415_;
      ValaCCodeFunction* proxy_instance_init;
      gchar* _tmp416_;
      gchar* _tmp417_;
      ValaCCodeParameter* _tmp418_ = NULL;
      ValaCCodeParameter* _tmp419_;
      ValaCCodeBlock* _tmp420_ = NULL;
      ValaCCodeBlock* _tmp421_;
      gchar* _tmp422_ = NULL;
      gchar* _tmp423_;
      ValaCCodeFunction* _tmp424_ = NULL;
      ValaCCodeFunction* _tmp425_;
      ValaCCodeFunction* get_prop;
      ValaCCodeParameter* _tmp426_ = NULL;
      ValaCCodeParameter* _tmp427_;
      ValaCCodeParameter* _tmp428_ = NULL;
      ValaCCodeParameter* _tmp429_;
      ValaCCodeParameter* _tmp430_ = NULL;
      ValaCCodeParameter* _tmp431_;
      ValaCCodeParameter* _tmp432_ = NULL;
      ValaCCodeParameter* _tmp433_;
      ValaCCodeBlock* _tmp434_ = NULL;
      ValaCCodeBlock* _tmp435_;
      gchar* _tmp436_ = NULL;
      gchar* _tmp437_;
      ValaCCodeFunction* _tmp438_ = NULL;
      ValaCCodeFunction* _tmp439_;
      ValaCCodeFunction* set_prop;
      ValaCCodeParameter* _tmp440_ = NULL;
      ValaCCodeParameter* _tmp441_;
      ValaCCodeParameter* _tmp442_ = NULL;
      ValaCCodeParameter* _tmp443_;
      ValaCCodeParameter* _tmp444_ = NULL;
      ValaCCodeParameter* _tmp445_;
      ValaCCodeParameter* _tmp446_ = NULL;
      ValaCCodeParameter* _tmp447_;
      ValaCCodeBlock* _tmp448_ = NULL;
      ValaCCodeBlock* _tmp449_;
      self = (ValaDBusClientModule*) base;
      g_return_if_fail (iface != NULL);
      VALA_CODE_VISITOR_CLASS (vala_dbus_client_module_parent_class)->visit_interface ((ValaCodeVisitor*) VALA_DBUS_MODULE (self), iface);
      _tmp0_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp0_;
      if (dbus_iface_name == NULL) {
            _g_free0 (dbus_iface_name);
            return;
      }
      vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "string.h", FALSE);
      _tmp1_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp2_ = _tmp1_;
      _tmp3_ = g_strconcat (_tmp2_, "DBusProxy", NULL);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp2_);
      cname = _tmp4_;
      _tmp5_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp6_ = _tmp5_;
      _tmp7_ = g_strconcat (_tmp6_, "dbus_proxy", NULL);
      _tmp8_ = _tmp7_;
      _g_free0 (_tmp6_);
      lower_cname = _tmp8_;
      vala_dbus_module_add_dbus_helpers ((ValaDBusModule*) self);
      _tmp9_ = g_strdup_printf ("struct _%s", cname);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_ccode_variable_declarator_new (cname, NULL, NULL);
      _tmp12_ = _tmp11_;
      _tmp13_ = vala_ccode_type_definition_new (_tmp10_, (ValaCCodeDeclarator*) _tmp12_);
      _tmp14_ = _tmp13_;
      vala_ccode_file_add_type_declaration (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      _vala_ccode_node_unref0 (_tmp12_);
      _g_free0 (_tmp10_);
      _tmp15_ = g_strconcat (cname, "Class", NULL);
      _tmp16_ = _tmp15_;
      _tmp17_ = vala_ccode_variable_declarator_new (_tmp16_, NULL, NULL);
      _tmp18_ = _tmp17_;
      _tmp19_ = vala_ccode_type_definition_new ("DBusGProxyClass", (ValaCCodeDeclarator*) _tmp18_);
      _tmp20_ = _tmp19_;
      vala_ccode_file_add_type_declaration (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _tmp20_);
      _vala_ccode_node_unref0 (_tmp20_);
      _vala_ccode_node_unref0 (_tmp18_);
      _g_free0 (_tmp16_);
      _tmp21_ = g_strdup_printf ("_%s", cname);
      _tmp22_ = _tmp21_;
      _tmp23_ = vala_ccode_struct_new (_tmp22_);
      _tmp24_ = _tmp23_;
      _g_free0 (_tmp22_);
      instance_struct = _tmp24_;
      vala_ccode_struct_add_field (instance_struct, "DBusGProxy", "parent_instance", NULL);
      vala_ccode_struct_add_field (instance_struct, "gboolean", "disposed", NULL);
      vala_ccode_file_add_type_definition (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) instance_struct);
      _tmp25_ = g_strconcat (lower_cname, "_get_type", NULL);
      _tmp26_ = _tmp25_;
      _tmp27_ = vala_ccode_function_new (_tmp26_, "GType");
      _tmp28_ = _tmp27_;
      _g_free0 (_tmp26_);
      type_fun = _tmp28_;
      vala_ccode_function_set_attributes (type_fun, "G_GNUC_CONST");
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, type_fun);
      _tmp29_ = vala_ccode_identifier_new ("G_DEFINE_TYPE_EXTENDED");
      _tmp30_ = _tmp29_;
      _tmp31_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp30_);
      _tmp32_ = _tmp31_;
      _vala_ccode_node_unref0 (_tmp30_);
      define_type = _tmp32_;
      _tmp33_ = vala_ccode_identifier_new (cname);
      _tmp34_ = _tmp33_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp34_);
      _vala_ccode_node_unref0 (_tmp34_);
      _tmp35_ = vala_ccode_identifier_new (lower_cname);
      _tmp36_ = _tmp35_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      _tmp37_ = vala_ccode_identifier_new ("DBUS_TYPE_G_PROXY");
      _tmp38_ = _tmp37_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp38_);
      _vala_ccode_node_unref0 (_tmp38_);
      _tmp39_ = vala_ccode_constant_new ("0");
      _tmp40_ = _tmp39_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp40_);
      _vala_ccode_node_unref0 (_tmp40_);
      _tmp41_ = vala_dbus_client_module_implement_interface (self, define_type, iface, iface);
      _tmp42_ = _tmp41_;
      _tmp43_ = vala_ccode_identifier_new (_tmp42_);
      _tmp44_ = _tmp43_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp44_);
      _vala_ccode_node_unref0 (_tmp44_);
      _g_free0 (_tmp42_);
      _tmp45_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) define_type);
      _tmp46_ = _tmp45_;
      vala_ccode_file_add_type_member_definition (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _tmp46_);
      _vala_ccode_node_unref0 (_tmp46_);
      _tmp47_ = g_strconcat (lower_cname, "_new", NULL);
      _tmp48_ = _tmp47_;
      _tmp49_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp50_ = _tmp49_;
      _tmp51_ = g_strconcat (_tmp50_, "*", NULL);
      _tmp52_ = _tmp51_;
      _tmp53_ = vala_ccode_function_new (_tmp48_, _tmp52_);
      _tmp54_ = _tmp53_;
      _g_free0 (_tmp52_);
      _g_free0 (_tmp50_);
      _g_free0 (_tmp48_);
      proxy_new = _tmp54_;
      _tmp55_ = vala_ccode_parameter_new ("connection", "DBusGConnection*");
      _tmp56_ = _tmp55_;
      vala_ccode_function_add_parameter (proxy_new, _tmp56_);
      _vala_ccode_node_unref0 (_tmp56_);
      _tmp57_ = vala_ccode_parameter_new ("name", "const char*");
      _tmp58_ = _tmp57_;
      vala_ccode_function_add_parameter (proxy_new, _tmp58_);
      _vala_ccode_node_unref0 (_tmp58_);
      _tmp59_ = vala_ccode_parameter_new ("path", "const char*");
      _tmp60_ = _tmp59_;
      vala_ccode_function_add_parameter (proxy_new, _tmp60_);
      _vala_ccode_node_unref0 (_tmp60_);
      _tmp61_ = vala_ccode_block_new ();
      new_block = _tmp61_;
      _tmp62_ = vala_ccode_identifier_new ("g_object_new");
      _tmp63_ = _tmp62_;
      _tmp64_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp63_);
      _tmp65_ = _tmp64_;
      _vala_ccode_node_unref0 (_tmp63_);
      new_call = _tmp65_;
      _tmp66_ = g_strconcat (lower_cname, "_get_type", NULL);
      _tmp67_ = _tmp66_;
      _tmp68_ = vala_ccode_identifier_new (_tmp67_);
      _tmp69_ = _tmp68_;
      _tmp70_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp69_);
      _tmp71_ = _tmp70_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp71_);
      _vala_ccode_node_unref0 (_tmp71_);
      _vala_ccode_node_unref0 (_tmp69_);
      _g_free0 (_tmp67_);
      _tmp72_ = vala_ccode_constant_new ("\"connection\"");
      _tmp73_ = _tmp72_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp73_);
      _vala_ccode_node_unref0 (_tmp73_);
      _tmp74_ = vala_ccode_identifier_new ("connection");
      _tmp75_ = _tmp74_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp75_);
      _vala_ccode_node_unref0 (_tmp75_);
      _tmp76_ = vala_ccode_constant_new ("\"name\"");
      _tmp77_ = _tmp76_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp77_);
      _vala_ccode_node_unref0 (_tmp77_);
      _tmp78_ = vala_ccode_identifier_new ("name");
      _tmp79_ = _tmp78_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp79_);
      _vala_ccode_node_unref0 (_tmp79_);
      _tmp80_ = vala_ccode_constant_new ("\"path\"");
      _tmp81_ = _tmp80_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp81_);
      _vala_ccode_node_unref0 (_tmp81_);
      _tmp82_ = vala_ccode_identifier_new ("path");
      _tmp83_ = _tmp82_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp83_);
      _vala_ccode_node_unref0 (_tmp83_);
      _tmp84_ = vala_ccode_constant_new ("\"interface\"");
      _tmp85_ = _tmp84_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp85_);
      _vala_ccode_node_unref0 (_tmp85_);
      _tmp86_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
      _tmp87_ = _tmp86_;
      _tmp88_ = vala_ccode_constant_new (_tmp87_);
      _tmp89_ = _tmp88_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp89_);
      _vala_ccode_node_unref0 (_tmp89_);
      _g_free0 (_tmp87_);
      _tmp90_ = vala_ccode_constant_new ("NULL");
      _tmp91_ = _tmp90_;
      vala_ccode_function_call_add_argument (new_call, (ValaCCodeExpression*) _tmp91_);
      _vala_ccode_node_unref0 (_tmp91_);
      _tmp92_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp93_ = _tmp92_;
      _tmp94_ = g_strconcat (_tmp93_, "*", NULL);
      _tmp95_ = _tmp94_;
      _tmp96_ = vala_ccode_declaration_new (_tmp95_);
      _tmp97_ = _tmp96_;
      _g_free0 (_tmp95_);
      _g_free0 (_tmp93_);
      _cdecl_ = _tmp97_;
      _tmp98_ = vala_ccode_variable_declarator_new ("self", (ValaCCodeExpression*) new_call, NULL);
      _tmp99_ = _tmp98_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp99_);
      _vala_ccode_node_unref0 (_tmp99_);
      vala_ccode_block_add_statement (new_block, (ValaCCodeNode*) _cdecl_);
      _tmp100_ = vala_ccode_identifier_new ("self");
      _tmp101_ = _tmp100_;
      _tmp102_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp101_);
      _tmp103_ = _tmp102_;
      vala_ccode_block_add_statement (new_block, (ValaCCodeNode*) _tmp103_);
      _vala_ccode_node_unref0 (_tmp103_);
      _vala_ccode_node_unref0 (_tmp101_);
      vala_ccode_function_set_block (proxy_new, new_block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_new);
      _tmp104_ = g_strconcat (lower_cname, "_construct", NULL);
      _tmp105_ = _tmp104_;
      _tmp106_ = vala_ccode_function_new (_tmp105_, "GObject*");
      _tmp107_ = _tmp106_;
      _g_free0 (_tmp105_);
      proxy_construct = _tmp107_;
      _tmp108_ = vala_ccode_parameter_new ("gtype", "GType");
      _tmp109_ = _tmp108_;
      vala_ccode_function_add_parameter (proxy_construct, _tmp109_);
      _vala_ccode_node_unref0 (_tmp109_);
      _tmp110_ = vala_ccode_parameter_new ("n_properties", "guint");
      _tmp111_ = _tmp110_;
      vala_ccode_function_add_parameter (proxy_construct, _tmp111_);
      _vala_ccode_node_unref0 (_tmp111_);
      _tmp112_ = vala_ccode_parameter_new ("properties", "GObjectConstructParam*");
      _tmp113_ = _tmp112_;
      vala_ccode_function_add_parameter (proxy_construct, _tmp113_);
      _vala_ccode_node_unref0 (_tmp113_);
      vala_ccode_function_set_modifiers (proxy_construct, VALA_CCODE_MODIFIERS_STATIC);
      _tmp114_ = vala_ccode_block_new ();
      _tmp115_ = _tmp114_;
      vala_ccode_function_set_block (proxy_construct, _tmp115_);
      _vala_ccode_node_unref0 (_tmp115_);
      _tmp116_ = vala_ccode_identifier_new ("G_OBJECT_CLASS");
      _tmp117_ = _tmp116_;
      _tmp118_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp117_);
      _tmp119_ = _tmp118_;
      _vala_ccode_node_unref0 (_tmp117_);
      parent_class = _tmp119_;
      _tmp120_ = g_strconcat (lower_cname, "_parent_class", NULL);
      _tmp121_ = _tmp120_;
      _tmp122_ = vala_ccode_identifier_new (_tmp121_);
      _tmp123_ = _tmp122_;
      vala_ccode_function_call_add_argument (parent_class, (ValaCCodeExpression*) _tmp123_);
      _vala_ccode_node_unref0 (_tmp123_);
      _g_free0 (_tmp121_);
      _tmp124_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) parent_class, "constructor");
      _tmp125_ = _tmp124_;
      _tmp126_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp125_);
      _tmp127_ = _tmp126_;
      _vala_ccode_node_unref0 (_tmp125_);
      chainup = _tmp127_;
      _tmp128_ = vala_ccode_identifier_new ("gtype");
      _tmp129_ = _tmp128_;
      vala_ccode_function_call_add_argument (chainup, (ValaCCodeExpression*) _tmp129_);
      _vala_ccode_node_unref0 (_tmp129_);
      _tmp130_ = vala_ccode_identifier_new ("n_properties");
      _tmp131_ = _tmp130_;
      vala_ccode_function_call_add_argument (chainup, (ValaCCodeExpression*) _tmp131_);
      _vala_ccode_node_unref0 (_tmp131_);
      _tmp132_ = vala_ccode_identifier_new ("properties");
      _tmp133_ = _tmp132_;
      vala_ccode_function_call_add_argument (chainup, (ValaCCodeExpression*) _tmp133_);
      _vala_ccode_node_unref0 (_tmp133_);
      _tmp134_ = vala_ccode_declaration_new ("GObject*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp134_;
      _tmp135_ = vala_ccode_variable_declarator_new ("self", (ValaCCodeExpression*) chainup, NULL);
      _tmp136_ = _tmp135_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp136_);
      _vala_ccode_node_unref0 (_tmp136_);
      _tmp137_ = vala_ccode_function_get_block (proxy_construct);
      vala_ccode_block_add_statement (_tmp137_, (ValaCCodeNode*) _cdecl_);
      _tmp138_ = vala_ccode_declaration_new ("DBusGConnection");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp138_;
      _tmp139_ = vala_ccode_variable_declarator_new ("*connection", NULL, NULL);
      _tmp140_ = _tmp139_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp140_);
      _vala_ccode_node_unref0 (_tmp140_);
      _tmp141_ = vala_ccode_function_get_block (proxy_construct);
      vala_ccode_block_add_statement (_tmp141_, (ValaCCodeNode*) _cdecl_);
      _tmp142_ = vala_ccode_identifier_new ("g_object_get");
      _tmp143_ = _tmp142_;
      _tmp144_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp143_);
      _tmp145_ = _tmp144_;
      _vala_ccode_node_unref0 (_tmp143_);
      gconnection = _tmp145_;
      _tmp146_ = vala_ccode_identifier_new ("self");
      _tmp147_ = _tmp146_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp147_);
      _vala_ccode_node_unref0 (_tmp147_);
      _tmp148_ = vala_ccode_constant_new ("\"connection\"");
      _tmp149_ = _tmp148_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp149_);
      _vala_ccode_node_unref0 (_tmp149_);
      _tmp150_ = vala_ccode_identifier_new ("connection");
      _tmp151_ = _tmp150_;
      _tmp152_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp151_);
      _tmp153_ = _tmp152_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp153_);
      _vala_ccode_node_unref0 (_tmp153_);
      _vala_ccode_node_unref0 (_tmp151_);
      _tmp154_ = vala_ccode_constant_new ("NULL");
      _tmp155_ = _tmp154_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp155_);
      _vala_ccode_node_unref0 (_tmp155_);
      _tmp156_ = vala_ccode_function_get_block (proxy_construct);
      _tmp157_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) gconnection);
      _tmp158_ = _tmp157_;
      vala_ccode_block_add_statement (_tmp156_, (ValaCCodeNode*) _tmp158_);
      _vala_ccode_node_unref0 (_tmp158_);
      _tmp159_ = vala_ccode_declaration_new ("char*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp159_;
      _tmp160_ = vala_ccode_variable_declarator_new ("path", NULL, NULL);
      _tmp161_ = _tmp160_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp161_);
      _vala_ccode_node_unref0 (_tmp161_);
      _tmp162_ = vala_ccode_function_get_block (proxy_construct);
      vala_ccode_block_add_statement (_tmp162_, (ValaCCodeNode*) _cdecl_);
      _tmp163_ = vala_ccode_identifier_new ("g_object_get");
      _tmp164_ = _tmp163_;
      _tmp165_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp164_);
      _tmp166_ = _tmp165_;
      _vala_ccode_node_unref0 (_tmp164_);
      path = _tmp166_;
      _tmp167_ = vala_ccode_identifier_new ("self");
      _tmp168_ = _tmp167_;
      vala_ccode_function_call_add_argument (path, (ValaCCodeExpression*) _tmp168_);
      _vala_ccode_node_unref0 (_tmp168_);
      _tmp169_ = vala_ccode_constant_new ("\"path\"");
      _tmp170_ = _tmp169_;
      vala_ccode_function_call_add_argument (path, (ValaCCodeExpression*) _tmp170_);
      _vala_ccode_node_unref0 (_tmp170_);
      _tmp171_ = vala_ccode_identifier_new ("path");
      _tmp172_ = _tmp171_;
      _tmp173_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp172_);
      _tmp174_ = _tmp173_;
      vala_ccode_function_call_add_argument (path, (ValaCCodeExpression*) _tmp174_);
      _vala_ccode_node_unref0 (_tmp174_);
      _vala_ccode_node_unref0 (_tmp172_);
      _tmp175_ = vala_ccode_constant_new ("NULL");
      _tmp176_ = _tmp175_;
      vala_ccode_function_call_add_argument (path, (ValaCCodeExpression*) _tmp176_);
      _vala_ccode_node_unref0 (_tmp176_);
      _tmp177_ = vala_ccode_function_get_block (proxy_construct);
      _tmp178_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) path);
      _tmp179_ = _tmp178_;
      vala_ccode_block_add_statement (_tmp177_, (ValaCCodeNode*) _tmp179_);
      _vala_ccode_node_unref0 (_tmp179_);
      _tmp180_ = vala_ccode_identifier_new ("dbus_g_connection_get_connection");
      _tmp181_ = _tmp180_;
      _tmp182_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp181_);
      _tmp183_ = _tmp182_;
      _vala_ccode_node_unref0 (_tmp181_);
      raw_connection = _tmp183_;
      _tmp184_ = vala_ccode_identifier_new ("connection");
      _tmp185_ = _tmp184_;
      vala_ccode_function_call_add_argument (raw_connection, (ValaCCodeExpression*) _tmp185_);
      _vala_ccode_node_unref0 (_tmp185_);
      _tmp186_ = vala_ccode_identifier_new ("dbus_connection_add_filter");
      _tmp187_ = _tmp186_;
      _tmp188_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp187_);
      _tmp189_ = _tmp188_;
      _vala_ccode_node_unref0 (_tmp187_);
      filter_call = _tmp189_;
      vala_ccode_function_call_add_argument (filter_call, (ValaCCodeExpression*) raw_connection);
      _tmp190_ = g_strconcat (lower_cname, "_filter", NULL);
      _tmp191_ = _tmp190_;
      _tmp192_ = vala_ccode_identifier_new (_tmp191_);
      _tmp193_ = _tmp192_;
      vala_ccode_function_call_add_argument (filter_call, (ValaCCodeExpression*) _tmp193_);
      _vala_ccode_node_unref0 (_tmp193_);
      _g_free0 (_tmp191_);
      _tmp194_ = vala_ccode_identifier_new ("self");
      _tmp195_ = _tmp194_;
      vala_ccode_function_call_add_argument (filter_call, (ValaCCodeExpression*) _tmp195_);
      _vala_ccode_node_unref0 (_tmp195_);
      _tmp196_ = vala_ccode_constant_new ("NULL");
      _tmp197_ = _tmp196_;
      vala_ccode_function_call_add_argument (filter_call, (ValaCCodeExpression*) _tmp197_);
      _vala_ccode_node_unref0 (_tmp197_);
      _tmp198_ = vala_ccode_function_get_block (proxy_construct);
      _tmp199_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) filter_call);
      _tmp200_ = _tmp199_;
      vala_ccode_block_add_statement (_tmp198_, (ValaCCodeNode*) _tmp200_);
      _vala_ccode_node_unref0 (_tmp200_);
      _tmp201_ = vala_ccode_identifier_new ("g_strdup_printf");
      _tmp202_ = _tmp201_;
      _tmp203_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp202_);
      _tmp204_ = _tmp203_;
      _vala_ccode_node_unref0 (_tmp202_);
      filter_printf = _tmp204_;
      _tmp205_ = g_strconcat ("\"type='signal',path='%s',interface='", dbus_iface_name, NULL);
      _tmp206_ = _tmp205_;
      _tmp207_ = g_strconcat (_tmp206_, "'\"", NULL);
      _tmp208_ = _tmp207_;
      _tmp209_ = vala_ccode_constant_new (_tmp208_);
      _tmp210_ = _tmp209_;
      vala_ccode_function_call_add_argument (filter_printf, (ValaCCodeExpression*) _tmp210_);
      _vala_ccode_node_unref0 (_tmp210_);
      _g_free0 (_tmp208_);
      _g_free0 (_tmp206_);
      _tmp211_ = vala_ccode_identifier_new ("path");
      _tmp212_ = _tmp211_;
      vala_ccode_function_call_add_argument (filter_printf, (ValaCCodeExpression*) _tmp212_);
      _vala_ccode_node_unref0 (_tmp212_);
      _tmp213_ = vala_ccode_declaration_new ("char*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp213_;
      _tmp214_ = vala_ccode_variable_declarator_new ("filter", (ValaCCodeExpression*) filter_printf, NULL);
      _tmp215_ = _tmp214_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp215_);
      _vala_ccode_node_unref0 (_tmp215_);
      _tmp216_ = vala_ccode_function_get_block (proxy_construct);
      vala_ccode_block_add_statement (_tmp216_, (ValaCCodeNode*) _cdecl_);
      _tmp217_ = vala_ccode_identifier_new ("dbus_bus_add_match");
      _tmp218_ = _tmp217_;
      _tmp219_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp218_);
      _tmp220_ = _tmp219_;
      _vala_ccode_node_unref0 (_tmp218_);
      match_call = _tmp220_;
      vala_ccode_function_call_add_argument (match_call, (ValaCCodeExpression*) raw_connection);
      _tmp221_ = vala_ccode_identifier_new ("filter");
      _tmp222_ = _tmp221_;
      vala_ccode_function_call_add_argument (match_call, (ValaCCodeExpression*) _tmp222_);
      _vala_ccode_node_unref0 (_tmp222_);
      _tmp223_ = vala_ccode_constant_new ("NULL");
      _tmp224_ = _tmp223_;
      vala_ccode_function_call_add_argument (match_call, (ValaCCodeExpression*) _tmp224_);
      _vala_ccode_node_unref0 (_tmp224_);
      _tmp225_ = vala_ccode_function_get_block (proxy_construct);
      _tmp226_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) match_call);
      _tmp227_ = _tmp226_;
      vala_ccode_block_add_statement (_tmp225_, (ValaCCodeNode*) _tmp227_);
      _vala_ccode_node_unref0 (_tmp227_);
      _tmp228_ = vala_ccode_identifier_new ("dbus_g_connection_unref");
      _tmp229_ = _tmp228_;
      _tmp230_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp229_);
      _tmp231_ = _tmp230_;
      _vala_ccode_node_unref0 (_tmp229_);
      connection_free = _tmp231_;
      _tmp232_ = vala_ccode_identifier_new ("connection");
      _tmp233_ = _tmp232_;
      vala_ccode_function_call_add_argument (connection_free, (ValaCCodeExpression*) _tmp233_);
      _vala_ccode_node_unref0 (_tmp233_);
      _tmp234_ = vala_ccode_function_get_block (proxy_construct);
      _tmp235_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) connection_free);
      _tmp236_ = _tmp235_;
      vala_ccode_block_add_statement (_tmp234_, (ValaCCodeNode*) _tmp236_);
      _vala_ccode_node_unref0 (_tmp236_);
      _tmp237_ = vala_ccode_identifier_new ("g_free");
      _tmp238_ = _tmp237_;
      _tmp239_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp238_);
      _tmp240_ = _tmp239_;
      _vala_ccode_node_unref0 (_tmp238_);
      path_free = _tmp240_;
      _tmp241_ = vala_ccode_identifier_new ("path");
      _tmp242_ = _tmp241_;
      vala_ccode_function_call_add_argument (path_free, (ValaCCodeExpression*) _tmp242_);
      _vala_ccode_node_unref0 (_tmp242_);
      _tmp243_ = vala_ccode_function_get_block (proxy_construct);
      _tmp244_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) path_free);
      _tmp245_ = _tmp244_;
      vala_ccode_block_add_statement (_tmp243_, (ValaCCodeNode*) _tmp245_);
      _vala_ccode_node_unref0 (_tmp245_);
      _tmp246_ = vala_ccode_identifier_new ("g_free");
      _tmp247_ = _tmp246_;
      _tmp248_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp247_);
      _tmp249_ = _tmp248_;
      _vala_ccode_node_unref0 (_tmp247_);
      filter_free = _tmp249_;
      _tmp250_ = vala_ccode_identifier_new ("filter");
      _tmp251_ = _tmp250_;
      vala_ccode_function_call_add_argument (filter_free, (ValaCCodeExpression*) _tmp251_);
      _vala_ccode_node_unref0 (_tmp251_);
      _tmp252_ = vala_ccode_function_get_block (proxy_construct);
      _tmp253_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) filter_free);
      _tmp254_ = _tmp253_;
      vala_ccode_block_add_statement (_tmp252_, (ValaCCodeNode*) _tmp254_);
      _vala_ccode_node_unref0 (_tmp254_);
      _tmp255_ = vala_ccode_function_get_block (proxy_construct);
      _tmp256_ = vala_ccode_identifier_new ("self");
      _tmp257_ = _tmp256_;
      _tmp258_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp257_);
      _tmp259_ = _tmp258_;
      vala_ccode_block_add_statement (_tmp255_, (ValaCCodeNode*) _tmp259_);
      _vala_ccode_node_unref0 (_tmp259_);
      _vala_ccode_node_unref0 (_tmp257_);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_construct);
      vala_dbus_client_module_generate_proxy_filter_function (self, iface);
      _tmp260_ = g_strconcat (lower_cname, "_dispose", NULL);
      _tmp261_ = _tmp260_;
      _tmp262_ = vala_ccode_function_new (_tmp261_, "void");
      _tmp263_ = _tmp262_;
      _g_free0 (_tmp261_);
      proxy_dispose = _tmp263_;
      _tmp264_ = vala_ccode_parameter_new ("self", "GObject*");
      _tmp265_ = _tmp264_;
      vala_ccode_function_add_parameter (proxy_dispose, _tmp265_);
      _vala_ccode_node_unref0 (_tmp265_);
      vala_ccode_function_set_modifiers (proxy_dispose, VALA_CCODE_MODIFIERS_STATIC);
      _tmp266_ = vala_ccode_block_new ();
      _tmp267_ = _tmp266_;
      vala_ccode_function_set_block (proxy_dispose, _tmp267_);
      _vala_ccode_node_unref0 (_tmp267_);
      _tmp268_ = vala_ccode_declaration_new ("DBusGConnection");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp268_;
      _tmp269_ = vala_ccode_variable_declarator_new ("*connection", NULL, NULL);
      _tmp270_ = _tmp269_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp270_);
      _vala_ccode_node_unref0 (_tmp270_);
      _tmp271_ = vala_ccode_function_get_block (proxy_dispose);
      vala_ccode_block_add_statement (_tmp271_, (ValaCCodeNode*) _cdecl_);
      _tmp272_ = vala_ccode_block_new ();
      dispose_return_block = _tmp272_;
      _tmp273_ = vala_ccode_return_statement_new (NULL);
      _tmp274_ = _tmp273_;
      vala_ccode_block_add_statement (dispose_return_block, (ValaCCodeNode*) _tmp274_);
      _vala_ccode_node_unref0 (_tmp274_);
      _tmp275_ = vala_ccode_function_get_block (proxy_dispose);
      _tmp276_ = vala_ccode_identifier_new ("self");
      _tmp277_ = _tmp276_;
      _tmp278_ = g_strconcat (cname, "*", NULL);
      _tmp279_ = _tmp278_;
      _tmp280_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp277_, _tmp279_);
      _tmp281_ = _tmp280_;
      _tmp282_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp281_, "disposed");
      _tmp283_ = _tmp282_;
      _tmp284_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp283_, (ValaCCodeStatement*) dispose_return_block, NULL);
      _tmp285_ = _tmp284_;
      vala_ccode_block_add_statement (_tmp275_, (ValaCCodeNode*) _tmp285_);
      _vala_ccode_node_unref0 (_tmp285_);
      _vala_ccode_node_unref0 (_tmp283_);
      _vala_ccode_node_unref0 (_tmp281_);
      _g_free0 (_tmp279_);
      _vala_ccode_node_unref0 (_tmp277_);
      _tmp286_ = vala_ccode_function_get_block (proxy_dispose);
      _tmp287_ = vala_ccode_identifier_new ("self");
      _tmp288_ = _tmp287_;
      _tmp289_ = g_strconcat (cname, "*", NULL);
      _tmp290_ = _tmp289_;
      _tmp291_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp288_, _tmp290_);
      _tmp292_ = _tmp291_;
      _tmp293_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp292_, "disposed");
      _tmp294_ = _tmp293_;
      _tmp295_ = vala_ccode_constant_new ("TRUE");
      _tmp296_ = _tmp295_;
      _tmp297_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp294_, (ValaCCodeExpression*) _tmp296_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp298_ = _tmp297_;
      _tmp299_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp298_);
      _tmp300_ = _tmp299_;
      vala_ccode_block_add_statement (_tmp286_, (ValaCCodeNode*) _tmp300_);
      _vala_ccode_node_unref0 (_tmp300_);
      _vala_ccode_node_unref0 (_tmp298_);
      _vala_ccode_node_unref0 (_tmp296_);
      _vala_ccode_node_unref0 (_tmp294_);
      _vala_ccode_node_unref0 (_tmp292_);
      _g_free0 (_tmp290_);
      _vala_ccode_node_unref0 (_tmp288_);
      _tmp301_ = vala_ccode_identifier_new ("g_object_get");
      _tmp302_ = _tmp301_;
      _tmp303_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp302_);
      _vala_ccode_node_unref0 (gconnection);
      gconnection = _tmp303_;
      _vala_ccode_node_unref0 (_tmp302_);
      _tmp304_ = vala_ccode_identifier_new ("self");
      _tmp305_ = _tmp304_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp305_);
      _vala_ccode_node_unref0 (_tmp305_);
      _tmp306_ = vala_ccode_constant_new ("\"connection\"");
      _tmp307_ = _tmp306_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp307_);
      _vala_ccode_node_unref0 (_tmp307_);
      _tmp308_ = vala_ccode_identifier_new ("connection");
      _tmp309_ = _tmp308_;
      _tmp310_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp309_);
      _tmp311_ = _tmp310_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp311_);
      _vala_ccode_node_unref0 (_tmp311_);
      _vala_ccode_node_unref0 (_tmp309_);
      _tmp312_ = vala_ccode_constant_new ("NULL");
      _tmp313_ = _tmp312_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp313_);
      _vala_ccode_node_unref0 (_tmp313_);
      _tmp314_ = vala_ccode_function_get_block (proxy_dispose);
      _tmp315_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) gconnection);
      _tmp316_ = _tmp315_;
      vala_ccode_block_add_statement (_tmp314_, (ValaCCodeNode*) _tmp316_);
      _vala_ccode_node_unref0 (_tmp316_);
      _tmp317_ = vala_ccode_identifier_new ("dbus_connection_remove_filter");
      _tmp318_ = _tmp317_;
      _tmp319_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp318_);
      _vala_ccode_node_unref0 (filter_call);
      filter_call = _tmp319_;
      _vala_ccode_node_unref0 (_tmp318_);
      vala_ccode_function_call_add_argument (filter_call, (ValaCCodeExpression*) raw_connection);
      _tmp320_ = g_strconcat (lower_cname, "_filter", NULL);
      _tmp321_ = _tmp320_;
      _tmp322_ = vala_ccode_identifier_new (_tmp321_);
      _tmp323_ = _tmp322_;
      vala_ccode_function_call_add_argument (filter_call, (ValaCCodeExpression*) _tmp323_);
      _vala_ccode_node_unref0 (_tmp323_);
      _g_free0 (_tmp321_);
      _tmp324_ = vala_ccode_identifier_new ("self");
      _tmp325_ = _tmp324_;
      vala_ccode_function_call_add_argument (filter_call, (ValaCCodeExpression*) _tmp325_);
      _vala_ccode_node_unref0 (_tmp325_);
      _tmp326_ = vala_ccode_function_get_block (proxy_dispose);
      _tmp327_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) filter_call);
      _tmp328_ = _tmp327_;
      vala_ccode_block_add_statement (_tmp326_, (ValaCCodeNode*) _tmp328_);
      _vala_ccode_node_unref0 (_tmp328_);
      _tmp329_ = vala_ccode_identifier_new ("G_OBJECT_CLASS");
      _tmp330_ = _tmp329_;
      _tmp331_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp330_);
      _vala_ccode_node_unref0 (parent_class);
      parent_class = _tmp331_;
      _vala_ccode_node_unref0 (_tmp330_);
      _tmp332_ = g_strconcat (lower_cname, "_parent_class", NULL);
      _tmp333_ = _tmp332_;
      _tmp334_ = vala_ccode_identifier_new (_tmp333_);
      _tmp335_ = _tmp334_;
      vala_ccode_function_call_add_argument (parent_class, (ValaCCodeExpression*) _tmp335_);
      _vala_ccode_node_unref0 (_tmp335_);
      _g_free0 (_tmp333_);
      _tmp336_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) parent_class, "dispose");
      _tmp337_ = _tmp336_;
      _tmp338_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp337_);
      _vala_ccode_node_unref0 (chainup);
      chainup = _tmp338_;
      _vala_ccode_node_unref0 (_tmp337_);
      _tmp339_ = vala_ccode_identifier_new ("self");
      _tmp340_ = _tmp339_;
      vala_ccode_function_call_add_argument (chainup, (ValaCCodeExpression*) _tmp340_);
      _vala_ccode_node_unref0 (_tmp340_);
      _tmp341_ = vala_ccode_function_get_block (proxy_dispose);
      _tmp342_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) chainup);
      _tmp343_ = _tmp342_;
      vala_ccode_block_add_statement (_tmp341_, (ValaCCodeNode*) _tmp343_);
      _vala_ccode_node_unref0 (_tmp343_);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_dispose);
      _tmp344_ = g_strconcat (lower_cname, "_class_init", NULL);
      _tmp345_ = _tmp344_;
      _tmp346_ = vala_ccode_function_new (_tmp345_, "void");
      _tmp347_ = _tmp346_;
      _g_free0 (_tmp345_);
      proxy_class_init = _tmp347_;
      _tmp348_ = g_strconcat (cname, "Class*", NULL);
      _tmp349_ = _tmp348_;
      _tmp350_ = vala_ccode_parameter_new ("klass", _tmp349_);
      _tmp351_ = _tmp350_;
      vala_ccode_function_add_parameter (proxy_class_init, _tmp351_);
      _vala_ccode_node_unref0 (_tmp351_);
      _g_free0 (_tmp349_);
      vala_ccode_function_set_modifiers (proxy_class_init, VALA_CCODE_MODIFIERS_STATIC);
      _tmp352_ = vala_ccode_block_new ();
      _tmp353_ = _tmp352_;
      vala_ccode_function_set_block (proxy_class_init, _tmp353_);
      _vala_ccode_node_unref0 (_tmp353_);
      _tmp354_ = vala_ccode_identifier_new ("G_OBJECT_CLASS");
      _tmp355_ = _tmp354_;
      _tmp356_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp355_);
      _tmp357_ = _tmp356_;
      _vala_ccode_node_unref0 (_tmp355_);
      gobject_class = _tmp357_;
      _tmp358_ = vala_ccode_identifier_new ("klass");
      _tmp359_ = _tmp358_;
      vala_ccode_function_call_add_argument (gobject_class, (ValaCCodeExpression*) _tmp359_);
      _vala_ccode_node_unref0 (_tmp359_);
      _tmp360_ = vala_ccode_function_get_block (proxy_class_init);
      _tmp361_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) gobject_class, "constructor");
      _tmp362_ = _tmp361_;
      _tmp363_ = g_strconcat (lower_cname, "_construct", NULL);
      _tmp364_ = _tmp363_;
      _tmp365_ = vala_ccode_identifier_new (_tmp364_);
      _tmp366_ = _tmp365_;
      _tmp367_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp362_, (ValaCCodeExpression*) _tmp366_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp368_ = _tmp367_;
      _tmp369_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp368_);
      _tmp370_ = _tmp369_;
      vala_ccode_block_add_statement (_tmp360_, (ValaCCodeNode*) _tmp370_);
      _vala_ccode_node_unref0 (_tmp370_);
      _vala_ccode_node_unref0 (_tmp368_);
      _vala_ccode_node_unref0 (_tmp366_);
      _g_free0 (_tmp364_);
      _vala_ccode_node_unref0 (_tmp362_);
      _tmp371_ = vala_ccode_function_get_block (proxy_class_init);
      _tmp372_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) gobject_class, "dispose");
      _tmp373_ = _tmp372_;
      _tmp374_ = g_strconcat (lower_cname, "_dispose", NULL);
      _tmp375_ = _tmp374_;
      _tmp376_ = vala_ccode_identifier_new (_tmp375_);
      _tmp377_ = _tmp376_;
      _tmp378_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp373_, (ValaCCodeExpression*) _tmp377_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp379_ = _tmp378_;
      _tmp380_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp379_);
      _tmp381_ = _tmp380_;
      vala_ccode_block_add_statement (_tmp371_, (ValaCCodeNode*) _tmp381_);
      _vala_ccode_node_unref0 (_tmp381_);
      _vala_ccode_node_unref0 (_tmp379_);
      _vala_ccode_node_unref0 (_tmp377_);
      _g_free0 (_tmp375_);
      _vala_ccode_node_unref0 (_tmp373_);
      _tmp382_ = vala_ccode_function_get_block (proxy_class_init);
      _tmp383_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) gobject_class, "get_property");
      _tmp384_ = _tmp383_;
      _tmp385_ = g_strdup_printf ("_vala_%s_get_property", lower_cname);
      _tmp386_ = _tmp385_;
      _tmp387_ = vala_ccode_identifier_new (_tmp386_);
      _tmp388_ = _tmp387_;
      _tmp389_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp384_, (ValaCCodeExpression*) _tmp388_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp390_ = _tmp389_;
      _tmp391_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp390_);
      _tmp392_ = _tmp391_;
      vala_ccode_block_add_statement (_tmp382_, (ValaCCodeNode*) _tmp392_);
      _vala_ccode_node_unref0 (_tmp392_);
      _vala_ccode_node_unref0 (_tmp390_);
      _vala_ccode_node_unref0 (_tmp388_);
      _g_free0 (_tmp386_);
      _vala_ccode_node_unref0 (_tmp384_);
      _tmp393_ = vala_ccode_function_get_block (proxy_class_init);
      _tmp394_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) gobject_class, "set_property");
      _tmp395_ = _tmp394_;
      _tmp396_ = g_strdup_printf ("_vala_%s_set_property", lower_cname);
      _tmp397_ = _tmp396_;
      _tmp398_ = vala_ccode_identifier_new (_tmp397_);
      _tmp399_ = _tmp398_;
      _tmp400_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp395_, (ValaCCodeExpression*) _tmp399_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp401_ = _tmp400_;
      _tmp402_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp401_);
      _tmp403_ = _tmp402_;
      vala_ccode_block_add_statement (_tmp393_, (ValaCCodeNode*) _tmp403_);
      _vala_ccode_node_unref0 (_tmp403_);
      _vala_ccode_node_unref0 (_tmp401_);
      _vala_ccode_node_unref0 (_tmp399_);
      _g_free0 (_tmp397_);
      _vala_ccode_node_unref0 (_tmp395_);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_class_init);
      _tmp404_ = vala_ccode_enum_new (NULL);
      _vala_ccode_node_unref0 (((ValaCCodeBaseModule*) self)->prop_enum);
      ((ValaCCodeBaseModule*) self)->prop_enum = _tmp404_;
      _tmp405_ = g_utf8_strup (lower_cname, (gssize) (-1));
      _tmp406_ = _tmp405_;
      _tmp407_ = g_strdup_printf ("%s_DUMMY_PROPERTY", _tmp406_);
      _tmp408_ = _tmp407_;
      _tmp409_ = vala_ccode_enum_value_new (_tmp408_, NULL);
      _tmp410_ = _tmp409_;
      vala_ccode_enum_add_value (((ValaCCodeBaseModule*) self)->prop_enum, _tmp410_);
      _vala_ccode_node_unref0 (_tmp410_);
      _g_free0 (_tmp408_);
      _g_free0 (_tmp406_);
      _tmp411_ = vala_ccode_function_get_block (proxy_class_init);
      vala_dbus_client_module_implement_property (self, _tmp411_, iface, iface);
      vala_ccode_file_add_type_member_declaration (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) ((ValaCCodeBaseModule*) self)->prop_enum);
      _tmp412_ = g_strconcat (lower_cname, "_init", NULL);
      _tmp413_ = _tmp412_;
      _tmp414_ = vala_ccode_function_new (_tmp413_, "void");
      _tmp415_ = _tmp414_;
      _g_free0 (_tmp413_);
      proxy_instance_init = _tmp415_;
      _tmp416_ = g_strconcat (cname, "*", NULL);
      _tmp417_ = _tmp416_;
      _tmp418_ = vala_ccode_parameter_new ("self", _tmp417_);
      _tmp419_ = _tmp418_;
      vala_ccode_function_add_parameter (proxy_instance_init, _tmp419_);
      _vala_ccode_node_unref0 (_tmp419_);
      _g_free0 (_tmp417_);
      vala_ccode_function_set_modifiers (proxy_instance_init, VALA_CCODE_MODIFIERS_STATIC);
      _tmp420_ = vala_ccode_block_new ();
      _tmp421_ = _tmp420_;
      vala_ccode_function_set_block (proxy_instance_init, _tmp421_);
      _vala_ccode_node_unref0 (_tmp421_);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_instance_init);
      vala_dbus_client_module_generate_proxy_interface_init (self, iface, iface);
      _tmp422_ = g_strdup_printf ("_vala_%s_get_property", lower_cname);
      _tmp423_ = _tmp422_;
      _tmp424_ = vala_ccode_function_new (_tmp423_, "void");
      _tmp425_ = _tmp424_;
      _g_free0 (_tmp423_);
      get_prop = _tmp425_;
      vala_ccode_function_set_modifiers (get_prop, VALA_CCODE_MODIFIERS_STATIC);
      _tmp426_ = vala_ccode_parameter_new ("object", "GObject *");
      _tmp427_ = _tmp426_;
      vala_ccode_function_add_parameter (get_prop, _tmp427_);
      _vala_ccode_node_unref0 (_tmp427_);
      _tmp428_ = vala_ccode_parameter_new ("property_id", "guint");
      _tmp429_ = _tmp428_;
      vala_ccode_function_add_parameter (get_prop, _tmp429_);
      _vala_ccode_node_unref0 (_tmp429_);
      _tmp430_ = vala_ccode_parameter_new ("value", "GValue *");
      _tmp431_ = _tmp430_;
      vala_ccode_function_add_parameter (get_prop, _tmp431_);
      _vala_ccode_node_unref0 (_tmp431_);
      _tmp432_ = vala_ccode_parameter_new ("pspec", "GParamSpec *");
      _tmp433_ = _tmp432_;
      vala_ccode_function_add_parameter (get_prop, _tmp433_);
      _vala_ccode_node_unref0 (_tmp433_);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, get_prop);
      _tmp434_ = vala_ccode_block_new ();
      _tmp435_ = _tmp434_;
      vala_ccode_function_set_block (get_prop, _tmp435_);
      _vala_ccode_node_unref0 (_tmp435_);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, get_prop);
      _tmp436_ = g_strdup_printf ("_vala_%s_set_property", lower_cname);
      _tmp437_ = _tmp436_;
      _tmp438_ = vala_ccode_function_new (_tmp437_, "void");
      _tmp439_ = _tmp438_;
      _g_free0 (_tmp437_);
      set_prop = _tmp439_;
      vala_ccode_function_set_modifiers (set_prop, VALA_CCODE_MODIFIERS_STATIC);
      _tmp440_ = vala_ccode_parameter_new ("object", "GObject *");
      _tmp441_ = _tmp440_;
      vala_ccode_function_add_parameter (set_prop, _tmp441_);
      _vala_ccode_node_unref0 (_tmp441_);
      _tmp442_ = vala_ccode_parameter_new ("property_id", "guint");
      _tmp443_ = _tmp442_;
      vala_ccode_function_add_parameter (set_prop, _tmp443_);
      _vala_ccode_node_unref0 (_tmp443_);
      _tmp444_ = vala_ccode_parameter_new ("value", "const GValue *");
      _tmp445_ = _tmp444_;
      vala_ccode_function_add_parameter (set_prop, _tmp445_);
      _vala_ccode_node_unref0 (_tmp445_);
      _tmp446_ = vala_ccode_parameter_new ("pspec", "GParamSpec *");
      _tmp447_ = _tmp446_;
      vala_ccode_function_add_parameter (set_prop, _tmp447_);
      _vala_ccode_node_unref0 (_tmp447_);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, set_prop);
      _tmp448_ = vala_ccode_block_new ();
      _tmp449_ = _tmp448_;
      vala_ccode_function_set_block (set_prop, _tmp449_);
      _vala_ccode_node_unref0 (_tmp449_);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, set_prop);
      _vala_ccode_node_unref0 (set_prop);
      _vala_ccode_node_unref0 (get_prop);
      _vala_ccode_node_unref0 (proxy_instance_init);
      _vala_ccode_node_unref0 (gobject_class);
      _vala_ccode_node_unref0 (proxy_class_init);
      _vala_ccode_node_unref0 (dispose_return_block);
      _vala_ccode_node_unref0 (proxy_dispose);
      _vala_ccode_node_unref0 (filter_free);
      _vala_ccode_node_unref0 (path_free);
      _vala_ccode_node_unref0 (connection_free);
      _vala_ccode_node_unref0 (match_call);
      _vala_ccode_node_unref0 (filter_printf);
      _vala_ccode_node_unref0 (filter_call);
      _vala_ccode_node_unref0 (raw_connection);
      _vala_ccode_node_unref0 (path);
      _vala_ccode_node_unref0 (gconnection);
      _vala_ccode_node_unref0 (chainup);
      _vala_ccode_node_unref0 (parent_class);
      _vala_ccode_node_unref0 (proxy_construct);
      _vala_ccode_node_unref0 (_cdecl_);
      _vala_ccode_node_unref0 (new_call);
      _vala_ccode_node_unref0 (new_block);
      _vala_ccode_node_unref0 (proxy_new);
      _vala_ccode_node_unref0 (define_type);
      _vala_ccode_node_unref0 (type_fun);
      _vala_ccode_node_unref0 (instance_struct);
      _g_free0 (lower_cname);
      _g_free0 (cname);
      _g_free0 (dbus_iface_name);
}


static gchar* vala_dbus_client_module_generate_get_all_function (ValaDBusClientModule* self, ValaMethod* m) {
      gchar* result = NULL;
      gchar* _tmp0_;
      gchar* get_all_func;
      gboolean _tmp1_;
      ValaCCodeFunction* _tmp2_ = NULL;
      ValaCCodeFunction* function;
      ValaCCodeParameter* _tmp3_ = NULL;
      ValaCCodeParameter* _tmp4_;
      ValaCCodeParameter* _tmp5_ = NULL;
      ValaCCodeParameter* _tmp6_;
      ValaCCodeParameter* _tmp7_ = NULL;
      ValaCCodeParameter* _tmp8_;
      ValaCCodeBlock* _tmp9_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp10_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeFragment* _tmp11_ = NULL;
      ValaCCodeFragment* postfragment;
      ValaCCodeDeclaration* _tmp12_ = NULL;
      ValaCCodeDeclaration* _cdecl_;
      ValaCCodeVariableDeclarator* _tmp13_ = NULL;
      ValaCCodeVariableDeclarator* _tmp14_;
      ValaCCodeIdentifier* _tmp15_ = NULL;
      ValaCCodeIdentifier* _tmp16_;
      ValaCCodeUnaryExpression* _tmp17_ = NULL;
      ValaCCodeUnaryExpression* _tmp18_;
      ValaCCodeUnaryExpression* dbus_error;
      ValaCCodeDeclaration* _tmp19_ = NULL;
      ValaCCodeVariableDeclarator* _tmp20_ = NULL;
      ValaCCodeVariableDeclarator* _tmp21_;
      ValaCCodeDeclaration* _tmp22_ = NULL;
      ValaCCodeVariableDeclarator* _tmp23_ = NULL;
      ValaCCodeVariableDeclarator* _tmp24_;
      ValaCCodeVariableDeclarator* _tmp25_ = NULL;
      ValaCCodeVariableDeclarator* _tmp26_;
      ValaCCodeDeclaration* _tmp27_ = NULL;
      ValaCCodeVariableDeclarator* _tmp28_ = NULL;
      ValaCCodeVariableDeclarator* _tmp29_;
      ValaCCodeIdentifier* _tmp30_ = NULL;
      ValaCCodeIdentifier* _tmp31_;
      ValaCCodeFunctionCall* _tmp32_ = NULL;
      ValaCCodeFunctionCall* _tmp33_;
      ValaCCodeFunctionCall* gconnection;
      ValaCCodeIdentifier* _tmp34_ = NULL;
      ValaCCodeIdentifier* _tmp35_;
      ValaCCodeConstant* _tmp36_ = NULL;
      ValaCCodeConstant* _tmp37_;
      ValaCCodeIdentifier* _tmp38_ = NULL;
      ValaCCodeIdentifier* _tmp39_;
      ValaCCodeUnaryExpression* _tmp40_ = NULL;
      ValaCCodeUnaryExpression* _tmp41_;
      ValaCCodeConstant* _tmp42_ = NULL;
      ValaCCodeConstant* _tmp43_;
      ValaCCodeExpressionStatement* _tmp44_ = NULL;
      ValaCCodeExpressionStatement* _tmp45_;
      ValaCCodeIdentifier* _tmp46_ = NULL;
      ValaCCodeIdentifier* _tmp47_;
      ValaCCodeFunctionCall* _tmp48_ = NULL;
      ValaCCodeFunctionCall* _tmp49_;
      ValaCCodeFunctionCall* dbus_error_init;
      ValaCCodeExpressionStatement* _tmp50_ = NULL;
      ValaCCodeExpressionStatement* _tmp51_;
      ValaCCodeIdentifier* _tmp52_ = NULL;
      ValaCCodeIdentifier* _tmp53_;
      ValaCCodeFunctionCall* _tmp54_ = NULL;
      ValaCCodeFunctionCall* _tmp55_;
      ValaCCodeFunctionCall* connection;
      ValaCCodeIdentifier* _tmp56_ = NULL;
      ValaCCodeIdentifier* _tmp57_;
      ValaCCodeIdentifier* _tmp58_ = NULL;
      ValaCCodeIdentifier* _tmp59_;
      ValaCCodeFunctionCall* _tmp60_ = NULL;
      ValaCCodeFunctionCall* _tmp61_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp62_ = NULL;
      ValaCCodeIdentifier* _tmp63_;
      ValaCCodeConstant* _tmp64_ = NULL;
      ValaCCodeConstant* _tmp65_;
      ValaCCodeIdentifier* _tmp66_ = NULL;
      ValaCCodeIdentifier* _tmp67_;
      ValaCCodeAssignment* _tmp68_ = NULL;
      ValaCCodeAssignment* _tmp69_;
      ValaCCodeExpressionStatement* _tmp70_ = NULL;
      ValaCCodeExpressionStatement* _tmp71_;
      ValaCCodeIdentifier* _tmp72_ = NULL;
      ValaCCodeIdentifier* _tmp73_;
      ValaCCodeFunctionCall* _tmp74_ = NULL;
      ValaCCodeFunctionCall* _tmp75_;
      ValaCCodeFunctionCall* conn_unref;
      ValaCCodeIdentifier* _tmp76_ = NULL;
      ValaCCodeIdentifier* _tmp77_;
      ValaCCodeExpressionStatement* _tmp78_ = NULL;
      ValaCCodeExpressionStatement* _tmp79_;
      ValaCCodeIdentifier* _tmp80_ = NULL;
      ValaCCodeIdentifier* _tmp81_;
      ValaCCodeFunctionCall* _tmp82_ = NULL;
      ValaCCodeFunctionCall* _tmp83_;
      ValaCCodeFunctionCall* message_unref;
      ValaCCodeIdentifier* _tmp84_ = NULL;
      ValaCCodeIdentifier* _tmp85_;
      ValaCCodeExpressionStatement* _tmp86_ = NULL;
      ValaCCodeExpressionStatement* _tmp87_;
      ValaCCodeIdentifier* _tmp88_ = NULL;
      ValaCCodeIdentifier* _tmp89_;
      ValaCCodeFunctionCall* _tmp90_ = NULL;
      ValaCCodeFunctionCall* _tmp91_;
      ValaCCodeFunctionCall* reply_unref;
      ValaCCodeIdentifier* _tmp92_ = NULL;
      ValaCCodeIdentifier* _tmp93_;
      ValaCCodeExpressionStatement* _tmp94_ = NULL;
      ValaCCodeExpressionStatement* _tmp95_;
      ValaCCodeIdentifier* _tmp96_ = NULL;
      ValaCCodeIdentifier* _tmp97_;
      ValaCCodeReturnStatement* _tmp98_ = NULL;
      ValaCCodeReturnStatement* _tmp99_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = g_strdup ("_dbus_g_proxy_get_all");
      get_all_func = _tmp0_;
      _tmp1_ = vala_ccode_base_module_add_wrapper ((ValaCCodeBaseModule*) self, get_all_func);
      if (!_tmp1_) {
            result = get_all_func;
            return result;
      }
      _tmp2_ = vala_ccode_function_new (get_all_func, "GHashTable*");
      function = _tmp2_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp3_ = vala_ccode_parameter_new ("self", "DBusGProxy*");
      _tmp4_ = _tmp3_;
      vala_ccode_function_add_parameter (function, _tmp4_);
      _vala_ccode_node_unref0 (_tmp4_);
      _tmp5_ = vala_ccode_parameter_new ("interface_name", "const gchar*");
      _tmp6_ = _tmp5_;
      vala_ccode_function_add_parameter (function, _tmp6_);
      _vala_ccode_node_unref0 (_tmp6_);
      _tmp7_ = vala_ccode_parameter_new ("error", "GError**");
      _tmp8_ = _tmp7_;
      vala_ccode_function_add_parameter (function, _tmp8_);
      _vala_ccode_node_unref0 (_tmp8_);
      _tmp9_ = vala_ccode_block_new ();
      block = _tmp9_;
      _tmp10_ = vala_ccode_fragment_new ();
      prefragment = _tmp10_;
      _tmp11_ = vala_ccode_fragment_new ();
      postfragment = _tmp11_;
      _tmp12_ = vala_ccode_declaration_new ("DBusError");
      _cdecl_ = _tmp12_;
      _tmp13_ = vala_ccode_variable_declarator_new ("_dbus_error", NULL, NULL);
      _tmp14_ = _tmp13_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp15_ = vala_ccode_identifier_new ("_dbus_error");
      _tmp16_ = _tmp15_;
      _tmp17_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp16_);
      _tmp18_ = _tmp17_;
      _vala_ccode_node_unref0 (_tmp16_);
      dbus_error = _tmp18_;
      _tmp19_ = vala_ccode_declaration_new ("DBusGConnection");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp19_;
      _tmp20_ = vala_ccode_variable_declarator_new ("*_connection", 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_declaration_new ("DBusMessage");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp22_;
      _tmp23_ = vala_ccode_variable_declarator_new ("*_message", NULL, NULL);
      _tmp24_ = _tmp23_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_ccode_variable_declarator_new ("*_reply", 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_declaration_new ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp27_;
      _tmp28_ = vala_ccode_variable_declarator_new ("_iter", 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_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) prefragment);
      vala_dbus_client_module_generate_marshalling (self, m, "org.freedesktop.DBus.Properties", prefragment, postfragment);
      _tmp30_ = vala_ccode_identifier_new ("g_object_get");
      _tmp31_ = _tmp30_;
      _tmp32_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp31_);
      _tmp33_ = _tmp32_;
      _vala_ccode_node_unref0 (_tmp31_);
      gconnection = _tmp33_;
      _tmp34_ = vala_ccode_identifier_new ("self");
      _tmp35_ = _tmp34_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp35_);
      _vala_ccode_node_unref0 (_tmp35_);
      _tmp36_ = vala_ccode_constant_new ("\"connection\"");
      _tmp37_ = _tmp36_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp37_);
      _vala_ccode_node_unref0 (_tmp37_);
      _tmp38_ = vala_ccode_identifier_new ("_connection");
      _tmp39_ = _tmp38_;
      _tmp40_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp39_);
      _tmp41_ = _tmp40_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp41_);
      _vala_ccode_node_unref0 (_tmp41_);
      _vala_ccode_node_unref0 (_tmp39_);
      _tmp42_ = vala_ccode_constant_new ("NULL");
      _tmp43_ = _tmp42_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp43_);
      _vala_ccode_node_unref0 (_tmp43_);
      _tmp44_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) gconnection);
      _tmp45_ = _tmp44_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp45_);
      _vala_ccode_node_unref0 (_tmp45_);
      _tmp46_ = vala_ccode_identifier_new ("dbus_error_init");
      _tmp47_ = _tmp46_;
      _tmp48_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp47_);
      _tmp49_ = _tmp48_;
      _vala_ccode_node_unref0 (_tmp47_);
      dbus_error_init = _tmp49_;
      vala_ccode_function_call_add_argument (dbus_error_init, (ValaCCodeExpression*) dbus_error);
      _tmp50_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) dbus_error_init);
      _tmp51_ = _tmp50_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp51_);
      _vala_ccode_node_unref0 (_tmp51_);
      _tmp52_ = vala_ccode_identifier_new ("dbus_g_connection_get_connection");
      _tmp53_ = _tmp52_;
      _tmp54_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp53_);
      _tmp55_ = _tmp54_;
      _vala_ccode_node_unref0 (_tmp53_);
      connection = _tmp55_;
      _tmp56_ = vala_ccode_identifier_new ("_connection");
      _tmp57_ = _tmp56_;
      vala_ccode_function_call_add_argument (connection, (ValaCCodeExpression*) _tmp57_);
      _vala_ccode_node_unref0 (_tmp57_);
      _tmp58_ = vala_ccode_identifier_new ("dbus_connection_send_with_reply_and_block");
      _tmp59_ = _tmp58_;
      _tmp60_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp59_);
      _tmp61_ = _tmp60_;
      _vala_ccode_node_unref0 (_tmp59_);
      ccall = _tmp61_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) connection);
      _tmp62_ = vala_ccode_identifier_new ("_message");
      _tmp63_ = _tmp62_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp63_);
      _vala_ccode_node_unref0 (_tmp63_);
      _tmp64_ = vala_dbus_client_module_get_dbus_timeout (self, (ValaSymbol*) m);
      _tmp65_ = _tmp64_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp65_);
      _vala_ccode_node_unref0 (_tmp65_);
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) dbus_error);
      _tmp66_ = vala_ccode_identifier_new ("_reply");
      _tmp67_ = _tmp66_;
      _tmp68_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp67_, (ValaCCodeExpression*) ccall, 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_ = vala_ccode_identifier_new ("dbus_g_connection_unref");
      _tmp73_ = _tmp72_;
      _tmp74_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp73_);
      _tmp75_ = _tmp74_;
      _vala_ccode_node_unref0 (_tmp73_);
      conn_unref = _tmp75_;
      _tmp76_ = vala_ccode_identifier_new ("_connection");
      _tmp77_ = _tmp76_;
      vala_ccode_function_call_add_argument (conn_unref, (ValaCCodeExpression*) _tmp77_);
      _vala_ccode_node_unref0 (_tmp77_);
      _tmp78_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) conn_unref);
      _tmp79_ = _tmp78_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp79_);
      _vala_ccode_node_unref0 (_tmp79_);
      _tmp80_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp81_ = _tmp80_;
      _tmp82_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp81_);
      _tmp83_ = _tmp82_;
      _vala_ccode_node_unref0 (_tmp81_);
      message_unref = _tmp83_;
      _tmp84_ = vala_ccode_identifier_new ("_message");
      _tmp85_ = _tmp84_;
      vala_ccode_function_call_add_argument (message_unref, (ValaCCodeExpression*) _tmp85_);
      _vala_ccode_node_unref0 (_tmp85_);
      _tmp86_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) message_unref);
      _tmp87_ = _tmp86_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp87_);
      _vala_ccode_node_unref0 (_tmp87_);
      vala_dbus_client_module_check_error_reply (self, m, block);
      vala_dbus_client_module_check_reply_signature (self, m, block);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) postfragment);
      _tmp88_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp89_ = _tmp88_;
      _tmp90_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp89_);
      _tmp91_ = _tmp90_;
      _vala_ccode_node_unref0 (_tmp89_);
      reply_unref = _tmp91_;
      _tmp92_ = vala_ccode_identifier_new ("_reply");
      _tmp93_ = _tmp92_;
      vala_ccode_function_call_add_argument (reply_unref, (ValaCCodeExpression*) _tmp93_);
      _vala_ccode_node_unref0 (_tmp93_);
      _tmp94_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) reply_unref);
      _tmp95_ = _tmp94_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp95_);
      _vala_ccode_node_unref0 (_tmp95_);
      _tmp96_ = vala_ccode_identifier_new ("_result");
      _tmp97_ = _tmp96_;
      _tmp98_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp97_);
      _tmp99_ = _tmp98_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp99_);
      _vala_ccode_node_unref0 (_tmp99_);
      _vala_ccode_node_unref0 (_tmp97_);
      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 = get_all_func;
      _vala_ccode_node_unref0 (reply_unref);
      _vala_ccode_node_unref0 (message_unref);
      _vala_ccode_node_unref0 (conn_unref);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (connection);
      _vala_ccode_node_unref0 (dbus_error_init);
      _vala_ccode_node_unref0 (gconnection);
      _vala_ccode_node_unref0 (dbus_error);
      _vala_ccode_node_unref0 (_cdecl_);
      _vala_ccode_node_unref0 (postfragment);
      _vala_ccode_node_unref0 (prefragment);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (function);
      return result;
}


static void vala_dbus_client_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr) {
      ValaDBusClientModule * self;
      ValaExpression* _tmp0_ = NULL;
      ValaDataType* _tmp1_ = NULL;
      ValaDataType* _tmp2_;
      ValaMethodType* _tmp3_;
      ValaMethodType* mtype;
      gboolean _tmp4_ = FALSE;
      gboolean proxy_new_from_type;
      gboolean _tmp8_ = FALSE;
      gboolean proxy_get_all;
      gboolean _tmp12_ = FALSE;
      gboolean proxy_new_for_name;
      gboolean _tmp16_ = FALSE;
      gboolean _tmp18_ = FALSE;
      ValaList* _tmp41_ = NULL;
      ValaList* args;
      ValaExpression* _tmp42_ = NULL;
      ValaExpression* _tmp43_ = NULL;
      ValaExpression* _tmp44_;
      ValaExpression* connection;
      gpointer _tmp45_ = NULL;
      ValaExpression* bus_name;
      gpointer _tmp46_ = NULL;
      ValaExpression* object_path;
      gpointer _tmp47_ = NULL;
      ValaExpression* interface_name;
      gpointer _tmp48_ = NULL;
      ValaExpression* type;
      ValaCCodeIdentifier* _tmp49_ = NULL;
      ValaCCodeIdentifier* _tmp50_;
      ValaCCodeFunctionCall* _tmp51_ = NULL;
      ValaCCodeFunctionCall* _tmp52_;
      ValaCCodeFunctionCall* quark_call;
      ValaCCodeConstant* _tmp53_ = NULL;
      ValaCCodeConstant* _tmp54_;
      ValaCCodeIdentifier* _tmp55_ = NULL;
      ValaCCodeIdentifier* _tmp56_;
      ValaCCodeFunctionCall* _tmp57_ = NULL;
      ValaCCodeFunctionCall* _tmp58_;
      ValaCCodeFunctionCall* qdata_call;
      ValaCCodeExpression* _tmp59_ = NULL;
      ValaCCodeExpression* _tmp60_;
      ValaCCodeCastExpression* _tmp61_ = NULL;
      ValaCCodeCastExpression* _tmp62_;
      ValaCCodeFunctionCall* _tmp63_ = NULL;
      ValaCCodeFunctionCall* _tmp64_;
      ValaCCodeFunctionCall* get_type_call;
      ValaCCodeIdentifier* _tmp65_ = NULL;
      ValaCCodeIdentifier* _tmp66_;
      ValaCCodeFunctionCall* _tmp67_ = NULL;
      ValaCCodeFunctionCall* _tmp68_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeConstant* _tmp69_ = NULL;
      ValaCCodeConstant* _tmp70_;
      ValaCCodeExpression* _tmp71_ = NULL;
      ValaCCodeExpression* _tmp72_;
      ValaCCodeConstant* _tmp73_ = NULL;
      ValaCCodeConstant* _tmp74_;
      ValaCCodeExpression* _tmp75_ = NULL;
      ValaCCodeExpression* _tmp76_;
      ValaCCodeConstant* _tmp77_ = NULL;
      ValaCCodeConstant* _tmp78_;
      ValaCCodeExpression* _tmp79_ = NULL;
      ValaCCodeExpression* _tmp80_;
      ValaCCodeConstant* _tmp81_ = NULL;
      ValaCCodeConstant* _tmp82_;
      ValaCCodeExpression* _tmp83_ = NULL;
      ValaCCodeExpression* _tmp84_;
      ValaCCodeConstant* _tmp85_ = NULL;
      ValaCCodeConstant* _tmp86_;
      self = (ValaDBusClientModule*) 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) {
            ValaMethod* _tmp5_ = NULL;
            gchar* _tmp6_ = NULL;
            gchar* _tmp7_;
            _tmp5_ = vala_method_type_get_method_symbol (mtype);
            _tmp6_ = vala_method_get_cname (_tmp5_);
            _tmp7_ = _tmp6_;
            _tmp4_ = g_strcmp0 (_tmp7_, "dbus_g_proxy_new_from_type") == 0;
            _g_free0 (_tmp7_);
      } else {
            _tmp4_ = FALSE;
      }
      proxy_new_from_type = _tmp4_;
      if (mtype != NULL) {
            ValaMethod* _tmp9_ = NULL;
            gchar* _tmp10_ = NULL;
            gchar* _tmp11_;
            _tmp9_ = vala_method_type_get_method_symbol (mtype);
            _tmp10_ = vala_method_get_cname (_tmp9_);
            _tmp11_ = _tmp10_;
            _tmp8_ = g_strcmp0 (_tmp11_, "dbus_g_proxy_get_all") == 0;
            _g_free0 (_tmp11_);
      } else {
            _tmp8_ = FALSE;
      }
      proxy_get_all = _tmp8_;
      if (mtype != NULL) {
            ValaMethod* _tmp13_ = NULL;
            gchar* _tmp14_ = NULL;
            gchar* _tmp15_;
            _tmp13_ = vala_method_type_get_method_symbol (mtype);
            _tmp14_ = vala_method_get_cname (_tmp13_);
            _tmp15_ = _tmp14_;
            _tmp12_ = g_strcmp0 (_tmp15_, "dbus_g_proxy_new_for_name") == 0;
            _g_free0 (_tmp15_);
      } else {
            _tmp12_ = FALSE;
      }
      proxy_new_for_name = _tmp12_;
      if (proxy_new_for_name) {
            ValaCodeNode* _tmp17_ = NULL;
            _tmp17_ = vala_code_node_get_parent_node ((ValaCodeNode*) expr);
            _tmp16_ = VALA_IS_CAST_EXPRESSION (_tmp17_);
      } else {
            _tmp16_ = FALSE;
      }
      if (_tmp16_) {
            _vala_code_node_unref0 (mtype);
            return;
      }
      if (!proxy_new_from_type) {
            _tmp18_ = !proxy_get_all;
      } else {
            _tmp18_ = FALSE;
      }
      if (_tmp18_) {
            VALA_CODE_VISITOR_CLASS (vala_dbus_client_module_parent_class)->visit_method_call ((ValaCodeVisitor*) VALA_DBUS_MODULE (self), expr);
            _vala_code_node_unref0 (mtype);
            return;
      }
      if (proxy_get_all) {
            ValaExpression* _tmp19_ = NULL;
            ValaExpression* _tmp20_;
            ValaMemberAccess* _tmp21_;
            ValaMemberAccess* ma;
            ValaExpression* _tmp22_ = NULL;
            ValaExpression* _tmp23_;
            ValaExpression* instance;
            ValaList* _tmp24_ = NULL;
            ValaList* args;
            gpointer _tmp25_ = NULL;
            ValaExpression* interface_name;
            ValaMethod* _tmp26_ = NULL;
            gchar* _tmp27_ = NULL;
            gchar* _tmp28_;
            ValaCCodeIdentifier* _tmp29_ = NULL;
            ValaCCodeIdentifier* _tmp30_;
            ValaCCodeFunctionCall* _tmp31_ = NULL;
            ValaCCodeFunctionCall* _tmp32_;
            ValaCCodeFunctionCall* ccall;
            ValaCCodeExpression* _tmp33_ = NULL;
            ValaCCodeExpression* _tmp34_;
            ValaCCodeExpression* _tmp35_ = NULL;
            ValaCCodeExpression* _tmp36_;
            ValaCCodeExpression* _tmp37_ = NULL;
            ValaCCodeExpression* _tmp38_;
            ValaCCodeUnaryExpression* _tmp39_ = NULL;
            ValaCCodeUnaryExpression* _tmp40_;
            _tmp19_ = vala_method_call_get_call (expr);
            _tmp20_ = _tmp19_;
            _tmp21_ = _vala_code_node_ref0 (VALA_IS_MEMBER_ACCESS (_tmp20_) ? ((ValaMemberAccess*) _tmp20_) : NULL);
            ma = _tmp21_;
            _tmp22_ = vala_member_access_get_inner (ma);
            _tmp23_ = _vala_code_node_ref0 (_tmp22_);
            instance = _tmp23_;
            vala_code_node_emit ((ValaCodeNode*) instance, (ValaCodeGenerator*) self);
            _tmp24_ = vala_method_call_get_argument_list (expr);
            args = _tmp24_;
            _tmp25_ = vala_list_get (args, 0);
            interface_name = (ValaExpression*) _tmp25_;
            vala_code_node_emit ((ValaCodeNode*) interface_name, (ValaCodeGenerator*) self);
            _tmp26_ = vala_method_type_get_method_symbol (mtype);
            _tmp27_ = vala_dbus_client_module_generate_get_all_function (self, _tmp26_);
            _tmp28_ = _tmp27_;
            _tmp29_ = vala_ccode_identifier_new (_tmp28_);
            _tmp30_ = _tmp29_;
            _tmp31_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp30_);
            _tmp32_ = _tmp31_;
            _vala_ccode_node_unref0 (_tmp30_);
            _g_free0 (_tmp28_);
            ccall = _tmp32_;
            _tmp33_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, instance);
            _tmp34_ = _tmp33_;
            vala_ccode_function_call_add_argument (ccall, _tmp34_);
            _vala_ccode_node_unref0 (_tmp34_);
            _tmp35_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, interface_name);
            _tmp36_ = _tmp35_;
            vala_ccode_function_call_add_argument (ccall, _tmp36_);
            _vala_ccode_node_unref0 (_tmp36_);
            vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
            _tmp37_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
            _tmp38_ = _tmp37_;
            _tmp39_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp38_);
            _tmp40_ = _tmp39_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp40_);
            _vala_ccode_node_unref0 (_tmp40_);
            _vala_ccode_node_unref0 (_tmp38_);
            vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) expr, (ValaCCodeExpression*) ccall);
            _vala_ccode_node_unref0 (ccall);
            _vala_code_node_unref0 (interface_name);
            _vala_iterable_unref0 (args);
            _vala_code_node_unref0 (instance);
            _vala_code_node_unref0 (ma);
            _vala_code_node_unref0 (mtype);
            return;
      }
      _tmp41_ = vala_method_call_get_argument_list (expr);
      args = _tmp41_;
      _tmp42_ = vala_method_call_get_call (expr);
      _tmp43_ = vala_member_access_get_inner (VALA_MEMBER_ACCESS (_tmp42_));
      _tmp44_ = _vala_code_node_ref0 (_tmp43_);
      connection = _tmp44_;
      _tmp45_ = vala_list_get (args, 0);
      bus_name = (ValaExpression*) _tmp45_;
      _tmp46_ = vala_list_get (args, 1);
      object_path = (ValaExpression*) _tmp46_;
      _tmp47_ = vala_list_get (args, 2);
      interface_name = (ValaExpression*) _tmp47_;
      _tmp48_ = vala_list_get (args, 3);
      type = (ValaExpression*) _tmp48_;
      _tmp49_ = vala_ccode_identifier_new ("g_quark_from_string");
      _tmp50_ = _tmp49_;
      _tmp51_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp50_);
      _tmp52_ = _tmp51_;
      _vala_ccode_node_unref0 (_tmp50_);
      quark_call = _tmp52_;
      _tmp53_ = vala_ccode_constant_new ("\"ValaDBusInterfaceProxyType\"");
      _tmp54_ = _tmp53_;
      vala_ccode_function_call_add_argument (quark_call, (ValaCCodeExpression*) _tmp54_);
      _vala_ccode_node_unref0 (_tmp54_);
      _tmp55_ = vala_ccode_identifier_new ("g_type_get_qdata");
      _tmp56_ = _tmp55_;
      _tmp57_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp56_);
      _tmp58_ = _tmp57_;
      _vala_ccode_node_unref0 (_tmp56_);
      qdata_call = _tmp58_;
      vala_code_node_emit ((ValaCodeNode*) type, (ValaCodeGenerator*) self);
      _tmp59_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, type);
      _tmp60_ = _tmp59_;
      vala_ccode_function_call_add_argument (qdata_call, _tmp60_);
      _vala_ccode_node_unref0 (_tmp60_);
      vala_ccode_function_call_add_argument (qdata_call, (ValaCCodeExpression*) quark_call);
      _tmp61_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) qdata_call, "GType (*)(void)");
      _tmp62_ = _tmp61_;
      _tmp63_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp62_);
      _tmp64_ = _tmp63_;
      _vala_ccode_node_unref0 (_tmp62_);
      get_type_call = _tmp64_;
      _tmp65_ = vala_ccode_identifier_new ("g_object_new");
      _tmp66_ = _tmp65_;
      _tmp67_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp66_);
      _tmp68_ = _tmp67_;
      _vala_ccode_node_unref0 (_tmp66_);
      ccall = _tmp68_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) get_type_call);
      _tmp69_ = vala_ccode_constant_new ("\"connection\"");
      _tmp70_ = _tmp69_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp70_);
      _vala_ccode_node_unref0 (_tmp70_);
      vala_code_node_emit ((ValaCodeNode*) connection, (ValaCodeGenerator*) self);
      _tmp71_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, connection);
      _tmp72_ = _tmp71_;
      vala_ccode_function_call_add_argument (ccall, _tmp72_);
      _vala_ccode_node_unref0 (_tmp72_);
      _tmp73_ = vala_ccode_constant_new ("\"name\"");
      _tmp74_ = _tmp73_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp74_);
      _vala_ccode_node_unref0 (_tmp74_);
      vala_code_node_emit ((ValaCodeNode*) bus_name, (ValaCodeGenerator*) self);
      _tmp75_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, bus_name);
      _tmp76_ = _tmp75_;
      vala_ccode_function_call_add_argument (ccall, _tmp76_);
      _vala_ccode_node_unref0 (_tmp76_);
      _tmp77_ = vala_ccode_constant_new ("\"path\"");
      _tmp78_ = _tmp77_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp78_);
      _vala_ccode_node_unref0 (_tmp78_);
      vala_code_node_emit ((ValaCodeNode*) object_path, (ValaCodeGenerator*) self);
      _tmp79_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, object_path);
      _tmp80_ = _tmp79_;
      vala_ccode_function_call_add_argument (ccall, _tmp80_);
      _vala_ccode_node_unref0 (_tmp80_);
      _tmp81_ = vala_ccode_constant_new ("\"interface\"");
      _tmp82_ = _tmp81_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp82_);
      _vala_ccode_node_unref0 (_tmp82_);
      vala_code_node_emit ((ValaCodeNode*) interface_name, (ValaCodeGenerator*) self);
      _tmp83_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, interface_name);
      _tmp84_ = _tmp83_;
      vala_ccode_function_call_add_argument (ccall, _tmp84_);
      _vala_ccode_node_unref0 (_tmp84_);
      _tmp85_ = vala_ccode_constant_new ("NULL");
      _tmp86_ = _tmp85_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp86_);
      _vala_ccode_node_unref0 (_tmp86_);
      vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) expr, (ValaCCodeExpression*) ccall);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (get_type_call);
      _vala_ccode_node_unref0 (qdata_call);
      _vala_ccode_node_unref0 (quark_call);
      _vala_code_node_unref0 (type);
      _vala_code_node_unref0 (interface_name);
      _vala_code_node_unref0 (object_path);
      _vala_code_node_unref0 (bus_name);
      _vala_code_node_unref0 (connection);
      _vala_iterable_unref0 (args);
      _vala_code_node_unref0 (mtype);
}


static void vala_dbus_client_module_generate_proxy_filter_function (ValaDBusClientModule* self, ValaInterface* iface) {
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      gchar* _tmp2_;
      gchar* _tmp3_;
      gchar* lower_cname;
      gchar* _tmp4_;
      gchar* _tmp5_;
      ValaCCodeFunction* _tmp6_ = NULL;
      ValaCCodeFunction* _tmp7_;
      ValaCCodeFunction* proxy_filter;
      ValaCCodeParameter* _tmp8_ = NULL;
      ValaCCodeParameter* _tmp9_;
      ValaCCodeParameter* _tmp10_ = NULL;
      ValaCCodeParameter* _tmp11_;
      ValaCCodeParameter* _tmp12_ = NULL;
      ValaCCodeParameter* _tmp13_;
      ValaCCodeBlock* _tmp14_ = NULL;
      ValaCCodeBlock* filter_block;
      ValaCCodeIdentifier* _tmp15_ = NULL;
      ValaCCodeIdentifier* _tmp16_;
      ValaCCodeFunctionCall* _tmp17_ = NULL;
      ValaCCodeFunctionCall* _tmp18_;
      ValaCCodeFunctionCall* path;
      ValaCCodeIdentifier* _tmp19_ = NULL;
      ValaCCodeIdentifier* _tmp20_;
      ValaCCodeIdentifier* _tmp21_ = NULL;
      ValaCCodeIdentifier* _tmp22_;
      ValaCCodeFunctionCall* _tmp23_ = NULL;
      ValaCCodeFunctionCall* _tmp24_;
      ValaCCodeFunctionCall* ccheck;
      ValaCCodeIdentifier* _tmp25_ = NULL;
      ValaCCodeIdentifier* _tmp26_;
      ValaCCodeBlock* _tmp27_ = NULL;
      ValaCCodeBlock* object_filter_block;
      ValaCCodeIfStatement* _tmp28_ = NULL;
      ValaCCodeIfStatement* _tmp29_;
      ValaCCodeIdentifier* _tmp30_ = NULL;
      ValaCCodeIdentifier* _tmp31_;
      ValaCCodeReturnStatement* _tmp32_ = NULL;
      ValaCCodeReturnStatement* _tmp33_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (iface != NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = g_strconcat (_tmp1_, "dbus_proxy", NULL);
      _tmp3_ = _tmp2_;
      _g_free0 (_tmp1_);
      lower_cname = _tmp3_;
      _tmp4_ = g_strconcat (lower_cname, "_filter", NULL);
      _tmp5_ = _tmp4_;
      _tmp6_ = vala_ccode_function_new (_tmp5_, "DBusHandlerResult");
      _tmp7_ = _tmp6_;
      _g_free0 (_tmp5_);
      proxy_filter = _tmp7_;
      _tmp8_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp9_ = _tmp8_;
      vala_ccode_function_add_parameter (proxy_filter, _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _tmp10_ = vala_ccode_parameter_new ("message", "DBusMessage*");
      _tmp11_ = _tmp10_;
      vala_ccode_function_add_parameter (proxy_filter, _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_parameter_new ("user_data", "void*");
      _tmp13_ = _tmp12_;
      vala_ccode_function_add_parameter (proxy_filter, _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      _tmp14_ = vala_ccode_block_new ();
      filter_block = _tmp14_;
      _tmp15_ = vala_ccode_identifier_new ("dbus_g_proxy_get_path");
      _tmp16_ = _tmp15_;
      _tmp17_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp16_);
      _tmp18_ = _tmp17_;
      _vala_ccode_node_unref0 (_tmp16_);
      path = _tmp18_;
      _tmp19_ = vala_ccode_identifier_new ("user_data");
      _tmp20_ = _tmp19_;
      vala_ccode_function_call_add_argument (path, (ValaCCodeExpression*) _tmp20_);
      _vala_ccode_node_unref0 (_tmp20_);
      _tmp21_ = vala_ccode_identifier_new ("dbus_message_has_path");
      _tmp22_ = _tmp21_;
      _tmp23_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp22_);
      _tmp24_ = _tmp23_;
      _vala_ccode_node_unref0 (_tmp22_);
      ccheck = _tmp24_;
      _tmp25_ = vala_ccode_identifier_new ("message");
      _tmp26_ = _tmp25_;
      vala_ccode_function_call_add_argument (ccheck, (ValaCCodeExpression*) _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      vala_ccode_function_call_add_argument (ccheck, (ValaCCodeExpression*) path);
      _tmp27_ = vala_ccode_block_new ();
      object_filter_block = _tmp27_;
      _tmp28_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) ccheck, (ValaCCodeStatement*) object_filter_block, NULL);
      _tmp29_ = _tmp28_;
      vala_ccode_block_add_statement (filter_block, (ValaCCodeNode*) _tmp29_);
      _vala_ccode_node_unref0 (_tmp29_);
      vala_dbus_client_module_handle_signals (self, iface, object_filter_block);
      _tmp30_ = vala_ccode_identifier_new ("DBUS_HANDLER_RESULT_NOT_YET_HANDLED");
      _tmp31_ = _tmp30_;
      _tmp32_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp31_);
      _tmp33_ = _tmp32_;
      vala_ccode_block_add_statement (filter_block, (ValaCCodeNode*) _tmp33_);
      _vala_ccode_node_unref0 (_tmp33_);
      _vala_ccode_node_unref0 (_tmp31_);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, proxy_filter);
      vala_ccode_function_set_block (proxy_filter, filter_block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_filter);
      _vala_ccode_node_unref0 (object_filter_block);
      _vala_ccode_node_unref0 (ccheck);
      _vala_ccode_node_unref0 (path);
      _vala_ccode_node_unref0 (filter_block);
      _vala_ccode_node_unref0 (proxy_filter);
      _g_free0 (lower_cname);
}


static gchar* vala_dbus_client_module_generate_dbus_signal_handler (ValaDBusClientModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym) {
      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;
      gchar* _tmp7_ = NULL;
      gchar* _tmp8_;
      gchar* _tmp9_;
      gchar* _tmp10_;
      ValaCCodeParameter* _tmp11_ = NULL;
      ValaCCodeParameter* _tmp12_;
      ValaCCodeParameter* _tmp13_ = NULL;
      ValaCCodeParameter* _tmp14_;
      ValaCCodeParameter* _tmp15_ = NULL;
      ValaCCodeParameter* _tmp16_;
      ValaCCodeBlock* _tmp17_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp18_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeFragment* _tmp19_ = NULL;
      ValaCCodeFragment* postfragment;
      ValaCCodeDeclaration* _tmp20_ = NULL;
      ValaCCodeVariableDeclarator* _tmp21_ = NULL;
      ValaCCodeVariableDeclarator* _tmp22_;
      ValaCCodeIdentifier* _tmp23_ = NULL;
      ValaCCodeIdentifier* _tmp24_;
      ValaCCodeFunctionCall* _tmp25_ = NULL;
      ValaCCodeFunctionCall* _tmp26_;
      ValaCCodeFunctionCall* message_signature;
      ValaCCodeIdentifier* _tmp27_ = NULL;
      ValaCCodeIdentifier* _tmp28_;
      ValaCCodeIdentifier* _tmp29_ = NULL;
      ValaCCodeIdentifier* _tmp30_;
      ValaCCodeFunctionCall* _tmp31_ = NULL;
      ValaCCodeFunctionCall* _tmp32_;
      ValaCCodeFunctionCall* signature_check;
      ValaCCodeBlock* _tmp33_ = NULL;
      ValaCCodeBlock* signature_error_block;
      ValaCCodeReturnStatement* _tmp34_ = NULL;
      ValaCCodeReturnStatement* _tmp35_;
      ValaCCodeIfStatement* _tmp36_ = NULL;
      ValaCCodeIfStatement* _tmp37_;
      ValaCCodeIdentifier* _tmp38_ = NULL;
      ValaCCodeIdentifier* _tmp39_;
      ValaCCodeFunctionCall* _tmp40_ = NULL;
      ValaCCodeFunctionCall* _tmp41_;
      ValaCCodeFunctionCall* iter_call;
      ValaCCodeIdentifier* _tmp42_ = NULL;
      ValaCCodeIdentifier* _tmp43_;
      ValaCCodeIdentifier* _tmp44_ = NULL;
      ValaCCodeIdentifier* _tmp45_;
      ValaCCodeUnaryExpression* _tmp46_ = NULL;
      ValaCCodeUnaryExpression* _tmp47_;
      ValaCCodeExpressionStatement* _tmp48_ = NULL;
      ValaCCodeExpressionStatement* _tmp49_;
      ValaCCodeIdentifier* _tmp50_ = NULL;
      ValaCCodeIdentifier* _tmp51_;
      ValaCCodeFunctionCall* _tmp52_ = NULL;
      ValaCCodeFunctionCall* _tmp53_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp54_ = NULL;
      ValaCCodeIdentifier* _tmp55_;
      ValaCCodeConstant* _tmp56_ = NULL;
      ValaCCodeConstant* _tmp57_;
      gchar* _tmp58_;
      gchar* type_signature;
      gchar* _tmp133_ = NULL;
      gchar* _tmp134_;
      ValaCCodeConstant* _tmp135_ = NULL;
      ValaCCodeConstant* _tmp136_;
      ValaCCodeExpressionStatement* _tmp137_ = NULL;
      ValaCCodeExpressionStatement* _tmp138_;
      ValaCCodeDeclaration* _tmp139_ = NULL;
      ValaCCodeVariableDeclarator* _tmp140_ = NULL;
      ValaCCodeVariableDeclarator* _tmp141_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (sig != NULL, NULL);
      g_return_val_if_fail (sym != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_signal_get_cname (sig);
      _tmp3_ = _tmp2_;
      _tmp4_ = g_strdup_printf ("_dbus_handle_%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_typesymbol_get_cname ((ValaTypeSymbol*) sym, FALSE);
      _tmp8_ = _tmp7_;
      _tmp9_ = g_strconcat (_tmp8_, "*", NULL);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_ccode_parameter_new ("self", _tmp10_);
      _tmp12_ = _tmp11_;
      vala_ccode_function_add_parameter (function, _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _g_free0 (_tmp10_);
      _g_free0 (_tmp8_);
      _tmp13_ = vala_ccode_parameter_new ("connection", "DBusConnection*");
      _tmp14_ = _tmp13_;
      vala_ccode_function_add_parameter (function, _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      _tmp15_ = vala_ccode_parameter_new ("message", "DBusMessage*");
      _tmp16_ = _tmp15_;
      vala_ccode_function_add_parameter (function, _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      _tmp17_ = vala_ccode_block_new ();
      block = _tmp17_;
      _tmp18_ = vala_ccode_fragment_new ();
      prefragment = _tmp18_;
      _tmp19_ = vala_ccode_fragment_new ();
      postfragment = _tmp19_;
      _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_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) prefragment);
      _tmp23_ = vala_ccode_identifier_new ("dbus_message_get_signature");
      _tmp24_ = _tmp23_;
      _tmp25_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp24_);
      _tmp26_ = _tmp25_;
      _vala_ccode_node_unref0 (_tmp24_);
      message_signature = _tmp26_;
      _tmp27_ = vala_ccode_identifier_new ("message");
      _tmp28_ = _tmp27_;
      vala_ccode_function_call_add_argument (message_signature, (ValaCCodeExpression*) _tmp28_);
      _vala_ccode_node_unref0 (_tmp28_);
      _tmp29_ = vala_ccode_identifier_new ("strcmp");
      _tmp30_ = _tmp29_;
      _tmp31_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp30_);
      _tmp32_ = _tmp31_;
      _vala_ccode_node_unref0 (_tmp30_);
      signature_check = _tmp32_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) message_signature);
      _tmp33_ = vala_ccode_block_new ();
      signature_error_block = _tmp33_;
      _tmp34_ = vala_ccode_return_statement_new (NULL);
      _tmp35_ = _tmp34_;
      vala_ccode_block_add_statement (signature_error_block, (ValaCCodeNode*) _tmp35_);
      _vala_ccode_node_unref0 (_tmp35_);
      _tmp36_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) signature_check, (ValaCCodeStatement*) signature_error_block, NULL);
      _tmp37_ = _tmp36_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp37_);
      _vala_ccode_node_unref0 (_tmp37_);
      _tmp38_ = vala_ccode_identifier_new ("dbus_message_iter_init");
      _tmp39_ = _tmp38_;
      _tmp40_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp39_);
      _tmp41_ = _tmp40_;
      _vala_ccode_node_unref0 (_tmp39_);
      iter_call = _tmp41_;
      _tmp42_ = vala_ccode_identifier_new ("message");
      _tmp43_ = _tmp42_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp43_);
      _vala_ccode_node_unref0 (_tmp43_);
      _tmp44_ = vala_ccode_identifier_new ("iter");
      _tmp45_ = _tmp44_;
      _tmp46_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp45_);
      _tmp47_ = _tmp46_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp47_);
      _vala_ccode_node_unref0 (_tmp47_);
      _vala_ccode_node_unref0 (_tmp45_);
      _tmp48_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp49_ = _tmp48_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp49_);
      _vala_ccode_node_unref0 (_tmp49_);
      _tmp50_ = vala_ccode_identifier_new ("g_signal_emit_by_name");
      _tmp51_ = _tmp50_;
      _tmp52_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp51_);
      _tmp53_ = _tmp52_;
      _vala_ccode_node_unref0 (_tmp51_);
      ccall = _tmp53_;
      _tmp54_ = vala_ccode_identifier_new ("self");
      _tmp55_ = _tmp54_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp55_);
      _vala_ccode_node_unref0 (_tmp55_);
      _tmp56_ = vala_signal_get_canonical_cconstant (sig, NULL);
      _tmp57_ = _tmp56_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp57_);
      _vala_ccode_node_unref0 (_tmp57_);
      _tmp58_ = g_strdup ("");
      type_signature = _tmp58_;
      {
            ValaList* _tmp59_ = NULL;
            ValaList* _param_list;
            gint _tmp60_;
            gint _param_size;
            gint _param_index;
            _tmp59_ = vala_signal_get_parameters (sig);
            _param_list = _tmp59_;
            _tmp60_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp60_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp61_ = NULL;
                  ValaParameter* param;
                  ValaDataType* _tmp62_ = NULL;
                  ValaDataType* _tmp63_ = NULL;
                  ValaDataType* owned_type;
                  gchar* _tmp64_ = NULL;
                  gchar* _tmp65_;
                  ValaCCodeDeclaration* _tmp66_ = NULL;
                  const gchar* _tmp67_ = NULL;
                  ValaDataType* _tmp68_ = NULL;
                  ValaCCodeExpression* _tmp69_ = NULL;
                  ValaCCodeExpression* _tmp70_;
                  ValaCCodeVariableDeclarator* _tmp71_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp72_;
                  ValaDataType* _tmp73_ = NULL;
                  gchar* _tmp74_ = NULL;
                  gchar* _tmp75_;
                  gboolean _tmp76_;
                  ValaDataType* _tmp84_ = NULL;
                  ValaTypeSymbol* _tmp85_ = NULL;
                  ValaTypeSymbol* _tmp86_;
                  ValaStruct* _tmp87_;
                  ValaStruct* st;
                  gboolean _tmp88_ = FALSE;
                  ValaDataType* _tmp98_ = NULL;
                  ValaDataType* _tmp111_ = NULL;
                  gchar* _tmp112_ = NULL;
                  gchar* _tmp113_;
                  gchar* _tmp114_;
                  const gchar* _tmp115_ = NULL;
                  ValaCCodeIdentifier* _tmp116_ = NULL;
                  ValaCCodeIdentifier* target;
                  ValaDataType* _tmp117_ = NULL;
                  ValaCCodeIdentifier* _tmp118_ = NULL;
                  ValaCCodeIdentifier* _tmp119_;
                  ValaCCodeExpression* _tmp120_ = NULL;
                  ValaCCodeExpression* _tmp121_;
                  ValaCCodeExpression* expr;
                  ValaCCodeAssignment* _tmp122_ = NULL;
                  ValaCCodeAssignment* _tmp123_;
                  ValaCCodeExpressionStatement* _tmp124_ = NULL;
                  ValaCCodeExpressionStatement* _tmp125_;
                  gboolean _tmp126_;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp61_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp61_;
                  _tmp62_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp63_ = vala_data_type_copy (_tmp62_);
                  owned_type = _tmp63_;
                  vala_data_type_set_value_owned (owned_type, TRUE);
                  _tmp64_ = vala_data_type_get_cname (owned_type);
                  _tmp65_ = _tmp64_;
                  _tmp66_ = vala_ccode_declaration_new (_tmp65_);
                  _vala_ccode_node_unref0 (_cdecl_);
                  _cdecl_ = _tmp66_;
                  _g_free0 (_tmp65_);
                  _tmp67_ = vala_symbol_get_name ((ValaSymbol*) param);
                  _tmp68_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp69_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp68_, TRUE);
                  _tmp70_ = _tmp69_;
                  _tmp71_ = vala_ccode_variable_declarator_new_zero (_tmp67_, _tmp70_, NULL);
                  _tmp72_ = _tmp71_;
                  vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp72_);
                  _vala_ccode_node_unref0 (_tmp72_);
                  _vala_ccode_node_unref0 (_tmp70_);
                  vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
                  _tmp73_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp74_ = vala_dbus_module_get_type_signature (_tmp73_);
                  _tmp75_ = _tmp74_;
                  _tmp76_ = _tmp75_ == NULL;
                  _g_free0 (_tmp75_);
                  if (_tmp76_) {
                        ValaDataType* _tmp77_ = NULL;
                        ValaSourceReference* _tmp78_ = NULL;
                        ValaDataType* _tmp79_ = NULL;
                        gchar* _tmp80_ = NULL;
                        gchar* _tmp81_;
                        gchar* _tmp82_ = NULL;
                        gchar* _tmp83_;
                        _tmp77_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp78_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp77_);
                        _tmp79_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp80_ = vala_code_node_to_string ((ValaCodeNode*) _tmp79_);
                        _tmp81_ = _tmp80_;
                        _tmp82_ = g_strdup_printf ("D-Bus serialization of type `%s' is not supported", _tmp81_);
                        _tmp83_ = _tmp82_;
                        vala_report_error (_tmp78_, _tmp83_);
                        _g_free0 (_tmp83_);
                        _g_free0 (_tmp81_);
                        _vala_code_node_unref0 (owned_type);
                        _vala_code_node_unref0 (param);
                        continue;
                  }
                  _tmp84_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp85_ = vala_data_type_get_data_type (_tmp84_);
                  _tmp86_ = _tmp85_;
                  _tmp87_ = _vala_code_node_ref0 (VALA_IS_STRUCT (_tmp86_) ? ((ValaStruct*) _tmp86_) : NULL);
                  st = _tmp87_;
                  if (st != NULL) {
                        gboolean _tmp89_;
                        _tmp89_ = vala_struct_is_simple_type (st);
                        _tmp88_ = !_tmp89_;
                  } else {
                        _tmp88_ = FALSE;
                  }
                  if (_tmp88_) {
                        const gchar* _tmp90_ = NULL;
                        ValaCCodeIdentifier* _tmp91_ = NULL;
                        ValaCCodeIdentifier* _tmp92_;
                        ValaCCodeUnaryExpression* _tmp93_ = NULL;
                        ValaCCodeUnaryExpression* _tmp94_;
                        _tmp90_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp91_ = vala_ccode_identifier_new (_tmp90_);
                        _tmp92_ = _tmp91_;
                        _tmp93_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp92_);
                        _tmp94_ = _tmp93_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp94_);
                        _vala_ccode_node_unref0 (_tmp94_);
                        _vala_ccode_node_unref0 (_tmp92_);
                  } else {
                        const gchar* _tmp95_ = NULL;
                        ValaCCodeIdentifier* _tmp96_ = NULL;
                        ValaCCodeIdentifier* _tmp97_;
                        _tmp95_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp96_ = vala_ccode_identifier_new (_tmp95_);
                        _tmp97_ = _tmp96_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp97_);
                        _vala_ccode_node_unref0 (_tmp97_);
                  }
                  _tmp98_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  if (VALA_IS_ARRAY_TYPE (_tmp98_)) {
                        ValaDataType* _tmp99_ = NULL;
                        ValaArrayType* _tmp100_;
                        ValaArrayType* array_type;
                        _tmp99_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp100_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp99_));
                        array_type = _tmp100_;
                        {
                              gint dim;
                              dim = 1;
                              {
                                    gboolean _tmp101_;
                                    _tmp101_ = TRUE;
                                    while (TRUE) {
                                          gint _tmp102_;
                                          gchar* _tmp103_ = NULL;
                                          gchar* length_cname;
                                          ValaCCodeDeclaration* _tmp104_ = NULL;
                                          ValaCCodeConstant* _tmp105_ = NULL;
                                          ValaCCodeConstant* _tmp106_;
                                          ValaCCodeVariableDeclarator* _tmp107_ = NULL;
                                          ValaCCodeVariableDeclarator* _tmp108_;
                                          ValaCCodeIdentifier* _tmp109_ = NULL;
                                          ValaCCodeIdentifier* _tmp110_;
                                          if (!_tmp101_) {
                                                dim++;
                                          }
                                          _tmp101_ = FALSE;
                                          _tmp102_ = vala_array_type_get_rank (array_type);
                                          if (!(dim <= _tmp102_)) {
                                                break;
                                          }
                                          _tmp103_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, param, dim);
                                          length_cname = _tmp103_;
                                          _tmp104_ = vala_ccode_declaration_new ("int");
                                          _vala_ccode_node_unref0 (_cdecl_);
                                          _cdecl_ = _tmp104_;
                                          _tmp105_ = vala_ccode_constant_new ("0");
                                          _tmp106_ = _tmp105_;
                                          _tmp107_ = vala_ccode_variable_declarator_new (length_cname, (ValaCCodeExpression*) _tmp106_, NULL);
                                          _tmp108_ = _tmp107_;
                                          vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp108_);
                                          _vala_ccode_node_unref0 (_tmp108_);
                                          _vala_ccode_node_unref0 (_tmp106_);
                                          vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _cdecl_);
                                          _tmp109_ = vala_ccode_identifier_new (length_cname);
                                          _tmp110_ = _tmp109_;
                                          vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp110_);
                                          _vala_ccode_node_unref0 (_tmp110_);
                                          _g_free0 (length_cname);
                                    }
                              }
                        }
                        _vala_code_node_unref0 (array_type);
                  }
                  _tmp111_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp112_ = vala_dbus_module_get_type_signature (_tmp111_);
                  _tmp113_ = _tmp112_;
                  _tmp114_ = g_strconcat (type_signature, _tmp113_, NULL);
                  _g_free0 (type_signature);
                  type_signature = _tmp114_;
                  _g_free0 (_tmp113_);
                  _tmp115_ = vala_symbol_get_name ((ValaSymbol*) param);
                  _tmp116_ = vala_ccode_identifier_new (_tmp115_);
                  target = _tmp116_;
                  _tmp117_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp118_ = vala_ccode_identifier_new ("iter");
                  _tmp119_ = _tmp118_;
                  _tmp120_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, prefragment, _tmp117_, (ValaCCodeExpression*) _tmp119_, (ValaCCodeExpression*) target);
                  _tmp121_ = _tmp120_;
                  _vala_ccode_node_unref0 (_tmp119_);
                  expr = _tmp121_;
                  _tmp122_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                  _tmp123_ = _tmp122_;
                  _tmp124_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp123_);
                  _tmp125_ = _tmp124_;
                  vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp125_);
                  _vala_ccode_node_unref0 (_tmp125_);
                  _vala_ccode_node_unref0 (_tmp123_);
                  _tmp126_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, owned_type);
                  if (_tmp126_) {
                        const gchar* _tmp127_ = NULL;
                        ValaLocalVariable* _tmp128_ = NULL;
                        ValaLocalVariable* local;
                        ValaCCodeExpression* _tmp129_ = NULL;
                        ValaCCodeExpression* _tmp130_;
                        ValaCCodeExpressionStatement* _tmp131_ = NULL;
                        ValaCCodeExpressionStatement* _tmp132_;
                        ValaCCodeExpressionStatement* stmt;
                        _tmp127_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp128_ = vala_local_variable_new (owned_type, _tmp127_, NULL, NULL);
                        local = _tmp128_;
                        _tmp129_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, local);
                        _tmp130_ = _tmp129_;
                        _tmp131_ = vala_ccode_expression_statement_new (_tmp130_);
                        _tmp132_ = _tmp131_;
                        _vala_ccode_node_unref0 (_tmp130_);
                        stmt = _tmp132_;
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) stmt);
                        _vala_ccode_node_unref0 (stmt);
                        _vala_code_node_unref0 (local);
                  }
                  _vala_ccode_node_unref0 (expr);
                  _vala_ccode_node_unref0 (target);
                  _vala_code_node_unref0 (st);
                  _vala_code_node_unref0 (owned_type);
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp133_ = g_strdup_printf ("\"%s\"", type_signature);
      _tmp134_ = _tmp133_;
      _tmp135_ = vala_ccode_constant_new (_tmp134_);
      _tmp136_ = _tmp135_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) _tmp136_);
      _vala_ccode_node_unref0 (_tmp136_);
      _g_free0 (_tmp134_);
      _tmp137_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
      _tmp138_ = _tmp137_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp138_);
      _vala_ccode_node_unref0 (_tmp138_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) postfragment);
      _tmp139_ = vala_ccode_declaration_new ("DBusMessage*");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp139_;
      _tmp140_ = vala_ccode_variable_declarator_new ("reply", NULL, NULL);
      _tmp141_ = _tmp140_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp141_);
      _vala_ccode_node_unref0 (_tmp141_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      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;
      _g_free0 (type_signature);
      _vala_ccode_node_unref0 (ccall);
      _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 (postfragment);
      _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_client_module_handle_signal (ValaDBusClientModule* self, const gchar* dbus_iface_name, const gchar* dbus_signal_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_;
      ValaCCodeExpressionStatement* _tmp25_ = NULL;
      ValaCCodeExpressionStatement* _tmp26_;
      ValaCCodeIfStatement* _tmp27_ = NULL;
      ValaCCodeIfStatement* cif;
      ValaCCodeIfStatement* _tmp28_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (dbus_iface_name != NULL);
      g_return_if_fail (dbus_signal_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_signal");
      _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_signal_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 ("user_data");
      _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_expression_statement_new ((ValaCCodeExpression*) ccall);
      _tmp26_ = _tmp25_;
      vala_ccode_block_add_statement (callblock, (ValaCCodeNode*) _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      _tmp27_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) ccheck, (ValaCCodeStatement*) callblock, NULL);
      cif = _tmp27_;
      if ((*clastif) == NULL) {
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) cif);
      } else {
            vala_ccode_if_statement_set_false_statement (*clastif, (ValaCCodeStatement*) cif);
      }
      _tmp28_ = _vala_ccode_node_ref0 (cif);
      _vala_ccode_node_unref0 (*clastif);
      *clastif = _tmp28_;
      _vala_ccode_node_unref0 (cif);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (callblock);
      _vala_ccode_node_unref0 (ccheck);
}


static void vala_dbus_client_module_handle_signals (ValaDBusClientModule* self, ValaInterface* iface, ValaCCodeBlock* block) {
      gchar* _tmp0_ = NULL;
      gchar* dbus_iface_name;
      ValaCCodeIfStatement* clastif;
      g_return_if_fail (self != NULL);
      g_return_if_fail (iface != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp0_;
      clastif = NULL;
      {
            ValaList* _tmp1_ = NULL;
            ValaList* _sig_list;
            gint _tmp2_;
            gint _sig_size;
            gint _sig_index;
            _tmp1_ = vala_object_type_symbol_get_signals ((ValaObjectTypeSymbol*) iface);
            _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_;
                  gchar* _tmp5_ = NULL;
                  gchar* _tmp6_;
                  gchar* _tmp7_ = NULL;
                  gchar* _tmp8_;
                  _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_module_get_dbus_name_for_member ((ValaSymbol*) sig);
                  _tmp6_ = _tmp5_;
                  _tmp7_ = vala_dbus_client_module_generate_dbus_signal_handler (self, sig, (ValaObjectTypeSymbol*) iface);
                  _tmp8_ = _tmp7_;
                  vala_dbus_client_module_handle_signal (self, dbus_iface_name, _tmp6_, _tmp8_, block, &clastif);
                  _g_free0 (_tmp8_);
                  _g_free0 (_tmp6_);
                  _vala_code_node_unref0 (sig);
            }
            _vala_iterable_unref0 (_sig_list);
      }
      _vala_ccode_node_unref0 (clastif);
      _g_free0 (dbus_iface_name);
}


static void vala_dbus_client_module_generate_marshalling (ValaDBusClientModule* self, ValaMethod* m, const gchar* dbus_iface_name, ValaCCodeFragment* prefragment, ValaCCodeFragment* postfragment) {
      ValaCCodeDeclaration* _cdecl_ = NULL;
      gboolean _tmp0_;
      gboolean no_reply;
      ValaCCodeIdentifier* _tmp1_ = NULL;
      ValaCCodeIdentifier* _tmp2_;
      ValaCCodeFunctionCall* _tmp3_ = NULL;
      ValaCCodeFunctionCall* _tmp4_;
      ValaCCodeFunctionCall* destination;
      ValaCCodeIdentifier* _tmp5_ = NULL;
      ValaCCodeIdentifier* _tmp6_;
      ValaCCodeCastExpression* _tmp7_ = NULL;
      ValaCCodeCastExpression* _tmp8_;
      ValaCCodeIdentifier* _tmp9_ = NULL;
      ValaCCodeIdentifier* _tmp10_;
      ValaCCodeFunctionCall* _tmp11_ = NULL;
      ValaCCodeFunctionCall* _tmp12_;
      ValaCCodeFunctionCall* path;
      ValaCCodeIdentifier* _tmp13_ = NULL;
      ValaCCodeIdentifier* _tmp14_;
      ValaCCodeCastExpression* _tmp15_ = NULL;
      ValaCCodeCastExpression* _tmp16_;
      ValaCCodeIdentifier* _tmp17_ = NULL;
      ValaCCodeIdentifier* _tmp18_;
      ValaCCodeFunctionCall* _tmp19_ = NULL;
      ValaCCodeFunctionCall* _tmp20_;
      ValaCCodeFunctionCall* msgcall;
      gchar* _tmp21_ = NULL;
      gchar* _tmp22_;
      ValaCCodeConstant* _tmp23_ = NULL;
      ValaCCodeConstant* _tmp24_;
      gchar* _tmp25_ = NULL;
      gchar* _tmp26_;
      gchar* _tmp27_ = NULL;
      gchar* _tmp28_;
      ValaCCodeConstant* _tmp29_ = NULL;
      ValaCCodeConstant* _tmp30_;
      ValaCCodeIdentifier* _tmp31_ = NULL;
      ValaCCodeIdentifier* _tmp32_;
      ValaCCodeAssignment* _tmp33_ = NULL;
      ValaCCodeAssignment* _tmp34_;
      ValaCCodeExpressionStatement* _tmp35_ = NULL;
      ValaCCodeExpressionStatement* _tmp36_;
      ValaCCodeIdentifier* _tmp47_ = NULL;
      ValaCCodeIdentifier* _tmp48_;
      ValaCCodeFunctionCall* _tmp49_ = NULL;
      ValaCCodeFunctionCall* _tmp50_;
      ValaCCodeFunctionCall* iter_call;
      ValaCCodeIdentifier* _tmp51_ = NULL;
      ValaCCodeIdentifier* _tmp52_;
      ValaCCodeIdentifier* _tmp53_ = NULL;
      ValaCCodeIdentifier* _tmp54_;
      ValaCCodeUnaryExpression* _tmp55_ = NULL;
      ValaCCodeUnaryExpression* _tmp56_;
      ValaCCodeExpressionStatement* _tmp57_ = NULL;
      ValaCCodeExpressionStatement* _tmp58_;
      ValaDataType* _tmp153_ = NULL;
      g_return_if_fail (self != NULL);
      g_return_if_fail (m != NULL);
      g_return_if_fail (dbus_iface_name != NULL);
      g_return_if_fail (prefragment != NULL);
      g_return_if_fail (postfragment != NULL);
      _tmp0_ = vala_dbus_client_module_is_dbus_no_reply ((ValaCodeNode*) m);
      no_reply = _tmp0_;
      _tmp1_ = vala_ccode_identifier_new ("dbus_g_proxy_get_bus_name");
      _tmp2_ = _tmp1_;
      _tmp3_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp2_);
      _tmp4_ = _tmp3_;
      _vala_ccode_node_unref0 (_tmp2_);
      destination = _tmp4_;
      _tmp5_ = vala_ccode_identifier_new ("self");
      _tmp6_ = _tmp5_;
      _tmp7_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp6_, "DBusGProxy*");
      _tmp8_ = _tmp7_;
      vala_ccode_function_call_add_argument (destination, (ValaCCodeExpression*) _tmp8_);
      _vala_ccode_node_unref0 (_tmp8_);
      _vala_ccode_node_unref0 (_tmp6_);
      _tmp9_ = vala_ccode_identifier_new ("dbus_g_proxy_get_path");
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp10_);
      _tmp12_ = _tmp11_;
      _vala_ccode_node_unref0 (_tmp10_);
      path = _tmp12_;
      _tmp13_ = vala_ccode_identifier_new ("self");
      _tmp14_ = _tmp13_;
      _tmp15_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp14_, "DBusGProxy*");
      _tmp16_ = _tmp15_;
      vala_ccode_function_call_add_argument (path, (ValaCCodeExpression*) _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      _vala_ccode_node_unref0 (_tmp14_);
      _tmp17_ = vala_ccode_identifier_new ("dbus_message_new_method_call");
      _tmp18_ = _tmp17_;
      _tmp19_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp18_);
      _tmp20_ = _tmp19_;
      _vala_ccode_node_unref0 (_tmp18_);
      msgcall = _tmp20_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) destination);
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) path);
      _tmp21_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
      _tmp22_ = _tmp21_;
      _tmp23_ = vala_ccode_constant_new (_tmp22_);
      _tmp24_ = _tmp23_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _g_free0 (_tmp22_);
      _tmp25_ = vala_dbus_module_get_dbus_name_for_member ((ValaSymbol*) m);
      _tmp26_ = _tmp25_;
      _tmp27_ = g_strdup_printf ("\"%s\"", _tmp26_);
      _tmp28_ = _tmp27_;
      _tmp29_ = vala_ccode_constant_new (_tmp28_);
      _tmp30_ = _tmp29_;
      vala_ccode_function_call_add_argument (msgcall, (ValaCCodeExpression*) _tmp30_);
      _vala_ccode_node_unref0 (_tmp30_);
      _g_free0 (_tmp28_);
      _g_free0 (_tmp26_);
      _tmp31_ = vala_ccode_identifier_new ("_message");
      _tmp32_ = _tmp31_;
      _tmp33_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp32_, (ValaCCodeExpression*) msgcall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp34_ = _tmp33_;
      _tmp35_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp34_);
      _tmp36_ = _tmp35_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      _vala_ccode_node_unref0 (_tmp34_);
      _vala_ccode_node_unref0 (_tmp32_);
      if (no_reply) {
            ValaCCodeIdentifier* _tmp37_ = NULL;
            ValaCCodeIdentifier* _tmp38_;
            ValaCCodeFunctionCall* _tmp39_ = NULL;
            ValaCCodeFunctionCall* _tmp40_;
            ValaCCodeFunctionCall* noreplycall;
            ValaCCodeIdentifier* _tmp41_ = NULL;
            ValaCCodeIdentifier* _tmp42_;
            ValaCCodeConstant* _tmp43_ = NULL;
            ValaCCodeConstant* _tmp44_;
            ValaCCodeExpressionStatement* _tmp45_ = NULL;
            ValaCCodeExpressionStatement* _tmp46_;
            _tmp37_ = vala_ccode_identifier_new ("dbus_message_set_no_reply");
            _tmp38_ = _tmp37_;
            _tmp39_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp38_);
            _tmp40_ = _tmp39_;
            _vala_ccode_node_unref0 (_tmp38_);
            noreplycall = _tmp40_;
            _tmp41_ = vala_ccode_identifier_new ("_message");
            _tmp42_ = _tmp41_;
            vala_ccode_function_call_add_argument (noreplycall, (ValaCCodeExpression*) _tmp42_);
            _vala_ccode_node_unref0 (_tmp42_);
            _tmp43_ = vala_ccode_constant_new ("TRUE");
            _tmp44_ = _tmp43_;
            vala_ccode_function_call_add_argument (noreplycall, (ValaCCodeExpression*) _tmp44_);
            _vala_ccode_node_unref0 (_tmp44_);
            _tmp45_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) noreplycall);
            _tmp46_ = _tmp45_;
            vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp46_);
            _vala_ccode_node_unref0 (_tmp46_);
            _vala_ccode_node_unref0 (noreplycall);
      }
      _tmp47_ = vala_ccode_identifier_new ("dbus_message_iter_init_append");
      _tmp48_ = _tmp47_;
      _tmp49_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp48_);
      _tmp50_ = _tmp49_;
      _vala_ccode_node_unref0 (_tmp48_);
      iter_call = _tmp50_;
      _tmp51_ = vala_ccode_identifier_new ("_message");
      _tmp52_ = _tmp51_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp52_);
      _vala_ccode_node_unref0 (_tmp52_);
      _tmp53_ = vala_ccode_identifier_new ("_iter");
      _tmp54_ = _tmp53_;
      _tmp55_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp54_);
      _tmp56_ = _tmp55_;
      vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp56_);
      _vala_ccode_node_unref0 (_tmp56_);
      _vala_ccode_node_unref0 (_tmp54_);
      _tmp57_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
      _tmp58_ = _tmp57_;
      vala_ccode_fragment_append (prefragment, (ValaCCodeNode*) _tmp58_);
      _vala_ccode_node_unref0 (_tmp58_);
      if (!no_reply) {
            ValaCCodeIdentifier* _tmp59_ = NULL;
            ValaCCodeIdentifier* _tmp60_;
            ValaCCodeFunctionCall* _tmp61_ = NULL;
            ValaCCodeIdentifier* _tmp62_ = NULL;
            ValaCCodeIdentifier* _tmp63_;
            ValaCCodeIdentifier* _tmp64_ = NULL;
            ValaCCodeIdentifier* _tmp65_;
            ValaCCodeUnaryExpression* _tmp66_ = NULL;
            ValaCCodeUnaryExpression* _tmp67_;
            ValaCCodeExpressionStatement* _tmp68_ = NULL;
            ValaCCodeExpressionStatement* _tmp69_;
            _tmp59_ = vala_ccode_identifier_new ("dbus_message_iter_init");
            _tmp60_ = _tmp59_;
            _tmp61_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp60_);
            _vala_ccode_node_unref0 (iter_call);
            iter_call = _tmp61_;
            _vala_ccode_node_unref0 (_tmp60_);
            _tmp62_ = vala_ccode_identifier_new ("_reply");
            _tmp63_ = _tmp62_;
            vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp63_);
            _vala_ccode_node_unref0 (_tmp63_);
            _tmp64_ = vala_ccode_identifier_new ("_iter");
            _tmp65_ = _tmp64_;
            _tmp66_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp65_);
            _tmp67_ = _tmp66_;
            vala_ccode_function_call_add_argument (iter_call, (ValaCCodeExpression*) _tmp67_);
            _vala_ccode_node_unref0 (_tmp67_);
            _vala_ccode_node_unref0 (_tmp65_);
            _tmp68_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) iter_call);
            _tmp69_ = _tmp68_;
            vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp69_);
            _vala_ccode_node_unref0 (_tmp69_);
      }
      {
            ValaList* _tmp70_ = NULL;
            ValaList* _param_list;
            gint _tmp71_;
            gint _param_size;
            gint _param_index;
            _tmp70_ = vala_method_get_parameters (m);
            _param_list = _tmp70_;
            _tmp71_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp71_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp72_ = NULL;
                  ValaParameter* param;
                  ValaParameterDirection _tmp73_;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp72_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp72_;
                  _tmp73_ = vala_parameter_get_direction (param);
                  if (_tmp73_ == VALA_PARAMETER_DIRECTION_IN) {
                        gboolean _tmp74_ = FALSE;
                        ValaDataType* _tmp75_ = NULL;
                        ValaTypeSymbol* _tmp76_ = NULL;
                        const gchar* _tmp81_ = NULL;
                        ValaCCodeIdentifier* _tmp82_ = NULL;
                        ValaCCodeExpression* expr;
                        ValaDataType* _tmp83_ = NULL;
                        gboolean _tmp84_;
                        ValaDataType* _tmp86_ = NULL;
                        ValaCCodeIdentifier* _tmp87_ = NULL;
                        ValaCCodeIdentifier* _tmp88_;
                        _tmp75_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp76_ = vala_data_type_get_data_type (_tmp75_);
                        if (_tmp76_ != NULL) {
                              ValaDataType* _tmp77_ = NULL;
                              ValaTypeSymbol* _tmp78_ = NULL;
                              gchar* _tmp79_ = NULL;
                              gchar* _tmp80_;
                              _tmp77_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp78_ = vala_data_type_get_data_type (_tmp77_);
                              _tmp79_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp78_);
                              _tmp80_ = _tmp79_;
                              _tmp74_ = g_strcmp0 (_tmp80_, "DBus.BusName") == 0;
                              _g_free0 (_tmp80_);
                        } else {
                              _tmp74_ = FALSE;
                        }
                        if (_tmp74_) {
                              _vala_code_node_unref0 (param);
                              continue;
                        }
                        _tmp81_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp82_ = vala_ccode_identifier_new (_tmp81_);
                        expr = (ValaCCodeExpression*) _tmp82_;
                        _tmp83_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp84_ = vala_data_type_is_real_struct_type (_tmp83_);
                        if (_tmp84_) {
                              ValaCCodeUnaryExpression* _tmp85_ = NULL;
                              _tmp85_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, expr);
                              _vala_ccode_node_unref0 (expr);
                              expr = (ValaCCodeExpression*) _tmp85_;
                        }
                        _tmp86_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp87_ = vala_ccode_identifier_new ("_iter");
                        _tmp88_ = _tmp87_;
                        vala_dbus_module_write_expression ((ValaDBusModule*) self, prefragment, _tmp86_, (ValaCCodeExpression*) _tmp88_, expr);
                        _vala_ccode_node_unref0 (_tmp88_);
                        _vala_ccode_node_unref0 (expr);
                  } else {
                        ValaDataType* _tmp90_ = NULL;
                        gchar* _tmp91_ = NULL;
                        gchar* _tmp92_;
                        ValaCCodeDeclaration* _tmp93_ = NULL;
                        const gchar* _tmp94_ = NULL;
                        gchar* _tmp95_;
                        gchar* _tmp96_;
                        ValaCCodeVariableDeclarator* _tmp97_ = NULL;
                        ValaCCodeVariableDeclarator* _tmp98_;
                        ValaDataType* _tmp99_ = NULL;
                        ValaDataType* _tmp100_;
                        ValaArrayType* _tmp101_;
                        ValaArrayType* array_type;
                        const gchar* _tmp112_ = NULL;
                        gchar* _tmp113_;
                        gchar* _tmp114_;
                        ValaCCodeIdentifier* _tmp115_ = NULL;
                        ValaCCodeIdentifier* _tmp116_;
                        ValaCCodeIdentifier* target;
                        ValaDataType* _tmp117_ = NULL;
                        ValaCCodeIdentifier* _tmp118_ = NULL;
                        ValaCCodeIdentifier* _tmp119_;
                        ValaCCodeExpression* _tmp120_ = NULL;
                        ValaCCodeExpression* _tmp121_;
                        ValaCCodeExpression* expr;
                        ValaCCodeAssignment* _tmp122_ = NULL;
                        ValaCCodeAssignment* _tmp123_;
                        ValaCCodeExpressionStatement* _tmp124_ = NULL;
                        ValaCCodeExpressionStatement* _tmp125_;
                        const gchar* _tmp126_ = NULL;
                        ValaCCodeIdentifier* _tmp127_ = NULL;
                        ValaCCodeIdentifier* _tmp128_;
                        ValaCCodeUnaryExpression* _tmp129_ = NULL;
                        ValaCCodeUnaryExpression* _tmp130_;
                        ValaCCodeAssignment* _tmp131_ = NULL;
                        ValaCCodeAssignment* _tmp132_;
                        ValaCCodeExpressionStatement* _tmp133_ = NULL;
                        ValaCCodeExpressionStatement* _tmp134_;
                        if (no_reply) {
                              ValaSourceReference* _tmp89_ = NULL;
                              _tmp89_ = vala_code_node_get_source_reference ((ValaCodeNode*) param);
                              vala_report_error (_tmp89_, "No-reply DBus methods must not have out parameters");
                              _vala_code_node_unref0 (param);
                              break;
                        }
                        _tmp90_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp91_ = vala_data_type_get_cname (_tmp90_);
                        _tmp92_ = _tmp91_;
                        _tmp93_ = vala_ccode_declaration_new (_tmp92_);
                        _vala_ccode_node_unref0 (_cdecl_);
                        _cdecl_ = _tmp93_;
                        _g_free0 (_tmp92_);
                        _tmp94_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp95_ = g_strconcat ("_", _tmp94_, NULL);
                        _tmp96_ = _tmp95_;
                        _tmp97_ = vala_ccode_variable_declarator_new (_tmp96_, NULL, NULL);
                        _tmp98_ = _tmp97_;
                        vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp98_);
                        _vala_ccode_node_unref0 (_tmp98_);
                        _g_free0 (_tmp96_);
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _cdecl_);
                        _tmp99_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp100_ = _tmp99_;
                        _tmp101_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp100_) ? ((ValaArrayType*) _tmp100_) : NULL);
                        array_type = _tmp101_;
                        if (array_type != NULL) {
                              {
                                    gint dim;
                                    dim = 1;
                                    {
                                          gboolean _tmp102_;
                                          _tmp102_ = TRUE;
                                          while (TRUE) {
                                                gint _tmp103_;
                                                ValaCCodeDeclaration* _tmp104_ = NULL;
                                                const gchar* _tmp105_ = NULL;
                                                gchar* _tmp106_ = NULL;
                                                gchar* _tmp107_;
                                                ValaCCodeConstant* _tmp108_ = NULL;
                                                ValaCCodeConstant* _tmp109_;
                                                ValaCCodeVariableDeclarator* _tmp110_ = NULL;
                                                ValaCCodeVariableDeclarator* _tmp111_;
                                                if (!_tmp102_) {
                                                      dim++;
                                                }
                                                _tmp102_ = FALSE;
                                                _tmp103_ = vala_array_type_get_rank (array_type);
                                                if (!(dim <= _tmp103_)) {
                                                      break;
                                                }
                                                _tmp104_ = vala_ccode_declaration_new ("int");
                                                _vala_ccode_node_unref0 (_cdecl_);
                                                _cdecl_ = _tmp104_;
                                                _tmp105_ = vala_symbol_get_name ((ValaSymbol*) param);
                                                _tmp106_ = g_strdup_printf ("_%s_length%d", _tmp105_, dim);
                                                _tmp107_ = _tmp106_;
                                                _tmp108_ = vala_ccode_constant_new ("0");
                                                _tmp109_ = _tmp108_;
                                                _tmp110_ = vala_ccode_variable_declarator_new (_tmp107_, (ValaCCodeExpression*) _tmp109_, NULL);
                                                _tmp111_ = _tmp110_;
                                                vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp111_);
                                                _vala_ccode_node_unref0 (_tmp111_);
                                                _vala_ccode_node_unref0 (_tmp109_);
                                                _g_free0 (_tmp107_);
                                                vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _cdecl_);
                                          }
                                    }
                              }
                        }
                        _tmp112_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp113_ = g_strconcat ("_", _tmp112_, NULL);
                        _tmp114_ = _tmp113_;
                        _tmp115_ = vala_ccode_identifier_new (_tmp114_);
                        _tmp116_ = _tmp115_;
                        _g_free0 (_tmp114_);
                        target = _tmp116_;
                        _tmp117_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp118_ = vala_ccode_identifier_new ("_iter");
                        _tmp119_ = _tmp118_;
                        _tmp120_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, postfragment, _tmp117_, (ValaCCodeExpression*) _tmp119_, (ValaCCodeExpression*) target);
                        _tmp121_ = _tmp120_;
                        _vala_ccode_node_unref0 (_tmp119_);
                        expr = _tmp121_;
                        _tmp122_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp123_ = _tmp122_;
                        _tmp124_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp123_);
                        _tmp125_ = _tmp124_;
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp125_);
                        _vala_ccode_node_unref0 (_tmp125_);
                        _vala_ccode_node_unref0 (_tmp123_);
                        _tmp126_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp127_ = vala_ccode_identifier_new (_tmp126_);
                        _tmp128_ = _tmp127_;
                        _tmp129_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp128_);
                        _tmp130_ = _tmp129_;
                        _tmp131_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp130_, (ValaCCodeExpression*) target, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp132_ = _tmp131_;
                        _tmp133_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp132_);
                        _tmp134_ = _tmp133_;
                        vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp134_);
                        _vala_ccode_node_unref0 (_tmp134_);
                        _vala_ccode_node_unref0 (_tmp132_);
                        _vala_ccode_node_unref0 (_tmp130_);
                        _vala_ccode_node_unref0 (_tmp128_);
                        if (array_type != NULL) {
                              {
                                    gint dim;
                                    dim = 1;
                                    {
                                          gboolean _tmp135_;
                                          _tmp135_ = TRUE;
                                          while (TRUE) {
                                                gint _tmp136_;
                                                const gchar* _tmp137_ = NULL;
                                                gchar* _tmp138_ = NULL;
                                                gchar* _tmp139_;
                                                ValaCCodeIdentifier* _tmp140_ = NULL;
                                                ValaCCodeIdentifier* _tmp141_;
                                                ValaCCodeUnaryExpression* _tmp142_ = NULL;
                                                ValaCCodeUnaryExpression* _tmp143_;
                                                const gchar* _tmp144_ = NULL;
                                                gchar* _tmp145_ = NULL;
                                                gchar* _tmp146_;
                                                ValaCCodeIdentifier* _tmp147_ = NULL;
                                                ValaCCodeIdentifier* _tmp148_;
                                                ValaCCodeAssignment* _tmp149_ = NULL;
                                                ValaCCodeAssignment* _tmp150_;
                                                ValaCCodeExpressionStatement* _tmp151_ = NULL;
                                                ValaCCodeExpressionStatement* _tmp152_;
                                                if (!_tmp135_) {
                                                      dim++;
                                                }
                                                _tmp135_ = FALSE;
                                                _tmp136_ = vala_array_type_get_rank (array_type);
                                                if (!(dim <= _tmp136_)) {
                                                      break;
                                                }
                                                _tmp137_ = vala_symbol_get_name ((ValaSymbol*) param);
                                                _tmp138_ = g_strdup_printf ("%s_length%d", _tmp137_, dim);
                                                _tmp139_ = _tmp138_;
                                                _tmp140_ = vala_ccode_identifier_new (_tmp139_);
                                                _tmp141_ = _tmp140_;
                                                _tmp142_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp141_);
                                                _tmp143_ = _tmp142_;
                                                _tmp144_ = vala_symbol_get_name ((ValaSymbol*) param);
                                                _tmp145_ = g_strdup_printf ("_%s_length%d", _tmp144_, dim);
                                                _tmp146_ = _tmp145_;
                                                _tmp147_ = vala_ccode_identifier_new (_tmp146_);
                                                _tmp148_ = _tmp147_;
                                                _tmp149_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp143_, (ValaCCodeExpression*) _tmp148_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                                                _tmp150_ = _tmp149_;
                                                _tmp151_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp150_);
                                                _tmp152_ = _tmp151_;
                                                vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp152_);
                                                _vala_ccode_node_unref0 (_tmp152_);
                                                _vala_ccode_node_unref0 (_tmp150_);
                                                _vala_ccode_node_unref0 (_tmp148_);
                                                _g_free0 (_tmp146_);
                                                _vala_ccode_node_unref0 (_tmp143_);
                                                _vala_ccode_node_unref0 (_tmp141_);
                                                _g_free0 (_tmp139_);
                                          }
                                    }
                              }
                        }
                        _vala_ccode_node_unref0 (expr);
                        _vala_ccode_node_unref0 (target);
                        _vala_code_node_unref0 (array_type);
                  }
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp153_ = vala_method_get_return_type (m);
      if (!VALA_IS_VOID_TYPE (_tmp153_)) {
            ValaDataType* _tmp156_ = NULL;
            gboolean _tmp157_;
            if (no_reply) {
                  ValaDataType* _tmp154_ = NULL;
                  ValaSourceReference* _tmp155_ = NULL;
                  _tmp154_ = vala_method_get_return_type (m);
                  _tmp155_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp154_);
                  vala_report_error (_tmp155_, "No-reply DBus methods must return void");
            }
            _tmp156_ = vala_method_get_return_type (m);
            _tmp157_ = vala_data_type_is_real_non_null_struct_type (_tmp156_);
            if (_tmp157_) {
                  ValaCCodeIdentifier* _tmp158_ = NULL;
                  ValaCCodeIdentifier* _tmp159_;
                  ValaCCodeUnaryExpression* _tmp160_ = NULL;
                  ValaCCodeUnaryExpression* _tmp161_;
                  ValaCCodeUnaryExpression* target;
                  ValaDataType* _tmp162_ = NULL;
                  ValaCCodeIdentifier* _tmp163_ = NULL;
                  ValaCCodeIdentifier* _tmp164_;
                  ValaCCodeExpression* _tmp165_ = NULL;
                  ValaCCodeExpression* _tmp166_;
                  ValaCCodeExpression* expr;
                  ValaCCodeAssignment* _tmp167_ = NULL;
                  ValaCCodeAssignment* _tmp168_;
                  ValaCCodeExpressionStatement* _tmp169_ = NULL;
                  ValaCCodeExpressionStatement* _tmp170_;
                  _tmp158_ = vala_ccode_identifier_new ("result");
                  _tmp159_ = _tmp158_;
                  _tmp160_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp159_);
                  _tmp161_ = _tmp160_;
                  _vala_ccode_node_unref0 (_tmp159_);
                  target = _tmp161_;
                  _tmp162_ = vala_method_get_return_type (m);
                  _tmp163_ = vala_ccode_identifier_new ("_iter");
                  _tmp164_ = _tmp163_;
                  _tmp165_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, postfragment, _tmp162_, (ValaCCodeExpression*) _tmp164_, (ValaCCodeExpression*) target);
                  _tmp166_ = _tmp165_;
                  _vala_ccode_node_unref0 (_tmp164_);
                  expr = _tmp166_;
                  _tmp167_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                  _tmp168_ = _tmp167_;
                  _tmp169_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp168_);
                  _tmp170_ = _tmp169_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp170_);
                  _vala_ccode_node_unref0 (_tmp170_);
                  _vala_ccode_node_unref0 (_tmp168_);
                  _vala_ccode_node_unref0 (expr);
                  _vala_ccode_node_unref0 (target);
            } else {
                  ValaDataType* _tmp171_ = NULL;
                  gchar* _tmp172_ = NULL;
                  gchar* _tmp173_;
                  ValaCCodeDeclaration* _tmp174_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp175_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp176_;
                  ValaDataType* _tmp177_ = NULL;
                  ValaDataType* _tmp178_;
                  ValaArrayType* _tmp179_;
                  ValaArrayType* array_type;
                  ValaCCodeIdentifier* _tmp189_ = NULL;
                  ValaCCodeIdentifier* target;
                  ValaDataType* _tmp190_ = NULL;
                  ValaCCodeIdentifier* _tmp191_ = NULL;
                  ValaCCodeIdentifier* _tmp192_;
                  ValaCCodeExpression* _tmp193_ = NULL;
                  ValaCCodeExpression* _tmp194_;
                  ValaCCodeExpression* expr;
                  ValaCCodeAssignment* _tmp195_ = NULL;
                  ValaCCodeAssignment* _tmp196_;
                  ValaCCodeExpressionStatement* _tmp197_ = NULL;
                  ValaCCodeExpressionStatement* _tmp198_;
                  _tmp171_ = vala_method_get_return_type (m);
                  _tmp172_ = vala_data_type_get_cname (_tmp171_);
                  _tmp173_ = _tmp172_;
                  _tmp174_ = vala_ccode_declaration_new (_tmp173_);
                  _vala_ccode_node_unref0 (_cdecl_);
                  _cdecl_ = _tmp174_;
                  _g_free0 (_tmp173_);
                  _tmp175_ = vala_ccode_variable_declarator_new ("_result", NULL, NULL);
                  _tmp176_ = _tmp175_;
                  vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp176_);
                  _vala_ccode_node_unref0 (_tmp176_);
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _cdecl_);
                  _tmp177_ = vala_method_get_return_type (m);
                  _tmp178_ = _tmp177_;
                  _tmp179_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp178_) ? ((ValaArrayType*) _tmp178_) : NULL);
                  array_type = _tmp179_;
                  if (array_type != NULL) {
                        {
                              gint dim;
                              dim = 1;
                              {
                                    gboolean _tmp180_;
                                    _tmp180_ = TRUE;
                                    while (TRUE) {
                                          gint _tmp181_;
                                          ValaCCodeDeclaration* _tmp182_ = NULL;
                                          gchar* _tmp183_ = NULL;
                                          gchar* _tmp184_;
                                          ValaCCodeConstant* _tmp185_ = NULL;
                                          ValaCCodeConstant* _tmp186_;
                                          ValaCCodeVariableDeclarator* _tmp187_ = NULL;
                                          ValaCCodeVariableDeclarator* _tmp188_;
                                          if (!_tmp180_) {
                                                dim++;
                                          }
                                          _tmp180_ = FALSE;
                                          _tmp181_ = vala_array_type_get_rank (array_type);
                                          if (!(dim <= _tmp181_)) {
                                                break;
                                          }
                                          _tmp182_ = vala_ccode_declaration_new ("int");
                                          _vala_ccode_node_unref0 (_cdecl_);
                                          _cdecl_ = _tmp182_;
                                          _tmp183_ = g_strdup_printf ("_result_length%d", dim);
                                          _tmp184_ = _tmp183_;
                                          _tmp185_ = vala_ccode_constant_new ("0");
                                          _tmp186_ = _tmp185_;
                                          _tmp187_ = vala_ccode_variable_declarator_new (_tmp184_, (ValaCCodeExpression*) _tmp186_, NULL);
                                          _tmp188_ = _tmp187_;
                                          vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp188_);
                                          _vala_ccode_node_unref0 (_tmp188_);
                                          _vala_ccode_node_unref0 (_tmp186_);
                                          _g_free0 (_tmp184_);
                                          vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _cdecl_);
                                    }
                              }
                        }
                  }
                  _tmp189_ = vala_ccode_identifier_new ("_result");
                  target = _tmp189_;
                  _tmp190_ = vala_method_get_return_type (m);
                  _tmp191_ = vala_ccode_identifier_new ("_iter");
                  _tmp192_ = _tmp191_;
                  _tmp193_ = vala_dbus_module_read_expression ((ValaDBusModule*) self, postfragment, _tmp190_, (ValaCCodeExpression*) _tmp192_, (ValaCCodeExpression*) target);
                  _tmp194_ = _tmp193_;
                  _vala_ccode_node_unref0 (_tmp192_);
                  expr = _tmp194_;
                  _tmp195_ = vala_ccode_assignment_new ((ValaCCodeExpression*) target, expr, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                  _tmp196_ = _tmp195_;
                  _tmp197_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp196_);
                  _tmp198_ = _tmp197_;
                  vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp198_);
                  _vala_ccode_node_unref0 (_tmp198_);
                  _vala_ccode_node_unref0 (_tmp196_);
                  if (array_type != NULL) {
                        {
                              gint dim;
                              dim = 1;
                              {
                                    gboolean _tmp199_;
                                    _tmp199_ = TRUE;
                                    while (TRUE) {
                                          gint _tmp200_;
                                          gchar* _tmp201_ = NULL;
                                          gchar* _tmp202_;
                                          ValaCCodeIdentifier* _tmp203_ = NULL;
                                          ValaCCodeIdentifier* _tmp204_;
                                          ValaCCodeUnaryExpression* _tmp205_ = NULL;
                                          ValaCCodeUnaryExpression* _tmp206_;
                                          gchar* _tmp207_ = NULL;
                                          gchar* _tmp208_;
                                          ValaCCodeIdentifier* _tmp209_ = NULL;
                                          ValaCCodeIdentifier* _tmp210_;
                                          ValaCCodeAssignment* _tmp211_ = NULL;
                                          ValaCCodeAssignment* _tmp212_;
                                          ValaCCodeExpressionStatement* _tmp213_ = NULL;
                                          ValaCCodeExpressionStatement* _tmp214_;
                                          if (!_tmp199_) {
                                                dim++;
                                          }
                                          _tmp199_ = FALSE;
                                          _tmp200_ = vala_array_type_get_rank (array_type);
                                          if (!(dim <= _tmp200_)) {
                                                break;
                                          }
                                          _tmp201_ = g_strdup_printf ("result_length%d", dim);
                                          _tmp202_ = _tmp201_;
                                          _tmp203_ = vala_ccode_identifier_new (_tmp202_);
                                          _tmp204_ = _tmp203_;
                                          _tmp205_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp204_);
                                          _tmp206_ = _tmp205_;
                                          _tmp207_ = g_strdup_printf ("_result_length%d", dim);
                                          _tmp208_ = _tmp207_;
                                          _tmp209_ = vala_ccode_identifier_new (_tmp208_);
                                          _tmp210_ = _tmp209_;
                                          _tmp211_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp206_, (ValaCCodeExpression*) _tmp210_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                                          _tmp212_ = _tmp211_;
                                          _tmp213_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp212_);
                                          _tmp214_ = _tmp213_;
                                          vala_ccode_fragment_append (postfragment, (ValaCCodeNode*) _tmp214_);
                                          _vala_ccode_node_unref0 (_tmp214_);
                                          _vala_ccode_node_unref0 (_tmp212_);
                                          _vala_ccode_node_unref0 (_tmp210_);
                                          _g_free0 (_tmp208_);
                                          _vala_ccode_node_unref0 (_tmp206_);
                                          _vala_ccode_node_unref0 (_tmp204_);
                                          _g_free0 (_tmp202_);
                                    }
                              }
                        }
                  }
                  _vala_ccode_node_unref0 (expr);
                  _vala_ccode_node_unref0 (target);
                  _vala_code_node_unref0 (array_type);
            }
      }
      _vala_ccode_node_unref0 (iter_call);
      _vala_ccode_node_unref0 (msgcall);
      _vala_ccode_node_unref0 (path);
      _vala_ccode_node_unref0 (destination);
      _vala_ccode_node_unref0 (_cdecl_);
}


static void vala_dbus_client_module_check_error_reply (ValaDBusClientModule* self, ValaMethod* m, ValaCCodeBlock* block) {
      ValaList* _tmp0_ = NULL;
      ValaList* error_types;
      gboolean _tmp1_;
      gboolean _tmp3_;
      ValaCCodeIdentifier* _tmp4_ = NULL;
      ValaCCodeIdentifier* _tmp5_;
      ValaCCodeUnaryExpression* _tmp6_ = NULL;
      ValaCCodeUnaryExpression* _tmp7_;
      ValaCCodeUnaryExpression* dbus_error;
      ValaCCodeBlock* _tmp8_ = NULL;
      ValaCCodeBlock* error_block;
      ValaCCodeDeclaration* _tmp9_ = NULL;
      ValaCCodeDeclaration* _cdecl_;
      ValaCCodeConstant* _tmp10_ = NULL;
      ValaCCodeConstant* _tmp11_;
      ValaCCodeVariableDeclarator* _tmp12_ = NULL;
      ValaCCodeVariableDeclarator* _tmp13_;
      ValaCCodeDeclaration* _tmp14_ = NULL;
      ValaCCodeConstant* _tmp15_ = NULL;
      ValaCCodeConstant* _tmp16_;
      ValaCCodeVariableDeclarator* _tmp17_ = NULL;
      ValaCCodeVariableDeclarator* _tmp18_;
      ValaCCodeIdentifier* _tmp19_ = NULL;
      ValaCCodeIdentifier* _tmp20_;
      ValaCCodeMemberAccess* _tmp21_ = NULL;
      ValaCCodeMemberAccess* _tmp22_;
      ValaCCodeIdentifier* _tmp23_ = NULL;
      ValaCCodeIdentifier* _tmp24_;
      ValaCCodeIdentifier* _tmp25_ = NULL;
      ValaCCodeIdentifier* _tmp26_;
      ValaCCodeIdentifier* _tmp27_ = NULL;
      ValaCCodeIdentifier* _tmp28_;
      ValaCCodeFunctionCall* _tmp29_ = NULL;
      ValaCCodeFunctionCall* _tmp30_;
      ValaCCodeFunctionCall* g_set_error;
      ValaCCodeIdentifier* _tmp31_ = NULL;
      ValaCCodeIdentifier* _tmp32_;
      ValaCCodeIdentifier* _tmp33_ = NULL;
      ValaCCodeIdentifier* _tmp34_;
      ValaCCodeIdentifier* _tmp35_ = NULL;
      ValaCCodeIdentifier* _tmp36_;
      ValaCCodeConstant* _tmp37_ = NULL;
      ValaCCodeConstant* _tmp38_;
      ValaCCodeIdentifier* _tmp39_ = NULL;
      ValaCCodeIdentifier* _tmp40_;
      ValaCCodeMemberAccess* _tmp41_ = NULL;
      ValaCCodeMemberAccess* _tmp42_;
      ValaCCodeExpressionStatement* _tmp43_ = NULL;
      ValaCCodeExpressionStatement* _tmp44_;
      ValaCCodeIdentifier* _tmp45_ = NULL;
      ValaCCodeIdentifier* _tmp46_;
      ValaCCodeFunctionCall* _tmp47_ = NULL;
      ValaCCodeFunctionCall* _tmp48_;
      ValaCCodeFunctionCall* dbus_error_free;
      ValaCCodeExpressionStatement* _tmp49_ = NULL;
      ValaCCodeExpressionStatement* _tmp50_;
      gboolean _tmp51_ = FALSE;
      ValaDataType* _tmp52_ = NULL;
      ValaCCodeIdentifier* _tmp62_ = NULL;
      ValaCCodeIdentifier* _tmp63_;
      ValaCCodeFunctionCall* _tmp64_ = NULL;
      ValaCCodeFunctionCall* _tmp65_;
      ValaCCodeFunctionCall* dbus_error_is_set;
      ValaCCodeIfStatement* _tmp66_ = NULL;
      ValaCCodeIfStatement* _tmp67_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (m != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_code_node_get_error_types ((ValaCodeNode*) m);
      error_types = _tmp0_;
      _tmp1_ = vala_dbus_client_module_has_dbus_error (self, error_types);
      if (!_tmp1_) {
            ValaSourceReference* _tmp2_ = NULL;
            _tmp2_ = vala_code_node_get_source_reference ((ValaCodeNode*) m);
            vala_report_error (_tmp2_, "D-Bus methods must throw DBus.Error");
            _vala_iterable_unref0 (error_types);
            return;
      }
      _tmp3_ = vala_dbus_client_module_is_dbus_no_reply ((ValaCodeNode*) m);
      if (_tmp3_) {
            _vala_iterable_unref0 (error_types);
            return;
      }
      _tmp4_ = vala_ccode_identifier_new ("_dbus_error");
      _tmp5_ = _tmp4_;
      _tmp6_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp5_);
      _tmp7_ = _tmp6_;
      _vala_ccode_node_unref0 (_tmp5_);
      dbus_error = _tmp7_;
      _tmp8_ = vala_ccode_block_new ();
      error_block = _tmp8_;
      _tmp9_ = vala_ccode_declaration_new ("GQuark");
      _cdecl_ = _tmp9_;
      _tmp10_ = vala_ccode_constant_new ("0");
      _tmp11_ = _tmp10_;
      _tmp12_ = vala_ccode_variable_declarator_new_zero ("_edomain", (ValaCCodeExpression*) _tmp11_, NULL);
      _tmp13_ = _tmp12_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      _vala_ccode_node_unref0 (_tmp11_);
      vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _cdecl_);
      _tmp14_ = vala_ccode_declaration_new ("gint");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp14_;
      _tmp15_ = vala_ccode_constant_new ("0");
      _tmp16_ = _tmp15_;
      _tmp17_ = vala_ccode_variable_declarator_new_zero ("_ecode", (ValaCCodeExpression*) _tmp16_, NULL);
      _tmp18_ = _tmp17_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp18_);
      _vala_ccode_node_unref0 (_tmp18_);
      _vala_ccode_node_unref0 (_tmp16_);
      vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _cdecl_);
      _tmp19_ = vala_ccode_identifier_new ("_dbus_error");
      _tmp20_ = _tmp19_;
      _tmp21_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp20_, "name", FALSE);
      _tmp22_ = _tmp21_;
      _tmp23_ = vala_ccode_identifier_new ("_edomain");
      _tmp24_ = _tmp23_;
      _tmp25_ = vala_ccode_identifier_new ("_ecode");
      _tmp26_ = _tmp25_;
      vala_dbus_client_module_generate_client_error_cases (self, error_block, error_types, (ValaCCodeExpression*) _tmp22_, (ValaCCodeExpression*) _tmp24_, (ValaCCodeExpression*) _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      _vala_ccode_node_unref0 (_tmp24_);
      _vala_ccode_node_unref0 (_tmp22_);
      _vala_ccode_node_unref0 (_tmp20_);
      _tmp27_ = vala_ccode_identifier_new ("g_set_error");
      _tmp28_ = _tmp27_;
      _tmp29_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp28_);
      _tmp30_ = _tmp29_;
      _vala_ccode_node_unref0 (_tmp28_);
      g_set_error = _tmp30_;
      _tmp31_ = vala_ccode_identifier_new ("error");
      _tmp32_ = _tmp31_;
      vala_ccode_function_call_add_argument (g_set_error, (ValaCCodeExpression*) _tmp32_);
      _vala_ccode_node_unref0 (_tmp32_);
      _tmp33_ = vala_ccode_identifier_new ("_edomain");
      _tmp34_ = _tmp33_;
      vala_ccode_function_call_add_argument (g_set_error, (ValaCCodeExpression*) _tmp34_);
      _vala_ccode_node_unref0 (_tmp34_);
      _tmp35_ = vala_ccode_identifier_new ("_ecode");
      _tmp36_ = _tmp35_;
      vala_ccode_function_call_add_argument (g_set_error, (ValaCCodeExpression*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      _tmp37_ = vala_ccode_constant_new ("\"%s\"");
      _tmp38_ = _tmp37_;
      vala_ccode_function_call_add_argument (g_set_error, (ValaCCodeExpression*) _tmp38_);
      _vala_ccode_node_unref0 (_tmp38_);
      _tmp39_ = vala_ccode_identifier_new ("_dbus_error");
      _tmp40_ = _tmp39_;
      _tmp41_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp40_, "message", FALSE);
      _tmp42_ = _tmp41_;
      vala_ccode_function_call_add_argument (g_set_error, (ValaCCodeExpression*) _tmp42_);
      _vala_ccode_node_unref0 (_tmp42_);
      _vala_ccode_node_unref0 (_tmp40_);
      _tmp43_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) g_set_error);
      _tmp44_ = _tmp43_;
      vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp44_);
      _vala_ccode_node_unref0 (_tmp44_);
      _tmp45_ = vala_ccode_identifier_new ("dbus_error_free");
      _tmp46_ = _tmp45_;
      _tmp47_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp46_);
      _tmp48_ = _tmp47_;
      _vala_ccode_node_unref0 (_tmp46_);
      dbus_error_free = _tmp48_;
      vala_ccode_function_call_add_argument (dbus_error_free, (ValaCCodeExpression*) dbus_error);
      _tmp49_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) dbus_error_free);
      _tmp50_ = _tmp49_;
      vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp50_);
      _vala_ccode_node_unref0 (_tmp50_);
      _tmp52_ = vala_method_get_return_type (m);
      if (VALA_IS_VOID_TYPE (_tmp52_)) {
            _tmp51_ = TRUE;
      } else {
            ValaDataType* _tmp53_ = NULL;
            gboolean _tmp54_;
            _tmp53_ = vala_method_get_return_type (m);
            _tmp54_ = vala_data_type_is_real_non_null_struct_type (_tmp53_);
            _tmp51_ = _tmp54_;
      }
      if (_tmp51_) {
            ValaCCodeReturnStatement* _tmp55_ = NULL;
            ValaCCodeReturnStatement* _tmp56_;
            _tmp55_ = vala_ccode_return_statement_new (NULL);
            _tmp56_ = _tmp55_;
            vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp56_);
            _vala_ccode_node_unref0 (_tmp56_);
      } else {
            ValaDataType* _tmp57_ = NULL;
            ValaCCodeExpression* _tmp58_ = NULL;
            ValaCCodeExpression* _tmp59_;
            ValaCCodeReturnStatement* _tmp60_ = NULL;
            ValaCCodeReturnStatement* _tmp61_;
            _tmp57_ = vala_method_get_return_type (m);
            _tmp58_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp57_, FALSE);
            _tmp59_ = _tmp58_;
            _tmp60_ = vala_ccode_return_statement_new (_tmp59_);
            _tmp61_ = _tmp60_;
            vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp61_);
            _vala_ccode_node_unref0 (_tmp61_);
            _vala_ccode_node_unref0 (_tmp59_);
      }
      _tmp62_ = vala_ccode_identifier_new ("dbus_error_is_set");
      _tmp63_ = _tmp62_;
      _tmp64_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp63_);
      _tmp65_ = _tmp64_;
      _vala_ccode_node_unref0 (_tmp63_);
      dbus_error_is_set = _tmp65_;
      vala_ccode_function_call_add_argument (dbus_error_is_set, (ValaCCodeExpression*) dbus_error);
      _tmp66_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) dbus_error_is_set, (ValaCCodeStatement*) error_block, NULL);
      _tmp67_ = _tmp66_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp67_);
      _vala_ccode_node_unref0 (_tmp67_);
      _vala_ccode_node_unref0 (dbus_error_is_set);
      _vala_ccode_node_unref0 (dbus_error_free);
      _vala_ccode_node_unref0 (g_set_error);
      _vala_ccode_node_unref0 (_cdecl_);
      _vala_ccode_node_unref0 (error_block);
      _vala_ccode_node_unref0 (dbus_error);
      _vala_iterable_unref0 (error_types);
}


static gchar* vala_dbus_client_module_generate_dbus_proxy_method (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      const gchar* _tmp2_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* proxy_name;
      gchar* _tmp5_ = NULL;
      gchar* dbus_iface_name;
      ValaCCodeDeclaration* _cdecl_ = NULL;
      ValaCCodeFunction* _tmp6_ = NULL;
      ValaCCodeFunction* function;
      ValaHashMap* _tmp7_ = NULL;
      ValaHashMap* cparam_map;
      ValaCCodeBlock* _tmp8_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp9_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeFragment* _tmp10_ = NULL;
      ValaCCodeFragment* postfragment;
      ValaCCodeBlock* _tmp11_ = NULL;
      ValaCCodeBlock* dispose_return_block;
      ValaList* _tmp12_ = NULL;
      ValaList* _tmp13_;
      gint _tmp14_;
      gboolean _tmp15_;
      gboolean _tmp32_ = FALSE;
      ValaDataType* _tmp33_ = NULL;
      ValaCCodeIdentifier* _tmp43_ = NULL;
      ValaCCodeIdentifier* _tmp44_;
      gchar* _tmp45_ = NULL;
      gchar* _tmp46_;
      gchar* _tmp47_;
      gchar* _tmp48_;
      ValaCCodeCastExpression* _tmp49_ = NULL;
      ValaCCodeCastExpression* _tmp50_;
      ValaCCodeMemberAccess* _tmp51_ = NULL;
      ValaCCodeMemberAccess* _tmp52_;
      ValaCCodeIfStatement* _tmp53_ = NULL;
      ValaCCodeIfStatement* _tmp54_;
      ValaCCodeDeclaration* _tmp55_ = NULL;
      ValaCCodeVariableDeclarator* _tmp56_ = NULL;
      ValaCCodeVariableDeclarator* _tmp57_;
      ValaCCodeIdentifier* _tmp58_ = NULL;
      ValaCCodeIdentifier* _tmp59_;
      ValaCCodeUnaryExpression* _tmp60_ = NULL;
      ValaCCodeUnaryExpression* _tmp61_;
      ValaCCodeUnaryExpression* dbus_error;
      ValaCCodeDeclaration* _tmp62_ = NULL;
      ValaCCodeVariableDeclarator* _tmp63_ = NULL;
      ValaCCodeVariableDeclarator* _tmp64_;
      ValaCCodeDeclaration* _tmp65_ = NULL;
      ValaCCodeVariableDeclarator* _tmp66_ = NULL;
      ValaCCodeVariableDeclarator* _tmp67_;
      ValaCCodeVariableDeclarator* _tmp68_ = NULL;
      ValaCCodeVariableDeclarator* _tmp69_;
      ValaCCodeDeclaration* _tmp70_ = NULL;
      ValaCCodeVariableDeclarator* _tmp71_ = NULL;
      ValaCCodeVariableDeclarator* _tmp72_;
      ValaCCodeIdentifier* _tmp73_ = NULL;
      ValaCCodeIdentifier* _tmp74_;
      ValaCCodeFunctionCall* _tmp75_ = NULL;
      ValaCCodeFunctionCall* _tmp76_;
      ValaCCodeFunctionCall* gconnection;
      ValaCCodeIdentifier* _tmp77_ = NULL;
      ValaCCodeIdentifier* _tmp78_;
      ValaCCodeConstant* _tmp79_ = NULL;
      ValaCCodeConstant* _tmp80_;
      ValaCCodeIdentifier* _tmp81_ = NULL;
      ValaCCodeIdentifier* _tmp82_;
      ValaCCodeUnaryExpression* _tmp83_ = NULL;
      ValaCCodeUnaryExpression* _tmp84_;
      ValaCCodeConstant* _tmp85_ = NULL;
      ValaCCodeConstant* _tmp86_;
      ValaCCodeExpressionStatement* _tmp87_ = NULL;
      ValaCCodeExpressionStatement* _tmp88_;
      ValaCCodeIdentifier* _tmp89_ = NULL;
      ValaCCodeIdentifier* _tmp90_;
      ValaCCodeFunctionCall* _tmp91_ = NULL;
      ValaCCodeFunctionCall* _tmp92_;
      ValaCCodeFunctionCall* dbus_error_init;
      ValaCCodeExpressionStatement* _tmp93_ = NULL;
      ValaCCodeExpressionStatement* _tmp94_;
      ValaCCodeIdentifier* _tmp95_ = NULL;
      ValaCCodeIdentifier* _tmp96_;
      ValaCCodeFunctionCall* _tmp97_ = NULL;
      ValaCCodeFunctionCall* _tmp98_;
      ValaCCodeFunctionCall* connection;
      ValaCCodeIdentifier* _tmp99_ = NULL;
      ValaCCodeIdentifier* _tmp100_;
      ValaCCodeIdentifier* _tmp101_ = NULL;
      ValaCCodeIdentifier* _tmp102_;
      ValaCCodeFunctionCall* _tmp103_ = NULL;
      ValaCCodeFunctionCall* _tmp104_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp105_ = NULL;
      ValaCCodeIdentifier* _tmp106_;
      ValaCCodeConstant* _tmp107_ = NULL;
      ValaCCodeConstant* _tmp108_;
      ValaCCodeIdentifier* _tmp109_ = NULL;
      ValaCCodeIdentifier* _tmp110_;
      ValaCCodeAssignment* _tmp111_ = NULL;
      ValaCCodeAssignment* _tmp112_;
      ValaCCodeExpressionStatement* _tmp113_ = NULL;
      ValaCCodeExpressionStatement* _tmp114_;
      ValaCCodeIdentifier* _tmp115_ = NULL;
      ValaCCodeIdentifier* _tmp116_;
      ValaCCodeFunctionCall* _tmp117_ = NULL;
      ValaCCodeFunctionCall* _tmp118_;
      ValaCCodeFunctionCall* conn_unref;
      ValaCCodeIdentifier* _tmp119_ = NULL;
      ValaCCodeIdentifier* _tmp120_;
      ValaCCodeExpressionStatement* _tmp121_ = NULL;
      ValaCCodeExpressionStatement* _tmp122_;
      ValaCCodeIdentifier* _tmp123_ = NULL;
      ValaCCodeIdentifier* _tmp124_;
      ValaCCodeFunctionCall* _tmp125_ = NULL;
      ValaCCodeFunctionCall* _tmp126_;
      ValaCCodeFunctionCall* message_unref;
      ValaCCodeIdentifier* _tmp127_ = NULL;
      ValaCCodeIdentifier* _tmp128_;
      ValaCCodeExpressionStatement* _tmp129_ = NULL;
      ValaCCodeExpressionStatement* _tmp130_;
      ValaCCodeIdentifier* _tmp131_ = NULL;
      ValaCCodeIdentifier* _tmp132_;
      ValaCCodeFunctionCall* _tmp133_ = NULL;
      ValaCCodeFunctionCall* _tmp134_;
      ValaCCodeFunctionCall* reply_unref;
      ValaCCodeIdentifier* _tmp135_ = NULL;
      ValaCCodeIdentifier* _tmp136_;
      ValaCCodeExpressionStatement* _tmp137_ = NULL;
      ValaCCodeExpressionStatement* _tmp138_;
      gboolean _tmp139_ = FALSE;
      ValaDataType* _tmp140_ = NULL;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp3_ = g_strdup_printf ("%sdbus_proxy_%s", _tmp1_, _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp1_);
      proxy_name = _tmp4_;
      _tmp5_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp5_;
      _tmp6_ = vala_ccode_function_new (proxy_name, "void");
      function = _tmp6_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp7_ = 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);
      cparam_map = _tmp7_;
      vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 3);
      _tmp8_ = vala_ccode_block_new ();
      block = _tmp8_;
      _tmp9_ = vala_ccode_fragment_new ();
      prefragment = _tmp9_;
      _tmp10_ = vala_ccode_fragment_new ();
      postfragment = _tmp10_;
      _tmp11_ = vala_ccode_block_new ();
      dispose_return_block = _tmp11_;
      _tmp12_ = vala_code_node_get_error_types ((ValaCodeNode*) m);
      _tmp13_ = _tmp12_;
      _tmp14_ = vala_collection_get_size ((ValaCollection*) _tmp13_);
      _tmp15_ = _tmp14_ > 0;
      _vala_iterable_unref0 (_tmp13_);
      if (_tmp15_) {
            ValaCCodeIdentifier* _tmp16_ = NULL;
            ValaCCodeIdentifier* _tmp17_;
            ValaCCodeFunctionCall* _tmp18_ = NULL;
            ValaCCodeFunctionCall* _tmp19_;
            ValaCCodeFunctionCall* set_error_call;
            ValaCCodeIdentifier* _tmp20_ = NULL;
            ValaCCodeIdentifier* _tmp21_;
            ValaCCodeIdentifier* _tmp22_ = NULL;
            ValaCCodeIdentifier* _tmp23_;
            ValaCCodeIdentifier* _tmp24_ = NULL;
            ValaCCodeIdentifier* _tmp25_;
            ValaCCodeConstant* _tmp26_ = NULL;
            ValaCCodeConstant* _tmp27_;
            ValaCCodeConstant* _tmp28_ = NULL;
            ValaCCodeConstant* _tmp29_;
            ValaCCodeExpressionStatement* _tmp30_ = NULL;
            ValaCCodeExpressionStatement* _tmp31_;
            _tmp16_ = vala_ccode_identifier_new ("g_set_error");
            _tmp17_ = _tmp16_;
            _tmp18_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp17_);
            _tmp19_ = _tmp18_;
            _vala_ccode_node_unref0 (_tmp17_);
            set_error_call = _tmp19_;
            _tmp20_ = vala_ccode_identifier_new ("error");
            _tmp21_ = _tmp20_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp21_);
            _vala_ccode_node_unref0 (_tmp21_);
            _tmp22_ = vala_ccode_identifier_new ("DBUS_GERROR");
            _tmp23_ = _tmp22_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp23_);
            _vala_ccode_node_unref0 (_tmp23_);
            _tmp24_ = vala_ccode_identifier_new ("DBUS_GERROR_DISCONNECTED");
            _tmp25_ = _tmp24_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp25_);
            _vala_ccode_node_unref0 (_tmp25_);
            _tmp26_ = vala_ccode_constant_new ("\"%s\"");
            _tmp27_ = _tmp26_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp27_);
            _vala_ccode_node_unref0 (_tmp27_);
            _tmp28_ = vala_ccode_constant_new ("\"Connection is closed\"");
            _tmp29_ = _tmp28_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp29_);
            _vala_ccode_node_unref0 (_tmp29_);
            _tmp30_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) set_error_call);
            _tmp31_ = _tmp30_;
            vala_ccode_block_add_statement (dispose_return_block, (ValaCCodeNode*) _tmp31_);
            _vala_ccode_node_unref0 (_tmp31_);
            _vala_ccode_node_unref0 (set_error_call);
      }
      _tmp33_ = vala_method_get_return_type (m);
      if (VALA_IS_VOID_TYPE (_tmp33_)) {
            _tmp32_ = TRUE;
      } else {
            ValaDataType* _tmp34_ = NULL;
            gboolean _tmp35_;
            _tmp34_ = vala_method_get_return_type (m);
            _tmp35_ = vala_data_type_is_real_non_null_struct_type (_tmp34_);
            _tmp32_ = _tmp35_;
      }
      if (_tmp32_) {
            ValaCCodeReturnStatement* _tmp36_ = NULL;
            ValaCCodeReturnStatement* _tmp37_;
            _tmp36_ = vala_ccode_return_statement_new (NULL);
            _tmp37_ = _tmp36_;
            vala_ccode_block_add_statement (dispose_return_block, (ValaCCodeNode*) _tmp37_);
            _vala_ccode_node_unref0 (_tmp37_);
      } else {
            ValaDataType* _tmp38_ = NULL;
            ValaCCodeExpression* _tmp39_ = NULL;
            ValaCCodeExpression* _tmp40_;
            ValaCCodeReturnStatement* _tmp41_ = NULL;
            ValaCCodeReturnStatement* _tmp42_;
            _tmp38_ = vala_method_get_return_type (m);
            _tmp39_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp38_, FALSE);
            _tmp40_ = _tmp39_;
            _tmp41_ = vala_ccode_return_statement_new (_tmp40_);
            _tmp42_ = _tmp41_;
            vala_ccode_block_add_statement (dispose_return_block, (ValaCCodeNode*) _tmp42_);
            _vala_ccode_node_unref0 (_tmp42_);
            _vala_ccode_node_unref0 (_tmp40_);
      }
      _tmp43_ = vala_ccode_identifier_new ("self");
      _tmp44_ = _tmp43_;
      _tmp45_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp46_ = _tmp45_;
      _tmp47_ = g_strconcat (_tmp46_, "DBusProxy*", NULL);
      _tmp48_ = _tmp47_;
      _tmp49_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp44_, _tmp48_);
      _tmp50_ = _tmp49_;
      _tmp51_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp50_, "disposed");
      _tmp52_ = _tmp51_;
      _tmp53_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp52_, (ValaCCodeStatement*) dispose_return_block, NULL);
      _tmp54_ = _tmp53_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp54_);
      _vala_ccode_node_unref0 (_tmp54_);
      _vala_ccode_node_unref0 (_tmp52_);
      _vala_ccode_node_unref0 (_tmp50_);
      _g_free0 (_tmp48_);
      _g_free0 (_tmp46_);
      _vala_ccode_node_unref0 (_tmp44_);
      _tmp55_ = vala_ccode_declaration_new ("DBusError");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp55_;
      _tmp56_ = vala_ccode_variable_declarator_new ("_dbus_error", NULL, NULL);
      _tmp57_ = _tmp56_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp57_);
      _vala_ccode_node_unref0 (_tmp57_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp58_ = vala_ccode_identifier_new ("_dbus_error");
      _tmp59_ = _tmp58_;
      _tmp60_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp59_);
      _tmp61_ = _tmp60_;
      _vala_ccode_node_unref0 (_tmp59_);
      dbus_error = _tmp61_;
      _tmp62_ = vala_ccode_declaration_new ("DBusGConnection");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp62_;
      _tmp63_ = vala_ccode_variable_declarator_new ("*_connection", NULL, NULL);
      _tmp64_ = _tmp63_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp64_);
      _vala_ccode_node_unref0 (_tmp64_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp65_ = vala_ccode_declaration_new ("DBusMessage");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp65_;
      _tmp66_ = vala_ccode_variable_declarator_new ("*_message", NULL, NULL);
      _tmp67_ = _tmp66_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp67_);
      _vala_ccode_node_unref0 (_tmp67_);
      _tmp68_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
      _tmp69_ = _tmp68_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp69_);
      _vala_ccode_node_unref0 (_tmp69_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp70_ = vala_ccode_declaration_new ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp70_;
      _tmp71_ = vala_ccode_variable_declarator_new ("_iter", NULL, NULL);
      _tmp72_ = _tmp71_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp72_);
      _vala_ccode_node_unref0 (_tmp72_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) prefragment);
      vala_dbus_client_module_generate_marshalling (self, m, dbus_iface_name, prefragment, postfragment);
      _tmp73_ = vala_ccode_identifier_new ("g_object_get");
      _tmp74_ = _tmp73_;
      _tmp75_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp74_);
      _tmp76_ = _tmp75_;
      _vala_ccode_node_unref0 (_tmp74_);
      gconnection = _tmp76_;
      _tmp77_ = vala_ccode_identifier_new ("self");
      _tmp78_ = _tmp77_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp78_);
      _vala_ccode_node_unref0 (_tmp78_);
      _tmp79_ = vala_ccode_constant_new ("\"connection\"");
      _tmp80_ = _tmp79_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp80_);
      _vala_ccode_node_unref0 (_tmp80_);
      _tmp81_ = vala_ccode_identifier_new ("_connection");
      _tmp82_ = _tmp81_;
      _tmp83_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp82_);
      _tmp84_ = _tmp83_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp84_);
      _vala_ccode_node_unref0 (_tmp84_);
      _vala_ccode_node_unref0 (_tmp82_);
      _tmp85_ = vala_ccode_constant_new ("NULL");
      _tmp86_ = _tmp85_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp86_);
      _vala_ccode_node_unref0 (_tmp86_);
      _tmp87_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) gconnection);
      _tmp88_ = _tmp87_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp88_);
      _vala_ccode_node_unref0 (_tmp88_);
      _tmp89_ = vala_ccode_identifier_new ("dbus_error_init");
      _tmp90_ = _tmp89_;
      _tmp91_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp90_);
      _tmp92_ = _tmp91_;
      _vala_ccode_node_unref0 (_tmp90_);
      dbus_error_init = _tmp92_;
      vala_ccode_function_call_add_argument (dbus_error_init, (ValaCCodeExpression*) dbus_error);
      _tmp93_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) dbus_error_init);
      _tmp94_ = _tmp93_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp94_);
      _vala_ccode_node_unref0 (_tmp94_);
      _tmp95_ = vala_ccode_identifier_new ("dbus_g_connection_get_connection");
      _tmp96_ = _tmp95_;
      _tmp97_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp96_);
      _tmp98_ = _tmp97_;
      _vala_ccode_node_unref0 (_tmp96_);
      connection = _tmp98_;
      _tmp99_ = vala_ccode_identifier_new ("_connection");
      _tmp100_ = _tmp99_;
      vala_ccode_function_call_add_argument (connection, (ValaCCodeExpression*) _tmp100_);
      _vala_ccode_node_unref0 (_tmp100_);
      _tmp101_ = vala_ccode_identifier_new ("dbus_connection_send_with_reply_and_block");
      _tmp102_ = _tmp101_;
      _tmp103_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp102_);
      _tmp104_ = _tmp103_;
      _vala_ccode_node_unref0 (_tmp102_);
      ccall = _tmp104_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) connection);
      _tmp105_ = vala_ccode_identifier_new ("_message");
      _tmp106_ = _tmp105_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp106_);
      _vala_ccode_node_unref0 (_tmp106_);
      _tmp107_ = vala_dbus_client_module_get_dbus_timeout (self, (ValaSymbol*) m);
      _tmp108_ = _tmp107_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp108_);
      _vala_ccode_node_unref0 (_tmp108_);
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) dbus_error);
      _tmp109_ = vala_ccode_identifier_new ("_reply");
      _tmp110_ = _tmp109_;
      _tmp111_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp110_, (ValaCCodeExpression*) ccall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp112_ = _tmp111_;
      _tmp113_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp112_);
      _tmp114_ = _tmp113_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp114_);
      _vala_ccode_node_unref0 (_tmp114_);
      _vala_ccode_node_unref0 (_tmp112_);
      _vala_ccode_node_unref0 (_tmp110_);
      _tmp115_ = vala_ccode_identifier_new ("dbus_g_connection_unref");
      _tmp116_ = _tmp115_;
      _tmp117_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp116_);
      _tmp118_ = _tmp117_;
      _vala_ccode_node_unref0 (_tmp116_);
      conn_unref = _tmp118_;
      _tmp119_ = vala_ccode_identifier_new ("_connection");
      _tmp120_ = _tmp119_;
      vala_ccode_function_call_add_argument (conn_unref, (ValaCCodeExpression*) _tmp120_);
      _vala_ccode_node_unref0 (_tmp120_);
      _tmp121_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) conn_unref);
      _tmp122_ = _tmp121_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp122_);
      _vala_ccode_node_unref0 (_tmp122_);
      _tmp123_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp124_ = _tmp123_;
      _tmp125_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp124_);
      _tmp126_ = _tmp125_;
      _vala_ccode_node_unref0 (_tmp124_);
      message_unref = _tmp126_;
      _tmp127_ = vala_ccode_identifier_new ("_message");
      _tmp128_ = _tmp127_;
      vala_ccode_function_call_add_argument (message_unref, (ValaCCodeExpression*) _tmp128_);
      _vala_ccode_node_unref0 (_tmp128_);
      _tmp129_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) message_unref);
      _tmp130_ = _tmp129_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp130_);
      _vala_ccode_node_unref0 (_tmp130_);
      vala_dbus_client_module_check_error_reply (self, m, block);
      vala_dbus_client_module_check_reply_signature (self, m, block);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) postfragment);
      _tmp131_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp132_ = _tmp131_;
      _tmp133_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp132_);
      _tmp134_ = _tmp133_;
      _vala_ccode_node_unref0 (_tmp132_);
      reply_unref = _tmp134_;
      _tmp135_ = vala_ccode_identifier_new ("_reply");
      _tmp136_ = _tmp135_;
      vala_ccode_function_call_add_argument (reply_unref, (ValaCCodeExpression*) _tmp136_);
      _vala_ccode_node_unref0 (_tmp136_);
      _tmp137_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) reply_unref);
      _tmp138_ = _tmp137_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp138_);
      _vala_ccode_node_unref0 (_tmp138_);
      _tmp140_ = vala_method_get_return_type (m);
      if (VALA_IS_VOID_TYPE (_tmp140_)) {
            _tmp139_ = TRUE;
      } else {
            ValaDataType* _tmp141_ = NULL;
            gboolean _tmp142_;
            _tmp141_ = vala_method_get_return_type (m);
            _tmp142_ = vala_data_type_is_real_non_null_struct_type (_tmp141_);
            _tmp139_ = _tmp142_;
      }
      if (!_tmp139_) {
            ValaCCodeIdentifier* _tmp143_ = NULL;
            ValaCCodeIdentifier* _tmp144_;
            ValaCCodeReturnStatement* _tmp145_ = NULL;
            ValaCCodeReturnStatement* _tmp146_;
            _tmp143_ = vala_ccode_identifier_new ("_result");
            _tmp144_ = _tmp143_;
            _tmp145_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp144_);
            _tmp146_ = _tmp145_;
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp146_);
            _vala_ccode_node_unref0 (_tmp146_);
            _vala_ccode_node_unref0 (_tmp144_);
      }
      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 = proxy_name;
      _vala_ccode_node_unref0 (reply_unref);
      _vala_ccode_node_unref0 (message_unref);
      _vala_ccode_node_unref0 (conn_unref);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (connection);
      _vala_ccode_node_unref0 (dbus_error_init);
      _vala_ccode_node_unref0 (gconnection);
      _vala_ccode_node_unref0 (dbus_error);
      _vala_ccode_node_unref0 (dispose_return_block);
      _vala_ccode_node_unref0 (postfragment);
      _vala_ccode_node_unref0 (prefragment);
      _vala_ccode_node_unref0 (block);
      _vala_map_unref0 (cparam_map);
      _vala_ccode_node_unref0 (function);
      _vala_ccode_node_unref0 (_cdecl_);
      _g_free0 (dbus_iface_name);
      return result;
}


static gchar* vala_dbus_client_module_generate_noreply_dbus_proxy_method (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      const gchar* _tmp2_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* proxy_name;
      gchar* _tmp5_ = NULL;
      gchar* dbus_iface_name;
      ValaCCodeDeclaration* _cdecl_ = NULL;
      ValaCCodeFunction* _tmp6_ = NULL;
      ValaCCodeFunction* function;
      ValaHashMap* _tmp7_ = NULL;
      ValaHashMap* cparam_map;
      ValaCCodeBlock* _tmp8_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp9_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeFragment* _tmp10_ = NULL;
      ValaCCodeFragment* postfragment;
      ValaCCodeBlock* _tmp11_ = NULL;
      ValaCCodeBlock* dispose_return_block;
      ValaList* _tmp12_ = NULL;
      ValaList* _tmp13_;
      gint _tmp14_;
      gboolean _tmp15_;
      ValaCCodeIdentifier* _tmp34_ = NULL;
      ValaCCodeIdentifier* _tmp35_;
      gchar* _tmp36_ = NULL;
      gchar* _tmp37_;
      gchar* _tmp38_;
      gchar* _tmp39_;
      ValaCCodeCastExpression* _tmp40_ = NULL;
      ValaCCodeCastExpression* _tmp41_;
      ValaCCodeMemberAccess* _tmp42_ = NULL;
      ValaCCodeMemberAccess* _tmp43_;
      ValaCCodeIfStatement* _tmp44_ = NULL;
      ValaCCodeIfStatement* _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_;
      ValaCCodeIdentifier* _tmp55_ = NULL;
      ValaCCodeIdentifier* _tmp56_;
      ValaCCodeFunctionCall* _tmp57_ = NULL;
      ValaCCodeFunctionCall* _tmp58_;
      ValaCCodeFunctionCall* gconnection;
      ValaCCodeIdentifier* _tmp59_ = NULL;
      ValaCCodeIdentifier* _tmp60_;
      ValaCCodeConstant* _tmp61_ = NULL;
      ValaCCodeConstant* _tmp62_;
      ValaCCodeIdentifier* _tmp63_ = NULL;
      ValaCCodeIdentifier* _tmp64_;
      ValaCCodeUnaryExpression* _tmp65_ = NULL;
      ValaCCodeUnaryExpression* _tmp66_;
      ValaCCodeConstant* _tmp67_ = NULL;
      ValaCCodeConstant* _tmp68_;
      ValaCCodeExpressionStatement* _tmp69_ = NULL;
      ValaCCodeExpressionStatement* _tmp70_;
      ValaCCodeIdentifier* _tmp71_ = NULL;
      ValaCCodeIdentifier* _tmp72_;
      ValaCCodeFunctionCall* _tmp73_ = NULL;
      ValaCCodeFunctionCall* _tmp74_;
      ValaCCodeFunctionCall* connection;
      ValaCCodeIdentifier* _tmp75_ = NULL;
      ValaCCodeIdentifier* _tmp76_;
      ValaCCodeBlock* _tmp77_ = NULL;
      ValaCCodeBlock* oom_return_block;
      ValaList* _tmp78_ = NULL;
      ValaList* _tmp79_;
      gint _tmp80_;
      gboolean _tmp81_;
      ValaCCodeIdentifier* _tmp100_ = NULL;
      ValaCCodeIdentifier* _tmp101_;
      ValaCCodeFunctionCall* _tmp102_ = NULL;
      ValaCCodeFunctionCall* _tmp103_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp104_ = NULL;
      ValaCCodeIdentifier* _tmp105_;
      ValaCCodeConstant* _tmp106_ = NULL;
      ValaCCodeConstant* _tmp107_;
      ValaCCodeUnaryExpression* _tmp108_ = NULL;
      ValaCCodeUnaryExpression* _tmp109_;
      ValaCCodeIfStatement* _tmp110_ = NULL;
      ValaCCodeIfStatement* _tmp111_;
      ValaCCodeIdentifier* _tmp112_ = NULL;
      ValaCCodeIdentifier* _tmp113_;
      ValaCCodeFunctionCall* _tmp114_ = NULL;
      ValaCCodeFunctionCall* _tmp115_;
      ValaCCodeFunctionCall* conn_unref;
      ValaCCodeIdentifier* _tmp116_ = NULL;
      ValaCCodeIdentifier* _tmp117_;
      ValaCCodeExpressionStatement* _tmp118_ = NULL;
      ValaCCodeExpressionStatement* _tmp119_;
      ValaCCodeIdentifier* _tmp120_ = NULL;
      ValaCCodeIdentifier* _tmp121_;
      ValaCCodeFunctionCall* _tmp122_ = NULL;
      ValaCCodeFunctionCall* _tmp123_;
      ValaCCodeFunctionCall* message_unref;
      ValaCCodeIdentifier* _tmp124_ = NULL;
      ValaCCodeIdentifier* _tmp125_;
      ValaCCodeExpressionStatement* _tmp126_ = NULL;
      ValaCCodeExpressionStatement* _tmp127_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp3_ = g_strdup_printf ("%sdbus_proxy_%s", _tmp1_, _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp1_);
      proxy_name = _tmp4_;
      _tmp5_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp5_;
      _tmp6_ = vala_ccode_function_new (proxy_name, "void");
      function = _tmp6_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp7_ = 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);
      cparam_map = _tmp7_;
      vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 3);
      _tmp8_ = vala_ccode_block_new ();
      block = _tmp8_;
      _tmp9_ = vala_ccode_fragment_new ();
      prefragment = _tmp9_;
      _tmp10_ = vala_ccode_fragment_new ();
      postfragment = _tmp10_;
      _tmp11_ = vala_ccode_block_new ();
      dispose_return_block = _tmp11_;
      _tmp12_ = vala_code_node_get_error_types ((ValaCodeNode*) m);
      _tmp13_ = _tmp12_;
      _tmp14_ = vala_collection_get_size ((ValaCollection*) _tmp13_);
      _tmp15_ = _tmp14_ > 0;
      _vala_iterable_unref0 (_tmp13_);
      if (_tmp15_) {
            ValaCCodeIdentifier* _tmp16_ = NULL;
            ValaCCodeIdentifier* _tmp17_;
            ValaCCodeFunctionCall* _tmp18_ = NULL;
            ValaCCodeFunctionCall* _tmp19_;
            ValaCCodeFunctionCall* set_error_call;
            ValaCCodeIdentifier* _tmp20_ = NULL;
            ValaCCodeIdentifier* _tmp21_;
            ValaCCodeIdentifier* _tmp22_ = NULL;
            ValaCCodeIdentifier* _tmp23_;
            ValaCCodeIdentifier* _tmp24_ = NULL;
            ValaCCodeIdentifier* _tmp25_;
            ValaCCodeConstant* _tmp26_ = NULL;
            ValaCCodeConstant* _tmp27_;
            ValaCCodeConstant* _tmp28_ = NULL;
            ValaCCodeConstant* _tmp29_;
            ValaCCodeExpressionStatement* _tmp30_ = NULL;
            ValaCCodeExpressionStatement* _tmp31_;
            ValaCCodeReturnStatement* _tmp32_ = NULL;
            ValaCCodeReturnStatement* _tmp33_;
            _tmp16_ = vala_ccode_identifier_new ("g_set_error");
            _tmp17_ = _tmp16_;
            _tmp18_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp17_);
            _tmp19_ = _tmp18_;
            _vala_ccode_node_unref0 (_tmp17_);
            set_error_call = _tmp19_;
            _tmp20_ = vala_ccode_identifier_new ("error");
            _tmp21_ = _tmp20_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp21_);
            _vala_ccode_node_unref0 (_tmp21_);
            _tmp22_ = vala_ccode_identifier_new ("DBUS_GERROR");
            _tmp23_ = _tmp22_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp23_);
            _vala_ccode_node_unref0 (_tmp23_);
            _tmp24_ = vala_ccode_identifier_new ("DBUS_GERROR_DISCONNECTED");
            _tmp25_ = _tmp24_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp25_);
            _vala_ccode_node_unref0 (_tmp25_);
            _tmp26_ = vala_ccode_constant_new ("\"%s\"");
            _tmp27_ = _tmp26_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp27_);
            _vala_ccode_node_unref0 (_tmp27_);
            _tmp28_ = vala_ccode_constant_new ("\"Connection is closed\"");
            _tmp29_ = _tmp28_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp29_);
            _vala_ccode_node_unref0 (_tmp29_);
            _tmp30_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) set_error_call);
            _tmp31_ = _tmp30_;
            vala_ccode_block_add_statement (dispose_return_block, (ValaCCodeNode*) _tmp31_);
            _vala_ccode_node_unref0 (_tmp31_);
            _tmp32_ = vala_ccode_return_statement_new (NULL);
            _tmp33_ = _tmp32_;
            vala_ccode_block_add_statement (dispose_return_block, (ValaCCodeNode*) _tmp33_);
            _vala_ccode_node_unref0 (_tmp33_);
            _vala_ccode_node_unref0 (set_error_call);
      }
      _tmp34_ = vala_ccode_identifier_new ("self");
      _tmp35_ = _tmp34_;
      _tmp36_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp37_ = _tmp36_;
      _tmp38_ = g_strconcat (_tmp37_, "DBusProxy*", NULL);
      _tmp39_ = _tmp38_;
      _tmp40_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp35_, _tmp39_);
      _tmp41_ = _tmp40_;
      _tmp42_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp41_, "disposed");
      _tmp43_ = _tmp42_;
      _tmp44_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp43_, (ValaCCodeStatement*) dispose_return_block, NULL);
      _tmp45_ = _tmp44_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp45_);
      _vala_ccode_node_unref0 (_tmp45_);
      _vala_ccode_node_unref0 (_tmp43_);
      _vala_ccode_node_unref0 (_tmp41_);
      _g_free0 (_tmp39_);
      _g_free0 (_tmp37_);
      _vala_ccode_node_unref0 (_tmp35_);
      _tmp46_ = vala_ccode_declaration_new ("DBusGConnection");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp46_;
      _tmp47_ = vala_ccode_variable_declarator_new ("*_connection", 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 ("DBusMessage");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp49_;
      _tmp50_ = vala_ccode_variable_declarator_new ("*_message", 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 ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp52_;
      _tmp53_ = vala_ccode_variable_declarator_new ("_iter", 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_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) prefragment);
      vala_dbus_client_module_generate_marshalling (self, m, dbus_iface_name, prefragment, postfragment);
      _tmp55_ = vala_ccode_identifier_new ("g_object_get");
      _tmp56_ = _tmp55_;
      _tmp57_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp56_);
      _tmp58_ = _tmp57_;
      _vala_ccode_node_unref0 (_tmp56_);
      gconnection = _tmp58_;
      _tmp59_ = vala_ccode_identifier_new ("self");
      _tmp60_ = _tmp59_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp60_);
      _vala_ccode_node_unref0 (_tmp60_);
      _tmp61_ = vala_ccode_constant_new ("\"connection\"");
      _tmp62_ = _tmp61_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp62_);
      _vala_ccode_node_unref0 (_tmp62_);
      _tmp63_ = vala_ccode_identifier_new ("_connection");
      _tmp64_ = _tmp63_;
      _tmp65_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp64_);
      _tmp66_ = _tmp65_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp66_);
      _vala_ccode_node_unref0 (_tmp66_);
      _vala_ccode_node_unref0 (_tmp64_);
      _tmp67_ = vala_ccode_constant_new ("NULL");
      _tmp68_ = _tmp67_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp68_);
      _vala_ccode_node_unref0 (_tmp68_);
      _tmp69_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) gconnection);
      _tmp70_ = _tmp69_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp70_);
      _vala_ccode_node_unref0 (_tmp70_);
      _tmp71_ = vala_ccode_identifier_new ("dbus_g_connection_get_connection");
      _tmp72_ = _tmp71_;
      _tmp73_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp72_);
      _tmp74_ = _tmp73_;
      _vala_ccode_node_unref0 (_tmp72_);
      connection = _tmp74_;
      _tmp75_ = vala_ccode_identifier_new ("_connection");
      _tmp76_ = _tmp75_;
      vala_ccode_function_call_add_argument (connection, (ValaCCodeExpression*) _tmp76_);
      _vala_ccode_node_unref0 (_tmp76_);
      _tmp77_ = vala_ccode_block_new ();
      oom_return_block = _tmp77_;
      _tmp78_ = vala_code_node_get_error_types ((ValaCodeNode*) m);
      _tmp79_ = _tmp78_;
      _tmp80_ = vala_collection_get_size ((ValaCollection*) _tmp79_);
      _tmp81_ = _tmp80_ > 0;
      _vala_iterable_unref0 (_tmp79_);
      if (_tmp81_) {
            ValaCCodeIdentifier* _tmp82_ = NULL;
            ValaCCodeIdentifier* _tmp83_;
            ValaCCodeFunctionCall* _tmp84_ = NULL;
            ValaCCodeFunctionCall* _tmp85_;
            ValaCCodeFunctionCall* set_error_call;
            ValaCCodeIdentifier* _tmp86_ = NULL;
            ValaCCodeIdentifier* _tmp87_;
            ValaCCodeIdentifier* _tmp88_ = NULL;
            ValaCCodeIdentifier* _tmp89_;
            ValaCCodeIdentifier* _tmp90_ = NULL;
            ValaCCodeIdentifier* _tmp91_;
            ValaCCodeConstant* _tmp92_ = NULL;
            ValaCCodeConstant* _tmp93_;
            ValaCCodeConstant* _tmp94_ = NULL;
            ValaCCodeConstant* _tmp95_;
            ValaCCodeExpressionStatement* _tmp96_ = NULL;
            ValaCCodeExpressionStatement* _tmp97_;
            ValaCCodeReturnStatement* _tmp98_ = NULL;
            ValaCCodeReturnStatement* _tmp99_;
            _tmp82_ = vala_ccode_identifier_new ("g_set_error");
            _tmp83_ = _tmp82_;
            _tmp84_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp83_);
            _tmp85_ = _tmp84_;
            _vala_ccode_node_unref0 (_tmp83_);
            set_error_call = _tmp85_;
            _tmp86_ = vala_ccode_identifier_new ("error");
            _tmp87_ = _tmp86_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp87_);
            _vala_ccode_node_unref0 (_tmp87_);
            _tmp88_ = vala_ccode_identifier_new ("DBUS_GERROR");
            _tmp89_ = _tmp88_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp89_);
            _vala_ccode_node_unref0 (_tmp89_);
            _tmp90_ = vala_ccode_identifier_new ("DBUS_GERROR_NO_MEMORY");
            _tmp91_ = _tmp90_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp91_);
            _vala_ccode_node_unref0 (_tmp91_);
            _tmp92_ = vala_ccode_constant_new ("\"%s\"");
            _tmp93_ = _tmp92_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp93_);
            _vala_ccode_node_unref0 (_tmp93_);
            _tmp94_ = vala_ccode_constant_new ("\"Out of memory\"");
            _tmp95_ = _tmp94_;
            vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp95_);
            _vala_ccode_node_unref0 (_tmp95_);
            _tmp96_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) set_error_call);
            _tmp97_ = _tmp96_;
            vala_ccode_block_add_statement (oom_return_block, (ValaCCodeNode*) _tmp97_);
            _vala_ccode_node_unref0 (_tmp97_);
            _tmp98_ = vala_ccode_return_statement_new (NULL);
            _tmp99_ = _tmp98_;
            vala_ccode_block_add_statement (oom_return_block, (ValaCCodeNode*) _tmp99_);
            _vala_ccode_node_unref0 (_tmp99_);
            _vala_ccode_node_unref0 (set_error_call);
      }
      _tmp100_ = vala_ccode_identifier_new ("dbus_connection_send");
      _tmp101_ = _tmp100_;
      _tmp102_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp101_);
      _tmp103_ = _tmp102_;
      _vala_ccode_node_unref0 (_tmp101_);
      ccall = _tmp103_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) connection);
      _tmp104_ = vala_ccode_identifier_new ("_message");
      _tmp105_ = _tmp104_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp105_);
      _vala_ccode_node_unref0 (_tmp105_);
      _tmp106_ = vala_ccode_constant_new ("NULL");
      _tmp107_ = _tmp106_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp107_);
      _vala_ccode_node_unref0 (_tmp107_);
      _tmp108_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) ccall);
      _tmp109_ = _tmp108_;
      _tmp110_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp109_, (ValaCCodeStatement*) oom_return_block, NULL);
      _tmp111_ = _tmp110_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp111_);
      _vala_ccode_node_unref0 (_tmp111_);
      _vala_ccode_node_unref0 (_tmp109_);
      _tmp112_ = vala_ccode_identifier_new ("dbus_g_connection_unref");
      _tmp113_ = _tmp112_;
      _tmp114_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp113_);
      _tmp115_ = _tmp114_;
      _vala_ccode_node_unref0 (_tmp113_);
      conn_unref = _tmp115_;
      _tmp116_ = vala_ccode_identifier_new ("_connection");
      _tmp117_ = _tmp116_;
      vala_ccode_function_call_add_argument (conn_unref, (ValaCCodeExpression*) _tmp117_);
      _vala_ccode_node_unref0 (_tmp117_);
      _tmp118_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) conn_unref);
      _tmp119_ = _tmp118_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp119_);
      _vala_ccode_node_unref0 (_tmp119_);
      _tmp120_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp121_ = _tmp120_;
      _tmp122_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp121_);
      _tmp123_ = _tmp122_;
      _vala_ccode_node_unref0 (_tmp121_);
      message_unref = _tmp123_;
      _tmp124_ = vala_ccode_identifier_new ("_message");
      _tmp125_ = _tmp124_;
      vala_ccode_function_call_add_argument (message_unref, (ValaCCodeExpression*) _tmp125_);
      _vala_ccode_node_unref0 (_tmp125_);
      _tmp126_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) message_unref);
      _tmp127_ = _tmp126_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp127_);
      _vala_ccode_node_unref0 (_tmp127_);
      vala_dbus_client_module_check_error_reply (self, m, block);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) postfragment);
      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 = proxy_name;
      _vala_ccode_node_unref0 (message_unref);
      _vala_ccode_node_unref0 (conn_unref);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (oom_return_block);
      _vala_ccode_node_unref0 (connection);
      _vala_ccode_node_unref0 (gconnection);
      _vala_ccode_node_unref0 (dispose_return_block);
      _vala_ccode_node_unref0 (postfragment);
      _vala_ccode_node_unref0 (prefragment);
      _vala_ccode_node_unref0 (block);
      _vala_map_unref0 (cparam_map);
      _vala_ccode_node_unref0 (function);
      _vala_ccode_node_unref0 (_cdecl_);
      _g_free0 (dbus_iface_name);
      return result;
}


static void vala_dbus_client_module_generate_client_error_cases (ValaDBusClientModule* self, ValaCCodeBlock* error_block, ValaList* error_types, ValaCCodeExpression* dbus_error_name, ValaCCodeExpression* result_edomain, ValaCCodeExpression* result_ecode) {
      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 (dbus_error_name != NULL);
      g_return_if_fail (result_edomain != NULL);
      g_return_if_fail (result_ecode != 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;
                  gint _tmp9_;
                  gint _tmp10_;
                  gchar* _tmp11_ = NULL;
                  gchar* temp_name;
                  ValaCCodeDeclaration* _tmp12_ = NULL;
                  ValaCCodeDeclaration* _cdecl_;
                  ValaCCodeVariableDeclarator* _tmp13_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp14_;
                  gchar* _tmp15_ = NULL;
                  gchar* _tmp16_;
                  ValaCCodeIdentifier* _tmp17_ = NULL;
                  ValaCCodeIdentifier* _tmp18_;
                  ValaCCodeAssignment* _tmp19_ = NULL;
                  ValaCCodeAssignment* _tmp20_;
                  ValaCCodeExpressionStatement* _tmp21_ = NULL;
                  ValaCCodeExpressionStatement* _tmp22_;
                  ValaCCodeIdentifier* _tmp23_ = NULL;
                  ValaCCodeIdentifier* _tmp24_;
                  gint _tmp25_;
                  gchar* _tmp26_ = NULL;
                  gchar* _tmp27_;
                  ValaCCodeConstant* _tmp28_ = NULL;
                  ValaCCodeConstant* _tmp29_;
                  ValaCCodeBinaryExpression* _tmp30_ = NULL;
                  ValaCCodeBinaryExpression* _tmp31_;
                  ValaCCodeAssignment* _tmp32_ = NULL;
                  ValaCCodeAssignment* _tmp33_;
                  ValaCCodeExpressionStatement* _tmp34_ = NULL;
                  ValaCCodeExpressionStatement* _tmp35_;
                  ValaCCodeStatement* inner_if_else_if;
                  ValaCCodeIfStatement* inner_last_statement;
                  ValaCCodeIdentifier* _tmp71_ = NULL;
                  ValaCCodeIdentifier* _tmp72_;
                  ValaCCodeFunctionCall* _tmp73_ = NULL;
                  ValaCCodeFunctionCall* _tmp74_;
                  ValaCCodeFunctionCall* string_comparison;
                  gchar* _tmp75_ = NULL;
                  gchar* _tmp76_;
                  ValaCCodeConstant* _tmp77_ = NULL;
                  ValaCCodeConstant* _tmp78_;
                  ValaCCodeBinaryExpression* _tmp79_ = NULL;
                  ValaCCodeBinaryExpression* _tmp80_;
                  ValaCCodeIfStatement* _tmp81_ = NULL;
                  ValaCCodeIfStatement* _tmp82_;
                  ValaCCodeIfStatement* stmt;
                  ValaCCodeIfStatement* _tmp84_;
                  _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_base_module_get_next_temp_var_id ((ValaCCodeBaseModule*) self);
                  _tmp10_ = _tmp9_;
                  vala_ccode_base_module_set_next_temp_var_id ((ValaCCodeBaseModule*) self, _tmp10_ + 1);
                  _tmp11_ = g_strdup_printf ("_tmp%d_", _tmp10_);
                  temp_name = _tmp11_;
                  _tmp12_ = vala_ccode_declaration_new ("const char*");
                  _cdecl_ = _tmp12_;
                  _tmp13_ = vala_ccode_variable_declarator_new (temp_name, NULL, NULL);
                  _tmp14_ = _tmp13_;
                  vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp14_);
                  _vala_ccode_node_unref0 (_tmp14_);
                  vala_ccode_block_add_statement (true_block, (ValaCCodeNode*) _cdecl_);
                  _tmp15_ = vala_typesymbol_get_upper_case_cname ((ValaTypeSymbol*) edomain, NULL);
                  _tmp16_ = _tmp15_;
                  _tmp17_ = vala_ccode_identifier_new (_tmp16_);
                  _tmp18_ = _tmp17_;
                  _tmp19_ = vala_ccode_assignment_new (result_edomain, (ValaCCodeExpression*) _tmp18_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                  _tmp20_ = _tmp19_;
                  _tmp21_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp20_);
                  _tmp22_ = _tmp21_;
                  vala_ccode_block_add_statement (true_block, (ValaCCodeNode*) _tmp22_);
                  _vala_ccode_node_unref0 (_tmp22_);
                  _vala_ccode_node_unref0 (_tmp20_);
                  _vala_ccode_node_unref0 (_tmp18_);
                  _g_free0 (_tmp16_);
                  _tmp23_ = vala_ccode_identifier_new (temp_name);
                  _tmp24_ = _tmp23_;
                  _tmp25_ = strlen (edomain_dbus_name);
                  _tmp26_ = g_strdup_printf ("%ld", (glong) (_tmp25_ + 1));
                  _tmp27_ = _tmp26_;
                  _tmp28_ = vala_ccode_constant_new (_tmp27_);
                  _tmp29_ = _tmp28_;
                  _tmp30_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_PLUS, dbus_error_name, (ValaCCodeExpression*) _tmp29_);
                  _tmp31_ = _tmp30_;
                  _tmp32_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp24_, (ValaCCodeExpression*) _tmp31_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                  _tmp33_ = _tmp32_;
                  _tmp34_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp33_);
                  _tmp35_ = _tmp34_;
                  vala_ccode_block_add_statement (true_block, (ValaCCodeNode*) _tmp35_);
                  _vala_ccode_node_unref0 (_tmp35_);
                  _vala_ccode_node_unref0 (_tmp33_);
                  _vala_ccode_node_unref0 (_tmp31_);
                  _vala_ccode_node_unref0 (_tmp29_);
                  _g_free0 (_tmp27_);
                  _vala_ccode_node_unref0 (_tmp24_);
                  inner_if_else_if = NULL;
                  inner_last_statement = NULL;
                  {
                        ValaList* _tmp36_ = NULL;
                        ValaList* _ecode_list;
                        gint _tmp37_;
                        gint _ecode_size;
                        gint _ecode_index;
                        _tmp36_ = vala_error_domain_get_codes (edomain);
                        _ecode_list = _tmp36_;
                        _tmp37_ = vala_collection_get_size ((ValaCollection*) _ecode_list);
                        _ecode_size = _tmp37_;
                        _ecode_index = -1;
                        while (TRUE) {
                              gpointer _tmp38_ = NULL;
                              ValaErrorCode* ecode;
                              ValaCCodeBlock* _tmp39_ = NULL;
                              ValaCCodeBlock* inner_true_block;
                              gchar* _tmp40_ = NULL;
                              gchar* _tmp41_;
                              ValaCCodeIdentifier* _tmp42_ = NULL;
                              ValaCCodeIdentifier* _tmp43_;
                              ValaCCodeAssignment* _tmp44_ = NULL;
                              ValaCCodeAssignment* _tmp45_;
                              ValaCCodeExpressionStatement* _tmp46_ = NULL;
                              ValaCCodeExpressionStatement* _tmp47_;
                              gchar* _tmp48_ = NULL;
                              gchar* ecode_dbus_name;
                              ValaCCodeIdentifier* _tmp53_ = NULL;
                              ValaCCodeIdentifier* _tmp54_;
                              ValaCCodeFunctionCall* _tmp55_ = NULL;
                              ValaCCodeFunctionCall* _tmp56_;
                              ValaCCodeFunctionCall* string_comparison;
                              ValaCCodeIdentifier* _tmp57_ = NULL;
                              ValaCCodeIdentifier* _tmp58_;
                              gchar* _tmp59_ = NULL;
                              gchar* _tmp60_;
                              ValaCCodeConstant* _tmp61_ = NULL;
                              ValaCCodeConstant* _tmp62_;
                              ValaCCodeConstant* _tmp63_ = NULL;
                              ValaCCodeConstant* _tmp64_;
                              ValaCCodeBinaryExpression* _tmp65_ = NULL;
                              ValaCCodeBinaryExpression* _tmp66_;
                              ValaCCodeIfStatement* _tmp67_ = NULL;
                              ValaCCodeIfStatement* _tmp68_;
                              ValaCCodeIfStatement* stmt;
                              ValaCCodeIfStatement* _tmp70_;
                              _ecode_index = _ecode_index + 1;
                              if (!(_ecode_index < _ecode_size)) {
                                    break;
                              }
                              _tmp38_ = vala_list_get (_ecode_list, _ecode_index);
                              ecode = (ValaErrorCode*) _tmp38_;
                              _tmp39_ = vala_ccode_block_new ();
                              inner_true_block = _tmp39_;
                              vala_ccode_block_set_suppress_newline (inner_true_block, TRUE);
                              _tmp40_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) ecode, FALSE);
                              _tmp41_ = _tmp40_;
                              _tmp42_ = vala_ccode_identifier_new (_tmp41_);
                              _tmp43_ = _tmp42_;
                              _tmp44_ = vala_ccode_assignment_new (result_ecode, (ValaCCodeExpression*) _tmp43_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                              _tmp45_ = _tmp44_;
                              _tmp46_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp45_);
                              _tmp47_ = _tmp46_;
                              vala_ccode_block_add_statement (inner_true_block, (ValaCCodeNode*) _tmp47_);
                              _vala_ccode_node_unref0 (_tmp47_);
                              _vala_ccode_node_unref0 (_tmp45_);
                              _vala_ccode_node_unref0 (_tmp43_);
                              _g_free0 (_tmp41_);
                              _tmp48_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) ecode);
                              ecode_dbus_name = _tmp48_;
                              if (ecode_dbus_name == NULL) {
                                    const gchar* _tmp49_ = NULL;
                                    gchar* _tmp50_ = NULL;
                                    gchar* _tmp51_;
                                    gchar* _tmp52_ = NULL;
                                    _tmp49_ = vala_symbol_get_name ((ValaSymbol*) ecode);
                                    _tmp50_ = g_utf8_strdown (_tmp49_, (gssize) (-1));
                                    _tmp51_ = _tmp50_;
                                    _tmp52_ = vala_symbol_lower_case_to_camel_case (_tmp51_);
                                    _g_free0 (ecode_dbus_name);
                                    ecode_dbus_name = _tmp52_;
                                    _g_free0 (_tmp51_);
                              }
                              _tmp53_ = vala_ccode_identifier_new ("strcmp");
                              _tmp54_ = _tmp53_;
                              _tmp55_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp54_);
                              _tmp56_ = _tmp55_;
                              _vala_ccode_node_unref0 (_tmp54_);
                              string_comparison = _tmp56_;
                              _tmp57_ = vala_ccode_identifier_new (temp_name);
                              _tmp58_ = _tmp57_;
                              vala_ccode_function_call_add_argument (string_comparison, (ValaCCodeExpression*) _tmp58_);
                              _vala_ccode_node_unref0 (_tmp58_);
                              _tmp59_ = g_strdup_printf ("\"%s\"", ecode_dbus_name);
                              _tmp60_ = _tmp59_;
                              _tmp61_ = vala_ccode_constant_new (_tmp60_);
                              _tmp62_ = _tmp61_;
                              vala_ccode_function_call_add_argument (string_comparison, (ValaCCodeExpression*) _tmp62_);
                              _vala_ccode_node_unref0 (_tmp62_);
                              _g_free0 (_tmp60_);
                              _tmp63_ = vala_ccode_constant_new ("0");
                              _tmp64_ = _tmp63_;
                              _tmp65_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) string_comparison, (ValaCCodeExpression*) _tmp64_);
                              _tmp66_ = _tmp65_;
                              _tmp67_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp66_, (ValaCCodeStatement*) inner_true_block, NULL);
                              _tmp68_ = _tmp67_;
                              _vala_ccode_node_unref0 (_tmp66_);
                              _vala_ccode_node_unref0 (_tmp64_);
                              stmt = _tmp68_;
                              if (inner_last_statement != NULL) {
                                    vala_ccode_if_statement_set_false_statement (inner_last_statement, (ValaCCodeStatement*) stmt);
                              } else {
                                    ValaCCodeStatement* _tmp69_;
                                    _tmp69_ = _vala_ccode_node_ref0 ((ValaCCodeStatement*) stmt);
                                    _vala_ccode_node_unref0 (inner_if_else_if);
                                    inner_if_else_if = _tmp69_;
                              }
                              _tmp70_ = _vala_ccode_node_ref0 (stmt);
                              _vala_ccode_node_unref0 (inner_last_statement);
                              inner_last_statement = _tmp70_;
                              _vala_ccode_node_unref0 (stmt);
                              _vala_ccode_node_unref0 (string_comparison);
                              _g_free0 (ecode_dbus_name);
                              _vala_ccode_node_unref0 (inner_true_block);
                              _vala_code_node_unref0 (ecode);
                        }
                        _vala_iterable_unref0 (_ecode_list);
                  }
                  vala_ccode_block_add_statement (true_block, (ValaCCodeNode*) inner_if_else_if);
                  _tmp71_ = vala_ccode_identifier_new ("strstr");
                  _tmp72_ = _tmp71_;
                  _tmp73_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp72_);
                  _tmp74_ = _tmp73_;
                  _vala_ccode_node_unref0 (_tmp72_);
                  string_comparison = _tmp74_;
                  vala_ccode_function_call_add_argument (string_comparison, dbus_error_name);
                  _tmp75_ = g_strdup_printf ("\"%s\"", edomain_dbus_name);
                  _tmp76_ = _tmp75_;
                  _tmp77_ = vala_ccode_constant_new (_tmp76_);
                  _tmp78_ = _tmp77_;
                  vala_ccode_function_call_add_argument (string_comparison, (ValaCCodeExpression*) _tmp78_);
                  _vala_ccode_node_unref0 (_tmp78_);
                  _g_free0 (_tmp76_);
                  _tmp79_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) string_comparison, dbus_error_name);
                  _tmp80_ = _tmp79_;
                  _tmp81_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp80_, (ValaCCodeStatement*) true_block, NULL);
                  _tmp82_ = _tmp81_;
                  _vala_ccode_node_unref0 (_tmp80_);
                  stmt = _tmp82_;
                  if (last_statement != NULL) {
                        vala_ccode_if_statement_set_false_statement (last_statement, (ValaCCodeStatement*) stmt);
                  } else {
                        ValaCCodeStatement* _tmp83_;
                        _tmp83_ = _vala_ccode_node_ref0 ((ValaCCodeStatement*) stmt);
                        _vala_ccode_node_unref0 (if_else_if);
                        if_else_if = _tmp83_;
                  }
                  _tmp84_ = _vala_ccode_node_ref0 (stmt);
                  _vala_ccode_node_unref0 (last_statement);
                  last_statement = _tmp84_;
                  _vala_ccode_node_unref0 (stmt);
                  _vala_ccode_node_unref0 (string_comparison);
                  _vala_ccode_node_unref0 (inner_last_statement);
                  _vala_ccode_node_unref0 (inner_if_else_if);
                  _vala_ccode_node_unref0 (_cdecl_);
                  _g_free0 (temp_name);
                  _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_client_module_generate_async_dbus_proxy_method (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      const gchar* _tmp2_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* proxy_name;
      gchar* _tmp5_ = NULL;
      gchar* dbus_iface_name;
      ValaCCodeDeclaration* _cdecl_ = NULL;
      gchar* _tmp6_ = NULL;
      gchar* _tmp7_;
      const gchar* _tmp8_ = NULL;
      gchar* _tmp9_ = NULL;
      gchar* _tmp10_;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      gchar* dataname;
      gchar* _tmp13_;
      gchar* _tmp14_;
      ValaCCodeStruct* _tmp15_ = NULL;
      ValaCCodeStruct* _tmp16_;
      ValaCCodeStruct* datastruct;
      gchar* _tmp17_;
      gchar* _tmp18_;
      ValaCCodeVariableDeclarator* _tmp19_ = NULL;
      ValaCCodeVariableDeclarator* _tmp20_;
      ValaCCodeTypeDefinition* _tmp21_ = NULL;
      ValaCCodeTypeDefinition* _tmp22_;
      ValaCCodeFunction* _tmp23_ = NULL;
      ValaCCodeFunction* function;
      ValaHashMap* _tmp24_ = NULL;
      ValaHashMap* cparam_map;
      gint _tmp25_;
      ValaCCodeParameter* _tmp26_ = NULL;
      ValaCCodeParameter* _tmp27_;
      gint _tmp28_;
      ValaCCodeParameter* _tmp29_ = NULL;
      ValaCCodeParameter* _tmp30_;
      ValaCCodeBlock* _tmp31_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp32_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeFragment* _tmp33_ = NULL;
      ValaCCodeFragment* postfragment;
      ValaCCodeDeclaration* _tmp34_ = NULL;
      ValaCCodeVariableDeclarator* _tmp35_ = NULL;
      ValaCCodeVariableDeclarator* _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* gconnection;
      ValaCCodeIdentifier* _tmp50_ = NULL;
      ValaCCodeIdentifier* _tmp51_;
      ValaCCodeConstant* _tmp52_ = NULL;
      ValaCCodeConstant* _tmp53_;
      ValaCCodeIdentifier* _tmp54_ = NULL;
      ValaCCodeIdentifier* _tmp55_;
      ValaCCodeUnaryExpression* _tmp56_ = NULL;
      ValaCCodeUnaryExpression* _tmp57_;
      ValaCCodeConstant* _tmp58_ = NULL;
      ValaCCodeConstant* _tmp59_;
      ValaCCodeExpressionStatement* _tmp60_ = NULL;
      ValaCCodeExpressionStatement* _tmp61_;
      ValaCCodeIdentifier* _tmp62_ = NULL;
      ValaCCodeIdentifier* _tmp63_;
      ValaCCodeFunctionCall* _tmp64_ = NULL;
      ValaCCodeFunctionCall* _tmp65_;
      ValaCCodeFunctionCall* connection;
      ValaCCodeIdentifier* _tmp66_ = NULL;
      ValaCCodeIdentifier* _tmp67_;
      ValaCCodeIdentifier* _tmp68_ = NULL;
      ValaCCodeIdentifier* _tmp69_;
      ValaCCodeFunctionCall* _tmp70_ = NULL;
      ValaCCodeFunctionCall* _tmp71_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp72_ = NULL;
      ValaCCodeIdentifier* _tmp73_;
      ValaCCodeIdentifier* _tmp74_ = NULL;
      ValaCCodeIdentifier* _tmp75_;
      ValaCCodeUnaryExpression* _tmp76_ = NULL;
      ValaCCodeUnaryExpression* _tmp77_;
      ValaCCodeConstant* _tmp78_ = NULL;
      ValaCCodeConstant* _tmp79_;
      ValaCCodeExpressionStatement* _tmp80_ = NULL;
      ValaCCodeExpressionStatement* _tmp81_;
      ValaCCodeIdentifier* _tmp82_ = NULL;
      ValaCCodeIdentifier* _tmp83_;
      ValaCCodeFunctionCall* _tmp84_ = NULL;
      ValaCCodeFunctionCall* _tmp85_;
      ValaCCodeFunctionCall* conn_unref;
      ValaCCodeIdentifier* _tmp86_ = NULL;
      ValaCCodeIdentifier* _tmp87_;
      ValaCCodeExpressionStatement* _tmp88_ = NULL;
      ValaCCodeExpressionStatement* _tmp89_;
      ValaCCodeIdentifier* _tmp90_ = NULL;
      ValaCCodeIdentifier* _tmp91_;
      ValaCCodeFunctionCall* _tmp92_ = NULL;
      ValaCCodeFunctionCall* _tmp93_;
      ValaCCodeFunctionCall* message_unref;
      ValaCCodeIdentifier* _tmp94_ = NULL;
      ValaCCodeIdentifier* _tmp95_;
      ValaCCodeExpressionStatement* _tmp96_ = NULL;
      ValaCCodeExpressionStatement* _tmp97_;
      ValaCCodeIdentifier* _tmp98_ = NULL;
      ValaCCodeIdentifier* _tmp99_;
      ValaCCodeFunctionCall* _tmp100_ = NULL;
      ValaCCodeFunctionCall* _tmp101_;
      ValaCCodeFunctionCall* dataalloc;
      ValaCCodeIdentifier* _tmp102_ = NULL;
      ValaCCodeIdentifier* _tmp103_;
      gchar* _tmp104_;
      gchar* _tmp105_;
      ValaCCodeDeclaration* _tmp106_ = NULL;
      ValaCCodeDeclaration* _tmp107_;
      ValaCCodeDeclaration* datadecl;
      ValaCCodeVariableDeclarator* _tmp108_ = NULL;
      ValaCCodeVariableDeclarator* _tmp109_;
      ValaCCodeIdentifier* _tmp110_ = NULL;
      ValaCCodeIdentifier* _tmp111_;
      ValaCCodeAssignment* _tmp112_ = NULL;
      ValaCCodeAssignment* _tmp113_;
      ValaCCodeExpressionStatement* _tmp114_ = NULL;
      ValaCCodeExpressionStatement* _tmp115_;
      ValaCCodeIdentifier* _tmp116_ = NULL;
      ValaCCodeIdentifier* _tmp117_;
      ValaCCodeMemberAccess* _tmp118_ = NULL;
      ValaCCodeMemberAccess* _tmp119_;
      ValaCCodeIdentifier* _tmp120_ = NULL;
      ValaCCodeIdentifier* _tmp121_;
      ValaCCodeAssignment* _tmp122_ = NULL;
      ValaCCodeAssignment* _tmp123_;
      ValaCCodeExpressionStatement* _tmp124_ = NULL;
      ValaCCodeExpressionStatement* _tmp125_;
      ValaCCodeIdentifier* _tmp126_ = NULL;
      ValaCCodeIdentifier* _tmp127_;
      ValaCCodeMemberAccess* _tmp128_ = NULL;
      ValaCCodeMemberAccess* _tmp129_;
      ValaCCodeIdentifier* _tmp130_ = NULL;
      ValaCCodeIdentifier* _tmp131_;
      ValaCCodeAssignment* _tmp132_ = NULL;
      ValaCCodeAssignment* _tmp133_;
      ValaCCodeExpressionStatement* _tmp134_ = NULL;
      ValaCCodeExpressionStatement* _tmp135_;
      ValaCCodeIdentifier* _tmp136_ = NULL;
      ValaCCodeIdentifier* _tmp137_;
      ValaCCodeMemberAccess* _tmp138_ = NULL;
      ValaCCodeMemberAccess* _tmp139_;
      ValaCCodeIdentifier* _tmp140_ = NULL;
      ValaCCodeIdentifier* _tmp141_;
      ValaCCodeAssignment* _tmp142_ = NULL;
      ValaCCodeAssignment* _tmp143_;
      ValaCCodeExpressionStatement* _tmp144_ = NULL;
      ValaCCodeExpressionStatement* _tmp145_;
      ValaCCodeIdentifier* _tmp146_ = NULL;
      ValaCCodeIdentifier* _tmp147_;
      ValaCCodeFunctionCall* _tmp148_ = NULL;
      ValaCCodeFunctionCall* _tmp149_;
      ValaCCodeFunctionCall* pending;
      ValaCCodeIdentifier* _tmp150_ = NULL;
      ValaCCodeIdentifier* _tmp151_;
      gchar* _tmp152_ = NULL;
      gchar* _tmp153_;
      const gchar* _tmp154_ = NULL;
      gchar* _tmp155_ = NULL;
      gchar* _tmp156_;
      ValaCCodeIdentifier* _tmp157_ = NULL;
      ValaCCodeIdentifier* _tmp158_;
      ValaCCodeIdentifier* _tmp159_ = NULL;
      ValaCCodeIdentifier* _tmp160_;
      ValaCCodeConstant* _tmp161_ = NULL;
      ValaCCodeConstant* _tmp162_;
      ValaCCodeExpressionStatement* _tmp163_ = NULL;
      ValaCCodeExpressionStatement* _tmp164_;
      gchar* _tmp165_ = NULL;
      gchar* _tmp166_;
      const gchar* _tmp167_ = NULL;
      gchar* _tmp168_ = NULL;
      gchar* _tmp169_;
      ValaCCodeFunction* _tmp170_ = NULL;
      ValaCCodeParameter* _tmp171_ = NULL;
      ValaCCodeParameter* _tmp172_;
      ValaCCodeParameter* _tmp173_ = NULL;
      ValaCCodeParameter* _tmp174_;
      ValaCCodeBlock* _tmp175_ = NULL;
      gchar* _tmp176_;
      gchar* _tmp177_;
      ValaCCodeDeclaration* _tmp178_ = NULL;
      ValaCCodeVariableDeclarator* _tmp179_ = NULL;
      ValaCCodeVariableDeclarator* _tmp180_;
      ValaCCodeIdentifier* _tmp181_ = NULL;
      ValaCCodeIdentifier* _tmp182_;
      ValaCCodeIdentifier* _tmp183_ = NULL;
      ValaCCodeIdentifier* _tmp184_;
      ValaCCodeAssignment* _tmp185_ = NULL;
      ValaCCodeAssignment* _tmp186_;
      ValaCCodeExpressionStatement* _tmp187_ = NULL;
      ValaCCodeExpressionStatement* _tmp188_;
      ValaCCodeDeclaration* _tmp189_ = NULL;
      ValaCCodeDeclaration* obj_decl;
      ValaCCodeVariableDeclarator* _tmp190_ = NULL;
      ValaCCodeVariableDeclarator* _tmp191_;
      ValaCCodeIdentifier* _tmp192_ = NULL;
      ValaCCodeIdentifier* _tmp193_;
      ValaCCodeFunctionCall* _tmp194_ = NULL;
      ValaCCodeFunctionCall* _tmp195_;
      ValaCCodeFunctionCall* object_creation;
      ValaCCodeConstant* _tmp196_ = NULL;
      ValaCCodeConstant* _tmp197_;
      ValaCCodeConstant* _tmp198_ = NULL;
      ValaCCodeConstant* _tmp199_;
      ValaCCodeConstant* _tmp200_ = NULL;
      ValaCCodeConstant* _tmp201_;
      ValaCCodeIdentifier* _tmp202_ = NULL;
      ValaCCodeIdentifier* _tmp203_;
      ValaCCodeAssignment* _tmp204_ = NULL;
      ValaCCodeAssignment* _tmp205_;
      ValaCCodeExpressionStatement* _tmp206_ = NULL;
      ValaCCodeExpressionStatement* _tmp207_;
      ValaCCodeDeclaration* _tmp208_ = NULL;
      ValaCCodeDeclaration* async_result_decl;
      ValaCCodeVariableDeclarator* _tmp209_ = NULL;
      ValaCCodeVariableDeclarator* _tmp210_;
      ValaCCodeIdentifier* _tmp211_ = NULL;
      ValaCCodeIdentifier* _tmp212_;
      ValaCCodeFunctionCall* _tmp213_ = NULL;
      ValaCCodeFunctionCall* _tmp214_;
      ValaCCodeFunctionCall* async_result_creation;
      ValaCCodeIdentifier* _tmp215_ = NULL;
      ValaCCodeIdentifier* _tmp216_;
      ValaCCodeIdentifier* _tmp217_ = NULL;
      ValaCCodeIdentifier* _tmp218_;
      ValaCCodeMemberAccess* _tmp219_ = NULL;
      ValaCCodeMemberAccess* _tmp220_;
      ValaCCodeIdentifier* _tmp221_ = NULL;
      ValaCCodeIdentifier* _tmp222_;
      ValaCCodeMemberAccess* _tmp223_ = NULL;
      ValaCCodeMemberAccess* _tmp224_;
      ValaCCodeIdentifier* _tmp225_ = NULL;
      ValaCCodeIdentifier* _tmp226_;
      ValaCCodeIdentifier* _tmp227_ = NULL;
      ValaCCodeIdentifier* _tmp228_;
      ValaCCodeAssignment* _tmp229_ = NULL;
      ValaCCodeAssignment* _tmp230_;
      ValaCCodeExpressionStatement* _tmp231_ = NULL;
      ValaCCodeExpressionStatement* _tmp232_;
      ValaCCodeIdentifier* _tmp233_ = NULL;
      ValaCCodeIdentifier* _tmp234_;
      ValaCCodeFunctionCall* _tmp235_ = NULL;
      ValaCCodeFunctionCall* _tmp236_;
      ValaCCodeFunctionCall* completecall;
      ValaCCodeIdentifier* _tmp237_ = NULL;
      ValaCCodeIdentifier* _tmp238_;
      ValaCCodeExpressionStatement* _tmp239_ = NULL;
      ValaCCodeExpressionStatement* _tmp240_;
      ValaCCodeIdentifier* _tmp241_ = NULL;
      ValaCCodeIdentifier* _tmp242_;
      ValaCCodeFunctionCall* _tmp243_ = NULL;
      ValaCCodeFunctionCall* _tmp244_;
      ValaCCodeFunctionCall* obj_free;
      ValaCCodeIdentifier* _tmp245_ = NULL;
      ValaCCodeIdentifier* _tmp246_;
      ValaCCodeExpressionStatement* _tmp247_ = NULL;
      ValaCCodeExpressionStatement* _tmp248_;
      ValaCCodeIdentifier* _tmp249_ = NULL;
      ValaCCodeIdentifier* _tmp250_;
      ValaCCodeFunctionCall* _tmp251_ = NULL;
      ValaCCodeFunctionCall* _tmp252_;
      ValaCCodeFunctionCall* async_result_free;
      ValaCCodeIdentifier* _tmp253_ = NULL;
      ValaCCodeIdentifier* _tmp254_;
      ValaCCodeExpressionStatement* _tmp255_ = NULL;
      ValaCCodeExpressionStatement* _tmp256_;
      ValaCCodeIdentifier* _tmp257_ = NULL;
      ValaCCodeIdentifier* _tmp258_;
      ValaCCodeFunctionCall* _tmp259_ = NULL;
      ValaCCodeFunctionCall* _tmp260_;
      ValaCCodeFunctionCall* datafree;
      ValaCCodeIdentifier* _tmp261_ = NULL;
      ValaCCodeIdentifier* _tmp262_;
      ValaCCodeIdentifier* _tmp263_ = NULL;
      ValaCCodeIdentifier* _tmp264_;
      ValaCCodeExpressionStatement* _tmp265_ = NULL;
      ValaCCodeExpressionStatement* _tmp266_;
      ValaCCodeIdentifier* _tmp267_ = NULL;
      ValaCCodeIdentifier* _tmp268_;
      ValaCCodeFunctionCall* _tmp269_ = NULL;
      ValaCCodeFunctionCall* _tmp270_;
      ValaCCodeFunctionCall* pendingfree;
      ValaCCodeIdentifier* _tmp271_ = NULL;
      ValaCCodeIdentifier* _tmp272_;
      ValaCCodeExpressionStatement* _tmp273_ = NULL;
      ValaCCodeExpressionStatement* _tmp274_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp3_ = g_strdup_printf ("%sdbus_proxy_%s_async", _tmp1_, _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp1_);
      proxy_name = _tmp4_;
      _tmp5_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp5_;
      _tmp6_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp7_ = _tmp6_;
      _tmp8_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp9_ = vala_symbol_lower_case_to_camel_case (_tmp8_);
      _tmp10_ = _tmp9_;
      _tmp11_ = g_strdup_printf ("%sDBusProxy%sData", _tmp7_, _tmp10_);
      _tmp12_ = _tmp11_;
      _g_free0 (_tmp10_);
      _g_free0 (_tmp7_);
      dataname = _tmp12_;
      _tmp13_ = g_strconcat ("_", dataname, NULL);
      _tmp14_ = _tmp13_;
      _tmp15_ = vala_ccode_struct_new (_tmp14_);
      _tmp16_ = _tmp15_;
      _g_free0 (_tmp14_);
      datastruct = _tmp16_;
      vala_ccode_struct_add_field (datastruct, "GAsyncReadyCallback", "_callback_", NULL);
      vala_ccode_struct_add_field (datastruct, "gpointer", "_user_data_", NULL);
      vala_ccode_struct_add_field (datastruct, "DBusPendingCall*", "pending", NULL);
      vala_ccode_file_add_type_definition (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) datastruct);
      _tmp17_ = g_strconcat ("struct _", dataname, NULL);
      _tmp18_ = _tmp17_;
      _tmp19_ = vala_ccode_variable_declarator_new (dataname, NULL, NULL);
      _tmp20_ = _tmp19_;
      _tmp21_ = vala_ccode_type_definition_new (_tmp18_, (ValaCCodeDeclarator*) _tmp20_);
      _tmp22_ = _tmp21_;
      vala_ccode_file_add_type_declaration (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _tmp22_);
      _vala_ccode_node_unref0 (_tmp22_);
      _vala_ccode_node_unref0 (_tmp20_);
      _g_free0 (_tmp18_);
      _tmp23_ = vala_ccode_function_new (proxy_name, "void");
      function = _tmp23_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp24_ = 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);
      cparam_map = _tmp24_;
      _tmp25_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, (gdouble) (-1), FALSE);
      _tmp26_ = vala_ccode_parameter_new ("_callback_", "GAsyncReadyCallback");
      _tmp27_ = _tmp26_;
      vala_map_set ((ValaMap*) cparam_map, GINT_TO_POINTER (_tmp25_), _tmp27_);
      _vala_ccode_node_unref0 (_tmp27_);
      _tmp28_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, -0.9, FALSE);
      _tmp29_ = vala_ccode_parameter_new ("_user_data_", "gpointer");
      _tmp30_ = _tmp29_;
      vala_map_set ((ValaMap*) cparam_map, GINT_TO_POINTER (_tmp28_), _tmp30_);
      _vala_ccode_node_unref0 (_tmp30_);
      vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 1);
      _tmp31_ = vala_ccode_block_new ();
      block = _tmp31_;
      _tmp32_ = vala_ccode_fragment_new ();
      prefragment = _tmp32_;
      _tmp33_ = vala_ccode_fragment_new ();
      postfragment = _tmp33_;
      _tmp34_ = vala_ccode_declaration_new ("DBusGConnection");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp34_;
      _tmp35_ = vala_ccode_variable_declarator_new ("*_connection", NULL, NULL);
      _tmp36_ = _tmp35_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp37_ = vala_ccode_declaration_new ("DBusMessage");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp37_;
      _tmp38_ = vala_ccode_variable_declarator_new ("*_message", NULL, 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 ("DBusPendingCall");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp40_;
      _tmp41_ = vala_ccode_variable_declarator_new ("*_pending", 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);
      vala_dbus_client_module_generate_marshalling (self, m, dbus_iface_name, prefragment, postfragment);
      _tmp46_ = vala_ccode_identifier_new ("g_object_get");
      _tmp47_ = _tmp46_;
      _tmp48_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp47_);
      _tmp49_ = _tmp48_;
      _vala_ccode_node_unref0 (_tmp47_);
      gconnection = _tmp49_;
      _tmp50_ = vala_ccode_identifier_new ("self");
      _tmp51_ = _tmp50_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp51_);
      _vala_ccode_node_unref0 (_tmp51_);
      _tmp52_ = vala_ccode_constant_new ("\"connection\"");
      _tmp53_ = _tmp52_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp53_);
      _vala_ccode_node_unref0 (_tmp53_);
      _tmp54_ = vala_ccode_identifier_new ("_connection");
      _tmp55_ = _tmp54_;
      _tmp56_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp55_);
      _tmp57_ = _tmp56_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp57_);
      _vala_ccode_node_unref0 (_tmp57_);
      _vala_ccode_node_unref0 (_tmp55_);
      _tmp58_ = vala_ccode_constant_new ("NULL");
      _tmp59_ = _tmp58_;
      vala_ccode_function_call_add_argument (gconnection, (ValaCCodeExpression*) _tmp59_);
      _vala_ccode_node_unref0 (_tmp59_);
      _tmp60_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) gconnection);
      _tmp61_ = _tmp60_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp61_);
      _vala_ccode_node_unref0 (_tmp61_);
      _tmp62_ = vala_ccode_identifier_new ("dbus_g_connection_get_connection");
      _tmp63_ = _tmp62_;
      _tmp64_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp63_);
      _tmp65_ = _tmp64_;
      _vala_ccode_node_unref0 (_tmp63_);
      connection = _tmp65_;
      _tmp66_ = vala_ccode_identifier_new ("_connection");
      _tmp67_ = _tmp66_;
      vala_ccode_function_call_add_argument (connection, (ValaCCodeExpression*) _tmp67_);
      _vala_ccode_node_unref0 (_tmp67_);
      _tmp68_ = vala_ccode_identifier_new ("dbus_connection_send_with_reply");
      _tmp69_ = _tmp68_;
      _tmp70_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp69_);
      _tmp71_ = _tmp70_;
      _vala_ccode_node_unref0 (_tmp69_);
      ccall = _tmp71_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) connection);
      _tmp72_ = vala_ccode_identifier_new ("_message");
      _tmp73_ = _tmp72_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp73_);
      _vala_ccode_node_unref0 (_tmp73_);
      _tmp74_ = vala_ccode_identifier_new ("_pending");
      _tmp75_ = _tmp74_;
      _tmp76_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp75_);
      _tmp77_ = _tmp76_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp77_);
      _vala_ccode_node_unref0 (_tmp77_);
      _vala_ccode_node_unref0 (_tmp75_);
      _tmp78_ = vala_dbus_client_module_get_dbus_timeout (self, (ValaSymbol*) m);
      _tmp79_ = _tmp78_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp79_);
      _vala_ccode_node_unref0 (_tmp79_);
      _tmp80_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
      _tmp81_ = _tmp80_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp81_);
      _vala_ccode_node_unref0 (_tmp81_);
      _tmp82_ = vala_ccode_identifier_new ("dbus_g_connection_unref");
      _tmp83_ = _tmp82_;
      _tmp84_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp83_);
      _tmp85_ = _tmp84_;
      _vala_ccode_node_unref0 (_tmp83_);
      conn_unref = _tmp85_;
      _tmp86_ = vala_ccode_identifier_new ("_connection");
      _tmp87_ = _tmp86_;
      vala_ccode_function_call_add_argument (conn_unref, (ValaCCodeExpression*) _tmp87_);
      _vala_ccode_node_unref0 (_tmp87_);
      _tmp88_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) conn_unref);
      _tmp89_ = _tmp88_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp89_);
      _vala_ccode_node_unref0 (_tmp89_);
      _tmp90_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp91_ = _tmp90_;
      _tmp92_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp91_);
      _tmp93_ = _tmp92_;
      _vala_ccode_node_unref0 (_tmp91_);
      message_unref = _tmp93_;
      _tmp94_ = vala_ccode_identifier_new ("_message");
      _tmp95_ = _tmp94_;
      vala_ccode_function_call_add_argument (message_unref, (ValaCCodeExpression*) _tmp95_);
      _vala_ccode_node_unref0 (_tmp95_);
      _tmp96_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) message_unref);
      _tmp97_ = _tmp96_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp97_);
      _vala_ccode_node_unref0 (_tmp97_);
      _tmp98_ = vala_ccode_identifier_new ("g_slice_new0");
      _tmp99_ = _tmp98_;
      _tmp100_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp99_);
      _tmp101_ = _tmp100_;
      _vala_ccode_node_unref0 (_tmp99_);
      dataalloc = _tmp101_;
      _tmp102_ = vala_ccode_identifier_new (dataname);
      _tmp103_ = _tmp102_;
      vala_ccode_function_call_add_argument (dataalloc, (ValaCCodeExpression*) _tmp103_);
      _vala_ccode_node_unref0 (_tmp103_);
      _tmp104_ = g_strconcat (dataname, "*", NULL);
      _tmp105_ = _tmp104_;
      _tmp106_ = vala_ccode_declaration_new (_tmp105_);
      _tmp107_ = _tmp106_;
      _g_free0 (_tmp105_);
      datadecl = _tmp107_;
      _tmp108_ = vala_ccode_variable_declarator_new ("_data_", NULL, NULL);
      _tmp109_ = _tmp108_;
      vala_ccode_declaration_add_declarator (datadecl, (ValaCCodeDeclarator*) _tmp109_);
      _vala_ccode_node_unref0 (_tmp109_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) datadecl);
      _tmp110_ = vala_ccode_identifier_new ("_data_");
      _tmp111_ = _tmp110_;
      _tmp112_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp111_, (ValaCCodeExpression*) dataalloc, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp113_ = _tmp112_;
      _tmp114_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp113_);
      _tmp115_ = _tmp114_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp115_);
      _vala_ccode_node_unref0 (_tmp115_);
      _vala_ccode_node_unref0 (_tmp113_);
      _vala_ccode_node_unref0 (_tmp111_);
      _tmp116_ = vala_ccode_identifier_new ("_data_");
      _tmp117_ = _tmp116_;
      _tmp118_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp117_, "_callback_");
      _tmp119_ = _tmp118_;
      _tmp120_ = vala_ccode_identifier_new ("_callback_");
      _tmp121_ = _tmp120_;
      _tmp122_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp119_, (ValaCCodeExpression*) _tmp121_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp123_ = _tmp122_;
      _tmp124_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp123_);
      _tmp125_ = _tmp124_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp125_);
      _vala_ccode_node_unref0 (_tmp125_);
      _vala_ccode_node_unref0 (_tmp123_);
      _vala_ccode_node_unref0 (_tmp121_);
      _vala_ccode_node_unref0 (_tmp119_);
      _vala_ccode_node_unref0 (_tmp117_);
      _tmp126_ = vala_ccode_identifier_new ("_data_");
      _tmp127_ = _tmp126_;
      _tmp128_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp127_, "_user_data_");
      _tmp129_ = _tmp128_;
      _tmp130_ = vala_ccode_identifier_new ("_user_data_");
      _tmp131_ = _tmp130_;
      _tmp132_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp129_, (ValaCCodeExpression*) _tmp131_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp133_ = _tmp132_;
      _tmp134_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp133_);
      _tmp135_ = _tmp134_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp135_);
      _vala_ccode_node_unref0 (_tmp135_);
      _vala_ccode_node_unref0 (_tmp133_);
      _vala_ccode_node_unref0 (_tmp131_);
      _vala_ccode_node_unref0 (_tmp129_);
      _vala_ccode_node_unref0 (_tmp127_);
      _tmp136_ = vala_ccode_identifier_new ("_data_");
      _tmp137_ = _tmp136_;
      _tmp138_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp137_, "pending");
      _tmp139_ = _tmp138_;
      _tmp140_ = vala_ccode_identifier_new ("_pending");
      _tmp141_ = _tmp140_;
      _tmp142_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp139_, (ValaCCodeExpression*) _tmp141_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp143_ = _tmp142_;
      _tmp144_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp143_);
      _tmp145_ = _tmp144_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp145_);
      _vala_ccode_node_unref0 (_tmp145_);
      _vala_ccode_node_unref0 (_tmp143_);
      _vala_ccode_node_unref0 (_tmp141_);
      _vala_ccode_node_unref0 (_tmp139_);
      _vala_ccode_node_unref0 (_tmp137_);
      _tmp146_ = vala_ccode_identifier_new ("dbus_pending_call_set_notify");
      _tmp147_ = _tmp146_;
      _tmp148_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp147_);
      _tmp149_ = _tmp148_;
      _vala_ccode_node_unref0 (_tmp147_);
      pending = _tmp149_;
      _tmp150_ = vala_ccode_identifier_new ("_pending");
      _tmp151_ = _tmp150_;
      vala_ccode_function_call_add_argument (pending, (ValaCCodeExpression*) _tmp151_);
      _vala_ccode_node_unref0 (_tmp151_);
      _tmp152_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp153_ = _tmp152_;
      _tmp154_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp155_ = g_strdup_printf ("%sdbus_proxy_%s_ready", _tmp153_, _tmp154_);
      _tmp156_ = _tmp155_;
      _tmp157_ = vala_ccode_identifier_new (_tmp156_);
      _tmp158_ = _tmp157_;
      vala_ccode_function_call_add_argument (pending, (ValaCCodeExpression*) _tmp158_);
      _vala_ccode_node_unref0 (_tmp158_);
      _g_free0 (_tmp156_);
      _g_free0 (_tmp153_);
      _tmp159_ = vala_ccode_identifier_new ("_data_");
      _tmp160_ = _tmp159_;
      vala_ccode_function_call_add_argument (pending, (ValaCCodeExpression*) _tmp160_);
      _vala_ccode_node_unref0 (_tmp160_);
      _tmp161_ = vala_ccode_constant_new ("NULL");
      _tmp162_ = _tmp161_;
      vala_ccode_function_call_add_argument (pending, (ValaCCodeExpression*) _tmp162_);
      _vala_ccode_node_unref0 (_tmp162_);
      _tmp163_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) pending);
      _tmp164_ = _tmp163_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp164_);
      _vala_ccode_node_unref0 (_tmp164_);
      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);
      _tmp165_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp166_ = _tmp165_;
      _tmp167_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp168_ = g_strdup_printf ("%sdbus_proxy_%s_ready", _tmp166_, _tmp167_);
      _tmp169_ = _tmp168_;
      _tmp170_ = vala_ccode_function_new (_tmp169_, "void");
      _vala_ccode_node_unref0 (function);
      function = _tmp170_;
      _g_free0 (_tmp169_);
      _g_free0 (_tmp166_);
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp171_ = vala_ccode_parameter_new ("pending", "DBusPendingCall*");
      _tmp172_ = _tmp171_;
      vala_ccode_function_add_parameter (function, _tmp172_);
      _vala_ccode_node_unref0 (_tmp172_);
      _tmp173_ = vala_ccode_parameter_new ("user_data", "void*");
      _tmp174_ = _tmp173_;
      vala_ccode_function_add_parameter (function, _tmp174_);
      _vala_ccode_node_unref0 (_tmp174_);
      _tmp175_ = vala_ccode_block_new ();
      _vala_ccode_node_unref0 (block);
      block = _tmp175_;
      _tmp176_ = g_strconcat (dataname, "*", NULL);
      _tmp177_ = _tmp176_;
      _tmp178_ = vala_ccode_declaration_new (_tmp177_);
      _vala_ccode_node_unref0 (datadecl);
      datadecl = _tmp178_;
      _g_free0 (_tmp177_);
      _tmp179_ = vala_ccode_variable_declarator_new ("_data_", NULL, NULL);
      _tmp180_ = _tmp179_;
      vala_ccode_declaration_add_declarator (datadecl, (ValaCCodeDeclarator*) _tmp180_);
      _vala_ccode_node_unref0 (_tmp180_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) datadecl);
      _tmp181_ = vala_ccode_identifier_new ("_data_");
      _tmp182_ = _tmp181_;
      _tmp183_ = vala_ccode_identifier_new ("user_data");
      _tmp184_ = _tmp183_;
      _tmp185_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp182_, (ValaCCodeExpression*) _tmp184_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp186_ = _tmp185_;
      _tmp187_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp186_);
      _tmp188_ = _tmp187_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp188_);
      _vala_ccode_node_unref0 (_tmp188_);
      _vala_ccode_node_unref0 (_tmp186_);
      _vala_ccode_node_unref0 (_tmp184_);
      _vala_ccode_node_unref0 (_tmp182_);
      _tmp189_ = vala_ccode_declaration_new ("GObject *");
      obj_decl = _tmp189_;
      _tmp190_ = vala_ccode_variable_declarator_new ("_obj_", NULL, NULL);
      _tmp191_ = _tmp190_;
      vala_ccode_declaration_add_declarator (obj_decl, (ValaCCodeDeclarator*) _tmp191_);
      _vala_ccode_node_unref0 (_tmp191_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) obj_decl);
      _tmp192_ = vala_ccode_identifier_new ("g_object_newv");
      _tmp193_ = _tmp192_;
      _tmp194_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp193_);
      _tmp195_ = _tmp194_;
      _vala_ccode_node_unref0 (_tmp193_);
      object_creation = _tmp195_;
      _tmp196_ = vala_ccode_constant_new ("G_TYPE_OBJECT");
      _tmp197_ = _tmp196_;
      vala_ccode_function_call_add_argument (object_creation, (ValaCCodeExpression*) _tmp197_);
      _vala_ccode_node_unref0 (_tmp197_);
      _tmp198_ = vala_ccode_constant_new ("0");
      _tmp199_ = _tmp198_;
      vala_ccode_function_call_add_argument (object_creation, (ValaCCodeExpression*) _tmp199_);
      _vala_ccode_node_unref0 (_tmp199_);
      _tmp200_ = vala_ccode_constant_new ("NULL");
      _tmp201_ = _tmp200_;
      vala_ccode_function_call_add_argument (object_creation, (ValaCCodeExpression*) _tmp201_);
      _vala_ccode_node_unref0 (_tmp201_);
      _tmp202_ = vala_ccode_identifier_new ("_obj_");
      _tmp203_ = _tmp202_;
      _tmp204_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp203_, (ValaCCodeExpression*) object_creation, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp205_ = _tmp204_;
      _tmp206_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp205_);
      _tmp207_ = _tmp206_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp207_);
      _vala_ccode_node_unref0 (_tmp207_);
      _vala_ccode_node_unref0 (_tmp205_);
      _vala_ccode_node_unref0 (_tmp203_);
      _tmp208_ = vala_ccode_declaration_new ("GSimpleAsyncResult *");
      async_result_decl = _tmp208_;
      _tmp209_ = vala_ccode_variable_declarator_new ("_res_", NULL, NULL);
      _tmp210_ = _tmp209_;
      vala_ccode_declaration_add_declarator (async_result_decl, (ValaCCodeDeclarator*) _tmp210_);
      _vala_ccode_node_unref0 (_tmp210_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) async_result_decl);
      _tmp211_ = vala_ccode_identifier_new ("g_simple_async_result_new");
      _tmp212_ = _tmp211_;
      _tmp213_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp212_);
      _tmp214_ = _tmp213_;
      _vala_ccode_node_unref0 (_tmp212_);
      async_result_creation = _tmp214_;
      _tmp215_ = vala_ccode_identifier_new ("_obj_");
      _tmp216_ = _tmp215_;
      vala_ccode_function_call_add_argument (async_result_creation, (ValaCCodeExpression*) _tmp216_);
      _vala_ccode_node_unref0 (_tmp216_);
      _tmp217_ = vala_ccode_identifier_new ("_data_");
      _tmp218_ = _tmp217_;
      _tmp219_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp218_, "_callback_");
      _tmp220_ = _tmp219_;
      vala_ccode_function_call_add_argument (async_result_creation, (ValaCCodeExpression*) _tmp220_);
      _vala_ccode_node_unref0 (_tmp220_);
      _vala_ccode_node_unref0 (_tmp218_);
      _tmp221_ = vala_ccode_identifier_new ("_data_");
      _tmp222_ = _tmp221_;
      _tmp223_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp222_, "_user_data_");
      _tmp224_ = _tmp223_;
      vala_ccode_function_call_add_argument (async_result_creation, (ValaCCodeExpression*) _tmp224_);
      _vala_ccode_node_unref0 (_tmp224_);
      _vala_ccode_node_unref0 (_tmp222_);
      _tmp225_ = vala_ccode_identifier_new ("_data_");
      _tmp226_ = _tmp225_;
      vala_ccode_function_call_add_argument (async_result_creation, (ValaCCodeExpression*) _tmp226_);
      _vala_ccode_node_unref0 (_tmp226_);
      _tmp227_ = vala_ccode_identifier_new ("_res_");
      _tmp228_ = _tmp227_;
      _tmp229_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp228_, (ValaCCodeExpression*) async_result_creation, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp230_ = _tmp229_;
      _tmp231_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp230_);
      _tmp232_ = _tmp231_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp232_);
      _vala_ccode_node_unref0 (_tmp232_);
      _vala_ccode_node_unref0 (_tmp230_);
      _vala_ccode_node_unref0 (_tmp228_);
      _tmp233_ = vala_ccode_identifier_new ("g_simple_async_result_complete");
      _tmp234_ = _tmp233_;
      _tmp235_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp234_);
      _tmp236_ = _tmp235_;
      _vala_ccode_node_unref0 (_tmp234_);
      completecall = _tmp236_;
      _tmp237_ = vala_ccode_identifier_new ("_res_");
      _tmp238_ = _tmp237_;
      vala_ccode_function_call_add_argument (completecall, (ValaCCodeExpression*) _tmp238_);
      _vala_ccode_node_unref0 (_tmp238_);
      _tmp239_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) completecall);
      _tmp240_ = _tmp239_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp240_);
      _vala_ccode_node_unref0 (_tmp240_);
      _tmp241_ = vala_ccode_identifier_new ("g_object_unref");
      _tmp242_ = _tmp241_;
      _tmp243_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp242_);
      _tmp244_ = _tmp243_;
      _vala_ccode_node_unref0 (_tmp242_);
      obj_free = _tmp244_;
      _tmp245_ = vala_ccode_identifier_new ("_obj_");
      _tmp246_ = _tmp245_;
      vala_ccode_function_call_add_argument (obj_free, (ValaCCodeExpression*) _tmp246_);
      _vala_ccode_node_unref0 (_tmp246_);
      _tmp247_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) obj_free);
      _tmp248_ = _tmp247_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp248_);
      _vala_ccode_node_unref0 (_tmp248_);
      _tmp249_ = vala_ccode_identifier_new ("g_object_unref");
      _tmp250_ = _tmp249_;
      _tmp251_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp250_);
      _tmp252_ = _tmp251_;
      _vala_ccode_node_unref0 (_tmp250_);
      async_result_free = _tmp252_;
      _tmp253_ = vala_ccode_identifier_new ("_res_");
      _tmp254_ = _tmp253_;
      vala_ccode_function_call_add_argument (async_result_free, (ValaCCodeExpression*) _tmp254_);
      _vala_ccode_node_unref0 (_tmp254_);
      _tmp255_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) async_result_free);
      _tmp256_ = _tmp255_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp256_);
      _vala_ccode_node_unref0 (_tmp256_);
      _tmp257_ = vala_ccode_identifier_new ("g_slice_free");
      _tmp258_ = _tmp257_;
      _tmp259_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp258_);
      _tmp260_ = _tmp259_;
      _vala_ccode_node_unref0 (_tmp258_);
      datafree = _tmp260_;
      _tmp261_ = vala_ccode_identifier_new (dataname);
      _tmp262_ = _tmp261_;
      vala_ccode_function_call_add_argument (datafree, (ValaCCodeExpression*) _tmp262_);
      _vala_ccode_node_unref0 (_tmp262_);
      _tmp263_ = vala_ccode_identifier_new ("_data_");
      _tmp264_ = _tmp263_;
      vala_ccode_function_call_add_argument (datafree, (ValaCCodeExpression*) _tmp264_);
      _vala_ccode_node_unref0 (_tmp264_);
      _tmp265_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) datafree);
      _tmp266_ = _tmp265_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp266_);
      _vala_ccode_node_unref0 (_tmp266_);
      _tmp267_ = vala_ccode_identifier_new ("dbus_pending_call_unref");
      _tmp268_ = _tmp267_;
      _tmp269_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp268_);
      _tmp270_ = _tmp269_;
      _vala_ccode_node_unref0 (_tmp268_);
      pendingfree = _tmp270_;
      _tmp271_ = vala_ccode_identifier_new ("pending");
      _tmp272_ = _tmp271_;
      vala_ccode_function_call_add_argument (pendingfree, (ValaCCodeExpression*) _tmp272_);
      _vala_ccode_node_unref0 (_tmp272_);
      _tmp273_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) pendingfree);
      _tmp274_ = _tmp273_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp274_);
      _vala_ccode_node_unref0 (_tmp274_);
      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 = proxy_name;
      _vala_ccode_node_unref0 (pendingfree);
      _vala_ccode_node_unref0 (datafree);
      _vala_ccode_node_unref0 (async_result_free);
      _vala_ccode_node_unref0 (obj_free);
      _vala_ccode_node_unref0 (completecall);
      _vala_ccode_node_unref0 (async_result_creation);
      _vala_ccode_node_unref0 (async_result_decl);
      _vala_ccode_node_unref0 (object_creation);
      _vala_ccode_node_unref0 (obj_decl);
      _vala_ccode_node_unref0 (pending);
      _vala_ccode_node_unref0 (datadecl);
      _vala_ccode_node_unref0 (dataalloc);
      _vala_ccode_node_unref0 (message_unref);
      _vala_ccode_node_unref0 (conn_unref);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (connection);
      _vala_ccode_node_unref0 (gconnection);
      _vala_ccode_node_unref0 (postfragment);
      _vala_ccode_node_unref0 (prefragment);
      _vala_ccode_node_unref0 (block);
      _vala_map_unref0 (cparam_map);
      _vala_ccode_node_unref0 (function);
      _vala_ccode_node_unref0 (datastruct);
      _g_free0 (dataname);
      _vala_ccode_node_unref0 (_cdecl_);
      _g_free0 (dbus_iface_name);
      return result;
}


static ValaCCodeConstant* vala_dbus_client_module_get_reply_signature (ValaDBusClientModule* self, ValaMethod* m) {
      ValaCCodeConstant* result = NULL;
      gchar* _tmp0_;
      gchar* type_signature;
      ValaDataType* _tmp9_ = NULL;
      gchar* _tmp14_ = NULL;
      gchar* _tmp15_;
      ValaCCodeConstant* _tmp16_ = NULL;
      ValaCCodeConstant* _tmp17_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = g_strdup ("");
      type_signature = _tmp0_;
      {
            ValaList* _tmp1_ = NULL;
            ValaList* _param_list;
            gint _tmp2_;
            gint _param_size;
            gint _param_index;
            _tmp1_ = vala_method_get_parameters (m);
            _param_list = _tmp1_;
            _tmp2_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp2_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp3_ = NULL;
                  ValaParameter* param;
                  ValaParameterDirection _tmp4_;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp3_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp3_;
                  _tmp4_ = vala_parameter_get_direction (param);
                  if (_tmp4_ == VALA_PARAMETER_DIRECTION_OUT) {
                        ValaDataType* _tmp5_ = NULL;
                        gchar* _tmp6_ = NULL;
                        gchar* _tmp7_;
                        gchar* _tmp8_;
                        _tmp5_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp6_ = vala_dbus_module_get_type_signature (_tmp5_);
                        _tmp7_ = _tmp6_;
                        _tmp8_ = g_strconcat (type_signature, _tmp7_, NULL);
                        _g_free0 (type_signature);
                        type_signature = _tmp8_;
                        _g_free0 (_tmp7_);
                  }
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp9_ = vala_method_get_return_type (m);
      if (!VALA_IS_VOID_TYPE (_tmp9_)) {
            ValaDataType* _tmp10_ = NULL;
            gchar* _tmp11_ = NULL;
            gchar* _tmp12_;
            gchar* _tmp13_;
            _tmp10_ = vala_method_get_return_type (m);
            _tmp11_ = vala_dbus_module_get_type_signature (_tmp10_);
            _tmp12_ = _tmp11_;
            _tmp13_ = g_strconcat (type_signature, _tmp12_, NULL);
            _g_free0 (type_signature);
            type_signature = _tmp13_;
            _g_free0 (_tmp12_);
      }
      _tmp14_ = g_strdup_printf ("\"%s\"", type_signature);
      _tmp15_ = _tmp14_;
      _tmp16_ = vala_ccode_constant_new (_tmp15_);
      _tmp17_ = _tmp16_;
      _g_free0 (_tmp15_);
      result = _tmp17_;
      _g_free0 (type_signature);
      return result;
}


static void vala_dbus_client_module_check_reply_signature (ValaDBusClientModule* self, ValaMethod* m, ValaCCodeBlock* block) {
      ValaCCodeIdentifier* _tmp0_ = NULL;
      ValaCCodeIdentifier* _tmp1_;
      ValaCCodeFunctionCall* _tmp2_ = NULL;
      ValaCCodeFunctionCall* _tmp3_;
      ValaCCodeFunctionCall* reply_unref;
      ValaCCodeIdentifier* _tmp4_ = NULL;
      ValaCCodeIdentifier* _tmp5_;
      ValaCCodeIdentifier* _tmp6_ = NULL;
      ValaCCodeIdentifier* _tmp7_;
      ValaCCodeFunctionCall* _tmp8_ = NULL;
      ValaCCodeFunctionCall* _tmp9_;
      ValaCCodeFunctionCall* message_signature;
      ValaCCodeIdentifier* _tmp10_ = NULL;
      ValaCCodeIdentifier* _tmp11_;
      ValaCCodeIdentifier* _tmp12_ = NULL;
      ValaCCodeIdentifier* _tmp13_;
      ValaCCodeFunctionCall* _tmp14_ = NULL;
      ValaCCodeFunctionCall* _tmp15_;
      ValaCCodeFunctionCall* signature_check;
      ValaCCodeConstant* _tmp16_ = NULL;
      ValaCCodeConstant* _tmp17_;
      ValaCCodeBlock* _tmp18_ = NULL;
      ValaCCodeBlock* signature_error_block;
      ValaCCodeIdentifier* _tmp19_ = NULL;
      ValaCCodeIdentifier* _tmp20_;
      ValaCCodeFunctionCall* _tmp21_ = NULL;
      ValaCCodeFunctionCall* _tmp22_;
      ValaCCodeFunctionCall* set_error_call;
      ValaCCodeIdentifier* _tmp23_ = NULL;
      ValaCCodeIdentifier* _tmp24_;
      ValaCCodeIdentifier* _tmp25_ = NULL;
      ValaCCodeIdentifier* _tmp26_;
      ValaCCodeIdentifier* _tmp27_ = NULL;
      ValaCCodeIdentifier* _tmp28_;
      ValaCCodeConstant* _tmp29_ = NULL;
      ValaCCodeConstant* _tmp30_;
      ValaCCodeConstant* _tmp31_ = NULL;
      ValaCCodeConstant* _tmp32_;
      ValaCCodeExpressionStatement* _tmp33_ = NULL;
      ValaCCodeExpressionStatement* _tmp34_;
      ValaCCodeExpressionStatement* _tmp35_ = NULL;
      ValaCCodeExpressionStatement* _tmp36_;
      ValaDataType* _tmp37_ = NULL;
      ValaCCodeExpression* _tmp38_ = NULL;
      ValaCCodeExpression* _tmp39_;
      ValaCCodeReturnStatement* _tmp40_ = NULL;
      ValaCCodeReturnStatement* _tmp41_;
      ValaCCodeIfStatement* _tmp42_ = NULL;
      ValaCCodeIfStatement* _tmp43_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (m != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp1_);
      _tmp3_ = _tmp2_;
      _vala_ccode_node_unref0 (_tmp1_);
      reply_unref = _tmp3_;
      _tmp4_ = vala_ccode_identifier_new ("_reply");
      _tmp5_ = _tmp4_;
      vala_ccode_function_call_add_argument (reply_unref, (ValaCCodeExpression*) _tmp5_);
      _vala_ccode_node_unref0 (_tmp5_);
      _tmp6_ = vala_ccode_identifier_new ("dbus_message_get_signature");
      _tmp7_ = _tmp6_;
      _tmp8_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp7_);
      _tmp9_ = _tmp8_;
      _vala_ccode_node_unref0 (_tmp7_);
      message_signature = _tmp9_;
      _tmp10_ = vala_ccode_identifier_new ("_reply");
      _tmp11_ = _tmp10_;
      vala_ccode_function_call_add_argument (message_signature, (ValaCCodeExpression*) _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_identifier_new ("strcmp");
      _tmp13_ = _tmp12_;
      _tmp14_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp13_);
      _tmp15_ = _tmp14_;
      _vala_ccode_node_unref0 (_tmp13_);
      signature_check = _tmp15_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) message_signature);
      _tmp16_ = vala_dbus_client_module_get_reply_signature (self, m);
      _tmp17_ = _tmp16_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) _tmp17_);
      _vala_ccode_node_unref0 (_tmp17_);
      _tmp18_ = vala_ccode_block_new ();
      signature_error_block = _tmp18_;
      _tmp19_ = vala_ccode_identifier_new ("g_set_error");
      _tmp20_ = _tmp19_;
      _tmp21_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp20_);
      _tmp22_ = _tmp21_;
      _vala_ccode_node_unref0 (_tmp20_);
      set_error_call = _tmp22_;
      _tmp23_ = vala_ccode_identifier_new ("error");
      _tmp24_ = _tmp23_;
      vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_ccode_identifier_new ("DBUS_GERROR");
      _tmp26_ = _tmp25_;
      vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      _tmp27_ = vala_ccode_identifier_new ("DBUS_GERROR_INVALID_SIGNATURE");
      _tmp28_ = _tmp27_;
      vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp28_);
      _vala_ccode_node_unref0 (_tmp28_);
      _tmp29_ = vala_ccode_constant_new ("\"Invalid signature, expected \\\"%s\\\", got \\\"%s\\\"\"");
      _tmp30_ = _tmp29_;
      vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp30_);
      _vala_ccode_node_unref0 (_tmp30_);
      _tmp31_ = vala_dbus_client_module_get_reply_signature (self, m);
      _tmp32_ = _tmp31_;
      vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) _tmp32_);
      _vala_ccode_node_unref0 (_tmp32_);
      vala_ccode_function_call_add_argument (set_error_call, (ValaCCodeExpression*) message_signature);
      _tmp33_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) set_error_call);
      _tmp34_ = _tmp33_;
      vala_ccode_block_add_statement (signature_error_block, (ValaCCodeNode*) _tmp34_);
      _vala_ccode_node_unref0 (_tmp34_);
      _tmp35_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) reply_unref);
      _tmp36_ = _tmp35_;
      vala_ccode_block_add_statement (signature_error_block, (ValaCCodeNode*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      _tmp37_ = vala_method_get_return_type (m);
      _tmp38_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp37_, FALSE);
      _tmp39_ = _tmp38_;
      _tmp40_ = vala_ccode_return_statement_new (_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_);
      _vala_ccode_node_unref0 (set_error_call);
      _vala_ccode_node_unref0 (signature_error_block);
      _vala_ccode_node_unref0 (signature_check);
      _vala_ccode_node_unref0 (message_signature);
      _vala_ccode_node_unref0 (reply_unref);
}


static gchar* vala_dbus_client_module_generate_finish_dbus_proxy_method (ValaDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      const gchar* _tmp2_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* proxy_name;
      gchar* _tmp5_ = NULL;
      gchar* dbus_iface_name;
      ValaCCodeDeclaration* _cdecl_ = NULL;
      ValaCCodeFunction* _tmp6_ = NULL;
      ValaCCodeFunction* function;
      ValaHashMap* _tmp7_ = NULL;
      ValaHashMap* cparam_map;
      gint _tmp8_;
      ValaCCodeParameter* _tmp9_ = NULL;
      ValaCCodeParameter* _tmp10_;
      ValaCCodeBlock* _tmp11_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeFragment* _tmp12_ = NULL;
      ValaCCodeFragment* prefragment;
      ValaCCodeFragment* _tmp13_ = NULL;
      ValaCCodeFragment* postfragment;
      gchar* _tmp14_ = NULL;
      gchar* _tmp15_;
      const gchar* _tmp16_ = NULL;
      gchar* _tmp17_ = NULL;
      gchar* _tmp18_;
      gchar* _tmp19_ = NULL;
      gchar* _tmp20_;
      gchar* dataname;
      gchar* _tmp21_;
      gchar* _tmp22_;
      ValaCCodeDeclaration* _tmp23_ = NULL;
      ValaCCodeVariableDeclarator* _tmp24_ = NULL;
      ValaCCodeVariableDeclarator* _tmp25_;
      ValaCCodeDeclaration* _tmp26_ = NULL;
      ValaCCodeVariableDeclarator* _tmp27_ = NULL;
      ValaCCodeVariableDeclarator* _tmp28_;
      ValaCCodeIdentifier* _tmp29_ = NULL;
      ValaCCodeIdentifier* _tmp30_;
      ValaCCodeUnaryExpression* _tmp31_ = NULL;
      ValaCCodeUnaryExpression* _tmp32_;
      ValaCCodeUnaryExpression* dbus_error;
      ValaCCodeDeclaration* _tmp33_ = NULL;
      ValaCCodeVariableDeclarator* _tmp34_ = NULL;
      ValaCCodeVariableDeclarator* _tmp35_;
      ValaCCodeDeclaration* _tmp36_ = NULL;
      ValaCCodeVariableDeclarator* _tmp37_ = NULL;
      ValaCCodeVariableDeclarator* _tmp38_;
      ValaCCodeIdentifier* _tmp39_ = NULL;
      ValaCCodeIdentifier* _tmp40_;
      ValaCCodeFunctionCall* _tmp41_ = NULL;
      ValaCCodeFunctionCall* _tmp42_;
      ValaCCodeFunctionCall* get_source_tag;
      ValaCCodeIdentifier* _tmp43_ = NULL;
      ValaCCodeIdentifier* _tmp44_;
      ValaCCodeCastExpression* _tmp45_ = NULL;
      ValaCCodeCastExpression* _tmp46_;
      ValaCCodeIdentifier* _tmp47_ = NULL;
      ValaCCodeIdentifier* _tmp48_;
      ValaCCodeAssignment* _tmp49_ = NULL;
      ValaCCodeAssignment* _tmp50_;
      ValaCCodeExpressionStatement* _tmp51_ = NULL;
      ValaCCodeExpressionStatement* _tmp52_;
      ValaCCodeIdentifier* _tmp53_ = NULL;
      ValaCCodeIdentifier* _tmp54_;
      ValaCCodeFunctionCall* _tmp55_ = NULL;
      ValaCCodeFunctionCall* _tmp56_;
      ValaCCodeFunctionCall* dbus_error_init;
      ValaCCodeExpressionStatement* _tmp57_ = NULL;
      ValaCCodeExpressionStatement* _tmp58_;
      ValaCCodeIdentifier* _tmp59_ = NULL;
      ValaCCodeIdentifier* _tmp60_;
      ValaCCodeFunctionCall* _tmp61_ = NULL;
      ValaCCodeFunctionCall* _tmp62_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp63_ = NULL;
      ValaCCodeIdentifier* _tmp64_;
      ValaCCodeMemberAccess* _tmp65_ = NULL;
      ValaCCodeMemberAccess* _tmp66_;
      ValaCCodeIdentifier* _tmp67_ = NULL;
      ValaCCodeIdentifier* _tmp68_;
      ValaCCodeAssignment* _tmp69_ = NULL;
      ValaCCodeAssignment* _tmp70_;
      ValaCCodeExpressionStatement* _tmp71_ = NULL;
      ValaCCodeExpressionStatement* _tmp72_;
      ValaCCodeIdentifier* _tmp73_ = NULL;
      ValaCCodeIdentifier* _tmp74_;
      ValaCCodeFunctionCall* _tmp75_ = NULL;
      ValaCCodeFunctionCall* _tmp76_;
      ValaCCodeFunctionCall* set_error_from_message;
      ValaCCodeIdentifier* _tmp77_ = NULL;
      ValaCCodeIdentifier* _tmp78_;
      ValaCCodeExpressionStatement* _tmp79_ = NULL;
      ValaCCodeExpressionStatement* _tmp80_;
      ValaCCodeIdentifier* _tmp81_ = NULL;
      ValaCCodeIdentifier* _tmp82_;
      ValaCCodeFunctionCall* _tmp83_ = NULL;
      ValaCCodeFunctionCall* _tmp84_;
      ValaCCodeFunctionCall* reply_unref;
      ValaCCodeIdentifier* _tmp85_ = NULL;
      ValaCCodeIdentifier* _tmp86_;
      ValaCCodeExpressionStatement* _tmp87_ = NULL;
      ValaCCodeExpressionStatement* _tmp88_;
      gboolean _tmp89_ = FALSE;
      ValaDataType* _tmp90_ = NULL;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp3_ = g_strdup_printf ("%sdbus_proxy_%s_finish", _tmp1_, _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp1_);
      proxy_name = _tmp4_;
      _tmp5_ = vala_dbus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp5_;
      _tmp6_ = vala_ccode_function_new (proxy_name, "void");
      function = _tmp6_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp7_ = 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);
      cparam_map = _tmp7_;
      _tmp8_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, 0.1, FALSE);
      _tmp9_ = vala_ccode_parameter_new ("_res_", "GAsyncResult*");
      _tmp10_ = _tmp9_;
      vala_map_set ((ValaMap*) cparam_map, GINT_TO_POINTER (_tmp8_), _tmp10_);
      _vala_ccode_node_unref0 (_tmp10_);
      vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 2);
      _tmp11_ = vala_ccode_block_new ();
      block = _tmp11_;
      _tmp12_ = vala_ccode_fragment_new ();
      prefragment = _tmp12_;
      _tmp13_ = vala_ccode_fragment_new ();
      postfragment = _tmp13_;
      _tmp14_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp15_ = _tmp14_;
      _tmp16_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp17_ = vala_symbol_lower_case_to_camel_case (_tmp16_);
      _tmp18_ = _tmp17_;
      _tmp19_ = g_strdup_printf ("%sDBusProxy%sData", _tmp15_, _tmp18_);
      _tmp20_ = _tmp19_;
      _g_free0 (_tmp18_);
      _g_free0 (_tmp15_);
      dataname = _tmp20_;
      _tmp21_ = g_strconcat (dataname, "*", NULL);
      _tmp22_ = _tmp21_;
      _tmp23_ = vala_ccode_declaration_new (_tmp22_);
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp23_;
      _g_free0 (_tmp22_);
      _tmp24_ = vala_ccode_variable_declarator_new ("_data_", NULL, NULL);
      _tmp25_ = _tmp24_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp25_);
      _vala_ccode_node_unref0 (_tmp25_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp26_ = vala_ccode_declaration_new ("DBusError");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp26_;
      _tmp27_ = vala_ccode_variable_declarator_new ("_dbus_error", NULL, NULL);
      _tmp28_ = _tmp27_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp28_);
      _vala_ccode_node_unref0 (_tmp28_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp29_ = vala_ccode_identifier_new ("_dbus_error");
      _tmp30_ = _tmp29_;
      _tmp31_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp30_);
      _tmp32_ = _tmp31_;
      _vala_ccode_node_unref0 (_tmp30_);
      dbus_error = _tmp32_;
      _tmp33_ = vala_ccode_declaration_new ("DBusMessage");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp33_;
      _tmp34_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
      _tmp35_ = _tmp34_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp35_);
      _vala_ccode_node_unref0 (_tmp35_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp36_ = vala_ccode_declaration_new ("DBusMessageIter");
      _vala_ccode_node_unref0 (_cdecl_);
      _cdecl_ = _tmp36_;
      _tmp37_ = vala_ccode_variable_declarator_new ("_iter", NULL, NULL);
      _tmp38_ = _tmp37_;
      vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp38_);
      _vala_ccode_node_unref0 (_tmp38_);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _cdecl_);
      _tmp39_ = vala_ccode_identifier_new ("g_simple_async_result_get_source_tag");
      _tmp40_ = _tmp39_;
      _tmp41_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp40_);
      _tmp42_ = _tmp41_;
      _vala_ccode_node_unref0 (_tmp40_);
      get_source_tag = _tmp42_;
      _tmp43_ = vala_ccode_identifier_new ("_res_");
      _tmp44_ = _tmp43_;
      _tmp45_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp44_, "GSimpleAsyncResult *");
      _tmp46_ = _tmp45_;
      vala_ccode_function_call_add_argument (get_source_tag, (ValaCCodeExpression*) _tmp46_);
      _vala_ccode_node_unref0 (_tmp46_);
      _vala_ccode_node_unref0 (_tmp44_);
      _tmp47_ = vala_ccode_identifier_new ("_data_");
      _tmp48_ = _tmp47_;
      _tmp49_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp48_, (ValaCCodeExpression*) get_source_tag, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp50_ = _tmp49_;
      _tmp51_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp50_);
      _tmp52_ = _tmp51_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp52_);
      _vala_ccode_node_unref0 (_tmp52_);
      _vala_ccode_node_unref0 (_tmp50_);
      _vala_ccode_node_unref0 (_tmp48_);
      _tmp53_ = vala_ccode_identifier_new ("dbus_error_init");
      _tmp54_ = _tmp53_;
      _tmp55_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp54_);
      _tmp56_ = _tmp55_;
      _vala_ccode_node_unref0 (_tmp54_);
      dbus_error_init = _tmp56_;
      vala_ccode_function_call_add_argument (dbus_error_init, (ValaCCodeExpression*) dbus_error);
      _tmp57_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) dbus_error_init);
      _tmp58_ = _tmp57_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp58_);
      _vala_ccode_node_unref0 (_tmp58_);
      _tmp59_ = vala_ccode_identifier_new ("dbus_pending_call_steal_reply");
      _tmp60_ = _tmp59_;
      _tmp61_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp60_);
      _tmp62_ = _tmp61_;
      _vala_ccode_node_unref0 (_tmp60_);
      ccall = _tmp62_;
      _tmp63_ = vala_ccode_identifier_new ("_data_");
      _tmp64_ = _tmp63_;
      _tmp65_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp64_, "pending");
      _tmp66_ = _tmp65_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp66_);
      _vala_ccode_node_unref0 (_tmp66_);
      _vala_ccode_node_unref0 (_tmp64_);
      _tmp67_ = vala_ccode_identifier_new ("_reply");
      _tmp68_ = _tmp67_;
      _tmp69_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp68_, (ValaCCodeExpression*) ccall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp70_ = _tmp69_;
      _tmp71_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp70_);
      _tmp72_ = _tmp71_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp72_);
      _vala_ccode_node_unref0 (_tmp72_);
      _vala_ccode_node_unref0 (_tmp70_);
      _vala_ccode_node_unref0 (_tmp68_);
      _tmp73_ = vala_ccode_identifier_new ("dbus_set_error_from_message");
      _tmp74_ = _tmp73_;
      _tmp75_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp74_);
      _tmp76_ = _tmp75_;
      _vala_ccode_node_unref0 (_tmp74_);
      set_error_from_message = _tmp76_;
      vala_ccode_function_call_add_argument (set_error_from_message, (ValaCCodeExpression*) dbus_error);
      _tmp77_ = vala_ccode_identifier_new ("_reply");
      _tmp78_ = _tmp77_;
      vala_ccode_function_call_add_argument (set_error_from_message, (ValaCCodeExpression*) _tmp78_);
      _vala_ccode_node_unref0 (_tmp78_);
      _tmp79_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) set_error_from_message);
      _tmp80_ = _tmp79_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp80_);
      _vala_ccode_node_unref0 (_tmp80_);
      vala_dbus_client_module_check_error_reply (self, m, block);
      vala_dbus_client_module_check_reply_signature (self, m, block);
      vala_dbus_client_module_generate_marshalling (self, m, dbus_iface_name, prefragment, postfragment);
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) postfragment);
      _tmp81_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp82_ = _tmp81_;
      _tmp83_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp82_);
      _tmp84_ = _tmp83_;
      _vala_ccode_node_unref0 (_tmp82_);
      reply_unref = _tmp84_;
      _tmp85_ = vala_ccode_identifier_new ("_reply");
      _tmp86_ = _tmp85_;
      vala_ccode_function_call_add_argument (reply_unref, (ValaCCodeExpression*) _tmp86_);
      _vala_ccode_node_unref0 (_tmp86_);
      _tmp87_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) reply_unref);
      _tmp88_ = _tmp87_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp88_);
      _vala_ccode_node_unref0 (_tmp88_);
      _tmp90_ = vala_method_get_return_type (m);
      if (VALA_IS_VOID_TYPE (_tmp90_)) {
            _tmp89_ = TRUE;
      } else {
            ValaDataType* _tmp91_ = NULL;
            gboolean _tmp92_;
            _tmp91_ = vala_method_get_return_type (m);
            _tmp92_ = vala_data_type_is_real_non_null_struct_type (_tmp91_);
            _tmp89_ = _tmp92_;
      }
      if (!_tmp89_) {
            ValaCCodeIdentifier* _tmp93_ = NULL;
            ValaCCodeIdentifier* _tmp94_;
            ValaCCodeReturnStatement* _tmp95_ = NULL;
            ValaCCodeReturnStatement* _tmp96_;
            _tmp93_ = vala_ccode_identifier_new ("_result");
            _tmp94_ = _tmp93_;
            _tmp95_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp94_);
            _tmp96_ = _tmp95_;
            vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp96_);
            _vala_ccode_node_unref0 (_tmp96_);
            _vala_ccode_node_unref0 (_tmp94_);
      }
      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 = proxy_name;
      _vala_ccode_node_unref0 (reply_unref);
      _vala_ccode_node_unref0 (set_error_from_message);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (dbus_error_init);
      _vala_ccode_node_unref0 (get_source_tag);
      _vala_ccode_node_unref0 (dbus_error);
      _g_free0 (dataname);
      _vala_ccode_node_unref0 (postfragment);
      _vala_ccode_node_unref0 (prefragment);
      _vala_ccode_node_unref0 (block);
      _vala_map_unref0 (cparam_map);
      _vala_ccode_node_unref0 (function);
      _vala_ccode_node_unref0 (_cdecl_);
      _g_free0 (dbus_iface_name);
      return result;
}


static void vala_dbus_client_module_check_property_error_reply (ValaDBusClientModule* self, ValaPropertyAccessor* acc, ValaCCodeBlock* block) {
      ValaCCodeIdentifier* _tmp0_ = NULL;
      ValaCCodeIdentifier* dbus_error;
      ValaCCodeUnaryExpression* _tmp1_ = NULL;
      ValaCCodeUnaryExpression* dbus_error_ptr;
      ValaCCodeBlock* _tmp2_ = NULL;
      ValaCCodeBlock* error_block;
      ValaCCodeIdentifier* _tmp3_ = NULL;
      ValaCCodeIdentifier* _tmp4_;
      ValaCCodeFunctionCall* _tmp5_ = NULL;
      ValaCCodeFunctionCall* _tmp6_;
      ValaCCodeFunctionCall* ccritical;
      ValaCCodeConstant* _tmp7_ = NULL;
      ValaCCodeConstant* _tmp8_;
      ValaCCodeConstant* _tmp9_ = NULL;
      ValaCCodeConstant* _tmp10_;
      ValaCCodeConstant* _tmp11_ = NULL;
      ValaCCodeConstant* _tmp12_;
      ValaCCodeMemberAccess* _tmp13_ = NULL;
      ValaCCodeMemberAccess* _tmp14_;
      ValaCCodeMemberAccess* _tmp15_ = NULL;
      ValaCCodeMemberAccess* _tmp16_;
      ValaCCodeExpressionStatement* _tmp17_ = NULL;
      ValaCCodeExpressionStatement* _tmp18_;
      ValaCCodeIdentifier* _tmp19_ = NULL;
      ValaCCodeIdentifier* _tmp20_;
      ValaCCodeFunctionCall* _tmp21_ = NULL;
      ValaCCodeFunctionCall* _tmp22_;
      ValaCCodeFunctionCall* dbus_error_free;
      ValaCCodeExpressionStatement* _tmp23_ = NULL;
      ValaCCodeExpressionStatement* _tmp24_;
      gboolean _tmp25_ = FALSE;
      gboolean _tmp26_;
      ValaCCodeIdentifier* _tmp36_ = NULL;
      ValaCCodeIdentifier* _tmp37_;
      ValaCCodeFunctionCall* _tmp38_ = NULL;
      ValaCCodeFunctionCall* _tmp39_;
      ValaCCodeFunctionCall* dbus_error_is_set;
      ValaCCodeIfStatement* _tmp40_ = NULL;
      ValaCCodeIfStatement* _tmp41_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (acc != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_ccode_identifier_new ("_dbus_error");
      dbus_error = _tmp0_;
      _tmp1_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) dbus_error);
      dbus_error_ptr = _tmp1_;
      _tmp2_ = vala_ccode_block_new ();
      error_block = _tmp2_;
      _tmp3_ = vala_ccode_identifier_new ("g_critical");
      _tmp4_ = _tmp3_;
      _tmp5_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp4_);
      _tmp6_ = _tmp5_;
      _vala_ccode_node_unref0 (_tmp4_);
      ccritical = _tmp6_;
      _tmp7_ = vala_ccode_constant_new ("\"file %s: line %d: uncaught error: %s (%s)\"");
      _tmp8_ = _tmp7_;
      vala_ccode_function_call_add_argument (ccritical, (ValaCCodeExpression*) _tmp8_);
      _vala_ccode_node_unref0 (_tmp8_);
      _tmp9_ = vala_ccode_constant_new ("__FILE__");
      _tmp10_ = _tmp9_;
      vala_ccode_function_call_add_argument (ccritical, (ValaCCodeExpression*) _tmp10_);
      _vala_ccode_node_unref0 (_tmp10_);
      _tmp11_ = vala_ccode_constant_new ("__LINE__");
      _tmp12_ = _tmp11_;
      vala_ccode_function_call_add_argument (ccritical, (ValaCCodeExpression*) _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _tmp13_ = vala_ccode_member_access_new ((ValaCCodeExpression*) dbus_error, "message", FALSE);
      _tmp14_ = _tmp13_;
      vala_ccode_function_call_add_argument (ccritical, (ValaCCodeExpression*) _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      _tmp15_ = vala_ccode_member_access_new ((ValaCCodeExpression*) dbus_error, "name", FALSE);
      _tmp16_ = _tmp15_;
      vala_ccode_function_call_add_argument (ccritical, (ValaCCodeExpression*) _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      _tmp17_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccritical);
      _tmp18_ = _tmp17_;
      vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp18_);
      _vala_ccode_node_unref0 (_tmp18_);
      _tmp19_ = vala_ccode_identifier_new ("dbus_error_free");
      _tmp20_ = _tmp19_;
      _tmp21_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp20_);
      _tmp22_ = _tmp21_;
      _vala_ccode_node_unref0 (_tmp20_);
      dbus_error_free = _tmp22_;
      vala_ccode_function_call_add_argument (dbus_error_free, (ValaCCodeExpression*) dbus_error_ptr);
      _tmp23_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) dbus_error_free);
      _tmp24_ = _tmp23_;
      vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp26_ = vala_property_accessor_get_readable (acc);
      if (_tmp26_) {
            ValaDataType* _tmp27_ = NULL;
            gboolean _tmp28_;
            _tmp27_ = vala_property_accessor_get_value_type (acc);
            _tmp28_ = vala_data_type_is_real_non_null_struct_type (_tmp27_);
            _tmp25_ = !_tmp28_;
      } else {
            _tmp25_ = FALSE;
      }
      if (_tmp25_) {
            ValaDataType* _tmp29_ = NULL;
            ValaCCodeExpression* _tmp30_ = NULL;
            ValaCCodeExpression* _tmp31_;
            ValaCCodeReturnStatement* _tmp32_ = NULL;
            ValaCCodeReturnStatement* _tmp33_;
            _tmp29_ = vala_property_accessor_get_value_type (acc);
            _tmp30_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp29_, FALSE);
            _tmp31_ = _tmp30_;
            _tmp32_ = vala_ccode_return_statement_new (_tmp31_);
            _tmp33_ = _tmp32_;
            vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp33_);
            _vala_ccode_node_unref0 (_tmp33_);
            _vala_ccode_node_unref0 (_tmp31_);
      } else {
            ValaCCodeReturnStatement* _tmp34_ = NULL;
            ValaCCodeReturnStatement* _tmp35_;
            _tmp34_ = vala_ccode_return_statement_new (NULL);
            _tmp35_ = _tmp34_;
            vala_ccode_block_add_statement (error_block, (ValaCCodeNode*) _tmp35_);
            _vala_ccode_node_unref0 (_tmp35_);
      }
      _tmp36_ = vala_ccode_identifier_new ("dbus_error_is_set");
      _tmp37_ = _tmp36_;
      _tmp38_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp37_);
      _tmp39_ = _tmp38_;
      _vala_ccode_node_unref0 (_tmp37_);
      dbus_error_is_set = _tmp39_;
      vala_ccode_function_call_add_argument (dbus_error_is_set, (ValaCCodeExpression*) dbus_error_ptr);
      _tmp40_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) dbus_error_is_set, (ValaCCodeStatement*) error_block, NULL);
      _tmp41_ = _tmp40_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp41_);
      _vala_ccode_node_unref0 (_tmp41_);
      _vala_ccode_node_unref0 (dbus_error_is_set);
      _vala_ccode_node_unref0 (dbus_error_free);
      _vala_ccode_node_unref0 (ccritical);
      _vala_ccode_node_unref0 (error_block);
      _vala_ccode_node_unref0 (dbus_error_ptr);
      _vala_ccode_node_unref0 (dbus_error);
}


static ValaCCodeConstant* vala_dbus_client_module_get_property_reply_signature (ValaDBusClientModule* self, ValaPropertyAccessor* acc) {
      ValaCCodeConstant* result = NULL;
      gboolean _tmp0_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (acc != NULL, NULL);
      _tmp0_ = vala_property_accessor_get_readable (acc);
      if (_tmp0_) {
            ValaCCodeConstant* _tmp1_ = NULL;
            _tmp1_ = vala_ccode_constant_new ("\"v\"");
            result = _tmp1_;
            return result;
      } else {
            ValaCCodeConstant* _tmp2_ = NULL;
            _tmp2_ = vala_ccode_constant_new ("\"\"");
            result = _tmp2_;
            return result;
      }
}


static ValaCCodeConstant* vala_dbus_client_module_get_property_inner_signature (ValaDBusClientModule* self, ValaPropertyAccessor* acc) {
      ValaCCodeConstant* result = NULL;
      ValaDataType* _tmp0_ = NULL;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      ValaCCodeConstant* _tmp5_ = NULL;
      ValaCCodeConstant* _tmp6_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (acc != NULL, NULL);
      _tmp0_ = vala_property_accessor_get_value_type (acc);
      _tmp1_ = vala_dbus_module_get_type_signature (_tmp0_);
      _tmp2_ = _tmp1_;
      _tmp3_ = g_strdup_printf ("\"%s\"", _tmp2_);
      _tmp4_ = _tmp3_;
      _tmp5_ = vala_ccode_constant_new (_tmp4_);
      _tmp6_ = _tmp5_;
      _g_free0 (_tmp4_);
      _g_free0 (_tmp2_);
      result = _tmp6_;
      return result;
}


static void vala_dbus_client_module_check_property_reply_signature (ValaDBusClientModule* self, ValaPropertyAccessor* acc, ValaCCodeBlock* block) {
      ValaCCodeIdentifier* _tmp0_ = NULL;
      ValaCCodeIdentifier* _tmp1_;
      ValaCCodeFunctionCall* _tmp2_ = NULL;
      ValaCCodeFunctionCall* _tmp3_;
      ValaCCodeFunctionCall* reply_unref;
      ValaCCodeIdentifier* _tmp4_ = NULL;
      ValaCCodeIdentifier* _tmp5_;
      ValaCCodeIdentifier* _tmp6_ = NULL;
      ValaCCodeIdentifier* _tmp7_;
      ValaCCodeFunctionCall* _tmp8_ = NULL;
      ValaCCodeFunctionCall* _tmp9_;
      ValaCCodeFunctionCall* message_signature;
      ValaCCodeIdentifier* _tmp10_ = NULL;
      ValaCCodeIdentifier* _tmp11_;
      ValaCCodeIdentifier* _tmp12_ = NULL;
      ValaCCodeIdentifier* _tmp13_;
      ValaCCodeFunctionCall* _tmp14_ = NULL;
      ValaCCodeFunctionCall* _tmp15_;
      ValaCCodeFunctionCall* signature_check;
      ValaCCodeConstant* _tmp16_ = NULL;
      ValaCCodeConstant* _tmp17_;
      ValaCCodeBlock* _tmp18_ = NULL;
      ValaCCodeBlock* signature_error_block;
      ValaCCodeIdentifier* _tmp19_ = NULL;
      ValaCCodeIdentifier* _tmp20_;
      ValaCCodeFunctionCall* _tmp21_ = NULL;
      ValaCCodeFunctionCall* _tmp22_;
      ValaCCodeFunctionCall* ccritical;
      ValaCCodeConstant* _tmp23_ = NULL;
      ValaCCodeConstant* _tmp24_;
      ValaCCodeConstant* _tmp25_ = NULL;
      ValaCCodeConstant* _tmp26_;
      ValaCCodeConstant* _tmp27_ = NULL;
      ValaCCodeConstant* _tmp28_;
      ValaCCodeConstant* _tmp29_ = NULL;
      ValaCCodeConstant* _tmp30_;
      ValaCCodeExpressionStatement* _tmp31_ = NULL;
      ValaCCodeExpressionStatement* _tmp32_;
      ValaCCodeExpressionStatement* _tmp33_ = NULL;
      ValaCCodeExpressionStatement* _tmp34_;
      gboolean _tmp35_ = FALSE;
      gboolean _tmp36_;
      ValaCCodeIfStatement* _tmp46_ = NULL;
      ValaCCodeIfStatement* _tmp47_;
      g_return_if_fail (self != NULL);
      g_return_if_fail (acc != NULL);
      g_return_if_fail (block != NULL);
      _tmp0_ = vala_ccode_identifier_new ("dbus_message_unref");
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp1_);
      _tmp3_ = _tmp2_;
      _vala_ccode_node_unref0 (_tmp1_);
      reply_unref = _tmp3_;
      _tmp4_ = vala_ccode_identifier_new ("_reply");
      _tmp5_ = _tmp4_;
      vala_ccode_function_call_add_argument (reply_unref, (ValaCCodeExpression*) _tmp5_);
      _vala_ccode_node_unref0 (_tmp5_);
      _tmp6_ = vala_ccode_identifier_new ("dbus_message_get_signature");
      _tmp7_ = _tmp6_;
      _tmp8_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp7_);
      _tmp9_ = _tmp8_;
      _vala_ccode_node_unref0 (_tmp7_);
      message_signature = _tmp9_;
      _tmp10_ = vala_ccode_identifier_new ("_reply");
      _tmp11_ = _tmp10_;
      vala_ccode_function_call_add_argument (message_signature, (ValaCCodeExpression*) _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_identifier_new ("strcmp");
      _tmp13_ = _tmp12_;
      _tmp14_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp13_);
      _tmp15_ = _tmp14_;
      _vala_ccode_node_unref0 (_tmp13_);
      signature_check = _tmp15_;
      vala_ccode_function_call_add_argument (signature_check, (ValaCCodeExpression*) message_signature);
      _tmp16_ = vala_dbus_client_module_g