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

valaccodeassignmentmodule.c

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

/* valaccodeassignmentmodule.vala
 *
 * Copyright (C) 2006-2010  Jürg Billeter
 * Copyright (C) 2006-2008  Raffaele Sandrini
 *
 * 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>
 *    Raffaele Sandrini <raffaele@sandrini.ch>
 */

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


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

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

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

typedef struct _ValaCCodeBaseModuleEmitContext ValaCCodeBaseModuleEmitContext;
typedef struct _ValaCCodeBaseModuleEmitContextClass ValaCCodeBaseModuleEmitContextClass;

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

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

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

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

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

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

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

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

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

typedef struct _ValaCCodeAssignmentModule ValaCCodeAssignmentModule;
typedef struct _ValaCCodeAssignmentModuleClass ValaCCodeAssignmentModuleClass;
typedef struct _ValaCCodeAssignmentModulePrivate ValaCCodeAssignmentModulePrivate;
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))

#define VALA_TYPE_GLIB_VALUE (vala_glib_value_get_type ())
#define VALA_GLIB_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GLIB_VALUE, ValaGLibValue))
#define VALA_GLIB_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GLIB_VALUE, ValaGLibValueClass))
#define VALA_IS_GLIB_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GLIB_VALUE))
#define VALA_IS_GLIB_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GLIB_VALUE))
#define VALA_GLIB_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GLIB_VALUE, ValaGLibValueClass))

typedef struct _ValaGLibValue ValaGLibValue;
typedef struct _ValaGLibValueClass ValaGLibValueClass;
typedef struct _ValaGLibValuePrivate ValaGLibValuePrivate;
#define _vala_target_value_unref0(var) ((var == NULL) ? NULL : (var = (vala_target_value_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;
      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_value) (ValaCCodeBaseModule* self, ValaTargetValue* value, gboolean is_macro_definition);
      void (*append_scope_free) (ValaCCodeBaseModule* self, ValaSymbol* sym, 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);
      void (*store_value) (ValaCCodeBaseModule* self, ValaTargetValue* lvalue, ValaTargetValue* value);
      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);
      ValaTargetValue* (*copy_value) (ValaCCodeBaseModule* self, ValaTargetValue* value, 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, ValaCodeNode* node);
      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);
      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 _ValaGLibValue {
      ValaTargetValue parent_instance;
      ValaGLibValuePrivate * priv;
      ValaCCodeExpression* cvalue;
      gboolean non_null;
      gchar* ctype;
      ValaList* array_length_cvalues;
      ValaCCodeExpression* array_size_cvalue;
      gboolean array_null_terminated;
      ValaCCodeExpression* array_length_cexpr;
      ValaCCodeExpression* delegate_target_cvalue;
      ValaCCodeExpression* delegate_target_destroy_notify_cvalue;
};

struct _ValaGLibValueClass {
      ValaTargetValueClass parent_class;
};


static gpointer vala_ccode_assignment_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;
enum  {
      VALA_CCODE_ASSIGNMENT_MODULE_DUMMY_PROPERTY
};
static ValaCCodeExpression* vala_ccode_assignment_module_emit_simple_assignment (ValaCCodeAssignmentModule* self, ValaAssignment* assignment);
ValaCCodeExpression* vala_ccode_base_module_get_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr);
ValaCCodeExpression* vala_ccode_base_module_get_ccodenode (ValaCCodeBaseModule* self, ValaExpression* node);
gboolean vala_ccode_base_module_requires_destroy (ValaCCodeBaseModule* self, ValaDataType* type);
gboolean vala_ccode_base_module_is_pure_ccode_expression (ValaCCodeBaseModule* self, ValaCCodeExpression* cexpr);
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);
void vala_ccode_base_module_emit_temp_var (ValaCCodeBaseModule* self, ValaLocalVariable* local, gboolean always_init);
ValaCCodeFunction* vala_ccode_base_module_get_ccode (ValaCCodeBaseModule* self);
ValaCCodeExpression* vala_ccode_base_module_get_variable_cexpression (ValaCCodeBaseModule* self, const gchar* name);
ValaLocalVariable* vala_ccode_base_module_get_temp_variable (ValaCCodeBaseModule* self, ValaDataType* type, gboolean value_owned, ValaCodeNode* node_reference, gboolean init);
GType vala_glib_value_get_type (void) G_GNUC_CONST;
ValaGLibValue* vala_glib_value_copy (ValaGLibValue* self);
ValaCCodeExpression* vala_ccode_base_module_destroy_value (ValaCCodeBaseModule* self, ValaTargetValue* value, gboolean is_macro_definition);
ValaCCodeExpression* vala_ccode_base_module_get_array_length_cexpression (ValaCCodeBaseModule* self, ValaExpression* array_expr, gint dim);
ValaCCodeExpression* vala_ccode_base_module_get_array_size_cvalue (ValaCCodeBaseModule* self, ValaTargetValue* value);
ValaCCodeExpression* vala_ccode_base_module_get_delegate_target_cexpression (ValaCCodeBaseModule* self, ValaExpression* delegate_expr, ValaCCodeExpression** delegate_target_destroy_notify);
static ValaCCodeExpression* vala_ccode_assignment_module_emit_fixed_length_array_assignment (ValaCCodeAssignmentModule* self, ValaAssignment* assignment, ValaArrayType* array_type);
static void vala_ccode_assignment_module_real_visit_assignment (ValaCodeVisitor* base, ValaAssignment* assignment);
void vala_ccode_base_module_store_property (ValaCCodeBaseModule* self, ValaProperty* prop, ValaExpression* instance, ValaTargetValue* value);
void vala_ccode_base_module_set_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr, ValaCCodeExpression* cvalue);
ValaCCodeExpression* vala_ccode_base_module_get_cvalue_ (ValaCCodeBaseModule* self, ValaTargetValue* value);
static void vala_ccode_assignment_module_real_store_value (ValaCCodeBaseModule* base, ValaTargetValue* lvalue, ValaTargetValue* value);
gchar* vala_ccode_base_module_get_ctype (ValaCCodeBaseModule* self, ValaTargetValue* value);
ValaCCodeExpression* vala_ccode_base_module_get_array_length_cvalue (ValaCCodeBaseModule* self, ValaTargetValue* value, gint dim);
ValaCCodeExpression* vala_ccode_base_module_get_delegate_target_cvalue (ValaCCodeBaseModule* self, ValaTargetValue* value);
ValaCCodeExpression* vala_ccode_base_module_get_delegate_target_destroy_notify_cvalue (ValaCCodeBaseModule* self, ValaTargetValue* value);
static void vala_ccode_assignment_module_real_store_local (ValaCodeGenerator* base, ValaLocalVariable* local, ValaTargetValue* value, gboolean initializer);
ValaCCodeExpression* vala_ccode_base_module_destroy_local (ValaCCodeBaseModule* self, ValaLocalVariable* local);
void vala_ccode_base_module_store_value (ValaCCodeBaseModule* self, ValaTargetValue* lvalue, ValaTargetValue* value);
ValaTargetValue* vala_ccode_base_module_get_local_cvalue (ValaCCodeBaseModule* self, ValaLocalVariable* local);
static void vala_ccode_assignment_module_real_store_parameter (ValaCodeGenerator* base, ValaParameter* param, ValaTargetValue* value);
ValaCCodeExpression* vala_ccode_base_module_destroy_parameter (ValaCCodeBaseModule* self, ValaParameter* param);
ValaTargetValue* vala_ccode_base_module_get_parameter_cvalue (ValaCCodeBaseModule* self, ValaParameter* param);
static void vala_ccode_assignment_module_real_store_field (ValaCodeGenerator* base, ValaField* field, ValaTargetValue* instance, ValaTargetValue* value);
ValaTargetValue* vala_ccode_base_module_get_field_cvalue (ValaCCodeBaseModule* self, ValaField* field, ValaTargetValue* instance);
ValaCCodeExpression* vala_ccode_base_module_destroy_field (ValaCCodeBaseModule* self, ValaField* field, ValaTargetValue* instance);
ValaCCodeAssignmentModule* vala_ccode_assignment_module_new (void);
ValaCCodeAssignmentModule* vala_ccode_assignment_module_construct (GType object_type);
ValaCCodeMemberAccessModule* vala_ccode_member_access_module_construct (GType object_type);


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


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


static ValaCCodeExpression* vala_ccode_assignment_module_emit_simple_assignment (ValaCCodeAssignmentModule* self, ValaAssignment* assignment) {
      ValaCCodeExpression* result = NULL;
      ValaExpression* _tmp0_ = NULL;
      ValaSymbol* _tmp1_ = NULL;
      ValaVariable* _tmp2_;
      ValaVariable* variable;
      ValaExpression* _tmp3_ = NULL;
      ValaCCodeExpression* _tmp4_ = NULL;
      ValaCCodeExpression* rhs;
      ValaExpression* _tmp5_ = NULL;
      ValaCCodeExpression* _tmp6_ = NULL;
      ValaCCodeExpression* lhs;
      ValaExpression* _tmp7_ = NULL;
      ValaDataType* _tmp8_ = NULL;
      gboolean _tmp9_;
      gboolean unref_old;
      gboolean array;
      gboolean instance_delegate;
      ValaExpression* _tmp10_ = NULL;
      ValaDataType* _tmp11_ = NULL;
      gboolean _tmp23_ = FALSE;
      gboolean _tmp24_ = FALSE;
      ValaCCodeAssignmentOperator cop;
      ValaAssignmentOperator _tmp105_;
      ValaCCodeAssignment* _tmp115_ = NULL;
      ValaCCodeExpression* codenode;
      ValaCCodeFunction* _tmp116_ = NULL;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (assignment != NULL, NULL);
      _tmp0_ = vala_assignment_get_left (assignment);
      _tmp1_ = vala_expression_get_symbol_reference (_tmp0_);
      _tmp2_ = _vala_code_node_ref0 (VALA_VARIABLE (_tmp1_));
      variable = _tmp2_;
      _tmp3_ = vala_assignment_get_right (assignment);
      _tmp4_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp3_);
      rhs = _tmp4_;
      _tmp5_ = vala_assignment_get_left (assignment);
      _tmp6_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp5_);
      lhs = VALA_CCODE_EXPRESSION (_tmp6_);
      _tmp7_ = vala_assignment_get_left (assignment);
      _tmp8_ = vala_expression_get_value_type (_tmp7_);
      _tmp9_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp8_);
      unref_old = _tmp9_;
      array = FALSE;
      instance_delegate = FALSE;
      _tmp10_ = vala_assignment_get_left (assignment);
      _tmp11_ = vala_expression_get_value_type (_tmp10_);
      if (VALA_IS_ARRAY_TYPE (_tmp11_)) {
            gboolean _tmp12_ = FALSE;
            if (!VALA_IS_FIELD (variable)) {
                  _tmp12_ = TRUE;
            } else {
                  gboolean _tmp13_;
                  _tmp13_ = vala_variable_get_no_array_length (variable);
                  _tmp12_ = !_tmp13_;
            }
            array = _tmp12_;
      } else {
            ValaExpression* _tmp14_ = NULL;
            ValaDataType* _tmp15_ = NULL;
            _tmp14_ = vala_assignment_get_left (assignment);
            _tmp15_ = vala_expression_get_value_type (_tmp14_);
            if (VALA_IS_DELEGATE_TYPE (_tmp15_)) {
                  ValaExpression* _tmp16_ = NULL;
                  ValaDataType* _tmp17_ = NULL;
                  ValaDelegateType* _tmp18_;
                  ValaDelegateType* delegate_type;
                  ValaDelegate* _tmp19_ = NULL;
                  gboolean _tmp20_;
                  _tmp16_ = vala_assignment_get_left (assignment);
                  _tmp17_ = vala_expression_get_value_type (_tmp16_);
                  _tmp18_ = _vala_code_node_ref0 (VALA_DELEGATE_TYPE (_tmp17_));
                  delegate_type = _tmp18_;
                  _tmp19_ = vala_delegate_type_get_delegate_symbol (delegate_type);
                  _tmp20_ = vala_delegate_get_has_target (_tmp19_);
                  if (_tmp20_) {
                        gboolean _tmp21_ = FALSE;
                        if (!VALA_IS_FIELD (variable)) {
                              _tmp21_ = TRUE;
                        } else {
                              gboolean _tmp22_;
                              _tmp22_ = vala_variable_get_no_delegate_target (variable);
                              _tmp21_ = !_tmp22_;
                        }
                        instance_delegate = _tmp21_;
                  }
                  _vala_code_node_unref0 (delegate_type);
            }
      }
      if (unref_old) {
            _tmp24_ = TRUE;
      } else {
            _tmp24_ = array;
      }
      if (_tmp24_) {
            _tmp23_ = TRUE;
      } else {
            _tmp23_ = instance_delegate;
      }
      if (_tmp23_) {
            gboolean _tmp25_;
            ValaExpression* _tmp46_ = NULL;
            ValaDataType* _tmp47_ = NULL;
            ValaLocalVariable* _tmp48_ = NULL;
            ValaLocalVariable* temp_decl;
            ValaCCodeFunction* _tmp49_ = NULL;
            const gchar* _tmp50_ = NULL;
            ValaCCodeExpression* _tmp51_ = NULL;
            ValaCCodeExpression* _tmp52_;
            gboolean _tmp60_ = FALSE;
            gboolean _tmp61_ = FALSE;
            const gchar* _tmp103_ = NULL;
            ValaCCodeExpression* _tmp104_ = NULL;
            _tmp25_ = vala_ccode_base_module_is_pure_ccode_expression ((ValaCCodeBaseModule*) self, lhs);
            if (!_tmp25_) {
                  ValaExpression* _tmp26_ = NULL;
                  ValaDataType* _tmp27_ = NULL;
                  ValaDataType* _tmp28_ = NULL;
                  ValaDataType* lhs_value_type;
                  gint _tmp29_;
                  gint _tmp30_;
                  gchar* _tmp31_ = NULL;
                  gchar* lhs_temp_name;
                  gchar* _tmp32_;
                  gchar* _tmp33_;
                  ValaLocalVariable* _tmp34_ = NULL;
                  ValaLocalVariable* _tmp35_;
                  ValaLocalVariable* lhs_temp;
                  ValaCCodeFunction* _tmp36_ = NULL;
                  ValaCCodeExpression* _tmp37_ = NULL;
                  ValaCCodeExpression* _tmp38_;
                  ValaCCodeUnaryExpression* _tmp39_ = NULL;
                  ValaCCodeUnaryExpression* _tmp40_;
                  ValaCCodeExpression* _tmp41_ = NULL;
                  ValaCCodeExpression* _tmp42_;
                  ValaCCodeUnaryExpression* _tmp43_ = NULL;
                  ValaCCodeUnaryExpression* _tmp44_;
                  ValaCCodeParenthesizedExpression* _tmp45_ = NULL;
                  _tmp26_ = vala_assignment_get_left (assignment);
                  _tmp27_ = vala_expression_get_value_type (_tmp26_);
                  _tmp28_ = vala_data_type_copy (_tmp27_);
                  lhs_value_type = _tmp28_;
                  _tmp29_ = vala_ccode_base_module_get_next_temp_var_id ((ValaCCodeBaseModule*) self);
                  _tmp30_ = _tmp29_;
                  vala_ccode_base_module_set_next_temp_var_id ((ValaCCodeBaseModule*) self, _tmp30_ + 1);
                  _tmp31_ = g_strdup_printf ("_tmp%d_", _tmp30_);
                  lhs_temp_name = _tmp31_;
                  _tmp32_ = g_strconcat ("*", lhs_temp_name, NULL);
                  _tmp33_ = _tmp32_;
                  _tmp34_ = vala_local_variable_new (lhs_value_type, _tmp33_, NULL, NULL);
                  _tmp35_ = _tmp34_;
                  _g_free0 (_tmp33_);
                  lhs_temp = _tmp35_;
                  vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, lhs_temp, FALSE);
                  _tmp36_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp37_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, lhs_temp_name);
                  _tmp38_ = _tmp37_;
                  _tmp39_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, lhs);
                  _tmp40_ = _tmp39_;
                  vala_ccode_function_add_assignment (_tmp36_, _tmp38_, (ValaCCodeExpression*) _tmp40_);
                  _vala_ccode_node_unref0 (_tmp40_);
                  _vala_ccode_node_unref0 (_tmp38_);
                  _tmp41_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, lhs_temp_name);
                  _tmp42_ = _tmp41_;
                  _tmp43_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, _tmp42_);
                  _tmp44_ = _tmp43_;
                  _tmp45_ = vala_ccode_parenthesized_expression_new ((ValaCCodeExpression*) _tmp44_);
                  _vala_ccode_node_unref0 (lhs);
                  lhs = (ValaCCodeExpression*) _tmp45_;
                  _vala_ccode_node_unref0 (_tmp44_);
                  _vala_ccode_node_unref0 (_tmp42_);
                  _vala_code_node_unref0 (lhs_temp);
                  _g_free0 (lhs_temp_name);
                  _vala_code_node_unref0 (lhs_value_type);
            }
            _tmp46_ = vala_assignment_get_left (assignment);
            _tmp47_ = vala_expression_get_value_type (_tmp46_);
            _tmp48_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp47_, TRUE, NULL, FALSE);
            temp_decl = _tmp48_;
            vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, temp_decl, FALSE);
            _tmp49_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp50_ = vala_symbol_get_name ((ValaSymbol*) temp_decl);
            _tmp51_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp50_);
            _tmp52_ = _tmp51_;
            vala_ccode_function_add_assignment (_tmp49_, _tmp52_, rhs);
            _vala_ccode_node_unref0 (_tmp52_);
            if (unref_old) {
                  ValaExpression* _tmp53_ = NULL;
                  ValaTargetValue* _tmp54_ = NULL;
                  ValaGLibValue* _tmp55_ = NULL;
                  ValaGLibValue* value;
                  ValaCCodeExpression* _tmp56_;
                  ValaCCodeFunction* _tmp57_ = NULL;
                  ValaCCodeExpression* _tmp58_ = NULL;
                  ValaCCodeExpression* _tmp59_;
                  _tmp53_ = vala_assignment_get_left (assignment);
                  _tmp54_ = vala_expression_get_target_value (_tmp53_);
                  _tmp55_ = vala_glib_value_copy (VALA_GLIB_VALUE (_tmp54_));
                  value = _tmp55_;
                  _tmp56_ = _vala_ccode_node_ref0 (lhs);
                  _vala_ccode_node_unref0 (value->cvalue);
                  value->cvalue = _tmp56_;
                  _tmp57_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp58_ = vala_ccode_base_module_destroy_value ((ValaCCodeBaseModule*) self, (ValaTargetValue*) value, FALSE);
                  _tmp59_ = _tmp58_;
                  vala_ccode_function_add_expression (_tmp57_, _tmp59_);
                  _vala_ccode_node_unref0 (_tmp59_);
                  _vala_target_value_unref0 (value);
            }
            if (array) {
                  gboolean _tmp62_;
                  _tmp62_ = vala_variable_get_no_array_length (variable);
                  _tmp61_ = !_tmp62_;
            } else {
                  _tmp61_ = FALSE;
            }
            if (_tmp61_) {
                  gboolean _tmp63_;
                  _tmp63_ = vala_variable_get_array_null_terminated (variable);
                  _tmp60_ = !_tmp63_;
            } else {
                  _tmp60_ = FALSE;
            }
            if (_tmp60_) {
                  ValaExpression* _tmp64_ = NULL;
                  ValaDataType* _tmp65_ = NULL;
                  ValaArrayType* _tmp66_;
                  ValaArrayType* array_type;
                  gint _tmp74_;
                  _tmp64_ = vala_assignment_get_left (assignment);
                  _tmp65_ = vala_expression_get_value_type (_tmp64_);
                  _tmp66_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp65_));
                  array_type = _tmp66_;
                  {
                        gint dim;
                        dim = 1;
                        {
                              gboolean _tmp67_;
                              _tmp67_ = TRUE;
                              while (TRUE) {
                                    gint _tmp68_;
                                    ValaExpression* _tmp69_ = NULL;
                                    ValaCCodeExpression* _tmp70_ = NULL;
                                    ValaCCodeExpression* lhs_array_len;
                                    ValaExpression* _tmp71_ = NULL;
                                    ValaCCodeExpression* _tmp72_ = NULL;
                                    ValaCCodeExpression* rhs_array_len;
                                    ValaCCodeFunction* _tmp73_ = NULL;
                                    if (!_tmp67_) {
                                          dim++;
                                    }
                                    _tmp67_ = FALSE;
                                    _tmp68_ = vala_array_type_get_rank (array_type);
                                    if (!(dim <= _tmp68_)) {
                                          break;
                                    }
                                    _tmp69_ = vala_assignment_get_left (assignment);
                                    _tmp70_ = vala_ccode_base_module_get_array_length_cexpression ((ValaCCodeBaseModule*) self, _tmp69_, dim);
                                    lhs_array_len = _tmp70_;
                                    _tmp71_ = vala_assignment_get_right (assignment);
                                    _tmp72_ = vala_ccode_base_module_get_array_length_cexpression ((ValaCCodeBaseModule*) self, _tmp71_, dim);
                                    rhs_array_len = _tmp72_;
                                    _tmp73_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                    vala_ccode_function_add_assignment (_tmp73_, lhs_array_len, rhs_array_len);
                                    _vala_ccode_node_unref0 (rhs_array_len);
                                    _vala_ccode_node_unref0 (lhs_array_len);
                              }
                        }
                  }
                  _tmp74_ = vala_array_type_get_rank (array_type);
                  if (_tmp74_ == 1) {
                        ValaExpression* _tmp75_ = NULL;
                        ValaSymbol* _tmp76_ = NULL;
                        ValaSymbol* _tmp77_;
                        ValaSymbol* array_var;
                        ValaSymbol* _tmp78_;
                        ValaLocalVariable* _tmp79_;
                        ValaLocalVariable* array_local;
                        gboolean _tmp80_ = FALSE;
                        gboolean _tmp81_ = FALSE;
                        _tmp75_ = vala_assignment_get_left (assignment);
                        _tmp76_ = vala_expression_get_symbol_reference (_tmp75_);
                        _tmp77_ = _vala_code_node_ref0 (_tmp76_);
                        array_var = _tmp77_;
                        _tmp78_ = array_var;
                        _tmp79_ = _vala_code_node_ref0 (VALA_IS_LOCAL_VARIABLE (_tmp78_) ? ((ValaLocalVariable*) _tmp78_) : NULL);
                        array_local = _tmp79_;
                        if (array_var != NULL) {
                              gboolean _tmp82_;
                              _tmp82_ = vala_symbol_is_internal_symbol (array_var);
                              _tmp81_ = _tmp82_;
                        } else {
                              _tmp81_ = FALSE;
                        }
                        if (_tmp81_) {
                              gboolean _tmp83_ = FALSE;
                              gboolean _tmp84_ = FALSE;
                              if (VALA_IS_LOCAL_VARIABLE (array_var)) {
                                    gboolean _tmp85_;
                                    _tmp85_ = vala_local_variable_get_captured (array_local);
                                    _tmp84_ = !_tmp85_;
                              } else {
                                    _tmp84_ = FALSE;
                              }
                              if (_tmp84_) {
                                    _tmp83_ = TRUE;
                              } else {
                                    _tmp83_ = VALA_IS_FIELD (array_var);
                              }
                              _tmp80_ = _tmp83_;
                        } else {
                              _tmp80_ = FALSE;
                        }
                        if (_tmp80_) {
                              ValaExpression* _tmp86_ = NULL;
                              ValaTargetValue* _tmp87_ = NULL;
                              ValaCCodeExpression* _tmp88_ = NULL;
                              ValaCCodeExpression* lhs_array_size;
                              ValaExpression* _tmp89_ = NULL;
                              ValaCCodeExpression* _tmp90_ = NULL;
                              ValaCCodeExpression* rhs_array_len;
                              ValaCCodeFunction* _tmp91_ = NULL;
                              _tmp86_ = vala_assignment_get_left (assignment);
                              _tmp87_ = vala_expression_get_target_value (_tmp86_);
                              _tmp88_ = vala_ccode_base_module_get_array_size_cvalue ((ValaCCodeBaseModule*) self, _tmp87_);
                              lhs_array_size = _tmp88_;
                              _tmp89_ = vala_assignment_get_left (assignment);
                              _tmp90_ = vala_ccode_base_module_get_array_length_cexpression ((ValaCCodeBaseModule*) self, _tmp89_, 1);
                              rhs_array_len = _tmp90_;
                              _tmp91_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                              vala_ccode_function_add_assignment (_tmp91_, lhs_array_size, rhs_array_len);
                              _vala_ccode_node_unref0 (rhs_array_len);
                              _vala_ccode_node_unref0 (lhs_array_size);
                        }
                        _vala_code_node_unref0 (array_local);
                        _vala_code_node_unref0 (array_var);
                  }
                  _vala_code_node_unref0 (array_type);
            } else {
                  if (instance_delegate) {
                        ValaCCodeExpression* lhs_delegate_target_destroy_notify = NULL;
                        ValaCCodeExpression* rhs_delegate_target_destroy_notify = NULL;
                        ValaExpression* _tmp92_ = NULL;
                        ValaCCodeExpression* _tmp93_ = NULL;
                        ValaCCodeExpression* _tmp94_ = NULL;
                        ValaCCodeExpression* lhs_delegate_target;
                        ValaExpression* _tmp95_ = NULL;
                        ValaCCodeExpression* _tmp96_ = NULL;
                        ValaCCodeExpression* _tmp97_ = NULL;
                        ValaCCodeExpression* rhs_delegate_target;
                        ValaCCodeFunction* _tmp98_ = NULL;
                        ValaExpression* _tmp99_ = NULL;
                        ValaDataType* _tmp100_ = NULL;
                        gboolean _tmp101_;
                        _tmp92_ = vala_assignment_get_left (assignment);
                        _tmp94_ = vala_ccode_base_module_get_delegate_target_cexpression ((ValaCCodeBaseModule*) self, _tmp92_, &_tmp93_);
                        _vala_ccode_node_unref0 (lhs_delegate_target_destroy_notify);
                        lhs_delegate_target_destroy_notify = _tmp93_;
                        lhs_delegate_target = _tmp94_;
                        _tmp95_ = vala_assignment_get_right (assignment);
                        _tmp97_ = vala_ccode_base_module_get_delegate_target_cexpression ((ValaCCodeBaseModule*) self, _tmp95_, &_tmp96_);
                        _vala_ccode_node_unref0 (rhs_delegate_target_destroy_notify);
                        rhs_delegate_target_destroy_notify = _tmp96_;
                        rhs_delegate_target = _tmp97_;
                        _tmp98_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                        vala_ccode_function_add_assignment (_tmp98_, lhs_delegate_target, rhs_delegate_target);
                        _tmp99_ = vala_assignment_get_right (assignment);
                        _tmp100_ = vala_expression_get_target_type (_tmp99_);
                        _tmp101_ = vala_data_type_get_value_owned (_tmp100_);
                        if (_tmp101_) {
                              ValaCCodeFunction* _tmp102_ = NULL;
                              _tmp102_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                              vala_ccode_function_add_assignment (_tmp102_, lhs_delegate_target_destroy_notify, rhs_delegate_target_destroy_notify);
                        }
                        _vala_ccode_node_unref0 (rhs_delegate_target);
                        _vala_ccode_node_unref0 (lhs_delegate_target);
                        _vala_ccode_node_unref0 (rhs_delegate_target_destroy_notify);
                        _vala_ccode_node_unref0 (lhs_delegate_target_destroy_notify);
                  }
            }
            _tmp103_ = vala_symbol_get_name ((ValaSymbol*) temp_decl);
            _tmp104_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp103_);
            _vala_ccode_node_unref0 (rhs);
            rhs = _tmp104_;
            _vala_code_node_unref0 (temp_decl);
      }
      cop = VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE;
      _tmp105_ = vala_assignment_get_operator (assignment);
      if (_tmp105_ == VALA_ASSIGNMENT_OPERATOR_BITWISE_OR) {
            cop = VALA_CCODE_ASSIGNMENT_OPERATOR_BITWISE_OR;
      } else {
            ValaAssignmentOperator _tmp106_;
            _tmp106_ = vala_assignment_get_operator (assignment);
            if (_tmp106_ == VALA_ASSIGNMENT_OPERATOR_BITWISE_AND) {
                  cop = VALA_CCODE_ASSIGNMENT_OPERATOR_BITWISE_AND;
            } else {
                  ValaAssignmentOperator _tmp107_;
                  _tmp107_ = vala_assignment_get_operator (assignment);
                  if (_tmp107_ == VALA_ASSIGNMENT_OPERATOR_BITWISE_XOR) {
                        cop = VALA_CCODE_ASSIGNMENT_OPERATOR_BITWISE_XOR;
                  } else {
                        ValaAssignmentOperator _tmp108_;
                        _tmp108_ = vala_assignment_get_operator (assignment);
                        if (_tmp108_ == VALA_ASSIGNMENT_OPERATOR_ADD) {
                              cop = VALA_CCODE_ASSIGNMENT_OPERATOR_ADD;
                        } else {
                              ValaAssignmentOperator _tmp109_;
                              _tmp109_ = vala_assignment_get_operator (assignment);
                              if (_tmp109_ == VALA_ASSIGNMENT_OPERATOR_SUB) {
                                    cop = VALA_CCODE_ASSIGNMENT_OPERATOR_SUB;
                              } else {
                                    ValaAssignmentOperator _tmp110_;
                                    _tmp110_ = vala_assignment_get_operator (assignment);
                                    if (_tmp110_ == VALA_ASSIGNMENT_OPERATOR_MUL) {
                                          cop = VALA_CCODE_ASSIGNMENT_OPERATOR_MUL;
                                    } else {
                                          ValaAssignmentOperator _tmp111_;
                                          _tmp111_ = vala_assignment_get_operator (assignment);
                                          if (_tmp111_ == VALA_ASSIGNMENT_OPERATOR_DIV) {
                                                cop = VALA_CCODE_ASSIGNMENT_OPERATOR_DIV;
                                          } else {
                                                ValaAssignmentOperator _tmp112_;
                                                _tmp112_ = vala_assignment_get_operator (assignment);
                                                if (_tmp112_ == VALA_ASSIGNMENT_OPERATOR_PERCENT) {
                                                      cop = VALA_CCODE_ASSIGNMENT_OPERATOR_PERCENT;
                                                } else {
                                                      ValaAssignmentOperator _tmp113_;
                                                      _tmp113_ = vala_assignment_get_operator (assignment);
                                                      if (_tmp113_ == VALA_ASSIGNMENT_OPERATOR_SHIFT_LEFT) {
                                                            cop = VALA_CCODE_ASSIGNMENT_OPERATOR_SHIFT_LEFT;
                                                      } else {
                                                            ValaAssignmentOperator _tmp114_;
                                                            _tmp114_ = vala_assignment_get_operator (assignment);
                                                            if (_tmp114_ == VALA_ASSIGNMENT_OPERATOR_SHIFT_RIGHT) {
                                                                  cop = VALA_CCODE_ASSIGNMENT_OPERATOR_SHIFT_RIGHT;
                                                            }
                                                      }
                                                }
                                          }
                                    }
                              }
                        }
                  }
            }
      }
      _tmp115_ = vala_ccode_assignment_new (lhs, rhs, cop);
      codenode = (ValaCCodeExpression*) _tmp115_;
      _tmp116_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp116_, codenode);
      result = lhs;
      _vala_ccode_node_unref0 (codenode);
      _vala_ccode_node_unref0 (rhs);
      _vala_code_node_unref0 (variable);
      return result;
}


static ValaCCodeExpression* vala_ccode_assignment_module_emit_fixed_length_array_assignment (ValaCCodeAssignmentModule* self, ValaAssignment* assignment, ValaArrayType* array_type) {
      ValaCCodeExpression* result = NULL;
      ValaExpression* _tmp0_ = NULL;
      ValaCCodeExpression* _tmp1_ = NULL;
      ValaCCodeExpression* rhs;
      ValaExpression* _tmp2_ = NULL;
      ValaCCodeExpression* _tmp3_ = NULL;
      ValaCCodeExpression* lhs;
      ValaCCodeIdentifier* _tmp4_ = NULL;
      ValaCCodeIdentifier* _tmp5_;
      ValaCCodeFunctionCall* _tmp6_ = NULL;
      ValaCCodeFunctionCall* _tmp7_;
      ValaCCodeFunctionCall* sizeof_call;
      ValaDataType* _tmp8_ = NULL;
      gchar* _tmp9_ = NULL;
      gchar* _tmp10_;
      ValaCCodeIdentifier* _tmp11_ = NULL;
      ValaCCodeIdentifier* _tmp12_;
      gint _tmp13_;
      gchar* _tmp14_ = NULL;
      gchar* _tmp15_;
      ValaCCodeConstant* _tmp16_ = NULL;
      ValaCCodeConstant* _tmp17_;
      ValaCCodeBinaryExpression* _tmp18_ = NULL;
      ValaCCodeBinaryExpression* _tmp19_;
      ValaCCodeBinaryExpression* size;
      ValaCCodeIdentifier* _tmp20_ = NULL;
      ValaCCodeIdentifier* _tmp21_;
      ValaCCodeFunctionCall* _tmp22_ = NULL;
      ValaCCodeFunctionCall* _tmp23_;
      ValaCCodeFunctionCall* ccopy;
      ValaCCodeFunction* _tmp24_ = NULL;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (assignment != NULL, NULL);
      g_return_val_if_fail (array_type != NULL, NULL);
      _tmp0_ = vala_assignment_get_right (assignment);
      _tmp1_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp0_);
      rhs = _tmp1_;
      _tmp2_ = vala_assignment_get_left (assignment);
      _tmp3_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp2_);
      lhs = VALA_CCODE_EXPRESSION (_tmp3_);
      vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "string.h", FALSE);
      _tmp4_ = vala_ccode_identifier_new ("sizeof");
      _tmp5_ = _tmp4_;
      _tmp6_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp5_);
      _tmp7_ = _tmp6_;
      _vala_ccode_node_unref0 (_tmp5_);
      sizeof_call = _tmp7_;
      _tmp8_ = vala_array_type_get_element_type (array_type);
      _tmp9_ = vala_data_type_get_cname (_tmp8_);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_ccode_identifier_new (_tmp10_);
      _tmp12_ = _tmp11_;
      vala_ccode_function_call_add_argument (sizeof_call, (ValaCCodeExpression*) _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _g_free0 (_tmp10_);
      _tmp13_ = vala_array_type_get_length (array_type);
      _tmp14_ = g_strdup_printf ("%d", _tmp13_);
      _tmp15_ = _tmp14_;
      _tmp16_ = vala_ccode_constant_new (_tmp15_);
      _tmp17_ = _tmp16_;
      _tmp18_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_MUL, (ValaCCodeExpression*) _tmp17_, (ValaCCodeExpression*) sizeof_call);
      _tmp19_ = _tmp18_;
      _vala_ccode_node_unref0 (_tmp17_);
      _g_free0 (_tmp15_);
      size = _tmp19_;
      _tmp20_ = vala_ccode_identifier_new ("memcpy");
      _tmp21_ = _tmp20_;
      _tmp22_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp21_);
      _tmp23_ = _tmp22_;
      _vala_ccode_node_unref0 (_tmp21_);
      ccopy = _tmp23_;
      vala_ccode_function_call_add_argument (ccopy, lhs);
      vala_ccode_function_call_add_argument (ccopy, rhs);
      vala_ccode_function_call_add_argument (ccopy, (ValaCCodeExpression*) size);
      _tmp24_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp24_, (ValaCCodeExpression*) ccopy);
      result = lhs;
      _vala_ccode_node_unref0 (ccopy);
      _vala_ccode_node_unref0 (size);
      _vala_ccode_node_unref0 (sizeof_call);
      _vala_ccode_node_unref0 (rhs);
      return result;
}


static void vala_ccode_assignment_module_real_visit_assignment (ValaCodeVisitor* base, ValaAssignment* assignment) {
      ValaCCodeAssignmentModule * self;
      gboolean _tmp0_ = FALSE;
      ValaExpression* _tmp1_ = NULL;
      gboolean _tmp2_;
      ValaExpression* _tmp5_ = NULL;
      ValaSymbol* _tmp6_ = NULL;
      self = (ValaCCodeAssignmentModule*) base;
      g_return_if_fail (assignment != NULL);
      _tmp1_ = vala_assignment_get_left (assignment);
      _tmp2_ = vala_code_node_get_error ((ValaCodeNode*) _tmp1_);
      if (_tmp2_) {
            _tmp0_ = TRUE;
      } else {
            ValaExpression* _tmp3_ = NULL;
            gboolean _tmp4_;
            _tmp3_ = vala_assignment_get_right (assignment);
            _tmp4_ = vala_code_node_get_error ((ValaCodeNode*) _tmp3_);
            _tmp0_ = _tmp4_;
      }
      if (_tmp0_) {
            vala_code_node_set_error ((ValaCodeNode*) assignment, TRUE);
            return;
      }
      _tmp5_ = vala_assignment_get_left (assignment);
      _tmp6_ = vala_expression_get_symbol_reference (_tmp5_);
      if (VALA_IS_PROPERTY (_tmp6_)) {
            ValaExpression* _tmp7_ = NULL;
            ValaExpression* _tmp8_;
            ValaMemberAccess* _tmp9_;
            ValaMemberAccess* ma;
            ValaExpression* _tmp10_ = NULL;
            ValaSymbol* _tmp11_ = NULL;
            ValaProperty* _tmp12_;
            ValaProperty* prop;
            ValaCodeNode* _tmp13_ = NULL;
            _tmp7_ = vala_assignment_get_left (assignment);
            _tmp8_ = _tmp7_;
            _tmp9_ = _vala_code_node_ref0 (VALA_IS_MEMBER_ACCESS (_tmp8_) ? ((ValaMemberAccess*) _tmp8_) : NULL);
            ma = _tmp9_;
            _tmp10_ = vala_assignment_get_left (assignment);
            _tmp11_ = vala_expression_get_symbol_reference (_tmp10_);
            _tmp12_ = _vala_code_node_ref0 (VALA_PROPERTY (_tmp11_));
            prop = _tmp12_;
            _tmp13_ = vala_code_node_get_parent_node ((ValaCodeNode*) assignment);
            if (VALA_IS_EXPRESSION_STATEMENT (_tmp13_)) {
                  ValaExpression* _tmp14_ = NULL;
                  ValaExpression* _tmp15_ = NULL;
                  ValaTargetValue* _tmp16_ = NULL;
                  ValaExpression* _tmp17_ = NULL;
                  ValaCCodeExpression* _tmp18_ = NULL;
                  ValaCCodeExpression* _tmp19_;
                  _tmp14_ = vala_member_access_get_inner (ma);
                  _tmp15_ = vala_assignment_get_right (assignment);
                  _tmp16_ = vala_expression_get_target_value (_tmp15_);
                  vala_ccode_base_module_store_property ((ValaCCodeBaseModule*) self, prop, _tmp14_, _tmp16_);
                  _tmp17_ = vala_assignment_get_right (assignment);
                  _tmp18_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp17_);
                  _tmp19_ = _tmp18_;
                  vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) assignment, _tmp19_);
                  _vala_ccode_node_unref0 (_tmp19_);
            } else {
                  ValaDataType* _tmp20_ = NULL;
                  ValaLocalVariable* _tmp21_ = NULL;
                  ValaLocalVariable* temp_decl;
                  ValaCCodeFunction* _tmp22_ = NULL;
                  const gchar* _tmp23_ = NULL;
                  ValaCCodeExpression* _tmp24_ = NULL;
                  ValaCCodeExpression* _tmp25_;
                  ValaExpression* _tmp26_ = NULL;
                  ValaTargetValue* _tmp27_ = NULL;
                  ValaCCodeExpression* _tmp28_ = NULL;
                  ValaCCodeExpression* _tmp29_;
                  ValaExpression* _tmp30_ = NULL;
                  ValaTargetValue* _tmp31_ = NULL;
                  ValaGLibValue* _tmp32_ = NULL;
                  ValaGLibValue* target_value;
                  const gchar* _tmp33_ = NULL;
                  ValaCCodeExpression* _tmp34_ = NULL;
                  ValaExpression* _tmp35_ = NULL;
                  _tmp20_ = vala_property_get_property_type (prop);
                  _tmp21_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp20_, TRUE, NULL, TRUE);
                  temp_decl = _tmp21_;
                  vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, temp_decl, FALSE);
                  _tmp22_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp23_ = vala_symbol_get_name ((ValaSymbol*) temp_decl);
                  _tmp24_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp23_);
                  _tmp25_ = _tmp24_;
                  _tmp26_ = vala_assignment_get_right (assignment);
                  _tmp27_ = vala_expression_get_target_value (_tmp26_);
                  _tmp28_ = vala_ccode_base_module_get_cvalue_ ((ValaCCodeBaseModule*) self, _tmp27_);
                  _tmp29_ = _tmp28_;
                  vala_ccode_function_add_assignment (_tmp22_, _tmp25_, _tmp29_);
                  _vala_ccode_node_unref0 (_tmp29_);
                  _vala_ccode_node_unref0 (_tmp25_);
                  _tmp30_ = vala_assignment_get_right (assignment);
                  _tmp31_ = vala_expression_get_target_value (_tmp30_);
                  _tmp32_ = vala_glib_value_copy (VALA_GLIB_VALUE (_tmp31_));
                  target_value = _tmp32_;
                  _tmp33_ = vala_symbol_get_name ((ValaSymbol*) temp_decl);
                  _tmp34_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp33_);
                  _vala_ccode_node_unref0 (target_value->cvalue);
                  target_value->cvalue = _tmp34_;
                  _tmp35_ = vala_member_access_get_inner (ma);
                  vala_ccode_base_module_store_property ((ValaCCodeBaseModule*) self, prop, _tmp35_, (ValaTargetValue*) target_value);
                  vala_expression_set_target_value ((ValaExpression*) assignment, (ValaTargetValue*) target_value);
                  _vala_target_value_unref0 (target_value);
                  _vala_code_node_unref0 (temp_decl);
            }
            _vala_code_node_unref0 (prop);
            _vala_code_node_unref0 (ma);
      } else {
            ValaExpression* _tmp36_ = NULL;
            ValaDataType* _tmp37_ = NULL;
            ValaDataType* _tmp38_;
            ValaArrayType* _tmp39_;
            ValaArrayType* array_type;
            gboolean _tmp40_ = FALSE;
            _tmp36_ = vala_assignment_get_left (assignment);
            _tmp37_ = vala_expression_get_value_type (_tmp36_);
            _tmp38_ = _tmp37_;
            _tmp39_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp38_) ? ((ValaArrayType*) _tmp38_) : NULL);
            array_type = _tmp39_;
            if (array_type != NULL) {
                  gboolean _tmp41_;
                  _tmp41_ = vala_array_type_get_fixed_length (array_type);
                  _tmp40_ = _tmp41_;
            } else {
                  _tmp40_ = FALSE;
            }
            if (_tmp40_) {
                  ValaCCodeExpression* _tmp42_ = NULL;
                  ValaCCodeExpression* _tmp43_;
                  _tmp42_ = vala_ccode_assignment_module_emit_fixed_length_array_assignment (self, assignment, array_type);
                  _tmp43_ = _tmp42_;
                  vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) assignment, _tmp43_);
                  _vala_ccode_node_unref0 (_tmp43_);
            } else {
                  ValaCCodeExpression* _tmp44_ = NULL;
                  ValaCCodeExpression* _tmp45_;
                  _tmp44_ = vala_ccode_assignment_module_emit_simple_assignment (self, assignment);
                  _tmp45_ = _tmp44_;
                  vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) assignment, _tmp45_);
                  _vala_ccode_node_unref0 (_tmp45_);
            }
            _vala_code_node_unref0 (array_type);
      }
}


static gpointer _vala_target_value_ref0 (gpointer self) {
      return self ? vala_target_value_ref (self) : NULL;
}


static void vala_ccode_assignment_module_real_store_value (ValaCCodeBaseModule* base, ValaTargetValue* lvalue, ValaTargetValue* value) {
      ValaCCodeAssignmentModule * self;
      ValaDataType* _tmp0_ = NULL;
      ValaDataType* _tmp1_;
      ValaArrayType* _tmp2_;
      ValaArrayType* array_type;
      gboolean _tmp3_ = FALSE;
      ValaCCodeExpression* _tmp30_ = NULL;
      ValaCCodeExpression* cexpr;
      gchar* _tmp31_ = NULL;
      gchar* _tmp32_;
      gboolean _tmp33_;
      ValaCCodeFunction* _tmp37_ = NULL;
      ValaCCodeExpression* _tmp38_ = NULL;
      ValaCCodeExpression* _tmp39_;
      gboolean _tmp40_ = FALSE;
      ValaDataType* _tmp74_ = NULL;
      ValaDataType* _tmp75_;
      ValaDelegateType* _tmp76_;
      ValaDelegateType* delegate_type;
      gboolean _tmp77_ = FALSE;
      self = (ValaCCodeAssignmentModule*) base;
      g_return_if_fail (lvalue != NULL);
      g_return_if_fail (value != NULL);
      _tmp0_ = vala_target_value_get_value_type (lvalue);
      _tmp1_ = _tmp0_;
      _tmp2_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp1_) ? ((ValaArrayType*) _tmp1_) : NULL);
      array_type = _tmp2_;
      if (array_type != NULL) {
            gboolean _tmp4_;
            _tmp4_ = vala_array_type_get_fixed_length (array_type);
            _tmp3_ = _tmp4_;
      } else {
            _tmp3_ = FALSE;
      }
      if (_tmp3_) {
            ValaCCodeIdentifier* _tmp5_ = NULL;
            ValaCCodeIdentifier* _tmp6_;
            ValaCCodeFunctionCall* _tmp7_ = NULL;
            ValaCCodeFunctionCall* _tmp8_;
            ValaCCodeFunctionCall* sizeof_call;
            ValaDataType* _tmp9_ = NULL;
            gchar* _tmp10_ = NULL;
            gchar* _tmp11_;
            ValaCCodeIdentifier* _tmp12_ = NULL;
            ValaCCodeIdentifier* _tmp13_;
            gint _tmp14_;
            gchar* _tmp15_ = NULL;
            gchar* _tmp16_;
            ValaCCodeConstant* _tmp17_ = NULL;
            ValaCCodeConstant* _tmp18_;
            ValaCCodeBinaryExpression* _tmp19_ = NULL;
            ValaCCodeBinaryExpression* _tmp20_;
            ValaCCodeBinaryExpression* size;
            ValaCCodeIdentifier* _tmp21_ = NULL;
            ValaCCodeIdentifier* _tmp22_;
            ValaCCodeFunctionCall* _tmp23_ = NULL;
            ValaCCodeFunctionCall* _tmp24_;
            ValaCCodeFunctionCall* ccopy;
            ValaCCodeExpression* _tmp25_ = NULL;
            ValaCCodeExpression* _tmp26_;
            ValaCCodeExpression* _tmp27_ = NULL;
            ValaCCodeExpression* _tmp28_;
            ValaCCodeFunction* _tmp29_ = NULL;
            vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "string.h", FALSE);
            _tmp5_ = vala_ccode_identifier_new ("sizeof");
            _tmp6_ = _tmp5_;
            _tmp7_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp6_);
            _tmp8_ = _tmp7_;
            _vala_ccode_node_unref0 (_tmp6_);
            sizeof_call = _tmp8_;
            _tmp9_ = vala_array_type_get_element_type (array_type);
            _tmp10_ = vala_data_type_get_cname (_tmp9_);
            _tmp11_ = _tmp10_;
            _tmp12_ = vala_ccode_identifier_new (_tmp11_);
            _tmp13_ = _tmp12_;
            vala_ccode_function_call_add_argument (sizeof_call, (ValaCCodeExpression*) _tmp13_);
            _vala_ccode_node_unref0 (_tmp13_);
            _g_free0 (_tmp11_);
            _tmp14_ = vala_array_type_get_length (array_type);
            _tmp15_ = g_strdup_printf ("%d", _tmp14_);
            _tmp16_ = _tmp15_;
            _tmp17_ = vala_ccode_constant_new (_tmp16_);
            _tmp18_ = _tmp17_;
            _tmp19_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_MUL, (ValaCCodeExpression*) _tmp18_, (ValaCCodeExpression*) sizeof_call);
            _tmp20_ = _tmp19_;
            _vala_ccode_node_unref0 (_tmp18_);
            _g_free0 (_tmp16_);
            size = _tmp20_;
            _tmp21_ = vala_ccode_identifier_new ("memcpy");
            _tmp22_ = _tmp21_;
            _tmp23_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp22_);
            _tmp24_ = _tmp23_;
            _vala_ccode_node_unref0 (_tmp22_);
            ccopy = _tmp24_;
            _tmp25_ = vala_ccode_base_module_get_cvalue_ ((ValaCCodeBaseModule*) self, lvalue);
            _tmp26_ = _tmp25_;
            vala_ccode_function_call_add_argument (ccopy, _tmp26_);
            _vala_ccode_node_unref0 (_tmp26_);
            _tmp27_ = vala_ccode_base_module_get_cvalue_ ((ValaCCodeBaseModule*) self, value);
            _tmp28_ = _tmp27_;
            vala_ccode_function_call_add_argument (ccopy, _tmp28_);
            _vala_ccode_node_unref0 (_tmp28_);
            vala_ccode_function_call_add_argument (ccopy, (ValaCCodeExpression*) size);
            _tmp29_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_add_expression (_tmp29_, (ValaCCodeExpression*) ccopy);
            _vala_ccode_node_unref0 (ccopy);
            _vala_ccode_node_unref0 (size);
            _vala_ccode_node_unref0 (sizeof_call);
            _vala_code_node_unref0 (array_type);
            return;
      }
      _tmp30_ = vala_ccode_base_module_get_cvalue_ ((ValaCCodeBaseModule*) self, value);
      cexpr = _tmp30_;
      _tmp31_ = vala_ccode_base_module_get_ctype ((ValaCCodeBaseModule*) self, lvalue);
      _tmp32_ = _tmp31_;
      _tmp33_ = _tmp32_ != NULL;
      _g_free0 (_tmp32_);
      if (_tmp33_) {
            gchar* _tmp34_ = NULL;
            gchar* _tmp35_;
            ValaCCodeCastExpression* _tmp36_ = NULL;
            _tmp34_ = vala_ccode_base_module_get_ctype ((ValaCCodeBaseModule*) self, lvalue);
            _tmp35_ = _tmp34_;
            _tmp36_ = vala_ccode_cast_expression_new (cexpr, _tmp35_);
            _vala_ccode_node_unref0 (cexpr);
            cexpr = (ValaCCodeExpression*) _tmp36_;
            _g_free0 (_tmp35_);
      }
      _tmp37_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp38_ = vala_ccode_base_module_get_cvalue_ ((ValaCCodeBaseModule*) self, lvalue);
      _tmp39_ = _tmp38_;
      vala_ccode_function_add_assignment (_tmp37_, _tmp39_, cexpr);
      _vala_ccode_node_unref0 (_tmp39_);
      if (array_type != NULL) {
            _tmp40_ = VALA_GLIB_VALUE (lvalue)->array_length_cvalues != NULL;
      } else {
            _tmp40_ = FALSE;
      }
      if (_tmp40_) {
            ValaGLibValue* _tmp41_;
            ValaGLibValue* glib_value;
            gboolean _tmp65_ = FALSE;
            gint _tmp66_;
            _tmp41_ = _vala_target_value_ref0 (VALA_GLIB_VALUE (value));
            glib_value = _tmp41_;
            if (glib_value->array_length_cvalues != NULL) {
                  {
                        gint dim;
                        dim = 1;
                        {
                              gboolean _tmp42_;
                              _tmp42_ = TRUE;
                              while (TRUE) {
                                    gint _tmp43_;
                                    ValaCCodeFunction* _tmp44_ = NULL;
                                    ValaCCodeExpression* _tmp45_ = NULL;
                                    ValaCCodeExpression* _tmp46_;
                                    ValaCCodeExpression* _tmp47_ = NULL;
                                    ValaCCodeExpression* _tmp48_;
                                    if (!_tmp42_) {
                                          dim++;
                                    }
                                    _tmp42_ = FALSE;
                                    _tmp43_ = vala_array_type_get_rank (array_type);
                                    if (!(dim <= _tmp43_)) {
                                          break;
                                    }
                                    _tmp44_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                    _tmp45_ = vala_ccode_base_module_get_array_length_cvalue ((ValaCCodeBaseModule*) self, lvalue, dim);
                                    _tmp46_ = _tmp45_;
                                    _tmp47_ = vala_ccode_base_module_get_array_length_cvalue ((ValaCCodeBaseModule*) self, value, dim);
                                    _tmp48_ = _tmp47_;
                                    vala_ccode_function_add_assignment (_tmp44_, _tmp46_, _tmp48_);
                                    _vala_ccode_node_unref0 (_tmp48_);
                                    _vala_ccode_node_unref0 (_tmp46_);
                              }
                        }
                  }
            } else {
                  if (glib_value->array_null_terminated) {
                        ValaCCodeIdentifier* _tmp49_ = NULL;
                        ValaCCodeIdentifier* _tmp50_;
                        ValaCCodeFunctionCall* _tmp51_ = NULL;
                        ValaCCodeFunctionCall* _tmp52_;
                        ValaCCodeFunctionCall* len_call;
                        ValaCCodeExpression* _tmp53_ = NULL;
                        ValaCCodeExpression* _tmp54_;
                        ValaCCodeFunction* _tmp55_ = NULL;
                        ValaCCodeExpression* _tmp56_ = NULL;
                        ValaCCodeExpression* _tmp57_;
                        ((ValaCCodeBaseModule*) self)->requires_array_length = TRUE;
                        _tmp49_ = vala_ccode_identifier_new ("_vala_array_length");
                        _tmp50_ = _tmp49_;
                        _tmp51_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp50_);
                        _tmp52_ = _tmp51_;
                        _vala_ccode_node_unref0 (_tmp50_);
                        len_call = _tmp52_;
                        _tmp53_ = vala_ccode_base_module_get_cvalue_ ((ValaCCodeBaseModule*) self, value);
                        _tmp54_ = _tmp53_;
                        vala_ccode_function_call_add_argument (len_call, _tmp54_);
                        _vala_ccode_node_unref0 (_tmp54_);
                        _tmp55_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                        _tmp56_ = vala_ccode_base_module_get_array_length_cvalue ((ValaCCodeBaseModule*) self, lvalue, 1);
                        _tmp57_ = _tmp56_;
                        vala_ccode_function_add_assignment (_tmp55_, _tmp57_, (ValaCCodeExpression*) len_call);
                        _vala_ccode_node_unref0 (_tmp57_);
                        _vala_ccode_node_unref0 (len_call);
                  } else {
                        {
                              gint dim;
                              dim = 1;
                              {
                                    gboolean _tmp58_;
                                    _tmp58_ = TRUE;
                                    while (TRUE) {
                                          gint _tmp59_;
                                          ValaCCodeFunction* _tmp60_ = NULL;
                                          ValaCCodeExpression* _tmp61_ = NULL;
                                          ValaCCodeExpression* _tmp62_;
                                          ValaCCodeConstant* _tmp63_ = NULL;
                                          ValaCCodeConstant* _tmp64_;
                                          if (!_tmp58_) {
                                                dim++;
                                          }
                                          _tmp58_ = FALSE;
                                          _tmp59_ = vala_array_type_get_rank (array_type);
                                          if (!(dim <= _tmp59_)) {
                                                break;
                                          }
                                          _tmp60_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                          _tmp61_ = vala_ccode_base_module_get_array_length_cvalue ((ValaCCodeBaseModule*) self, lvalue, dim);
                                          _tmp62_ = _tmp61_;
                                          _tmp63_ = vala_ccode_constant_new ("-1");
                                          _tmp64_ = _tmp63_;
                                          vala_ccode_function_add_assignment (_tmp60_, _tmp62_, (ValaCCodeExpression*) _tmp64_);
                                          _vala_ccode_node_unref0 (_tmp64_);
                                          _vala_ccode_node_unref0 (_tmp62_);
                                    }
                              }
                        }
                  }
            }
            _tmp66_ = vala_array_type_get_rank (array_type);
            if (_tmp66_ == 1) {
                  ValaCCodeExpression* _tmp67_ = NULL;
                  ValaCCodeExpression* _tmp68_;
                  _tmp67_ = vala_ccode_base_module_get_array_size_cvalue ((ValaCCodeBaseModule*) self, lvalue);
                  _tmp68_ = _tmp67_;
                  _tmp65_ = _tmp68_ != NULL;
                  _vala_ccode_node_unref0 (_tmp68_);
            } else {
                  _tmp65_ = FALSE;
            }
            if (_tmp65_) {
                  ValaCCodeFunction* _tmp69_ = NULL;
                  ValaCCodeExpression* _tmp70_ = NULL;
                  ValaCCodeExpression* _tmp71_;
                  ValaCCodeExpression* _tmp72_ = NULL;
                  ValaCCodeExpression* _tmp73_;
                  _tmp69_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp70_ = vala_ccode_base_module_get_array_size_cvalue ((ValaCCodeBaseModule*) self, lvalue);
                  _tmp71_ = _tmp70_;
                  _tmp72_ = vala_ccode_base_module_get_array_length_cvalue ((ValaCCodeBaseModule*) self, lvalue, 1);
                  _tmp73_ = _tmp72_;
                  vala_ccode_function_add_assignment (_tmp69_, _tmp71_, _tmp73_);
                  _vala_ccode_node_unref0 (_tmp73_);
                  _vala_ccode_node_unref0 (_tmp71_);
            }
            _vala_target_value_unref0 (glib_value);
      }
      _tmp74_ = vala_target_value_get_value_type (lvalue);
      _tmp75_ = _tmp74_;
      _tmp76_ = _vala_code_node_ref0 (VALA_IS_DELEGATE_TYPE (_tmp75_) ? ((ValaDelegateType*) _tmp75_) : NULL);
      delegate_type = _tmp76_;
      if (delegate_type != NULL) {
            ValaDelegate* _tmp78_ = NULL;
            gboolean _tmp79_;
            _tmp78_ = vala_delegate_type_get_delegate_symbol (delegate_type);
            _tmp79_ = vala_delegate_get_has_target (_tmp78_);
            _tmp77_ = _tmp79_;
      } else {
            _tmp77_ = FALSE;
      }
      if (_tmp77_) {
            ValaCCodeExpression* _tmp80_ = NULL;
            ValaCCodeExpression* _tmp81_;
            gboolean _tmp82_;
            _tmp80_ = vala_ccode_base_module_get_delegate_target_cvalue ((ValaCCodeBaseModule*) self, lvalue);
            _tmp81_ = _tmp80_;
            _tmp82_ = _tmp81_ != NULL;
            _vala_ccode_node_unref0 (_tmp81_);
            if (_tmp82_) {
                  ValaCCodeFunction* _tmp83_ = NULL;
                  ValaCCodeExpression* _tmp84_ = NULL;
                  ValaCCodeExpression* _tmp85_;
                  ValaCCodeExpression* _tmp86_ = NULL;
                  ValaCCodeExpression* _tmp87_;
                  ValaCCodeExpression* _tmp88_ = NULL;
                  ValaCCodeExpression* _tmp89_;
                  gboolean _tmp90_;
                  _tmp83_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp84_ = vala_ccode_base_module_get_delegate_target_cvalue ((ValaCCodeBaseModule*) self, lvalue);
                  _tmp85_ = _tmp84_;
                  _tmp86_ = vala_ccode_base_module_get_delegate_target_cvalue ((ValaCCodeBaseModule*) self, value);
                  _tmp87_ = _tmp86_;
                  vala_ccode_function_add_assignment (_tmp83_, _tmp85_, _tmp87_);
                  _vala_ccode_node_unref0 (_tmp87_);
                  _vala_ccode_node_unref0 (_tmp85_);
                  _tmp88_ = vala_ccode_base_module_get_delegate_target_destroy_notify_cvalue ((ValaCCodeBaseModule*) self, lvalue);
                  _tmp89_ = _tmp88_;
                  _tmp90_ = _tmp89_ != NULL;
                  _vala_ccode_node_unref0 (_tmp89_);
                  if (_tmp90_) {
                        ValaCCodeFunction* _tmp91_ = NULL;
                        ValaCCodeExpression* _tmp92_ = NULL;
                        ValaCCodeExpression* _tmp93_;
                        ValaCCodeExpression* _tmp94_ = NULL;
                        ValaCCodeExpression* _tmp95_;
                        _tmp91_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                        _tmp92_ = vala_ccode_base_module_get_delegate_target_destroy_notify_cvalue ((ValaCCodeBaseModule*) self, lvalue);
                        _tmp93_ = _tmp92_;
                        _tmp94_ = vala_ccode_base_module_get_delegate_target_destroy_notify_cvalue ((ValaCCodeBaseModule*) self, value);
                        _tmp95_ = _tmp94_;
                        vala_ccode_function_add_assignment (_tmp91_, _tmp93_, _tmp95_);
                        _vala_ccode_node_unref0 (_tmp95_);
                        _vala_ccode_node_unref0 (_tmp93_);
                  }
            }
      }
      _vala_code_node_unref0 (delegate_type);
      _vala_ccode_node_unref0 (cexpr);
      _vala_code_node_unref0 (array_type);
}


static void vala_ccode_assignment_module_real_store_local (ValaCodeGenerator* base, ValaLocalVariable* local, ValaTargetValue* value, gboolean initializer) {
      ValaCCodeAssignmentModule * self;
      gboolean _tmp0_ = FALSE;
      ValaTargetValue* _tmp6_ = NULL;
      ValaTargetValue* _tmp7_;
      self = (ValaCCodeAssignmentModule*) base;
      g_return_if_fail (local != NULL);
      g_return_if_fail (value != NULL);
      if (!initializer) {
            ValaDataType* _tmp1_ = NULL;
            gboolean _tmp2_;
            _tmp1_ = vala_variable_get_variable_type ((ValaVariable*) local);
            _tmp2_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp1_);
            _tmp0_ = _tmp2_;
      } else {
            _tmp0_ = FALSE;
      }
      if (_tmp0_) {
            ValaCCodeFunction* _tmp3_ = NULL;
            ValaCCodeExpression* _tmp4_ = NULL;
            ValaCCodeExpression* _tmp5_;
            _tmp3_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp4_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, local);
            _tmp5_ = _tmp4_;
            vala_ccode_function_add_expression (_tmp3_, _tmp5_);
            _vala_ccode_node_unref0 (_tmp5_);
      }
      _tmp6_ = vala_ccode_base_module_get_local_cvalue ((ValaCCodeBaseModule*) self, local);
      _tmp7_ = _tmp6_;
      vala_ccode_base_module_store_value ((ValaCCodeBaseModule*) self, _tmp7_, value);
      _vala_target_value_unref0 (_tmp7_);
}


static void vala_ccode_assignment_module_real_store_parameter (ValaCodeGenerator* base, ValaParameter* param, ValaTargetValue* value) {
      ValaCCodeAssignmentModule * self;
      ValaDataType* _tmp0_ = NULL;
      gboolean _tmp1_;
      ValaTargetValue* _tmp5_ = NULL;
      ValaTargetValue* _tmp6_;
      self = (ValaCCodeAssignmentModule*) base;
      g_return_if_fail (param != NULL);
      g_return_if_fail (value != NULL);
      _tmp0_ = vala_variable_get_variable_type ((ValaVariable*) param);
      _tmp1_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp0_);
      if (_tmp1_) {
            ValaCCodeFunction* _tmp2_ = NULL;
            ValaCCodeExpression* _tmp3_ = NULL;
            ValaCCodeExpression* _tmp4_;
            _tmp2_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp3_ = vala_ccode_base_module_destroy_parameter ((ValaCCodeBaseModule*) self, param);
            _tmp4_ = _tmp3_;
            vala_ccode_function_add_expression (_tmp2_, _tmp4_);
            _vala_ccode_node_unref0 (_tmp4_);
      }
      _tmp5_ = vala_ccode_base_module_get_parameter_cvalue ((ValaCCodeBaseModule*) self, param);
      _tmp6_ = _tmp5_;
      vala_ccode_base_module_store_value ((ValaCCodeBaseModule*) self, _tmp6_, value);
      _vala_target_value_unref0 (_tmp6_);
}


static void vala_ccode_assignment_module_real_store_field (ValaCodeGenerator* base, ValaField* field, ValaTargetValue* instance, ValaTargetValue* value) {
      ValaCCodeAssignmentModule * self;
      ValaTargetValue* _tmp0_ = NULL;
      ValaTargetValue* _tmp1_;
      ValaDataType* _tmp2_ = NULL;
      gboolean _tmp3_;
      gboolean _tmp4_;
      ValaTargetValue* _tmp8_ = NULL;
      ValaTargetValue* _tmp9_;
      self = (ValaCCodeAssignmentModule*) base;
      g_return_if_fail (field != NULL);
      g_return_if_fail (value != NULL);
      _tmp0_ = vala_ccode_base_module_get_field_cvalue ((ValaCCodeBaseModule*) self, field, instance);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_target_value_get_value_type (_tmp1_);
      _tmp3_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp2_);
      _tmp4_ = _tmp3_;
      _vala_target_value_unref0 (_tmp1_);
      if (_tmp4_) {
            ValaCCodeFunction* _tmp5_ = NULL;
            ValaCCodeExpression* _tmp6_ = NULL;
            ValaCCodeExpression* _tmp7_;
            _tmp5_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp6_ = vala_ccode_base_module_destroy_field ((ValaCCodeBaseModule*) self, field, instance);
            _tmp7_ = _tmp6_;
            vala_ccode_function_add_expression (_tmp5_, _tmp7_);
            _vala_ccode_node_unref0 (_tmp7_);
      }
      _tmp8_ = vala_ccode_base_module_get_field_cvalue ((ValaCCodeBaseModule*) self, field, instance);
      _tmp9_ = _tmp8_;
      vala_ccode_base_module_store_value ((ValaCCodeBaseModule*) self, _tmp9_, value);
      _vala_target_value_unref0 (_tmp9_);
}


ValaCCodeAssignmentModule* vala_ccode_assignment_module_construct (GType object_type) {
      ValaCCodeAssignmentModule* self = NULL;
      self = (ValaCCodeAssignmentModule*) vala_ccode_member_access_module_construct (object_type);
      return self;
}


ValaCCodeAssignmentModule* vala_ccode_assignment_module_new (void) {
      return vala_ccode_assignment_module_construct (VALA_TYPE_CCODE_ASSIGNMENT_MODULE);
}


static void vala_ccode_assignment_module_class_init (ValaCCodeAssignmentModuleClass * klass) {
      vala_ccode_assignment_module_parent_class = g_type_class_peek_parent (klass);
      VALA_CODE_VISITOR_CLASS (klass)->visit_assignment = vala_ccode_assignment_module_real_visit_assignment;
      VALA_CCODE_BASE_MODULE_CLASS (klass)->store_value = vala_ccode_assignment_module_real_store_value;
      VALA_CODE_GENERATOR_CLASS (klass)->store_local = vala_ccode_assignment_module_real_store_local;
      VALA_CODE_GENERATOR_CLASS (klass)->store_parameter = vala_ccode_assignment_module_real_store_parameter;
      VALA_CODE_GENERATOR_CLASS (klass)->store_field = vala_ccode_assignment_module_real_store_field;
}


static void vala_ccode_assignment_module_instance_init (ValaCCodeAssignmentModule * self) {
}


/**
 * The link between an assignment and generated code.
 */
GType vala_ccode_assignment_module_get_type (void) {
      static volatile gsize vala_ccode_assignment_module_type_id__volatile = 0;
      if (g_once_init_enter (&vala_ccode_assignment_module_type_id__volatile)) {
            static const GTypeInfo g_define_type_info = { sizeof (ValaCCodeAssignmentModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_ccode_assignment_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaCCodeAssignmentModule), 0, (GInstanceInitFunc) vala_ccode_assignment_module_instance_init, NULL };
            GType vala_ccode_assignment_module_type_id;
            vala_ccode_assignment_module_type_id = g_type_register_static (VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, "ValaCCodeAssignmentModule", &g_define_type_info, 0);
            g_once_init_leave (&vala_ccode_assignment_module_type_id__volatile, vala_ccode_assignment_module_type_id);
      }
      return vala_ccode_assignment_module_type_id__volatile;
}




Generated by  Doxygen 1.6.0   Back to index