/* valagtypemodule.c generated by valac, the Vala compiler * generated from valagtypemodule.vala, do not modify */ /* valagtypemodule.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 * Raffaele Sandrini */ #include #include #include #include #include #include #include #include #include #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 _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_TYPEREGISTER_FUNCTION (vala_typeregister_function_get_type ()) #define VALA_TYPEREGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TYPEREGISTER_FUNCTION, ValaTypeRegisterFunction)) #define VALA_TYPEREGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TYPEREGISTER_FUNCTION, ValaTypeRegisterFunctionClass)) #define VALA_IS_TYPEREGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TYPEREGISTER_FUNCTION)) #define VALA_IS_TYPEREGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TYPEREGISTER_FUNCTION)) #define VALA_TYPEREGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TYPEREGISTER_FUNCTION, ValaTypeRegisterFunctionClass)) typedef struct _ValaTypeRegisterFunction ValaTypeRegisterFunction; typedef struct _ValaTypeRegisterFunctionClass ValaTypeRegisterFunctionClass; #define VALA_TYPE_CLASS_REGISTER_FUNCTION (vala_class_register_function_get_type ()) #define VALA_CLASS_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CLASS_REGISTER_FUNCTION, ValaClassRegisterFunction)) #define VALA_CLASS_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CLASS_REGISTER_FUNCTION, ValaClassRegisterFunctionClass)) #define VALA_IS_CLASS_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CLASS_REGISTER_FUNCTION)) #define VALA_IS_CLASS_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CLASS_REGISTER_FUNCTION)) #define VALA_CLASS_REGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CLASS_REGISTER_FUNCTION, ValaClassRegisterFunctionClass)) typedef struct _ValaClassRegisterFunction ValaClassRegisterFunction; typedef struct _ValaClassRegisterFunctionClass ValaClassRegisterFunctionClass; #define _vala_typeregister_function_unref0(var) ((var == NULL) ? NULL : (var = (vala_typeregister_function_unref (var), NULL))) #define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL))) #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL))) #define _vala_map_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_unref (var), NULL))) #define _vala_ccode_base_module_emit_context_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_base_module_emit_context_unref (var), NULL))) typedef struct _ValaCCodeBaseModuleEmitContextPrivate ValaCCodeBaseModuleEmitContextPrivate; #define _vala_iterator_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterator_unref (var), NULL))) #define VALA_TYPE_INTERFACE_REGISTER_FUNCTION (vala_interface_register_function_get_type ()) #define VALA_INTERFACE_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_INTERFACE_REGISTER_FUNCTION, ValaInterfaceRegisterFunction)) #define VALA_INTERFACE_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_INTERFACE_REGISTER_FUNCTION, ValaInterfaceRegisterFunctionClass)) #define VALA_IS_INTERFACE_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_INTERFACE_REGISTER_FUNCTION)) #define VALA_IS_INTERFACE_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_INTERFACE_REGISTER_FUNCTION)) #define VALA_INTERFACE_REGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_INTERFACE_REGISTER_FUNCTION, ValaInterfaceRegisterFunctionClass)) typedef struct _ValaInterfaceRegisterFunction ValaInterfaceRegisterFunction; typedef struct _ValaInterfaceRegisterFunctionClass ValaInterfaceRegisterFunctionClass; #define VALA_TYPE_STRUCT_REGISTER_FUNCTION (vala_struct_register_function_get_type ()) #define VALA_STRUCT_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STRUCT_REGISTER_FUNCTION, ValaStructRegisterFunction)) #define VALA_STRUCT_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STRUCT_REGISTER_FUNCTION, ValaStructRegisterFunctionClass)) #define VALA_IS_STRUCT_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STRUCT_REGISTER_FUNCTION)) #define VALA_IS_STRUCT_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_STRUCT_REGISTER_FUNCTION)) #define VALA_STRUCT_REGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_STRUCT_REGISTER_FUNCTION, ValaStructRegisterFunctionClass)) typedef struct _ValaStructRegisterFunction ValaStructRegisterFunction; typedef struct _ValaStructRegisterFunctionClass ValaStructRegisterFunctionClass; #define VALA_TYPE_ENUM_REGISTER_FUNCTION (vala_enum_register_function_get_type ()) #define VALA_ENUM_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ENUM_REGISTER_FUNCTION, ValaEnumRegisterFunction)) #define VALA_ENUM_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ENUM_REGISTER_FUNCTION, ValaEnumRegisterFunctionClass)) #define VALA_IS_ENUM_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ENUM_REGISTER_FUNCTION)) #define VALA_IS_ENUM_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ENUM_REGISTER_FUNCTION)) #define VALA_ENUM_REGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ENUM_REGISTER_FUNCTION, ValaEnumRegisterFunctionClass)) typedef struct _ValaEnumRegisterFunction ValaEnumRegisterFunction; typedef struct _ValaEnumRegisterFunctionClass ValaEnumRegisterFunctionClass; #define VALA_TYPE_CTYPE (vala_ctype_get_type ()) #define VALA_CTYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CTYPE, ValaCType)) #define VALA_CTYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CTYPE, ValaCTypeClass)) #define VALA_IS_CTYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CTYPE)) #define VALA_IS_CTYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CTYPE)) #define VALA_CTYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CTYPE, ValaCTypeClass)) typedef struct _ValaCType ValaCType; typedef struct _ValaCTypeClass ValaCTypeClass; struct _ValaCCodeBaseModule { ValaCodeGenerator parent_instance; ValaCCodeBaseModulePrivate * priv; ValaSymbol* root_symbol; ValaCCodeBaseModuleEmitContext* emit_context; ValaCCodeLineDirective* current_line; 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; 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* gqueue_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_variable) (ValaCCodeBaseModule* self, ValaVariable* variable, ValaTargetValue* value); 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); void (*create_type_check_statement) (ValaCCodeBaseModule* self, ValaCodeNode* method_node, ValaDataType* ret_type, ValaTypeSymbol* t, gboolean non_null, const gchar* var_name); gboolean (*is_gobject_property) (ValaCCodeBaseModule* self, ValaProperty* prop); 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 _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 _ValaCCodeBaseModuleEmitContext { GTypeInstance parent_instance; volatile int ref_count; ValaCCodeBaseModuleEmitContextPrivate * priv; ValaSymbol* current_symbol; ValaArrayList* symbol_stack; ValaTryStatement* current_try; ValaCatchClause* current_catch; ValaCCodeFunction* ccode; ValaArrayList* ccode_stack; ValaArrayList* temp_ref_values; gint next_temp_var_id; gboolean current_method_inner_error; gboolean current_method_return; ValaMap* variable_name_map; ValaMap* closure_variable_count_map; ValaMap* closure_variable_clash_map; }; struct _ValaCCodeBaseModuleEmitContextClass { GTypeClass parent_class; void (*finalize) (ValaCCodeBaseModuleEmitContext *self); }; static gpointer vala_gtype_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; enum { VALA_GTYPE_MODULE_DUMMY_PROPERTY }; static ValaCCodeParameter* vala_gtype_module_real_generate_parameter (ValaCCodeMethodModule* base, ValaParameter* param, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaMap* carg_map); ValaCCodeParameter* vala_ccode_method_module_generate_parameter (ValaCCodeMethodModule* self, ValaParameter* param, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaMap* carg_map); void vala_ccode_base_module_generate_type_declaration (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeFile* decl_space); gchar* vala_ccode_base_module_get_ccode_name (ValaCodeNode* node); gchar* vala_ccode_base_module_get_variable_cname (ValaCCodeBaseModule* self, const gchar* name); gint vala_ccode_base_module_get_param_pos (ValaCCodeBaseModule* self, gdouble param_pos, gboolean ellipsis); gdouble vala_ccode_base_module_get_ccode_pos (ValaParameter* param); ValaCCodeExpression* vala_ccode_base_module_get_variable_cexpression (ValaCCodeBaseModule* self, const gchar* name); static void vala_gtype_module_real_generate_class_declaration (ValaCCodeBaseModule* base, ValaClass* cl, ValaCCodeFile* decl_space); gboolean vala_ccode_base_module_add_symbol_declaration (ValaCCodeBaseModule* self, ValaCCodeFile* decl_space, ValaSymbol* sym, const gchar* name); void vala_ccode_base_module_generate_class_declaration (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space); gchar* vala_ccode_base_module_get_ccode_lower_case_name (ValaCodeNode* node, const gchar* infix); gchar* vala_ccode_base_module_get_ccode_type_id (ValaCodeNode* node); gchar* vala_ccode_base_module_get_ccode_upper_case_name (ValaSymbol* sym, const gchar* infix); gchar* vala_ccode_base_module_get_ccode_type_check_function (ValaTypeSymbol* sym); gchar* vala_ccode_base_module_get_ccode_lower_case_prefix (ValaSymbol* sym); gchar* vala_ccode_base_module_get_ccode_set_value_function (ValaCodeNode* sym); gchar* vala_ccode_base_module_get_ccode_take_value_function (ValaCodeNode* sym); gchar* vala_ccode_base_module_get_ccode_get_value_function (ValaCodeNode* sym); ValaCodeContext* vala_ccode_base_module_get_context (ValaCCodeBaseModule* self); ValaClassRegisterFunction* vala_class_register_function_new (ValaClass* cl, ValaCodeContext* context); ValaClassRegisterFunction* vala_class_register_function_construct (GType object_type, ValaClass* cl, ValaCodeContext* context); gpointer vala_typeregister_function_ref (gpointer instance); void vala_typeregister_function_unref (gpointer instance); GParamSpec* vala_param_spec_typeregister_function (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void vala_value_set_typeregister_function (GValue* value, gpointer v_object); void vala_value_take_typeregister_function (GValue* value, gpointer v_object); gpointer vala_value_get_typeregister_function (const GValue* value); GType vala_typeregister_function_get_type (void) G_GNUC_CONST; GType vala_class_register_function_get_type (void) G_GNUC_CONST; void vala_typeregister_function_init_from_type (ValaTypeRegisterFunction* self, gboolean plugin, gboolean declaration_only); ValaCCodeFragment* vala_typeregister_function_get_declaration (ValaTypeRegisterFunction* self); static void vala_gtype_module_real_generate_class_struct_declaration (ValaCCodeBaseModule* base, ValaClass* cl, ValaCCodeFile* decl_space); void vala_ccode_base_module_generate_class_struct_declaration (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space); void vala_ccode_base_module_generate_interface_declaration (ValaCCodeBaseModule* self, ValaInterface* iface, ValaCCodeFile* decl_space); void vala_gtype_module_generate_virtual_method_declaration (ValaGTypeModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeStruct* type_struct); gchar* vala_ccode_base_module_get_array_length_cname (ValaCCodeBaseModule* self, const gchar* array_cname, gint dim); gchar* vala_ccode_base_module_get_delegate_target_cname (ValaCCodeBaseModule* self, const gchar* delegate_cname); gchar* vala_ccode_base_module_get_ccode_declarator_suffix (ValaDataType* type); gboolean vala_ccode_base_module_get_ccode_array_length (ValaCodeNode* node); gchar* vala_ccode_base_module_get_ccode_array_length_name (ValaCodeNode* node); gchar* vala_ccode_base_module_get_array_size_cname (ValaCCodeBaseModule* self, const gchar* array_cname); gchar* vala_ccode_base_module_get_delegate_target_destroy_notify_cname (ValaCCodeBaseModule* self, const gchar* delegate_cname); static void vala_gtype_module_real_generate_virtual_method_declaration (ValaGTypeModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeStruct* type_struct); gchar* vala_ccode_base_module_get_ccode_vfunc_name (ValaMethod* m); 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_gtype_module_generate_class_private_declaration (ValaGTypeModule* self, ValaClass* cl, ValaCCodeFile* decl_space); gchar* vala_ccode_base_module_get_symbol_lock_name (ValaCCodeBaseModule* self, const gchar* symname); static void vala_gtype_module_real_visit_class (ValaCodeVisitor* base, ValaClass* cl); void vala_ccode_base_module_push_context (ValaCCodeBaseModule* self, ValaCCodeBaseModuleEmitContext* emit_context); ValaCCodeBaseModuleEmitContext* vala_ccode_base_module_emit_context_new (ValaSymbol* symbol); ValaCCodeBaseModuleEmitContext* vala_ccode_base_module_emit_context_construct (GType object_type, ValaSymbol* symbol); void vala_ccode_base_module_push_line (ValaCCodeBaseModule* self, ValaSourceReference* source_reference); static void vala_gtype_module_begin_base_init_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_begin_class_init_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_begin_instance_init_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_begin_base_finalize_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_begin_class_finalize_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_begin_finalize_function (ValaGTypeModule* self, ValaClass* cl); gchar* vala_ccode_base_module_get_ccode_prefix (ValaSymbol* sym); static void vala_gtype_module_add_type_value_table_init_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_type_value_table_free_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_type_value_table_copy_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_type_value_table_peek_pointer_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_type_value_table_collect_value_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_type_value_table_lcopy_value_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_g_param_spec_type_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_g_value_get_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_g_value_set_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_g_value_take_function (ValaGTypeModule* self, ValaClass* cl); ValaCCodeFunction* vala_ccode_base_module_get_ccode (ValaCCodeBaseModule* self); void vala_ccode_base_module_pop_context (ValaCCodeBaseModule* self); static void vala_gtype_module_add_base_init_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_class_init_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_base_finalize_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_class_finalize_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_interface_init_function (ValaGTypeModule* self, ValaClass* cl, ValaInterface* iface); static void vala_gtype_module_add_instance_init_function (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_add_finalize_function (ValaGTypeModule* self, ValaClass* cl); ValaCCodeFragment* vala_typeregister_function_get_source_declaration (ValaTypeRegisterFunction* self); ValaCCodeFragment* vala_typeregister_function_get_definition (ValaTypeRegisterFunction* self); void vala_ccode_base_module_push_function (ValaCCodeBaseModule* self, ValaCCodeFunction* func); void vala_ccode_base_module_pop_function (ValaCCodeBaseModule* self); void vala_ccode_base_module_pop_line (ValaCCodeBaseModule* self); gchar* vala_ccode_base_module_get_ccode_ref_function (ValaTypeSymbol* sym); gchar* vala_ccode_base_module_get_ccode_unref_function (ValaObjectTypeSymbol* sym); void vala_gtype_module_generate_class_init (ValaGTypeModule* self, ValaClass* cl); static void vala_gtype_module_real_generate_class_init (ValaGTypeModule* self, ValaClass* cl); gchar* vala_ccode_base_module_get_ccode_real_name (ValaSymbol* sym); gchar* vala_ccode_base_module_get_ccode_finish_vfunc_name (ValaMethod* m); gchar* vala_ccode_base_module_get_ccode_finish_real_name (ValaMethod* m); gboolean vala_ccode_base_module_get_ccode_no_accessor_method (ValaProperty* p); ValaCCodeFunctionCall* vala_ccode_base_module_get_signal_creation (ValaCCodeBaseModule* self, ValaSignal* sig, ValaTypeSymbol* type); gchar* vala_ccode_base_module_get_ccode_type_name (ValaInterface* iface); static ValaCCodeExpression* vala_gtype_module_cast_method_pointer (ValaGTypeModule* self, ValaMethod* m, ValaCCodeExpression* cfunc, ValaObjectTypeSymbol* base_type); gchar* vala_ccode_base_module_get_ccode_finish_name (ValaMethod* m); void vala_ccode_base_module_generate_method_declaration (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space); static ValaCCodeExpression* vala_gtype_module_cast_property_accessor_pointer (ValaGTypeModule* self, ValaPropertyAccessor* acc, ValaCCodeExpression* cfunc, ValaObjectTypeSymbol* base_type); void vala_ccode_base_module_generate_property_accessor_declaration (ValaCCodeBaseModule* self, ValaPropertyAccessor* acc, ValaCCodeFile* decl_space); ValaCCodeFunctionCall* vala_ccode_base_module_generate_instance_cast (ValaCCodeBaseModule* self, ValaCCodeExpression* expr, ValaTypeSymbol* type); gboolean vala_ccode_base_module_get_current_method_inner_error (ValaCCodeBaseModule* self); gboolean vala_ccode_base_module_get_current_method_return (ValaCCodeBaseModule* self); static ValaCCodeFunctionCall* vala_gtype_module_real_get_param_spec (ValaCCodeBaseModule* base, ValaProperty* prop); ValaCCodeConstant* vala_ccode_base_module_get_property_canonical_cconstant (ValaCCodeBaseModule* self, ValaProperty* prop); gchar* vala_ccode_base_module_get_ccode_nick (ValaProperty* prop); gchar* vala_ccode_base_module_get_ccode_blurb (ValaProperty* prop); gchar* vala_ccode_base_module_get_ccode_param_spec_function (ValaCodeNode* sym); gboolean vala_ccode_base_module_get_ccode_has_type_id (ValaTypeSymbol* sym); ValaCCodeExpression* vala_ccode_base_module_get_ccodenode (ValaCCodeBaseModule* self, ValaExpression* node); gchar* vala_ccode_base_module_get_ccode_default_value (ValaTypeSymbol* sym); static void vala_gtype_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space); ValaInterfaceRegisterFunction* vala_interface_register_function_new (ValaInterface* iface, ValaCodeContext* context); ValaInterfaceRegisterFunction* vala_interface_register_function_construct (GType object_type, ValaInterface* iface, ValaCodeContext* context); GType vala_interface_register_function_get_type (void) G_GNUC_CONST; static void vala_gtype_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface); static void vala_gtype_module_add_interface_base_init_function (ValaGTypeModule* self, ValaInterface* iface); gboolean vala_ccode_base_module_is_gobject_property (ValaCCodeBaseModule* self, ValaProperty* prop); ValaCCodeFunctionCall* vala_ccode_base_module_get_param_spec (ValaCCodeBaseModule* self, ValaProperty* prop); static void vala_gtype_module_real_visit_struct (ValaCodeVisitor* base, ValaStruct* st); ValaStructRegisterFunction* vala_struct_register_function_new (ValaStruct* st, ValaCodeContext* context); ValaStructRegisterFunction* vala_struct_register_function_construct (GType object_type, ValaStruct* st, ValaCodeContext* context); GType vala_struct_register_function_get_type (void) G_GNUC_CONST; static void vala_gtype_module_real_visit_enum (ValaCodeVisitor* base, ValaEnum* en); ValaEnumRegisterFunction* vala_enum_register_function_new (ValaEnum* en, ValaCodeContext* context); ValaEnumRegisterFunction* vala_enum_register_function_construct (GType object_type, ValaEnum* en, ValaCodeContext* context); GType vala_enum_register_function_get_type (void) G_GNUC_CONST; static void vala_gtype_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr); ValaLocalVariable* vala_ccode_base_module_get_temp_variable (ValaCCodeBaseModule* self, ValaDataType* type, gboolean value_owned, ValaCodeNode* node_reference, gboolean init); ValaCType* vala_ctype_new (const gchar* ctype_name); ValaCType* vala_ctype_construct (GType object_type, const gchar* ctype_name); GType vala_ctype_get_type (void) G_GNUC_CONST; void vala_ccode_base_module_emit_temp_var (ValaCCodeBaseModule* self, ValaLocalVariable* local); void vala_ccode_base_module_set_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr, ValaCCodeExpression* cvalue); static void vala_gtype_module_real_visit_property (ValaCodeVisitor* base, ValaProperty* prop); ValaTypeSymbol* vala_ccode_base_module_get_current_type_symbol (ValaCCodeBaseModule* self); static void vala_gtype_module_real_create_type_check_statement (ValaCCodeBaseModule* base, ValaCodeNode* method_node, ValaDataType* ret_type, ValaTypeSymbol* t, gboolean non_null, const gchar* var_name); ValaCCodeExpression* vala_ccode_base_module_default_value_for_type (ValaCCodeBaseModule* self, ValaDataType* type, gboolean initializer_expression); ValaGTypeModule* vala_gtype_module_new (void); ValaGTypeModule* vala_gtype_module_construct (GType object_type); ValaGErrorModule* vala_gerror_module_new (void); ValaGErrorModule* vala_gerror_module_construct (GType object_type); static ValaCCodeParameter* vala_gtype_module_real_generate_parameter (ValaCCodeMethodModule* base, ValaParameter* param, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaMap* carg_map) { ValaGTypeModule * self; ValaCCodeParameter* result = NULL; ValaParameter* _tmp0_; ValaDataType* _tmp1_; ValaDataType* _tmp2_; ValaParameter* _tmp8_; ValaDataType* _tmp9_; ValaDataType* _tmp10_; ValaCCodeFile* _tmp11_; ValaParameter* _tmp12_; ValaDataType* _tmp13_; ValaDataType* _tmp14_; gchar* _tmp15_ = NULL; gchar* ctypename; ValaParameter* _tmp16_; ValaParameterDirection _tmp17_; ValaParameterDirection _tmp18_; ValaParameter* _tmp21_; const gchar* _tmp22_; const gchar* _tmp23_; gchar* _tmp24_ = NULL; gchar* _tmp25_; const gchar* _tmp26_; ValaCCodeParameter* _tmp27_; ValaCCodeParameter* _tmp28_; ValaCCodeParameter* cparam; ValaMap* _tmp29_; ValaParameter* _tmp30_; gdouble _tmp31_ = 0.0; gint _tmp32_ = 0; ValaCCodeParameter* _tmp33_; ValaMap* _tmp34_; self = (ValaGTypeModule*) base; g_return_val_if_fail (param != NULL, NULL); g_return_val_if_fail (decl_space != NULL, NULL); g_return_val_if_fail (cparam_map != NULL, NULL); _tmp0_ = param; _tmp1_ = vala_variable_get_variable_type ((ValaVariable*) _tmp0_); _tmp2_ = _tmp1_; if (!VALA_IS_OBJECT_TYPE (_tmp2_)) { ValaParameter* _tmp3_; ValaCCodeFile* _tmp4_; ValaMap* _tmp5_; ValaMap* _tmp6_; ValaCCodeParameter* _tmp7_ = NULL; _tmp3_ = param; _tmp4_ = decl_space; _tmp5_ = cparam_map; _tmp6_ = carg_map; _tmp7_ = VALA_CCODE_METHOD_MODULE_CLASS (vala_gtype_module_parent_class)->generate_parameter ((ValaCCodeMethodModule*) VALA_GERROR_MODULE (self), _tmp3_, _tmp4_, _tmp5_, _tmp6_); result = _tmp7_; return result; } _tmp8_ = param; _tmp9_ = vala_variable_get_variable_type ((ValaVariable*) _tmp8_); _tmp10_ = _tmp9_; _tmp11_ = decl_space; vala_ccode_base_module_generate_type_declaration ((ValaCCodeBaseModule*) self, _tmp10_, _tmp11_); _tmp12_ = param; _tmp13_ = vala_variable_get_variable_type ((ValaVariable*) _tmp12_); _tmp14_ = _tmp13_; _tmp15_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp14_); ctypename = _tmp15_; _tmp16_ = param; _tmp17_ = vala_parameter_get_direction (_tmp16_); _tmp18_ = _tmp17_; if (_tmp18_ != VALA_PARAMETER_DIRECTION_IN) { const gchar* _tmp19_; gchar* _tmp20_; _tmp19_ = ctypename; _tmp20_ = g_strconcat (_tmp19_, "*", NULL); _g_free0 (ctypename); ctypename = _tmp20_; } _tmp21_ = param; _tmp22_ = vala_symbol_get_name ((ValaSymbol*) _tmp21_); _tmp23_ = _tmp22_; _tmp24_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp23_); _tmp25_ = _tmp24_; _tmp26_ = ctypename; _tmp27_ = vala_ccode_parameter_new (_tmp25_, _tmp26_); _tmp28_ = _tmp27_; _g_free0 (_tmp25_); cparam = _tmp28_; _tmp29_ = cparam_map; _tmp30_ = param; _tmp31_ = vala_ccode_base_module_get_ccode_pos (_tmp30_); _tmp32_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, _tmp31_, FALSE); _tmp33_ = cparam; vala_map_set (_tmp29_, GINT_TO_POINTER (_tmp32_), _tmp33_); _tmp34_ = carg_map; if (_tmp34_ != NULL) { ValaMap* _tmp35_; ValaParameter* _tmp36_; gdouble _tmp37_ = 0.0; gint _tmp38_ = 0; ValaParameter* _tmp39_; const gchar* _tmp40_; const gchar* _tmp41_; ValaCCodeExpression* _tmp42_ = NULL; ValaCCodeExpression* _tmp43_; _tmp35_ = carg_map; _tmp36_ = param; _tmp37_ = vala_ccode_base_module_get_ccode_pos (_tmp36_); _tmp38_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, _tmp37_, FALSE); _tmp39_ = param; _tmp40_ = vala_symbol_get_name ((ValaSymbol*) _tmp39_); _tmp41_ = _tmp40_; _tmp42_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp41_); _tmp43_ = _tmp42_; vala_map_set (_tmp35_, GINT_TO_POINTER (_tmp38_), _tmp43_); _vala_ccode_node_unref0 (_tmp43_); } result = cparam; _g_free0 (ctypename); return result; } static void vala_gtype_module_real_generate_class_declaration (ValaCCodeBaseModule* base, ValaClass* cl, ValaCCodeFile* decl_space) { ValaGTypeModule * self; ValaCCodeFile* _tmp0_; ValaClass* _tmp1_; ValaClass* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; gboolean _tmp5_ = FALSE; gboolean _tmp6_; ValaClass* _tmp7_; ValaClass* _tmp8_; ValaClass* _tmp9_; ValaClass* _tmp14_; gboolean _tmp15_; gboolean _tmp16_; gboolean is_gtypeinstance; gboolean _tmp17_ = FALSE; gboolean _tmp18_; gboolean _tmp22_; gboolean is_fundamental; gboolean _tmp23_; gboolean _tmp116_ = FALSE; ValaClass* _tmp117_; gboolean _tmp118_; gboolean _tmp119_; gboolean _tmp123_; gboolean _tmp150_; gboolean _tmp279_; self = (ValaGTypeModule*) base; g_return_if_fail (cl != NULL); g_return_if_fail (decl_space != NULL); _tmp0_ = decl_space; _tmp1_ = cl; _tmp2_ = cl; _tmp3_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, _tmp0_, (ValaSymbol*) _tmp1_, _tmp4_); _tmp6_ = _tmp5_; _g_free0 (_tmp4_); if (_tmp6_) { return; } _tmp7_ = cl; _tmp8_ = vala_class_get_base_class (_tmp7_); _tmp9_ = _tmp8_; if (_tmp9_ != NULL) { ValaClass* _tmp10_; ValaClass* _tmp11_; ValaClass* _tmp12_; ValaCCodeFile* _tmp13_; _tmp10_ = cl; _tmp11_ = vala_class_get_base_class (_tmp10_); _tmp12_ = _tmp11_; _tmp13_ = decl_space; vala_ccode_base_module_generate_class_declaration ((ValaCCodeBaseModule*) self, _tmp12_, _tmp13_); } _tmp14_ = cl; _tmp15_ = vala_class_get_is_compact (_tmp14_); _tmp16_ = _tmp15_; is_gtypeinstance = !_tmp16_; _tmp18_ = is_gtypeinstance; if (_tmp18_) { ValaClass* _tmp19_; ValaClass* _tmp20_; ValaClass* _tmp21_; _tmp19_ = cl; _tmp20_ = vala_class_get_base_class (_tmp19_); _tmp21_ = _tmp20_; _tmp17_ = _tmp21_ == NULL; } else { _tmp17_ = FALSE; } _tmp22_ = _tmp17_; is_fundamental = _tmp22_; _tmp23_ = is_gtypeinstance; if (_tmp23_) { ValaCCodeFile* _tmp24_; ValaCCodeNewline* _tmp25_; ValaCCodeNewline* _tmp26_; ValaClass* _tmp27_; gchar* _tmp28_ = NULL; gchar* _tmp29_; gchar* _tmp30_ = NULL; gchar* _tmp31_; gchar* macro; ValaCCodeFile* _tmp32_; ValaClass* _tmp33_; gchar* _tmp34_ = NULL; gchar* _tmp35_; const gchar* _tmp36_; ValaCCodeMacroReplacement* _tmp37_; ValaCCodeMacroReplacement* _tmp38_; ValaClass* _tmp39_; gchar* _tmp40_ = NULL; gchar* _tmp41_; ValaClass* _tmp42_; gchar* _tmp43_ = NULL; gchar* _tmp44_; gchar* _tmp45_ = NULL; ValaCCodeFile* _tmp46_; ValaClass* _tmp47_; gchar* _tmp48_ = NULL; gchar* _tmp49_; gchar* _tmp50_ = NULL; gchar* _tmp51_; const gchar* _tmp52_; ValaCCodeMacroReplacement* _tmp53_; ValaCCodeMacroReplacement* _tmp54_; ValaClass* _tmp55_; gchar* _tmp56_ = NULL; gchar* _tmp57_; ValaClass* _tmp58_; gchar* _tmp59_ = NULL; gchar* _tmp60_; gchar* _tmp61_ = NULL; ValaCCodeFile* _tmp62_; ValaClass* _tmp63_; gchar* _tmp64_ = NULL; gchar* _tmp65_; gchar* _tmp66_ = NULL; gchar* _tmp67_; const gchar* _tmp68_; ValaCCodeMacroReplacement* _tmp69_; ValaCCodeMacroReplacement* _tmp70_; ValaClass* _tmp71_; gchar* _tmp72_ = NULL; gchar* _tmp73_; gchar* _tmp74_ = NULL; ValaCCodeFile* _tmp75_; ValaClass* _tmp76_; gchar* _tmp77_ = NULL; gchar* _tmp78_; gchar* _tmp79_ = NULL; gchar* _tmp80_; const gchar* _tmp81_; ValaCCodeMacroReplacement* _tmp82_; ValaCCodeMacroReplacement* _tmp83_; ValaClass* _tmp84_; gchar* _tmp85_ = NULL; gchar* _tmp86_; gchar* _tmp87_ = NULL; ValaCCodeFile* _tmp88_; ValaClass* _tmp89_; gchar* _tmp90_ = NULL; gchar* _tmp91_; gchar* _tmp92_ = NULL; gchar* _tmp93_; const gchar* _tmp94_; ValaCCodeMacroReplacement* _tmp95_; ValaCCodeMacroReplacement* _tmp96_; ValaClass* _tmp97_; gchar* _tmp98_ = NULL; gchar* _tmp99_; ValaClass* _tmp100_; gchar* _tmp101_ = NULL; gchar* _tmp102_; gchar* _tmp103_ = NULL; ValaCCodeFile* _tmp104_; ValaClass* _tmp105_; gchar* _tmp106_ = NULL; gchar* _tmp107_; gchar* _tmp108_ = NULL; gchar* _tmp109_; const gchar* _tmp110_; ValaCCodeMacroReplacement* _tmp111_; ValaCCodeMacroReplacement* _tmp112_; ValaCCodeFile* _tmp113_; ValaCCodeNewline* _tmp114_; ValaCCodeNewline* _tmp115_; _tmp24_ = decl_space; _tmp25_ = vala_ccode_newline_new (); _tmp26_ = _tmp25_; vala_ccode_file_add_type_declaration (_tmp24_, (ValaCCodeNode*) _tmp26_); _vala_ccode_node_unref0 (_tmp26_); _tmp27_ = cl; _tmp28_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp27_, NULL); _tmp29_ = _tmp28_; _tmp30_ = g_strdup_printf ("(%s_get_type ())", _tmp29_); _tmp31_ = _tmp30_; _g_free0 (_tmp29_); macro = _tmp31_; _tmp32_ = decl_space; _tmp33_ = cl; _tmp34_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp33_); _tmp35_ = _tmp34_; _tmp36_ = macro; _tmp37_ = vala_ccode_macro_replacement_new (_tmp35_, _tmp36_); _tmp38_ = _tmp37_; vala_ccode_file_add_type_declaration (_tmp32_, (ValaCCodeNode*) _tmp38_); _vala_ccode_node_unref0 (_tmp38_); _g_free0 (_tmp35_); _tmp39_ = cl; _tmp40_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp39_); _tmp41_ = _tmp40_; _tmp42_ = cl; _tmp43_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp42_); _tmp44_ = _tmp43_; _tmp45_ = g_strdup_printf ("(G_TYPE_CHECK_INSTANCE_CAST ((obj), %s, %s))", _tmp41_, _tmp44_); _g_free0 (macro); macro = _tmp45_; _g_free0 (_tmp44_); _g_free0 (_tmp41_); _tmp46_ = decl_space; _tmp47_ = cl; _tmp48_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp47_, NULL); _tmp49_ = _tmp48_; _tmp50_ = g_strdup_printf ("%s(obj)", _tmp49_); _tmp51_ = _tmp50_; _tmp52_ = macro; _tmp53_ = vala_ccode_macro_replacement_new (_tmp51_, _tmp52_); _tmp54_ = _tmp53_; vala_ccode_file_add_type_declaration (_tmp46_, (ValaCCodeNode*) _tmp54_); _vala_ccode_node_unref0 (_tmp54_); _g_free0 (_tmp51_); _g_free0 (_tmp49_); _tmp55_ = cl; _tmp56_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp55_); _tmp57_ = _tmp56_; _tmp58_ = cl; _tmp59_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp58_); _tmp60_ = _tmp59_; _tmp61_ = g_strdup_printf ("(G_TYPE_CHECK_CLASS_CAST ((klass), %s, %sClass))", _tmp57_, _tmp60_); _g_free0 (macro); macro = _tmp61_; _g_free0 (_tmp60_); _g_free0 (_tmp57_); _tmp62_ = decl_space; _tmp63_ = cl; _tmp64_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp63_, NULL); _tmp65_ = _tmp64_; _tmp66_ = g_strdup_printf ("%s_CLASS(klass)", _tmp65_); _tmp67_ = _tmp66_; _tmp68_ = macro; _tmp69_ = vala_ccode_macro_replacement_new (_tmp67_, _tmp68_); _tmp70_ = _tmp69_; vala_ccode_file_add_type_declaration (_tmp62_, (ValaCCodeNode*) _tmp70_); _vala_ccode_node_unref0 (_tmp70_); _g_free0 (_tmp67_); _g_free0 (_tmp65_); _tmp71_ = cl; _tmp72_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp71_); _tmp73_ = _tmp72_; _tmp74_ = g_strdup_printf ("(G_TYPE_CHECK_INSTANCE_TYPE ((obj), %s))", _tmp73_); _g_free0 (macro); macro = _tmp74_; _g_free0 (_tmp73_); _tmp75_ = decl_space; _tmp76_ = cl; _tmp77_ = vala_ccode_base_module_get_ccode_type_check_function ((ValaTypeSymbol*) _tmp76_); _tmp78_ = _tmp77_; _tmp79_ = g_strdup_printf ("%s(obj)", _tmp78_); _tmp80_ = _tmp79_; _tmp81_ = macro; _tmp82_ = vala_ccode_macro_replacement_new (_tmp80_, _tmp81_); _tmp83_ = _tmp82_; vala_ccode_file_add_type_declaration (_tmp75_, (ValaCCodeNode*) _tmp83_); _vala_ccode_node_unref0 (_tmp83_); _g_free0 (_tmp80_); _g_free0 (_tmp78_); _tmp84_ = cl; _tmp85_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp84_); _tmp86_ = _tmp85_; _tmp87_ = g_strdup_printf ("(G_TYPE_CHECK_CLASS_TYPE ((klass), %s))", _tmp86_); _g_free0 (macro); macro = _tmp87_; _g_free0 (_tmp86_); _tmp88_ = decl_space; _tmp89_ = cl; _tmp90_ = vala_ccode_base_module_get_ccode_type_check_function ((ValaTypeSymbol*) _tmp89_); _tmp91_ = _tmp90_; _tmp92_ = g_strdup_printf ("%s_CLASS(klass)", _tmp91_); _tmp93_ = _tmp92_; _tmp94_ = macro; _tmp95_ = vala_ccode_macro_replacement_new (_tmp93_, _tmp94_); _tmp96_ = _tmp95_; vala_ccode_file_add_type_declaration (_tmp88_, (ValaCCodeNode*) _tmp96_); _vala_ccode_node_unref0 (_tmp96_); _g_free0 (_tmp93_); _g_free0 (_tmp91_); _tmp97_ = cl; _tmp98_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp97_); _tmp99_ = _tmp98_; _tmp100_ = cl; _tmp101_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp100_); _tmp102_ = _tmp101_; _tmp103_ = g_strdup_printf ("(G_TYPE_INSTANCE_GET_CLASS ((obj), %s, %sClass))", _tmp99_, _tmp102_); _g_free0 (macro); macro = _tmp103_; _g_free0 (_tmp102_); _g_free0 (_tmp99_); _tmp104_ = decl_space; _tmp105_ = cl; _tmp106_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp105_, NULL); _tmp107_ = _tmp106_; _tmp108_ = g_strdup_printf ("%s_GET_CLASS(obj)", _tmp107_); _tmp109_ = _tmp108_; _tmp110_ = macro; _tmp111_ = vala_ccode_macro_replacement_new (_tmp109_, _tmp110_); _tmp112_ = _tmp111_; vala_ccode_file_add_type_declaration (_tmp104_, (ValaCCodeNode*) _tmp112_); _vala_ccode_node_unref0 (_tmp112_); _g_free0 (_tmp109_); _g_free0 (_tmp107_); _tmp113_ = decl_space; _tmp114_ = vala_ccode_newline_new (); _tmp115_ = _tmp114_; vala_ccode_file_add_type_declaration (_tmp113_, (ValaCCodeNode*) _tmp115_); _vala_ccode_node_unref0 (_tmp115_); _g_free0 (macro); } _tmp117_ = cl; _tmp118_ = vala_class_get_is_compact (_tmp117_); _tmp119_ = _tmp118_; if (_tmp119_) { ValaClass* _tmp120_; ValaClass* _tmp121_; ValaClass* _tmp122_; _tmp120_ = cl; _tmp121_ = vala_class_get_base_class (_tmp120_); _tmp122_ = _tmp121_; _tmp116_ = _tmp122_ != NULL; } else { _tmp116_ = FALSE; } _tmp123_ = _tmp116_; if (_tmp123_) { ValaCCodeFile* _tmp124_; ValaClass* _tmp125_; ValaClass* _tmp126_; ValaClass* _tmp127_; gchar* _tmp128_ = NULL; gchar* _tmp129_; ValaClass* _tmp130_; gchar* _tmp131_ = NULL; gchar* _tmp132_; ValaCCodeVariableDeclarator* _tmp133_; ValaCCodeVariableDeclarator* _tmp134_; ValaCCodeTypeDefinition* _tmp135_; ValaCCodeTypeDefinition* _tmp136_; _tmp124_ = decl_space; _tmp125_ = cl; _tmp126_ = vala_class_get_base_class (_tmp125_); _tmp127_ = _tmp126_; _tmp128_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp127_); _tmp129_ = _tmp128_; _tmp130_ = cl; _tmp131_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp130_); _tmp132_ = _tmp131_; _tmp133_ = vala_ccode_variable_declarator_new (_tmp132_, NULL, NULL); _tmp134_ = _tmp133_; _tmp135_ = vala_ccode_type_definition_new (_tmp129_, (ValaCCodeDeclarator*) _tmp134_); _tmp136_ = _tmp135_; vala_ccode_file_add_type_declaration (_tmp124_, (ValaCCodeNode*) _tmp136_); _vala_ccode_node_unref0 (_tmp136_); _vala_ccode_node_unref0 (_tmp134_); _g_free0 (_tmp132_); _g_free0 (_tmp129_); } else { ValaCCodeFile* _tmp137_; ValaClass* _tmp138_; gchar* _tmp139_ = NULL; gchar* _tmp140_; gchar* _tmp141_ = NULL; gchar* _tmp142_; ValaClass* _tmp143_; gchar* _tmp144_ = NULL; gchar* _tmp145_; ValaCCodeVariableDeclarator* _tmp146_; ValaCCodeVariableDeclarator* _tmp147_; ValaCCodeTypeDefinition* _tmp148_; ValaCCodeTypeDefinition* _tmp149_; _tmp137_ = decl_space; _tmp138_ = cl; _tmp139_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp138_); _tmp140_ = _tmp139_; _tmp141_ = g_strdup_printf ("struct _%s", _tmp140_); _tmp142_ = _tmp141_; _tmp143_ = cl; _tmp144_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp143_); _tmp145_ = _tmp144_; _tmp146_ = vala_ccode_variable_declarator_new (_tmp145_, NULL, NULL); _tmp147_ = _tmp146_; _tmp148_ = vala_ccode_type_definition_new (_tmp142_, (ValaCCodeDeclarator*) _tmp147_); _tmp149_ = _tmp148_; vala_ccode_file_add_type_declaration (_tmp137_, (ValaCCodeNode*) _tmp149_); _vala_ccode_node_unref0 (_tmp149_); _vala_ccode_node_unref0 (_tmp147_); _g_free0 (_tmp145_); _g_free0 (_tmp142_); _g_free0 (_tmp140_); } _tmp150_ = is_fundamental; if (_tmp150_) { ValaClass* _tmp151_; gchar* _tmp152_ = NULL; gchar* _tmp153_; gchar* _tmp154_; gchar* _tmp155_; ValaCCodeFunction* _tmp156_; ValaCCodeFunction* _tmp157_; ValaCCodeFunction* ref_fun; ValaClass* _tmp158_; gchar* _tmp159_ = NULL; gchar* _tmp160_; gchar* _tmp161_; gchar* _tmp162_; ValaCCodeFunction* _tmp163_; ValaCCodeFunction* _tmp164_; ValaCCodeFunction* unref_fun; ValaClass* _tmp165_; ValaSymbolAccessibility _tmp166_; ValaSymbolAccessibility _tmp167_; ValaCCodeFunction* _tmp170_; ValaCCodeParameter* _tmp171_; ValaCCodeParameter* _tmp172_; ValaCCodeFunction* _tmp173_; ValaCCodeParameter* _tmp174_; ValaCCodeParameter* _tmp175_; ValaCCodeFile* _tmp176_; ValaCCodeFunction* _tmp177_; ValaCCodeFile* _tmp178_; ValaCCodeFunction* _tmp179_; ValaClass* _tmp180_; gchar* _tmp181_ = NULL; gchar* function_name; const gchar* _tmp182_; ValaCCodeFunction* _tmp183_; ValaCCodeFunction* function; ValaCCodeFunction* _tmp184_; ValaCCodeParameter* _tmp185_; ValaCCodeParameter* _tmp186_; ValaCCodeFunction* _tmp187_; ValaCCodeParameter* _tmp188_; ValaCCodeParameter* _tmp189_; ValaCCodeFunction* _tmp190_; ValaCCodeParameter* _tmp191_; ValaCCodeParameter* _tmp192_; ValaCCodeFunction* _tmp193_; ValaCCodeParameter* _tmp194_; ValaCCodeParameter* _tmp195_; ValaCCodeFunction* _tmp196_; ValaCCodeParameter* _tmp197_; ValaCCodeParameter* _tmp198_; ValaClass* _tmp199_; ValaSymbolAccessibility _tmp200_; ValaSymbolAccessibility _tmp201_; ValaCCodeFile* _tmp204_; ValaCCodeFunction* _tmp205_; ValaClass* _tmp206_; gchar* _tmp207_ = NULL; gchar* _tmp208_; ValaCCodeFunction* _tmp209_; ValaCCodeFunction* _tmp210_; ValaCCodeParameter* _tmp211_; ValaCCodeParameter* _tmp212_; ValaCCodeFunction* _tmp213_; ValaCCodeParameter* _tmp214_; ValaCCodeParameter* _tmp215_; ValaClass* _tmp216_; ValaSymbolAccessibility _tmp217_; ValaSymbolAccessibility _tmp218_; ValaCCodeFile* _tmp221_; ValaCCodeFunction* _tmp222_; ValaClass* _tmp223_; gchar* _tmp224_ = NULL; gchar* _tmp225_; ValaCCodeFunction* _tmp226_; ValaCCodeFunction* _tmp227_; ValaCCodeParameter* _tmp228_; ValaCCodeParameter* _tmp229_; ValaCCodeFunction* _tmp230_; ValaCCodeParameter* _tmp231_; ValaCCodeParameter* _tmp232_; ValaClass* _tmp233_; ValaSymbolAccessibility _tmp234_; ValaSymbolAccessibility _tmp235_; ValaCCodeFile* _tmp238_; ValaCCodeFunction* _tmp239_; ValaClass* _tmp240_; gchar* _tmp241_ = NULL; gchar* _tmp242_; ValaCCodeFunction* _tmp243_; ValaCCodeFunction* _tmp244_; ValaCCodeParameter* _tmp245_; ValaCCodeParameter* _tmp246_; ValaClass* _tmp247_; ValaSymbolAccessibility _tmp248_; ValaSymbolAccessibility _tmp249_; ValaCCodeFile* _tmp252_; ValaCCodeFunction* _tmp253_; _tmp151_ = cl; _tmp152_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp151_); _tmp153_ = _tmp152_; _tmp154_ = g_strconcat (_tmp153_, "ref", NULL); _tmp155_ = _tmp154_; _tmp156_ = vala_ccode_function_new (_tmp155_, "gpointer"); _tmp157_ = _tmp156_; _g_free0 (_tmp155_); _g_free0 (_tmp153_); ref_fun = _tmp157_; _tmp158_ = cl; _tmp159_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp158_); _tmp160_ = _tmp159_; _tmp161_ = g_strconcat (_tmp160_, "unref", NULL); _tmp162_ = _tmp161_; _tmp163_ = vala_ccode_function_new (_tmp162_, "void"); _tmp164_ = _tmp163_; _g_free0 (_tmp162_); _g_free0 (_tmp160_); unref_fun = _tmp164_; _tmp165_ = cl; _tmp166_ = vala_symbol_get_access ((ValaSymbol*) _tmp165_); _tmp167_ = _tmp166_; if (_tmp167_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp168_; ValaCCodeFunction* _tmp169_; _tmp168_ = ref_fun; vala_ccode_function_set_modifiers (_tmp168_, VALA_CCODE_MODIFIERS_STATIC); _tmp169_ = unref_fun; vala_ccode_function_set_modifiers (_tmp169_, VALA_CCODE_MODIFIERS_STATIC); } _tmp170_ = ref_fun; _tmp171_ = vala_ccode_parameter_new ("instance", "gpointer"); _tmp172_ = _tmp171_; vala_ccode_function_add_parameter (_tmp170_, _tmp172_); _vala_ccode_node_unref0 (_tmp172_); _tmp173_ = unref_fun; _tmp174_ = vala_ccode_parameter_new ("instance", "gpointer"); _tmp175_ = _tmp174_; vala_ccode_function_add_parameter (_tmp173_, _tmp175_); _vala_ccode_node_unref0 (_tmp175_); _tmp176_ = decl_space; _tmp177_ = ref_fun; vala_ccode_file_add_function_declaration (_tmp176_, _tmp177_); _tmp178_ = decl_space; _tmp179_ = unref_fun; vala_ccode_file_add_function_declaration (_tmp178_, _tmp179_); _tmp180_ = cl; _tmp181_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp180_, "param_spec_"); function_name = _tmp181_; _tmp182_ = function_name; _tmp183_ = vala_ccode_function_new (_tmp182_, "GParamSpec*"); function = _tmp183_; _tmp184_ = function; _tmp185_ = vala_ccode_parameter_new ("name", "const gchar*"); _tmp186_ = _tmp185_; vala_ccode_function_add_parameter (_tmp184_, _tmp186_); _vala_ccode_node_unref0 (_tmp186_); _tmp187_ = function; _tmp188_ = vala_ccode_parameter_new ("nick", "const gchar*"); _tmp189_ = _tmp188_; vala_ccode_function_add_parameter (_tmp187_, _tmp189_); _vala_ccode_node_unref0 (_tmp189_); _tmp190_ = function; _tmp191_ = vala_ccode_parameter_new ("blurb", "const gchar*"); _tmp192_ = _tmp191_; vala_ccode_function_add_parameter (_tmp190_, _tmp192_); _vala_ccode_node_unref0 (_tmp192_); _tmp193_ = function; _tmp194_ = vala_ccode_parameter_new ("object_type", "GType"); _tmp195_ = _tmp194_; vala_ccode_function_add_parameter (_tmp193_, _tmp195_); _vala_ccode_node_unref0 (_tmp195_); _tmp196_ = function; _tmp197_ = vala_ccode_parameter_new ("flags", "GParamFlags"); _tmp198_ = _tmp197_; vala_ccode_function_add_parameter (_tmp196_, _tmp198_); _vala_ccode_node_unref0 (_tmp198_); _tmp199_ = cl; _tmp200_ = vala_symbol_get_access ((ValaSymbol*) _tmp199_); _tmp201_ = _tmp200_; if (_tmp201_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp202_; ValaCCodeFunction* _tmp203_; _tmp202_ = function; vala_ccode_function_set_modifiers (_tmp202_, VALA_CCODE_MODIFIERS_STATIC); _tmp203_ = function; vala_ccode_function_set_attributes (_tmp203_, "G_GNUC_UNUSED"); } _tmp204_ = decl_space; _tmp205_ = function; vala_ccode_file_add_function_declaration (_tmp204_, _tmp205_); _tmp206_ = cl; _tmp207_ = vala_ccode_base_module_get_ccode_set_value_function ((ValaCodeNode*) _tmp206_); _tmp208_ = _tmp207_; _tmp209_ = vala_ccode_function_new (_tmp208_, "void"); _vala_ccode_node_unref0 (function); function = _tmp209_; _g_free0 (_tmp208_); _tmp210_ = function; _tmp211_ = vala_ccode_parameter_new ("value", "GValue*"); _tmp212_ = _tmp211_; vala_ccode_function_add_parameter (_tmp210_, _tmp212_); _vala_ccode_node_unref0 (_tmp212_); _tmp213_ = function; _tmp214_ = vala_ccode_parameter_new ("v_object", "gpointer"); _tmp215_ = _tmp214_; vala_ccode_function_add_parameter (_tmp213_, _tmp215_); _vala_ccode_node_unref0 (_tmp215_); _tmp216_ = cl; _tmp217_ = vala_symbol_get_access ((ValaSymbol*) _tmp216_); _tmp218_ = _tmp217_; if (_tmp218_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp219_; ValaCCodeFunction* _tmp220_; _tmp219_ = function; vala_ccode_function_set_modifiers (_tmp219_, VALA_CCODE_MODIFIERS_STATIC); _tmp220_ = function; vala_ccode_function_set_attributes (_tmp220_, "G_GNUC_UNUSED"); } _tmp221_ = decl_space; _tmp222_ = function; vala_ccode_file_add_function_declaration (_tmp221_, _tmp222_); _tmp223_ = cl; _tmp224_ = vala_ccode_base_module_get_ccode_take_value_function ((ValaCodeNode*) _tmp223_); _tmp225_ = _tmp224_; _tmp226_ = vala_ccode_function_new (_tmp225_, "void"); _vala_ccode_node_unref0 (function); function = _tmp226_; _g_free0 (_tmp225_); _tmp227_ = function; _tmp228_ = vala_ccode_parameter_new ("value", "GValue*"); _tmp229_ = _tmp228_; vala_ccode_function_add_parameter (_tmp227_, _tmp229_); _vala_ccode_node_unref0 (_tmp229_); _tmp230_ = function; _tmp231_ = vala_ccode_parameter_new ("v_object", "gpointer"); _tmp232_ = _tmp231_; vala_ccode_function_add_parameter (_tmp230_, _tmp232_); _vala_ccode_node_unref0 (_tmp232_); _tmp233_ = cl; _tmp234_ = vala_symbol_get_access ((ValaSymbol*) _tmp233_); _tmp235_ = _tmp234_; if (_tmp235_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp236_; ValaCCodeFunction* _tmp237_; _tmp236_ = function; vala_ccode_function_set_modifiers (_tmp236_, VALA_CCODE_MODIFIERS_STATIC); _tmp237_ = function; vala_ccode_function_set_attributes (_tmp237_, "G_GNUC_UNUSED"); } _tmp238_ = decl_space; _tmp239_ = function; vala_ccode_file_add_function_declaration (_tmp238_, _tmp239_); _tmp240_ = cl; _tmp241_ = vala_ccode_base_module_get_ccode_get_value_function ((ValaCodeNode*) _tmp240_); _tmp242_ = _tmp241_; _tmp243_ = vala_ccode_function_new (_tmp242_, "gpointer"); _vala_ccode_node_unref0 (function); function = _tmp243_; _g_free0 (_tmp242_); _tmp244_ = function; _tmp245_ = vala_ccode_parameter_new ("value", "const GValue*"); _tmp246_ = _tmp245_; vala_ccode_function_add_parameter (_tmp244_, _tmp246_); _vala_ccode_node_unref0 (_tmp246_); _tmp247_ = cl; _tmp248_ = vala_symbol_get_access ((ValaSymbol*) _tmp247_); _tmp249_ = _tmp248_; if (_tmp249_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp250_; ValaCCodeFunction* _tmp251_; _tmp250_ = function; vala_ccode_function_set_modifiers (_tmp250_, VALA_CCODE_MODIFIERS_STATIC); _tmp251_ = function; vala_ccode_function_set_attributes (_tmp251_, "G_GNUC_UNUSED"); } _tmp252_ = decl_space; _tmp253_ = function; vala_ccode_file_add_function_declaration (_tmp252_, _tmp253_); _vala_ccode_node_unref0 (function); _g_free0 (function_name); _vala_ccode_node_unref0 (unref_fun); _vala_ccode_node_unref0 (ref_fun); } else { gboolean _tmp254_; _tmp254_ = is_gtypeinstance; if (!_tmp254_) { ValaClass* _tmp255_; ValaClass* _tmp256_; ValaClass* _tmp257_; _tmp255_ = cl; _tmp256_ = vala_class_get_base_class (_tmp255_); _tmp257_ = _tmp256_; if (_tmp257_ == NULL) { ValaClass* _tmp258_; gchar* _tmp259_ = NULL; gchar* _tmp260_; gchar* _tmp261_; gchar* _tmp262_; ValaCCodeFunction* _tmp263_; ValaCCodeFunction* _tmp264_; ValaCCodeFunction* function; ValaClass* _tmp265_; ValaSymbolAccessibility _tmp266_; ValaSymbolAccessibility _tmp267_; ValaCCodeFunction* _tmp269_; ValaClass* _tmp270_; gchar* _tmp271_ = NULL; gchar* _tmp272_; gchar* _tmp273_; gchar* _tmp274_; ValaCCodeParameter* _tmp275_; ValaCCodeParameter* _tmp276_; ValaCCodeFile* _tmp277_; ValaCCodeFunction* _tmp278_; _tmp258_ = cl; _tmp259_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp258_); _tmp260_ = _tmp259_; _tmp261_ = g_strconcat (_tmp260_, "free", NULL); _tmp262_ = _tmp261_; _tmp263_ = vala_ccode_function_new (_tmp262_, "void"); _tmp264_ = _tmp263_; _g_free0 (_tmp262_); _g_free0 (_tmp260_); function = _tmp264_; _tmp265_ = cl; _tmp266_ = vala_symbol_get_access ((ValaSymbol*) _tmp265_); _tmp267_ = _tmp266_; if (_tmp267_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp268_; _tmp268_ = function; vala_ccode_function_set_modifiers (_tmp268_, VALA_CCODE_MODIFIERS_STATIC); } _tmp269_ = function; _tmp270_ = cl; _tmp271_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp270_); _tmp272_ = _tmp271_; _tmp273_ = g_strconcat (_tmp272_, "*", NULL); _tmp274_ = _tmp273_; _tmp275_ = vala_ccode_parameter_new ("self", _tmp274_); _tmp276_ = _tmp275_; vala_ccode_function_add_parameter (_tmp269_, _tmp276_); _vala_ccode_node_unref0 (_tmp276_); _g_free0 (_tmp274_); _g_free0 (_tmp272_); _tmp277_ = decl_space; _tmp278_ = function; vala_ccode_file_add_function_declaration (_tmp277_, _tmp278_); _vala_ccode_node_unref0 (function); } } } _tmp279_ = is_gtypeinstance; if (_tmp279_) { ValaCCodeFile* _tmp280_; ValaClass* _tmp281_; gchar* _tmp282_ = NULL; gchar* _tmp283_; gchar* _tmp284_ = NULL; gchar* _tmp285_; ValaClass* _tmp286_; gchar* _tmp287_ = NULL; gchar* _tmp288_; gchar* _tmp289_ = NULL; gchar* _tmp290_; ValaCCodeVariableDeclarator* _tmp291_; ValaCCodeVariableDeclarator* _tmp292_; ValaCCodeTypeDefinition* _tmp293_; ValaCCodeTypeDefinition* _tmp294_; ValaClass* _tmp295_; ValaCodeContext* _tmp296_; ValaCodeContext* _tmp297_; ValaClassRegisterFunction* _tmp298_; ValaClassRegisterFunction* type_fun; ValaClassRegisterFunction* _tmp299_; gboolean _tmp300_; ValaCCodeFile* _tmp301_; ValaClassRegisterFunction* _tmp302_; ValaCCodeFragment* _tmp303_ = NULL; ValaCCodeFragment* _tmp304_; _tmp280_ = decl_space; _tmp281_ = cl; _tmp282_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp281_); _tmp283_ = _tmp282_; _tmp284_ = g_strdup_printf ("struct _%sClass", _tmp283_); _tmp285_ = _tmp284_; _tmp286_ = cl; _tmp287_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp286_); _tmp288_ = _tmp287_; _tmp289_ = g_strdup_printf ("%sClass", _tmp288_); _tmp290_ = _tmp289_; _tmp291_ = vala_ccode_variable_declarator_new (_tmp290_, NULL, NULL); _tmp292_ = _tmp291_; _tmp293_ = vala_ccode_type_definition_new (_tmp285_, (ValaCCodeDeclarator*) _tmp292_); _tmp294_ = _tmp293_; vala_ccode_file_add_type_declaration (_tmp280_, (ValaCCodeNode*) _tmp294_); _vala_ccode_node_unref0 (_tmp294_); _vala_ccode_node_unref0 (_tmp292_); _g_free0 (_tmp290_); _g_free0 (_tmp288_); _g_free0 (_tmp285_); _g_free0 (_tmp283_); _tmp295_ = cl; _tmp296_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp297_ = _tmp296_; _tmp298_ = vala_class_register_function_new (_tmp295_, _tmp297_); type_fun = _tmp298_; _tmp299_ = type_fun; _tmp300_ = ((ValaCCodeBaseModule*) self)->in_plugin; vala_typeregister_function_init_from_type ((ValaTypeRegisterFunction*) _tmp299_, _tmp300_, TRUE); _tmp301_ = decl_space; _tmp302_ = type_fun; _tmp303_ = vala_typeregister_function_get_declaration ((ValaTypeRegisterFunction*) _tmp302_); _tmp304_ = _tmp303_; vala_ccode_file_add_type_member_declaration (_tmp301_, (ValaCCodeNode*) _tmp304_); _vala_ccode_node_unref0 (_tmp304_); _vala_typeregister_function_unref0 (type_fun); } } static gpointer _vala_code_node_ref0 (gpointer self) { return self ? vala_code_node_ref (self) : NULL; } static void vala_gtype_module_real_generate_class_struct_declaration (ValaCCodeBaseModule* base, ValaClass* cl, ValaCCodeFile* decl_space) { ValaGTypeModule * self; ValaCCodeFile* _tmp0_; ValaClass* _tmp1_; ValaClass* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; gchar* _tmp5_; gchar* _tmp6_; gboolean _tmp7_ = FALSE; gboolean _tmp8_; ValaClass* _tmp9_; ValaClass* _tmp10_; ValaClass* _tmp11_; ValaClass* _tmp34_; ValaCCodeFile* _tmp35_; ValaClass* _tmp36_; gboolean _tmp37_; gboolean _tmp38_; gboolean is_gtypeinstance; gboolean _tmp39_ = FALSE; gboolean _tmp40_; gboolean _tmp44_; gboolean is_fundamental; ValaClass* _tmp45_; gchar* _tmp46_ = NULL; gchar* _tmp47_; gchar* _tmp48_ = NULL; gchar* _tmp49_; ValaCCodeStruct* _tmp50_; ValaCCodeStruct* _tmp51_; ValaCCodeStruct* instance_struct; ValaClass* _tmp52_; gchar* _tmp53_ = NULL; gchar* _tmp54_; gchar* _tmp55_ = NULL; gchar* _tmp56_; ValaCCodeStruct* _tmp57_; ValaCCodeStruct* _tmp58_; ValaCCodeStruct* type_struct; ValaClass* _tmp59_; ValaClass* _tmp60_; ValaClass* _tmp61_; gboolean _tmp72_ = FALSE; gboolean _tmp73_ = FALSE; ValaClass* _tmp74_; gboolean _tmp75_; gboolean _tmp76_; gboolean _tmp80_; gboolean _tmp86_; gboolean _tmp88_; gboolean _tmp477_ = FALSE; ValaClass* _tmp478_; gboolean _tmp479_; gboolean _tmp480_; gboolean _tmp484_; gboolean _tmp487_; self = (ValaGTypeModule*) base; g_return_if_fail (cl != NULL); g_return_if_fail (decl_space != NULL); _tmp0_ = decl_space; _tmp1_ = cl; _tmp2_ = cl; _tmp3_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = g_strconcat ("struct _", _tmp4_, NULL); _tmp6_ = _tmp5_; _tmp7_ = vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, _tmp0_, (ValaSymbol*) _tmp1_, _tmp6_); _tmp8_ = _tmp7_; _g_free0 (_tmp6_); _g_free0 (_tmp4_); if (_tmp8_) { return; } _tmp9_ = cl; _tmp10_ = vala_class_get_base_class (_tmp9_); _tmp11_ = _tmp10_; if (_tmp11_ != NULL) { ValaClass* _tmp12_; ValaClass* _tmp13_; ValaClass* _tmp14_; ValaCCodeFile* _tmp15_; _tmp12_ = cl; _tmp13_ = vala_class_get_base_class (_tmp12_); _tmp14_ = _tmp13_; _tmp15_ = decl_space; vala_ccode_base_module_generate_class_struct_declaration ((ValaCCodeBaseModule*) self, _tmp14_, _tmp15_); } { ValaClass* _tmp16_; ValaList* _tmp17_ = NULL; ValaList* _base_type_list; ValaList* _tmp18_; gint _tmp19_; gint _tmp20_; gint _base_type_size; gint _base_type_index; _tmp16_ = cl; _tmp17_ = vala_class_get_base_types (_tmp16_); _base_type_list = _tmp17_; _tmp18_ = _base_type_list; _tmp19_ = vala_collection_get_size ((ValaCollection*) _tmp18_); _tmp20_ = _tmp19_; _base_type_size = _tmp20_; _base_type_index = -1; while (TRUE) { gint _tmp21_; gint _tmp22_; gint _tmp23_; ValaList* _tmp24_; gint _tmp25_; gpointer _tmp26_ = NULL; ValaDataType* base_type; ValaDataType* _tmp27_; ValaTypeSymbol* _tmp28_; ValaTypeSymbol* _tmp29_; ValaInterface* _tmp30_; ValaInterface* iface; ValaInterface* _tmp31_; _tmp21_ = _base_type_index; _base_type_index = _tmp21_ + 1; _tmp22_ = _base_type_index; _tmp23_ = _base_type_size; if (!(_tmp22_ < _tmp23_)) { break; } _tmp24_ = _base_type_list; _tmp25_ = _base_type_index; _tmp26_ = vala_list_get (_tmp24_, _tmp25_); base_type = (ValaDataType*) _tmp26_; _tmp27_ = base_type; _tmp28_ = vala_data_type_get_data_type (_tmp27_); _tmp29_ = _tmp28_; _tmp30_ = _vala_code_node_ref0 (VALA_IS_INTERFACE (_tmp29_) ? ((ValaInterface*) _tmp29_) : NULL); iface = _tmp30_; _tmp31_ = iface; if (_tmp31_ != NULL) { ValaInterface* _tmp32_; ValaCCodeFile* _tmp33_; _tmp32_ = iface; _tmp33_ = decl_space; vala_ccode_base_module_generate_interface_declaration ((ValaCCodeBaseModule*) self, _tmp32_, _tmp33_); } _vala_code_node_unref0 (iface); _vala_code_node_unref0 (base_type); } _vala_iterable_unref0 (_base_type_list); } _tmp34_ = cl; _tmp35_ = decl_space; vala_ccode_base_module_generate_class_declaration ((ValaCCodeBaseModule*) self, _tmp34_, _tmp35_); _tmp36_ = cl; _tmp37_ = vala_class_get_is_compact (_tmp36_); _tmp38_ = _tmp37_; is_gtypeinstance = !_tmp38_; _tmp40_ = is_gtypeinstance; if (_tmp40_) { ValaClass* _tmp41_; ValaClass* _tmp42_; ValaClass* _tmp43_; _tmp41_ = cl; _tmp42_ = vala_class_get_base_class (_tmp41_); _tmp43_ = _tmp42_; _tmp39_ = _tmp43_ == NULL; } else { _tmp39_ = FALSE; } _tmp44_ = _tmp39_; is_fundamental = _tmp44_; _tmp45_ = cl; _tmp46_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp45_); _tmp47_ = _tmp46_; _tmp48_ = g_strdup_printf ("_%s", _tmp47_); _tmp49_ = _tmp48_; _tmp50_ = vala_ccode_struct_new (_tmp49_); _tmp51_ = _tmp50_; _g_free0 (_tmp49_); _g_free0 (_tmp47_); instance_struct = _tmp51_; _tmp52_ = cl; _tmp53_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp52_); _tmp54_ = _tmp53_; _tmp55_ = g_strdup_printf ("_%sClass", _tmp54_); _tmp56_ = _tmp55_; _tmp57_ = vala_ccode_struct_new (_tmp56_); _tmp58_ = _tmp57_; _g_free0 (_tmp56_); _g_free0 (_tmp54_); type_struct = _tmp58_; _tmp59_ = cl; _tmp60_ = vala_class_get_base_class (_tmp59_); _tmp61_ = _tmp60_; if (_tmp61_ != NULL) { ValaCCodeStruct* _tmp62_; ValaClass* _tmp63_; ValaClass* _tmp64_; ValaClass* _tmp65_; gchar* _tmp66_ = NULL; gchar* _tmp67_; _tmp62_ = instance_struct; _tmp63_ = cl; _tmp64_ = vala_class_get_base_class (_tmp63_); _tmp65_ = _tmp64_; _tmp66_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp65_); _tmp67_ = _tmp66_; vala_ccode_struct_add_field (_tmp62_, _tmp67_, "parent_instance", NULL); _g_free0 (_tmp67_); } else { gboolean _tmp68_; _tmp68_ = is_fundamental; if (_tmp68_) { ValaCCodeFile* _tmp69_; ValaCCodeStruct* _tmp70_; ValaCCodeStruct* _tmp71_; _tmp69_ = decl_space; vala_ccode_file_add_include (_tmp69_, "glib-object.h", FALSE); _tmp70_ = instance_struct; vala_ccode_struct_add_field (_tmp70_, "GTypeInstance", "parent_instance", NULL); _tmp71_ = instance_struct; vala_ccode_struct_add_field (_tmp71_, "volatile int", "ref_count", NULL); } } _tmp74_ = cl; _tmp75_ = vala_class_get_is_compact (_tmp74_); _tmp76_ = _tmp75_; if (_tmp76_) { ValaClass* _tmp77_; ValaClass* _tmp78_; ValaClass* _tmp79_; _tmp77_ = cl; _tmp78_ = vala_class_get_base_class (_tmp77_); _tmp79_ = _tmp78_; _tmp73_ = _tmp79_ == NULL; } else { _tmp73_ = FALSE; } _tmp80_ = _tmp73_; if (_tmp80_) { ValaClass* _tmp81_; ValaList* _tmp82_ = NULL; ValaList* _tmp83_; gint _tmp84_; gint _tmp85_; _tmp81_ = cl; _tmp82_ = vala_class_get_fields (_tmp81_); _tmp83_ = _tmp82_; _tmp84_ = vala_collection_get_size ((ValaCollection*) _tmp83_); _tmp85_ = _tmp84_; _tmp72_ = _tmp85_ == 0; _vala_iterable_unref0 (_tmp83_); } else { _tmp72_ = FALSE; } _tmp86_ = _tmp72_; if (_tmp86_) { ValaCCodeStruct* _tmp87_; _tmp87_ = instance_struct; vala_ccode_struct_add_field (_tmp87_, "int", "dummy", NULL); } _tmp88_ = is_gtypeinstance; if (_tmp88_) { ValaCCodeFile* _tmp89_; ValaCCodeStruct* _tmp90_; const gchar* _tmp91_; const gchar* _tmp92_; gchar* _tmp93_ = NULL; gchar* _tmp94_; ValaClass* _tmp95_; gchar* _tmp96_ = NULL; gchar* _tmp97_; gchar* _tmp98_ = NULL; gchar* _tmp99_; ValaCCodeVariableDeclarator* _tmp100_; ValaCCodeVariableDeclarator* _tmp101_; ValaCCodeTypeDefinition* _tmp102_; ValaCCodeTypeDefinition* _tmp103_; ValaCCodeStruct* _tmp104_; ValaClass* _tmp105_; gchar* _tmp106_ = NULL; gchar* _tmp107_; gchar* _tmp108_ = NULL; gchar* _tmp109_; gboolean _tmp110_; gboolean _tmp120_; _tmp89_ = decl_space; _tmp90_ = instance_struct; _tmp91_ = vala_ccode_struct_get_name (_tmp90_); _tmp92_ = _tmp91_; _tmp93_ = g_strdup_printf ("struct %sPrivate", _tmp92_); _tmp94_ = _tmp93_; _tmp95_ = cl; _tmp96_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp95_); _tmp97_ = _tmp96_; _tmp98_ = g_strdup_printf ("%sPrivate", _tmp97_); _tmp99_ = _tmp98_; _tmp100_ = vala_ccode_variable_declarator_new (_tmp99_, NULL, NULL); _tmp101_ = _tmp100_; _tmp102_ = vala_ccode_type_definition_new (_tmp94_, (ValaCCodeDeclarator*) _tmp101_); _tmp103_ = _tmp102_; vala_ccode_file_add_type_declaration (_tmp89_, (ValaCCodeNode*) _tmp103_); _vala_ccode_node_unref0 (_tmp103_); _vala_ccode_node_unref0 (_tmp101_); _g_free0 (_tmp99_); _g_free0 (_tmp97_); _g_free0 (_tmp94_); _tmp104_ = instance_struct; _tmp105_ = cl; _tmp106_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp105_); _tmp107_ = _tmp106_; _tmp108_ = g_strdup_printf ("%sPrivate *", _tmp107_); _tmp109_ = _tmp108_; vala_ccode_struct_add_field (_tmp104_, _tmp109_, "priv", NULL); _g_free0 (_tmp109_); _g_free0 (_tmp107_); _tmp110_ = is_fundamental; if (_tmp110_) { ValaCCodeStruct* _tmp111_; _tmp111_ = type_struct; vala_ccode_struct_add_field (_tmp111_, "GTypeClass", "parent_class", NULL); } else { ValaCCodeStruct* _tmp112_; ValaClass* _tmp113_; ValaClass* _tmp114_; ValaClass* _tmp115_; gchar* _tmp116_ = NULL; gchar* _tmp117_; gchar* _tmp118_ = NULL; gchar* _tmp119_; _tmp112_ = type_struct; _tmp113_ = cl; _tmp114_ = vala_class_get_base_class (_tmp113_); _tmp115_ = _tmp114_; _tmp116_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp115_); _tmp117_ = _tmp116_; _tmp118_ = g_strdup_printf ("%sClass", _tmp117_); _tmp119_ = _tmp118_; vala_ccode_struct_add_field (_tmp112_, _tmp119_, "parent_class", NULL); _g_free0 (_tmp119_); _g_free0 (_tmp117_); } _tmp120_ = is_fundamental; if (_tmp120_) { ValaCCodeStruct* _tmp121_; ValaClass* _tmp122_; gchar* _tmp123_ = NULL; gchar* _tmp124_; gchar* _tmp125_ = NULL; gchar* _tmp126_; _tmp121_ = type_struct; _tmp122_ = cl; _tmp123_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp122_); _tmp124_ = _tmp123_; _tmp125_ = g_strdup_printf ("(*finalize) (%s *self)", _tmp124_); _tmp126_ = _tmp125_; vala_ccode_struct_add_field (_tmp121_, "void", _tmp126_, NULL); _g_free0 (_tmp126_); _g_free0 (_tmp124_); } } { ValaClass* _tmp127_; ValaList* _tmp128_ = NULL; ValaList* _m_list; ValaList* _tmp129_; gint _tmp130_; gint _tmp131_; gint _m_size; gint _m_index; _tmp127_ = cl; _tmp128_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp127_); _m_list = _tmp128_; _tmp129_ = _m_list; _tmp130_ = vala_collection_get_size ((ValaCollection*) _tmp129_); _tmp131_ = _tmp130_; _m_size = _tmp131_; _m_index = -1; while (TRUE) { gint _tmp132_; gint _tmp133_; gint _tmp134_; ValaList* _tmp135_; gint _tmp136_; gpointer _tmp137_ = NULL; ValaMethod* m; ValaMethod* _tmp138_; ValaCCodeFile* _tmp139_; ValaCCodeStruct* _tmp140_; _tmp132_ = _m_index; _m_index = _tmp132_ + 1; _tmp133_ = _m_index; _tmp134_ = _m_size; if (!(_tmp133_ < _tmp134_)) { break; } _tmp135_ = _m_list; _tmp136_ = _m_index; _tmp137_ = vala_list_get (_tmp135_, _tmp136_); m = (ValaMethod*) _tmp137_; _tmp138_ = m; _tmp139_ = decl_space; _tmp140_ = type_struct; vala_gtype_module_generate_virtual_method_declaration (self, _tmp138_, _tmp139_, _tmp140_); _vala_code_node_unref0 (m); } _vala_iterable_unref0 (_m_list); } { ValaClass* _tmp141_; ValaList* _tmp142_ = NULL; ValaList* _sig_list; ValaList* _tmp143_; gint _tmp144_; gint _tmp145_; gint _sig_size; gint _sig_index; _tmp141_ = cl; _tmp142_ = vala_object_type_symbol_get_signals ((ValaObjectTypeSymbol*) _tmp141_); _sig_list = _tmp142_; _tmp143_ = _sig_list; _tmp144_ = vala_collection_get_size ((ValaCollection*) _tmp143_); _tmp145_ = _tmp144_; _sig_size = _tmp145_; _sig_index = -1; while (TRUE) { gint _tmp146_; gint _tmp147_; gint _tmp148_; ValaList* _tmp149_; gint _tmp150_; gpointer _tmp151_ = NULL; ValaSignal* sig; ValaSignal* _tmp152_; ValaMethod* _tmp153_; ValaMethod* _tmp154_; _tmp146_ = _sig_index; _sig_index = _tmp146_ + 1; _tmp147_ = _sig_index; _tmp148_ = _sig_size; if (!(_tmp147_ < _tmp148_)) { break; } _tmp149_ = _sig_list; _tmp150_ = _sig_index; _tmp151_ = vala_list_get (_tmp149_, _tmp150_); sig = (ValaSignal*) _tmp151_; _tmp152_ = sig; _tmp153_ = vala_signal_get_default_handler (_tmp152_); _tmp154_ = _tmp153_; if (_tmp154_ != NULL) { ValaSignal* _tmp155_; ValaMethod* _tmp156_; ValaMethod* _tmp157_; ValaCCodeFile* _tmp158_; ValaCCodeStruct* _tmp159_; _tmp155_ = sig; _tmp156_ = vala_signal_get_default_handler (_tmp155_); _tmp157_ = _tmp156_; _tmp158_ = decl_space; _tmp159_ = type_struct; vala_gtype_module_generate_virtual_method_declaration (self, _tmp157_, _tmp158_, _tmp159_); } _vala_code_node_unref0 (sig); } _vala_iterable_unref0 (_sig_list); } { ValaClass* _tmp160_; ValaList* _tmp161_ = NULL; ValaList* _prop_list; ValaList* _tmp162_; gint _tmp163_; gint _tmp164_; gint _prop_size; gint _prop_index; _tmp160_ = cl; _tmp161_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) _tmp160_); _prop_list = _tmp161_; _tmp162_ = _prop_list; _tmp163_ = vala_collection_get_size ((ValaCollection*) _tmp162_); _tmp164_ = _tmp163_; _prop_size = _tmp164_; _prop_index = -1; while (TRUE) { gint _tmp165_; gint _tmp166_; gint _tmp167_; ValaList* _tmp168_; gint _tmp169_; gpointer _tmp170_ = NULL; ValaProperty* prop; gboolean _tmp171_ = FALSE; ValaProperty* _tmp172_; gboolean _tmp173_; gboolean _tmp174_; gboolean _tmp178_; ValaProperty* _tmp179_; ValaDataType* _tmp180_; ValaDataType* _tmp181_; ValaCCodeFile* _tmp182_; ValaProperty* _tmp183_; ValaSymbol* _tmp184_; ValaSymbol* _tmp185_; ValaObjectTypeSymbol* _tmp186_; ValaObjectTypeSymbol* t; ValaObjectTypeSymbol* _tmp187_; ValaObjectType* _tmp188_; ValaObjectType* this_type; ValaObjectType* _tmp189_; gchar* _tmp190_ = NULL; gchar* _tmp191_; ValaCCodeParameter* _tmp192_; ValaCCodeParameter* _tmp193_; ValaCCodeParameter* cselfparam; ValaProperty* _tmp194_; ValaPropertyAccessor* _tmp195_; ValaPropertyAccessor* _tmp196_; ValaProperty* _tmp271_; ValaPropertyAccessor* _tmp272_; ValaPropertyAccessor* _tmp273_; _tmp165_ = _prop_index; _prop_index = _tmp165_ + 1; _tmp166_ = _prop_index; _tmp167_ = _prop_size; if (!(_tmp166_ < _tmp167_)) { break; } _tmp168_ = _prop_list; _tmp169_ = _prop_index; _tmp170_ = vala_list_get (_tmp168_, _tmp169_); prop = (ValaProperty*) _tmp170_; _tmp172_ = prop; _tmp173_ = vala_property_get_is_abstract (_tmp172_); _tmp174_ = _tmp173_; if (!_tmp174_) { ValaProperty* _tmp175_; gboolean _tmp176_; gboolean _tmp177_; _tmp175_ = prop; _tmp176_ = vala_property_get_is_virtual (_tmp175_); _tmp177_ = _tmp176_; _tmp171_ = !_tmp177_; } else { _tmp171_ = FALSE; } _tmp178_ = _tmp171_; if (_tmp178_) { _vala_code_node_unref0 (prop); continue; } _tmp179_ = prop; _tmp180_ = vala_property_get_property_type (_tmp179_); _tmp181_ = _tmp180_; _tmp182_ = decl_space; vala_ccode_base_module_generate_type_declaration ((ValaCCodeBaseModule*) self, _tmp181_, _tmp182_); _tmp183_ = prop; _tmp184_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp183_); _tmp185_ = _tmp184_; _tmp186_ = _vala_code_node_ref0 (VALA_OBJECT_TYPE_SYMBOL (_tmp185_)); t = _tmp186_; _tmp187_ = t; _tmp188_ = vala_object_type_new (_tmp187_); this_type = _tmp188_; _tmp189_ = this_type; _tmp190_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp189_); _tmp191_ = _tmp190_; _tmp192_ = vala_ccode_parameter_new ("self", _tmp191_); _tmp193_ = _tmp192_; _g_free0 (_tmp191_); cselfparam = _tmp193_; _tmp194_ = prop; _tmp195_ = vala_property_get_get_accessor (_tmp194_); _tmp196_ = _tmp195_; if (_tmp196_ != NULL) { ValaProperty* _tmp197_; const gchar* _tmp198_; const gchar* _tmp199_; gchar* _tmp200_ = NULL; gchar* _tmp201_; ValaCCodeFunctionDeclarator* _tmp202_; ValaCCodeFunctionDeclarator* _tmp203_; ValaCCodeFunctionDeclarator* vdeclarator; ValaCCodeFunctionDeclarator* _tmp204_; ValaCCodeParameter* _tmp205_; gchar* creturn_type = NULL; ValaProperty* _tmp206_; ValaDataType* _tmp207_; ValaDataType* _tmp208_; gboolean _tmp209_ = FALSE; ValaProperty* _tmp230_; ValaDataType* _tmp231_; ValaDataType* _tmp232_; ValaArrayType* _tmp233_; ValaArrayType* array_type; ValaArrayType* _tmp234_; const gchar* _tmp265_; ValaCCodeDeclaration* _tmp266_; ValaCCodeDeclaration* vdecl; ValaCCodeDeclaration* _tmp267_; ValaCCodeFunctionDeclarator* _tmp268_; ValaCCodeStruct* _tmp269_; ValaCCodeDeclaration* _tmp270_; _tmp197_ = prop; _tmp198_ = vala_symbol_get_name ((ValaSymbol*) _tmp197_); _tmp199_ = _tmp198_; _tmp200_ = g_strdup_printf ("get_%s", _tmp199_); _tmp201_ = _tmp200_; _tmp202_ = vala_ccode_function_declarator_new (_tmp201_); _tmp203_ = _tmp202_; _g_free0 (_tmp201_); vdeclarator = _tmp203_; _tmp204_ = vdeclarator; _tmp205_ = cselfparam; vala_ccode_function_declarator_add_parameter (_tmp204_, _tmp205_); _tmp206_ = prop; _tmp207_ = vala_property_get_property_type (_tmp206_); _tmp208_ = _tmp207_; _tmp209_ = vala_data_type_is_real_non_null_struct_type (_tmp208_); if (_tmp209_) { ValaProperty* _tmp210_; ValaPropertyAccessor* _tmp211_; ValaPropertyAccessor* _tmp212_; ValaDataType* _tmp213_; ValaDataType* _tmp214_; gchar* _tmp215_ = NULL; gchar* _tmp216_; gchar* _tmp217_; gchar* _tmp218_; ValaCCodeParameter* _tmp219_; ValaCCodeParameter* _tmp220_; ValaCCodeParameter* cvalueparam; ValaCCodeFunctionDeclarator* _tmp221_; ValaCCodeParameter* _tmp222_; gchar* _tmp223_; _tmp210_ = prop; _tmp211_ = vala_property_get_get_accessor (_tmp210_); _tmp212_ = _tmp211_; _tmp213_ = vala_property_accessor_get_value_type (_tmp212_); _tmp214_ = _tmp213_; _tmp215_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp214_); _tmp216_ = _tmp215_; _tmp217_ = g_strconcat (_tmp216_, "*", NULL); _tmp218_ = _tmp217_; _tmp219_ = vala_ccode_parameter_new ("result", _tmp218_); _tmp220_ = _tmp219_; _g_free0 (_tmp218_); _g_free0 (_tmp216_); cvalueparam = _tmp220_; _tmp221_ = vdeclarator; _tmp222_ = cvalueparam; vala_ccode_function_declarator_add_parameter (_tmp221_, _tmp222_); _tmp223_ = g_strdup ("void"); _g_free0 (creturn_type); creturn_type = _tmp223_; _vala_ccode_node_unref0 (cvalueparam); } else { ValaProperty* _tmp224_; ValaPropertyAccessor* _tmp225_; ValaPropertyAccessor* _tmp226_; ValaDataType* _tmp227_; ValaDataType* _tmp228_; gchar* _tmp229_ = NULL; _tmp224_ = prop; _tmp225_ = vala_property_get_get_accessor (_tmp224_); _tmp226_ = _tmp225_; _tmp227_ = vala_property_accessor_get_value_type (_tmp226_); _tmp228_ = _tmp227_; _tmp229_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp228_); _g_free0 (creturn_type); creturn_type = _tmp229_; } _tmp230_ = prop; _tmp231_ = vala_property_get_property_type (_tmp230_); _tmp232_ = _tmp231_; _tmp233_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp232_) ? ((ValaArrayType*) _tmp232_) : NULL); array_type = _tmp233_; _tmp234_ = array_type; if (_tmp234_ != NULL) { { gint dim; dim = 1; { gboolean _tmp235_; _tmp235_ = TRUE; while (TRUE) { gboolean _tmp236_; gint _tmp238_; ValaArrayType* _tmp239_; gint _tmp240_; gint _tmp241_; ValaCCodeFunctionDeclarator* _tmp242_; gint _tmp243_; gchar* _tmp244_ = NULL; gchar* _tmp245_; ValaCCodeParameter* _tmp246_; ValaCCodeParameter* _tmp247_; _tmp236_ = _tmp235_; if (!_tmp236_) { gint _tmp237_; _tmp237_ = dim; dim = _tmp237_ + 1; } _tmp235_ = FALSE; _tmp238_ = dim; _tmp239_ = array_type; _tmp240_ = vala_array_type_get_rank (_tmp239_); _tmp241_ = _tmp240_; if (!(_tmp238_ <= _tmp241_)) { break; } _tmp242_ = vdeclarator; _tmp243_ = dim; _tmp244_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", _tmp243_); _tmp245_ = _tmp244_; _tmp246_ = vala_ccode_parameter_new (_tmp245_, "int*"); _tmp247_ = _tmp246_; vala_ccode_function_declarator_add_parameter (_tmp242_, _tmp247_); _vala_ccode_node_unref0 (_tmp247_); _g_free0 (_tmp245_); } } } } else { gboolean _tmp248_ = FALSE; ValaProperty* _tmp249_; ValaDataType* _tmp250_; ValaDataType* _tmp251_; gboolean _tmp259_; _tmp249_ = prop; _tmp250_ = vala_property_get_property_type (_tmp249_); _tmp251_ = _tmp250_; if (VALA_IS_DELEGATE_TYPE (_tmp251_)) { ValaProperty* _tmp252_; ValaDataType* _tmp253_; ValaDataType* _tmp254_; ValaDelegate* _tmp255_; ValaDelegate* _tmp256_; gboolean _tmp257_; gboolean _tmp258_; _tmp252_ = prop; _tmp253_ = vala_property_get_property_type (_tmp252_); _tmp254_ = _tmp253_; _tmp255_ = vala_delegate_type_get_delegate_symbol (VALA_DELEGATE_TYPE (_tmp254_)); _tmp256_ = _tmp255_; _tmp257_ = vala_delegate_get_has_target (_tmp256_); _tmp258_ = _tmp257_; _tmp248_ = _tmp258_; } else { _tmp248_ = FALSE; } _tmp259_ = _tmp248_; if (_tmp259_) { ValaCCodeFunctionDeclarator* _tmp260_; gchar* _tmp261_ = NULL; gchar* _tmp262_; ValaCCodeParameter* _tmp263_; ValaCCodeParameter* _tmp264_; _tmp260_ = vdeclarator; _tmp261_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, "result"); _tmp262_ = _tmp261_; _tmp263_ = vala_ccode_parameter_new (_tmp262_, "gpointer*"); _tmp264_ = _tmp263_; vala_ccode_function_declarator_add_parameter (_tmp260_, _tmp264_); _vala_ccode_node_unref0 (_tmp264_); _g_free0 (_tmp262_); } } _tmp265_ = creturn_type; _tmp266_ = vala_ccode_declaration_new (_tmp265_); vdecl = _tmp266_; _tmp267_ = vdecl; _tmp268_ = vdeclarator; vala_ccode_declaration_add_declarator (_tmp267_, (ValaCCodeDeclarator*) _tmp268_); _tmp269_ = type_struct; _tmp270_ = vdecl; vala_ccode_struct_add_declaration (_tmp269_, _tmp270_); _vala_ccode_node_unref0 (vdecl); _vala_code_node_unref0 (array_type); _g_free0 (creturn_type); _vala_ccode_node_unref0 (vdeclarator); } _tmp271_ = prop; _tmp272_ = vala_property_get_set_accessor (_tmp271_); _tmp273_ = _tmp272_; if (_tmp273_ != NULL) { ValaCCodeParameter* cvalueparam = NULL; ValaProperty* _tmp274_; ValaDataType* _tmp275_; ValaDataType* _tmp276_; gboolean _tmp277_ = FALSE; ValaProperty* _tmp296_; const gchar* _tmp297_; const gchar* _tmp298_; gchar* _tmp299_ = NULL; gchar* _tmp300_; ValaCCodeFunctionDeclarator* _tmp301_; ValaCCodeFunctionDeclarator* _tmp302_; ValaCCodeFunctionDeclarator* vdeclarator; ValaCCodeFunctionDeclarator* _tmp303_; ValaCCodeParameter* _tmp304_; ValaCCodeFunctionDeclarator* _tmp305_; ValaCCodeParameter* _tmp306_; ValaProperty* _tmp307_; ValaDataType* _tmp308_; ValaDataType* _tmp309_; ValaArrayType* _tmp310_; ValaArrayType* array_type; ValaArrayType* _tmp311_; ValaCCodeDeclaration* _tmp342_; ValaCCodeDeclaration* vdecl; ValaCCodeDeclaration* _tmp343_; ValaCCodeFunctionDeclarator* _tmp344_; ValaCCodeStruct* _tmp345_; ValaCCodeDeclaration* _tmp346_; _tmp274_ = prop; _tmp275_ = vala_property_get_property_type (_tmp274_); _tmp276_ = _tmp275_; _tmp277_ = vala_data_type_is_real_non_null_struct_type (_tmp276_); if (_tmp277_) { ValaProperty* _tmp278_; ValaPropertyAccessor* _tmp279_; ValaPropertyAccessor* _tmp280_; ValaDataType* _tmp281_; ValaDataType* _tmp282_; gchar* _tmp283_ = NULL; gchar* _tmp284_; gchar* _tmp285_; gchar* _tmp286_; ValaCCodeParameter* _tmp287_; _tmp278_ = prop; _tmp279_ = vala_property_get_set_accessor (_tmp278_); _tmp280_ = _tmp279_; _tmp281_ = vala_property_accessor_get_value_type (_tmp280_); _tmp282_ = _tmp281_; _tmp283_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp282_); _tmp284_ = _tmp283_; _tmp285_ = g_strconcat (_tmp284_, "*", NULL); _tmp286_ = _tmp285_; _tmp287_ = vala_ccode_parameter_new ("value", _tmp286_); _vala_ccode_node_unref0 (cvalueparam); cvalueparam = _tmp287_; _g_free0 (_tmp286_); _g_free0 (_tmp284_); } else { ValaProperty* _tmp288_; ValaPropertyAccessor* _tmp289_; ValaPropertyAccessor* _tmp290_; ValaDataType* _tmp291_; ValaDataType* _tmp292_; gchar* _tmp293_ = NULL; gchar* _tmp294_; ValaCCodeParameter* _tmp295_; _tmp288_ = prop; _tmp289_ = vala_property_get_set_accessor (_tmp288_); _tmp290_ = _tmp289_; _tmp291_ = vala_property_accessor_get_value_type (_tmp290_); _tmp292_ = _tmp291_; _tmp293_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp292_); _tmp294_ = _tmp293_; _tmp295_ = vala_ccode_parameter_new ("value", _tmp294_); _vala_ccode_node_unref0 (cvalueparam); cvalueparam = _tmp295_; _g_free0 (_tmp294_); } _tmp296_ = prop; _tmp297_ = vala_symbol_get_name ((ValaSymbol*) _tmp296_); _tmp298_ = _tmp297_; _tmp299_ = g_strdup_printf ("set_%s", _tmp298_); _tmp300_ = _tmp299_; _tmp301_ = vala_ccode_function_declarator_new (_tmp300_); _tmp302_ = _tmp301_; _g_free0 (_tmp300_); vdeclarator = _tmp302_; _tmp303_ = vdeclarator; _tmp304_ = cselfparam; vala_ccode_function_declarator_add_parameter (_tmp303_, _tmp304_); _tmp305_ = vdeclarator; _tmp306_ = cvalueparam; vala_ccode_function_declarator_add_parameter (_tmp305_, _tmp306_); _tmp307_ = prop; _tmp308_ = vala_property_get_property_type (_tmp307_); _tmp309_ = _tmp308_; _tmp310_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp309_) ? ((ValaArrayType*) _tmp309_) : NULL); array_type = _tmp310_; _tmp311_ = array_type; if (_tmp311_ != NULL) { { gint dim; dim = 1; { gboolean _tmp312_; _tmp312_ = TRUE; while (TRUE) { gboolean _tmp313_; gint _tmp315_; ValaArrayType* _tmp316_; gint _tmp317_; gint _tmp318_; ValaCCodeFunctionDeclarator* _tmp319_; gint _tmp320_; gchar* _tmp321_ = NULL; gchar* _tmp322_; ValaCCodeParameter* _tmp323_; ValaCCodeParameter* _tmp324_; _tmp313_ = _tmp312_; if (!_tmp313_) { gint _tmp314_; _tmp314_ = dim; dim = _tmp314_ + 1; } _tmp312_ = FALSE; _tmp315_ = dim; _tmp316_ = array_type; _tmp317_ = vala_array_type_get_rank (_tmp316_); _tmp318_ = _tmp317_; if (!(_tmp315_ <= _tmp318_)) { break; } _tmp319_ = vdeclarator; _tmp320_ = dim; _tmp321_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", _tmp320_); _tmp322_ = _tmp321_; _tmp323_ = vala_ccode_parameter_new (_tmp322_, "int"); _tmp324_ = _tmp323_; vala_ccode_function_declarator_add_parameter (_tmp319_, _tmp324_); _vala_ccode_node_unref0 (_tmp324_); _g_free0 (_tmp322_); } } } } else { gboolean _tmp325_ = FALSE; ValaProperty* _tmp326_; ValaDataType* _tmp327_; ValaDataType* _tmp328_; gboolean _tmp336_; _tmp326_ = prop; _tmp327_ = vala_property_get_property_type (_tmp326_); _tmp328_ = _tmp327_; if (VALA_IS_DELEGATE_TYPE (_tmp328_)) { ValaProperty* _tmp329_; ValaDataType* _tmp330_; ValaDataType* _tmp331_; ValaDelegate* _tmp332_; ValaDelegate* _tmp333_; gboolean _tmp334_; gboolean _tmp335_; _tmp329_ = prop; _tmp330_ = vala_property_get_property_type (_tmp329_); _tmp331_ = _tmp330_; _tmp332_ = vala_delegate_type_get_delegate_symbol (VALA_DELEGATE_TYPE (_tmp331_)); _tmp333_ = _tmp332_; _tmp334_ = vala_delegate_get_has_target (_tmp333_); _tmp335_ = _tmp334_; _tmp325_ = _tmp335_; } else { _tmp325_ = FALSE; } _tmp336_ = _tmp325_; if (_tmp336_) { ValaCCodeFunctionDeclarator* _tmp337_; gchar* _tmp338_ = NULL; gchar* _tmp339_; ValaCCodeParameter* _tmp340_; ValaCCodeParameter* _tmp341_; _tmp337_ = vdeclarator; _tmp338_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, "value"); _tmp339_ = _tmp338_; _tmp340_ = vala_ccode_parameter_new (_tmp339_, "gpointer"); _tmp341_ = _tmp340_; vala_ccode_function_declarator_add_parameter (_tmp337_, _tmp341_); _vala_ccode_node_unref0 (_tmp341_); _g_free0 (_tmp339_); } } _tmp342_ = vala_ccode_declaration_new ("void"); vdecl = _tmp342_; _tmp343_ = vdecl; _tmp344_ = vdeclarator; vala_ccode_declaration_add_declarator (_tmp343_, (ValaCCodeDeclarator*) _tmp344_); _tmp345_ = type_struct; _tmp346_ = vdecl; vala_ccode_struct_add_declaration (_tmp345_, _tmp346_); _vala_ccode_node_unref0 (vdecl); _vala_code_node_unref0 (array_type); _vala_ccode_node_unref0 (vdeclarator); _vala_ccode_node_unref0 (cvalueparam); } _vala_ccode_node_unref0 (cselfparam); _vala_code_node_unref0 (this_type); _vala_code_node_unref0 (t); _vala_code_node_unref0 (prop); } _vala_iterable_unref0 (_prop_list); } { ValaClass* _tmp347_; ValaList* _tmp348_ = NULL; ValaList* _f_list; ValaList* _tmp349_; gint _tmp350_; gint _tmp351_; gint _f_size; gint _f_index; _tmp347_ = cl; _tmp348_ = vala_class_get_fields (_tmp347_); _f_list = _tmp348_; _tmp349_ = _f_list; _tmp350_ = vala_collection_get_size ((ValaCollection*) _tmp349_); _tmp351_ = _tmp350_; _f_size = _tmp351_; _f_index = -1; while (TRUE) { gint _tmp352_; gint _tmp353_; gint _tmp354_; ValaList* _tmp355_; gint _tmp356_; gpointer _tmp357_ = NULL; ValaField* f; ValaField* _tmp358_; ValaDataType* _tmp359_; ValaDataType* _tmp360_; gchar* _tmp361_ = NULL; gchar* field_ctype; ValaField* _tmp362_; gboolean _tmp363_; gboolean _tmp364_; ValaField* _tmp367_; ValaSymbolAccessibility _tmp368_; ValaSymbolAccessibility _tmp369_; _tmp352_ = _f_index; _f_index = _tmp352_ + 1; _tmp353_ = _f_index; _tmp354_ = _f_size; if (!(_tmp353_ < _tmp354_)) { break; } _tmp355_ = _f_list; _tmp356_ = _f_index; _tmp357_ = vala_list_get (_tmp355_, _tmp356_); f = (ValaField*) _tmp357_; _tmp358_ = f; _tmp359_ = vala_variable_get_variable_type ((ValaVariable*) _tmp358_); _tmp360_ = _tmp359_; _tmp361_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp360_); field_ctype = _tmp361_; _tmp362_ = f; _tmp363_ = vala_field_get_is_volatile (_tmp362_); _tmp364_ = _tmp363_; if (_tmp364_) { const gchar* _tmp365_; gchar* _tmp366_; _tmp365_ = field_ctype; _tmp366_ = g_strconcat ("volatile ", _tmp365_, NULL); _g_free0 (field_ctype); field_ctype = _tmp366_; } _tmp367_ = f; _tmp368_ = vala_symbol_get_access ((ValaSymbol*) _tmp367_); _tmp369_ = _tmp368_; if (_tmp369_ != VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaField* _tmp370_; ValaMemberBinding _tmp371_; ValaMemberBinding _tmp372_; _tmp370_ = f; _tmp371_ = vala_field_get_binding (_tmp370_); _tmp372_ = _tmp371_; if (_tmp372_ == VALA_MEMBER_BINDING_INSTANCE) { ValaField* _tmp373_; ValaDataType* _tmp374_; ValaDataType* _tmp375_; ValaCCodeFile* _tmp376_; ValaCCodeStruct* _tmp377_; const gchar* _tmp378_; ValaField* _tmp379_; gchar* _tmp380_ = NULL; gchar* _tmp381_; ValaField* _tmp382_; ValaDataType* _tmp383_; ValaDataType* _tmp384_; gchar* _tmp385_ = NULL; gchar* _tmp386_; gboolean _tmp387_ = FALSE; ValaField* _tmp388_; ValaDataType* _tmp389_; ValaDataType* _tmp390_; gboolean _tmp393_; _tmp373_ = f; _tmp374_ = vala_variable_get_variable_type ((ValaVariable*) _tmp373_); _tmp375_ = _tmp374_; _tmp376_ = decl_space; vala_ccode_base_module_generate_type_declaration ((ValaCCodeBaseModule*) self, _tmp375_, _tmp376_); _tmp377_ = instance_struct; _tmp378_ = field_ctype; _tmp379_ = f; _tmp380_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp379_); _tmp381_ = _tmp380_; _tmp382_ = f; _tmp383_ = vala_variable_get_variable_type ((ValaVariable*) _tmp382_); _tmp384_ = _tmp383_; _tmp385_ = vala_ccode_base_module_get_ccode_declarator_suffix (_tmp384_); _tmp386_ = _tmp385_; vala_ccode_struct_add_field (_tmp377_, _tmp378_, _tmp381_, _tmp386_); _g_free0 (_tmp386_); _g_free0 (_tmp381_); _tmp388_ = f; _tmp389_ = vala_variable_get_variable_type ((ValaVariable*) _tmp388_); _tmp390_ = _tmp389_; if (VALA_IS_ARRAY_TYPE (_tmp390_)) { ValaField* _tmp391_; gboolean _tmp392_ = FALSE; _tmp391_ = f; _tmp392_ = vala_ccode_base_module_get_ccode_array_length ((ValaCodeNode*) _tmp391_); _tmp387_ = _tmp392_; } else { _tmp387_ = FALSE; } _tmp393_ = _tmp387_; if (_tmp393_) { ValaField* _tmp394_; ValaDataType* _tmp395_; ValaDataType* _tmp396_; ValaArrayType* _tmp397_; ValaArrayType* array_type; ValaArrayType* _tmp398_; gboolean _tmp399_; gboolean _tmp400_; _tmp394_ = f; _tmp395_ = vala_variable_get_variable_type ((ValaVariable*) _tmp394_); _tmp396_ = _tmp395_; _tmp397_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp396_)); array_type = _tmp397_; _tmp398_ = array_type; _tmp399_ = vala_array_type_get_fixed_length (_tmp398_); _tmp400_ = _tmp399_; if (!_tmp400_) { ValaDataType* _tmp401_; ValaDataType* _tmp402_ = NULL; ValaDataType* len_type; gboolean _tmp426_ = FALSE; ValaArrayType* _tmp427_; gint _tmp428_; gint _tmp429_; gboolean _tmp432_; _tmp401_ = ((ValaCCodeBaseModule*) self)->int_type; _tmp402_ = vala_data_type_copy (_tmp401_); len_type = _tmp402_; { gint dim; dim = 1; { gboolean _tmp403_; _tmp403_ = TRUE; while (TRUE) { gboolean _tmp404_; gint _tmp406_; ValaArrayType* _tmp407_; gint _tmp408_; gint _tmp409_; gchar* length_cname = NULL; ValaField* _tmp410_; gchar* _tmp411_ = NULL; gchar* _tmp412_; gboolean _tmp413_; ValaCCodeStruct* _tmp421_; ValaDataType* _tmp422_; gchar* _tmp423_ = NULL; gchar* _tmp424_; const gchar* _tmp425_; _tmp404_ = _tmp403_; if (!_tmp404_) { gint _tmp405_; _tmp405_ = dim; dim = _tmp405_ + 1; } _tmp403_ = FALSE; _tmp406_ = dim; _tmp407_ = array_type; _tmp408_ = vala_array_type_get_rank (_tmp407_); _tmp409_ = _tmp408_; if (!(_tmp406_ <= _tmp409_)) { break; } _tmp410_ = f; _tmp411_ = vala_ccode_base_module_get_ccode_array_length_name ((ValaCodeNode*) _tmp410_); _tmp412_ = _tmp411_; _tmp413_ = _tmp412_ != NULL; _g_free0 (_tmp412_); if (_tmp413_) { ValaField* _tmp414_; gchar* _tmp415_ = NULL; _tmp414_ = f; _tmp415_ = vala_ccode_base_module_get_ccode_array_length_name ((ValaCodeNode*) _tmp414_); _g_free0 (length_cname); length_cname = _tmp415_; } else { ValaField* _tmp416_; const gchar* _tmp417_; const gchar* _tmp418_; gint _tmp419_; gchar* _tmp420_ = NULL; _tmp416_ = f; _tmp417_ = vala_symbol_get_name ((ValaSymbol*) _tmp416_); _tmp418_ = _tmp417_; _tmp419_ = dim; _tmp420_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, _tmp418_, _tmp419_); _g_free0 (length_cname); length_cname = _tmp420_; } _tmp421_ = instance_struct; _tmp422_ = len_type; _tmp423_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp422_); _tmp424_ = _tmp423_; _tmp425_ = length_cname; vala_ccode_struct_add_field (_tmp421_, _tmp424_, _tmp425_, NULL); _g_free0 (_tmp424_); _g_free0 (length_cname); } } } _tmp427_ = array_type; _tmp428_ = vala_array_type_get_rank (_tmp427_); _tmp429_ = _tmp428_; if (_tmp429_ == 1) { ValaField* _tmp430_; gboolean _tmp431_ = FALSE; _tmp430_ = f; _tmp431_ = vala_symbol_is_internal_symbol ((ValaSymbol*) _tmp430_); _tmp426_ = _tmp431_; } else { _tmp426_ = FALSE; } _tmp432_ = _tmp426_; if (_tmp432_) { ValaCCodeStruct* _tmp433_; ValaDataType* _tmp434_; gchar* _tmp435_ = NULL; gchar* _tmp436_; ValaField* _tmp437_; const gchar* _tmp438_; const gchar* _tmp439_; gchar* _tmp440_ = NULL; gchar* _tmp441_; _tmp433_ = instance_struct; _tmp434_ = len_type; _tmp435_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp434_); _tmp436_ = _tmp435_; _tmp437_ = f; _tmp438_ = vala_symbol_get_name ((ValaSymbol*) _tmp437_); _tmp439_ = _tmp438_; _tmp440_ = vala_ccode_base_module_get_array_size_cname ((ValaCCodeBaseModule*) self, _tmp439_); _tmp441_ = _tmp440_; vala_ccode_struct_add_field (_tmp433_, _tmp436_, _tmp441_, NULL); _g_free0 (_tmp441_); _g_free0 (_tmp436_); } _vala_code_node_unref0 (len_type); } _vala_code_node_unref0 (array_type); } else { ValaField* _tmp442_; ValaDataType* _tmp443_; ValaDataType* _tmp444_; _tmp442_ = f; _tmp443_ = vala_variable_get_variable_type ((ValaVariable*) _tmp442_); _tmp444_ = _tmp443_; if (VALA_IS_DELEGATE_TYPE (_tmp444_)) { ValaField* _tmp445_; ValaDataType* _tmp446_; ValaDataType* _tmp447_; ValaDelegateType* _tmp448_; ValaDelegateType* delegate_type; ValaDelegateType* _tmp449_; ValaDelegate* _tmp450_; ValaDelegate* _tmp451_; gboolean _tmp452_; gboolean _tmp453_; _tmp445_ = f; _tmp446_ = vala_variable_get_variable_type ((ValaVariable*) _tmp445_); _tmp447_ = _tmp446_; _tmp448_ = _vala_code_node_ref0 (VALA_DELEGATE_TYPE (_tmp447_)); delegate_type = _tmp448_; _tmp449_ = delegate_type; _tmp450_ = vala_delegate_type_get_delegate_symbol (_tmp449_); _tmp451_ = _tmp450_; _tmp452_ = vala_delegate_get_has_target (_tmp451_); _tmp453_ = _tmp452_; if (_tmp453_) { ValaCCodeStruct* _tmp454_; ValaField* _tmp455_; const gchar* _tmp456_; const gchar* _tmp457_; gchar* _tmp458_ = NULL; gchar* _tmp459_; ValaDelegateType* _tmp460_; gboolean _tmp461_; gboolean _tmp462_; _tmp454_ = instance_struct; _tmp455_ = f; _tmp456_ = vala_symbol_get_name ((ValaSymbol*) _tmp455_); _tmp457_ = _tmp456_; _tmp458_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, _tmp457_); _tmp459_ = _tmp458_; vala_ccode_struct_add_field (_tmp454_, "gpointer", _tmp459_, NULL); _g_free0 (_tmp459_); _tmp460_ = delegate_type; _tmp461_ = vala_data_type_get_value_owned ((ValaDataType*) _tmp460_); _tmp462_ = _tmp461_; if (_tmp462_) { ValaCCodeStruct* _tmp463_; ValaField* _tmp464_; const gchar* _tmp465_; const gchar* _tmp466_; gchar* _tmp467_ = NULL; gchar* _tmp468_; _tmp463_ = instance_struct; _tmp464_ = f; _tmp465_ = vala_symbol_get_name ((ValaSymbol*) _tmp464_); _tmp466_ = _tmp465_; _tmp467_ = vala_ccode_base_module_get_delegate_target_destroy_notify_cname ((ValaCCodeBaseModule*) self, _tmp466_); _tmp468_ = _tmp467_; vala_ccode_struct_add_field (_tmp463_, "GDestroyNotify", _tmp468_, NULL); _g_free0 (_tmp468_); } } _vala_code_node_unref0 (delegate_type); } } } else { ValaField* _tmp469_; ValaMemberBinding _tmp470_; ValaMemberBinding _tmp471_; _tmp469_ = f; _tmp470_ = vala_field_get_binding (_tmp469_); _tmp471_ = _tmp470_; if (_tmp471_ == VALA_MEMBER_BINDING_CLASS) { ValaCCodeStruct* _tmp472_; const gchar* _tmp473_; ValaField* _tmp474_; gchar* _tmp475_ = NULL; gchar* _tmp476_; _tmp472_ = type_struct; _tmp473_ = field_ctype; _tmp474_ = f; _tmp475_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp474_); _tmp476_ = _tmp475_; vala_ccode_struct_add_field (_tmp472_, _tmp473_, _tmp476_, NULL); _g_free0 (_tmp476_); } } } _g_free0 (field_ctype); _vala_code_node_unref0 (f); } _vala_iterable_unref0 (_f_list); } _tmp478_ = cl; _tmp479_ = vala_class_get_is_compact (_tmp478_); _tmp480_ = _tmp479_; if (!_tmp480_) { _tmp477_ = TRUE; } else { ValaClass* _tmp481_; ValaClass* _tmp482_; ValaClass* _tmp483_; _tmp481_ = cl; _tmp482_ = vala_class_get_base_class (_tmp481_); _tmp483_ = _tmp482_; _tmp477_ = _tmp483_ == NULL; } _tmp484_ = _tmp477_; if (_tmp484_) { ValaCCodeFile* _tmp485_; ValaCCodeStruct* _tmp486_; _tmp485_ = decl_space; _tmp486_ = instance_struct; vala_ccode_file_add_type_definition (_tmp485_, (ValaCCodeNode*) _tmp486_); } _tmp487_ = is_gtypeinstance; if (_tmp487_) { ValaCCodeFile* _tmp488_; ValaCCodeStruct* _tmp489_; _tmp488_ = decl_space; _tmp489_ = type_struct; vala_ccode_file_add_type_definition (_tmp488_, (ValaCCodeNode*) _tmp489_); } _vala_ccode_node_unref0 (type_struct); _vala_ccode_node_unref0 (instance_struct); } static void vala_gtype_module_real_generate_virtual_method_declaration (ValaGTypeModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeStruct* type_struct) { gboolean _tmp0_ = FALSE; ValaMethod* _tmp1_; gboolean _tmp2_; gboolean _tmp3_; gboolean _tmp7_; ValaMethod* _tmp8_; ValaDataType* _tmp9_; ValaDataType* _tmp10_; ValaDataType* _tmp11_; ValaDataType* creturn_type; ValaMethod* _tmp12_; ValaDataType* _tmp13_; ValaDataType* _tmp14_; gboolean _tmp15_ = FALSE; ValaMethod* _tmp17_; gchar* _tmp18_ = NULL; gchar* _tmp19_; ValaCCodeFunctionDeclarator* _tmp20_; ValaCCodeFunctionDeclarator* _tmp21_; ValaCCodeFunctionDeclarator* vdeclarator; GHashFunc _tmp22_; GEqualFunc _tmp23_; GEqualFunc _tmp24_; ValaHashMap* _tmp25_; ValaHashMap* cparam_map; ValaMethod* _tmp26_; ValaCCodeFile* _tmp27_; ValaHashMap* _tmp28_; ValaCCodeFunction* _tmp29_; ValaCCodeFunction* _tmp30_; ValaCCodeFunctionDeclarator* _tmp31_; ValaDataType* _tmp32_; gchar* _tmp33_ = NULL; gchar* _tmp34_; ValaCCodeDeclaration* _tmp35_; ValaCCodeDeclaration* _tmp36_; ValaCCodeDeclaration* vdecl; ValaCCodeDeclaration* _tmp37_; ValaCCodeFunctionDeclarator* _tmp38_; ValaCCodeStruct* _tmp39_; ValaCCodeDeclaration* _tmp40_; g_return_if_fail (m != NULL); g_return_if_fail (decl_space != NULL); g_return_if_fail (type_struct != NULL); _tmp1_ = m; _tmp2_ = vala_method_get_is_abstract (_tmp1_); _tmp3_ = _tmp2_; if (!_tmp3_) { ValaMethod* _tmp4_; gboolean _tmp5_; gboolean _tmp6_; _tmp4_ = m; _tmp5_ = vala_method_get_is_virtual (_tmp4_); _tmp6_ = _tmp5_; _tmp0_ = !_tmp6_; } else { _tmp0_ = FALSE; } _tmp7_ = _tmp0_; if (_tmp7_) { return; } _tmp8_ = m; _tmp9_ = vala_method_get_return_type (_tmp8_); _tmp10_ = _tmp9_; _tmp11_ = _vala_code_node_ref0 (_tmp10_); creturn_type = _tmp11_; _tmp12_ = m; _tmp13_ = vala_method_get_return_type (_tmp12_); _tmp14_ = _tmp13_; _tmp15_ = vala_data_type_is_real_non_null_struct_type (_tmp14_); if (_tmp15_) { ValaVoidType* _tmp16_; _tmp16_ = vala_void_type_new (NULL); _vala_code_node_unref0 (creturn_type); creturn_type = (ValaDataType*) _tmp16_; } _tmp17_ = m; _tmp18_ = vala_ccode_base_module_get_ccode_vfunc_name (_tmp17_); _tmp19_ = _tmp18_; _tmp20_ = vala_ccode_function_declarator_new (_tmp19_); _tmp21_ = _tmp20_; _g_free0 (_tmp19_); vdeclarator = _tmp21_; _tmp22_ = g_direct_hash; _tmp23_ = g_direct_equal; _tmp24_ = g_direct_equal; _tmp25_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, _tmp22_, _tmp23_, _tmp24_); cparam_map = _tmp25_; _tmp26_ = m; _tmp27_ = decl_space; _tmp28_ = cparam_map; _tmp29_ = vala_ccode_function_new ("fake", "void"); _tmp30_ = _tmp29_; _tmp31_ = vdeclarator; vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, _tmp26_, _tmp27_, (ValaMap*) _tmp28_, _tmp30_, _tmp31_, NULL, NULL, 3); _vala_ccode_node_unref0 (_tmp30_); _tmp32_ = creturn_type; _tmp33_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp32_); _tmp34_ = _tmp33_; _tmp35_ = vala_ccode_declaration_new (_tmp34_); _tmp36_ = _tmp35_; _g_free0 (_tmp34_); vdecl = _tmp36_; _tmp37_ = vdecl; _tmp38_ = vdeclarator; vala_ccode_declaration_add_declarator (_tmp37_, (ValaCCodeDeclarator*) _tmp38_); _tmp39_ = type_struct; _tmp40_ = vdecl; vala_ccode_struct_add_declaration (_tmp39_, _tmp40_); _vala_ccode_node_unref0 (vdecl); _vala_map_unref0 (cparam_map); _vala_ccode_node_unref0 (vdeclarator); _vala_code_node_unref0 (creturn_type); } void vala_gtype_module_generate_virtual_method_declaration (ValaGTypeModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeStruct* type_struct) { g_return_if_fail (self != NULL); VALA_GTYPE_MODULE_GET_CLASS (self)->generate_virtual_method_declaration (self, m, decl_space, type_struct); } static void vala_gtype_module_generate_class_private_declaration (ValaGTypeModule* self, ValaClass* cl, ValaCCodeFile* decl_space) { ValaCCodeFile* _tmp0_; ValaClass* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_; gchar* _tmp4_; gchar* _tmp5_; gboolean _tmp6_ = FALSE; gboolean _tmp7_; ValaClass* _tmp8_; gboolean _tmp9_; gboolean _tmp10_; gboolean is_gtypeinstance; gboolean has_class_locks; ValaClass* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; gchar* _tmp14_ = NULL; gchar* _tmp15_; ValaCCodeStruct* _tmp16_; ValaCCodeStruct* _tmp17_; ValaCCodeStruct* instance_priv_struct; ValaClass* _tmp18_; gchar* _tmp19_ = NULL; gchar* _tmp20_; gchar* _tmp21_ = NULL; gchar* _tmp22_; ValaCCodeStruct* _tmp23_; ValaCCodeStruct* _tmp24_; ValaCCodeStruct* type_priv_struct; gboolean _tmp25_; gboolean _tmp257_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); g_return_if_fail (decl_space != NULL); _tmp0_ = decl_space; _tmp1_ = cl; _tmp2_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp1_); _tmp3_ = _tmp2_; _tmp4_ = g_strconcat (_tmp3_, "Private", NULL); _tmp5_ = _tmp4_; _tmp6_ = vala_ccode_file_add_declaration (_tmp0_, _tmp5_); _tmp7_ = _tmp6_; _g_free0 (_tmp5_); _g_free0 (_tmp3_); if (_tmp7_) { return; } _tmp8_ = cl; _tmp9_ = vala_class_get_is_compact (_tmp8_); _tmp10_ = _tmp9_; is_gtypeinstance = !_tmp10_; has_class_locks = FALSE; _tmp11_ = cl; _tmp12_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = g_strdup_printf ("_%sPrivate", _tmp13_); _tmp15_ = _tmp14_; _tmp16_ = vala_ccode_struct_new (_tmp15_); _tmp17_ = _tmp16_; _g_free0 (_tmp15_); _g_free0 (_tmp13_); instance_priv_struct = _tmp17_; _tmp18_ = cl; _tmp19_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp18_); _tmp20_ = _tmp19_; _tmp21_ = g_strdup_printf ("_%sClassPrivate", _tmp20_); _tmp22_ = _tmp21_; _tmp23_ = vala_ccode_struct_new (_tmp22_); _tmp24_ = _tmp23_; _g_free0 (_tmp22_); _g_free0 (_tmp20_); type_priv_struct = _tmp24_; _tmp25_ = is_gtypeinstance; if (_tmp25_) { { ValaClass* _tmp26_; ValaList* _tmp27_ = NULL; ValaList* _type_param_list; ValaList* _tmp28_; gint _tmp29_; gint _tmp30_; gint _type_param_size; gint _type_param_index; _tmp26_ = cl; _tmp27_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) _tmp26_); _type_param_list = _tmp27_; _tmp28_ = _type_param_list; _tmp29_ = vala_collection_get_size ((ValaCollection*) _tmp28_); _tmp30_ = _tmp29_; _type_param_size = _tmp30_; _type_param_index = -1; while (TRUE) { gint _tmp31_; gint _tmp32_; gint _tmp33_; ValaList* _tmp34_; gint _tmp35_; gpointer _tmp36_ = NULL; ValaTypeParameter* type_param; gchar* func_name = NULL; ValaTypeParameter* _tmp37_; const gchar* _tmp38_; const gchar* _tmp39_; gchar* _tmp40_ = NULL; gchar* _tmp41_; gchar* _tmp42_ = NULL; ValaCCodeStruct* _tmp43_; const gchar* _tmp44_; ValaTypeParameter* _tmp45_; const gchar* _tmp46_; const gchar* _tmp47_; gchar* _tmp48_ = NULL; gchar* _tmp49_; gchar* _tmp50_ = NULL; ValaCCodeStruct* _tmp51_; const gchar* _tmp52_; ValaTypeParameter* _tmp53_; const gchar* _tmp54_; const gchar* _tmp55_; gchar* _tmp56_ = NULL; gchar* _tmp57_; gchar* _tmp58_ = NULL; ValaCCodeStruct* _tmp59_; const gchar* _tmp60_; _tmp31_ = _type_param_index; _type_param_index = _tmp31_ + 1; _tmp32_ = _type_param_index; _tmp33_ = _type_param_size; if (!(_tmp32_ < _tmp33_)) { break; } _tmp34_ = _type_param_list; _tmp35_ = _type_param_index; _tmp36_ = vala_list_get (_tmp34_, _tmp35_); type_param = (ValaTypeParameter*) _tmp36_; _tmp37_ = type_param; _tmp38_ = vala_symbol_get_name ((ValaSymbol*) _tmp37_); _tmp39_ = _tmp38_; _tmp40_ = g_utf8_strdown (_tmp39_, (gssize) (-1)); _tmp41_ = _tmp40_; _tmp42_ = g_strdup_printf ("%s_type", _tmp41_); _g_free0 (func_name); func_name = _tmp42_; _g_free0 (_tmp41_); _tmp43_ = instance_priv_struct; _tmp44_ = func_name; vala_ccode_struct_add_field (_tmp43_, "GType", _tmp44_, NULL); _tmp45_ = type_param; _tmp46_ = vala_symbol_get_name ((ValaSymbol*) _tmp45_); _tmp47_ = _tmp46_; _tmp48_ = g_utf8_strdown (_tmp47_, (gssize) (-1)); _tmp49_ = _tmp48_; _tmp50_ = g_strdup_printf ("%s_dup_func", _tmp49_); _g_free0 (func_name); func_name = _tmp50_; _g_free0 (_tmp49_); _tmp51_ = instance_priv_struct; _tmp52_ = func_name; vala_ccode_struct_add_field (_tmp51_, "GBoxedCopyFunc", _tmp52_, NULL); _tmp53_ = type_param; _tmp54_ = vala_symbol_get_name ((ValaSymbol*) _tmp53_); _tmp55_ = _tmp54_; _tmp56_ = g_utf8_strdown (_tmp55_, (gssize) (-1)); _tmp57_ = _tmp56_; _tmp58_ = g_strdup_printf ("%s_destroy_func", _tmp57_); _g_free0 (func_name); func_name = _tmp58_; _g_free0 (_tmp57_); _tmp59_ = instance_priv_struct; _tmp60_ = func_name; vala_ccode_struct_add_field (_tmp59_, "GDestroyNotify", _tmp60_, NULL); _g_free0 (func_name); _vala_code_node_unref0 (type_param); } _vala_iterable_unref0 (_type_param_list); } } { ValaClass* _tmp61_; ValaList* _tmp62_ = NULL; ValaList* _f_list; ValaList* _tmp63_; gint _tmp64_; gint _tmp65_; gint _f_size; gint _f_index; _tmp61_ = cl; _tmp62_ = vala_class_get_fields (_tmp61_); _f_list = _tmp62_; _tmp63_ = _f_list; _tmp64_ = vala_collection_get_size ((ValaCollection*) _tmp63_); _tmp65_ = _tmp64_; _f_size = _tmp65_; _f_index = -1; while (TRUE) { gint _tmp66_; gint _tmp67_; gint _tmp68_; ValaList* _tmp69_; gint _tmp70_; gpointer _tmp71_ = NULL; ValaField* f; ValaField* _tmp72_; ValaDataType* _tmp73_; ValaDataType* _tmp74_; gchar* _tmp75_ = NULL; gchar* field_ctype; ValaField* _tmp76_; gboolean _tmp77_; gboolean _tmp78_; ValaField* _tmp81_; ValaMemberBinding _tmp82_; ValaMemberBinding _tmp83_; _tmp66_ = _f_index; _f_index = _tmp66_ + 1; _tmp67_ = _f_index; _tmp68_ = _f_size; if (!(_tmp67_ < _tmp68_)) { break; } _tmp69_ = _f_list; _tmp70_ = _f_index; _tmp71_ = vala_list_get (_tmp69_, _tmp70_); f = (ValaField*) _tmp71_; _tmp72_ = f; _tmp73_ = vala_variable_get_variable_type ((ValaVariable*) _tmp72_); _tmp74_ = _tmp73_; _tmp75_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp74_); field_ctype = _tmp75_; _tmp76_ = f; _tmp77_ = vala_field_get_is_volatile (_tmp76_); _tmp78_ = _tmp77_; if (_tmp78_) { const gchar* _tmp79_; gchar* _tmp80_; _tmp79_ = field_ctype; _tmp80_ = g_strconcat ("volatile ", _tmp79_, NULL); _g_free0 (field_ctype); field_ctype = _tmp80_; } _tmp81_ = f; _tmp82_ = vala_field_get_binding (_tmp81_); _tmp83_ = _tmp82_; if (_tmp83_ == VALA_MEMBER_BINDING_INSTANCE) { ValaField* _tmp84_; ValaSymbolAccessibility _tmp85_; ValaSymbolAccessibility _tmp86_; ValaField* _tmp183_; gboolean _tmp184_ = FALSE; _tmp84_ = f; _tmp85_ = vala_symbol_get_access ((ValaSymbol*) _tmp84_); _tmp86_ = _tmp85_; if (_tmp86_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaField* _tmp87_; ValaDataType* _tmp88_; ValaDataType* _tmp89_; ValaCCodeFile* _tmp90_; ValaCCodeStruct* _tmp91_; const gchar* _tmp92_; ValaField* _tmp93_; gchar* _tmp94_ = NULL; gchar* _tmp95_; ValaField* _tmp96_; ValaDataType* _tmp97_; ValaDataType* _tmp98_; gchar* _tmp99_ = NULL; gchar* _tmp100_; gboolean _tmp101_ = FALSE; ValaField* _tmp102_; ValaDataType* _tmp103_; ValaDataType* _tmp104_; gboolean _tmp107_; _tmp87_ = f; _tmp88_ = vala_variable_get_variable_type ((ValaVariable*) _tmp87_); _tmp89_ = _tmp88_; _tmp90_ = decl_space; vala_ccode_base_module_generate_type_declaration ((ValaCCodeBaseModule*) self, _tmp89_, _tmp90_); _tmp91_ = instance_priv_struct; _tmp92_ = field_ctype; _tmp93_ = f; _tmp94_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp93_); _tmp95_ = _tmp94_; _tmp96_ = f; _tmp97_ = vala_variable_get_variable_type ((ValaVariable*) _tmp96_); _tmp98_ = _tmp97_; _tmp99_ = vala_ccode_base_module_get_ccode_declarator_suffix (_tmp98_); _tmp100_ = _tmp99_; vala_ccode_struct_add_field (_tmp91_, _tmp92_, _tmp95_, _tmp100_); _g_free0 (_tmp100_); _g_free0 (_tmp95_); _tmp102_ = f; _tmp103_ = vala_variable_get_variable_type ((ValaVariable*) _tmp102_); _tmp104_ = _tmp103_; if (VALA_IS_ARRAY_TYPE (_tmp104_)) { ValaField* _tmp105_; gboolean _tmp106_ = FALSE; _tmp105_ = f; _tmp106_ = vala_ccode_base_module_get_ccode_array_length ((ValaCodeNode*) _tmp105_); _tmp101_ = _tmp106_; } else { _tmp101_ = FALSE; } _tmp107_ = _tmp101_; if (_tmp107_) { ValaField* _tmp108_; ValaDataType* _tmp109_; ValaDataType* _tmp110_; ValaArrayType* _tmp111_; ValaArrayType* array_type; ValaDataType* _tmp112_; ValaDataType* _tmp113_ = NULL; ValaDataType* len_type; ValaArrayType* _tmp114_; gboolean _tmp115_; gboolean _tmp116_; _tmp108_ = f; _tmp109_ = vala_variable_get_variable_type ((ValaVariable*) _tmp108_); _tmp110_ = _tmp109_; _tmp111_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp110_)); array_type = _tmp111_; _tmp112_ = ((ValaCCodeBaseModule*) self)->int_type; _tmp113_ = vala_data_type_copy (_tmp112_); len_type = _tmp113_; _tmp114_ = array_type; _tmp115_ = vala_array_type_get_fixed_length (_tmp114_); _tmp116_ = _tmp115_; if (!_tmp116_) { gboolean _tmp140_ = FALSE; ValaArrayType* _tmp141_; gint _tmp142_; gint _tmp143_; gboolean _tmp146_; { gint dim; dim = 1; { gboolean _tmp117_; _tmp117_ = TRUE; while (TRUE) { gboolean _tmp118_; gint _tmp120_; ValaArrayType* _tmp121_; gint _tmp122_; gint _tmp123_; gchar* length_cname = NULL; ValaField* _tmp124_; gchar* _tmp125_ = NULL; gchar* _tmp126_; gboolean _tmp127_; ValaCCodeStruct* _tmp135_; ValaDataType* _tmp136_; gchar* _tmp137_ = NULL; gchar* _tmp138_; const gchar* _tmp139_; _tmp118_ = _tmp117_; if (!_tmp118_) { gint _tmp119_; _tmp119_ = dim; dim = _tmp119_ + 1; } _tmp117_ = FALSE; _tmp120_ = dim; _tmp121_ = array_type; _tmp122_ = vala_array_type_get_rank (_tmp121_); _tmp123_ = _tmp122_; if (!(_tmp120_ <= _tmp123_)) { break; } _tmp124_ = f; _tmp125_ = vala_ccode_base_module_get_ccode_array_length_name ((ValaCodeNode*) _tmp124_); _tmp126_ = _tmp125_; _tmp127_ = _tmp126_ != NULL; _g_free0 (_tmp126_); if (_tmp127_) { ValaField* _tmp128_; gchar* _tmp129_ = NULL; _tmp128_ = f; _tmp129_ = vala_ccode_base_module_get_ccode_array_length_name ((ValaCodeNode*) _tmp128_); _g_free0 (length_cname); length_cname = _tmp129_; } else { ValaField* _tmp130_; const gchar* _tmp131_; const gchar* _tmp132_; gint _tmp133_; gchar* _tmp134_ = NULL; _tmp130_ = f; _tmp131_ = vala_symbol_get_name ((ValaSymbol*) _tmp130_); _tmp132_ = _tmp131_; _tmp133_ = dim; _tmp134_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, _tmp132_, _tmp133_); _g_free0 (length_cname); length_cname = _tmp134_; } _tmp135_ = instance_priv_struct; _tmp136_ = len_type; _tmp137_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp136_); _tmp138_ = _tmp137_; _tmp139_ = length_cname; vala_ccode_struct_add_field (_tmp135_, _tmp138_, _tmp139_, NULL); _g_free0 (_tmp138_); _g_free0 (length_cname); } } } _tmp141_ = array_type; _tmp142_ = vala_array_type_get_rank (_tmp141_); _tmp143_ = _tmp142_; if (_tmp143_ == 1) { ValaField* _tmp144_; gboolean _tmp145_ = FALSE; _tmp144_ = f; _tmp145_ = vala_symbol_is_internal_symbol ((ValaSymbol*) _tmp144_); _tmp140_ = _tmp145_; } else { _tmp140_ = FALSE; } _tmp146_ = _tmp140_; if (_tmp146_) { ValaCCodeStruct* _tmp147_; ValaDataType* _tmp148_; gchar* _tmp149_ = NULL; gchar* _tmp150_; ValaField* _tmp151_; const gchar* _tmp152_; const gchar* _tmp153_; gchar* _tmp154_ = NULL; gchar* _tmp155_; _tmp147_ = instance_priv_struct; _tmp148_ = len_type; _tmp149_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp148_); _tmp150_ = _tmp149_; _tmp151_ = f; _tmp152_ = vala_symbol_get_name ((ValaSymbol*) _tmp151_); _tmp153_ = _tmp152_; _tmp154_ = vala_ccode_base_module_get_array_size_cname ((ValaCCodeBaseModule*) self, _tmp153_); _tmp155_ = _tmp154_; vala_ccode_struct_add_field (_tmp147_, _tmp150_, _tmp155_, NULL); _g_free0 (_tmp155_); _g_free0 (_tmp150_); } } _vala_code_node_unref0 (len_type); _vala_code_node_unref0 (array_type); } else { ValaField* _tmp156_; ValaDataType* _tmp157_; ValaDataType* _tmp158_; _tmp156_ = f; _tmp157_ = vala_variable_get_variable_type ((ValaVariable*) _tmp156_); _tmp158_ = _tmp157_; if (VALA_IS_DELEGATE_TYPE (_tmp158_)) { ValaField* _tmp159_; ValaDataType* _tmp160_; ValaDataType* _tmp161_; ValaDelegateType* _tmp162_; ValaDelegateType* delegate_type; ValaDelegateType* _tmp163_; ValaDelegate* _tmp164_; ValaDelegate* _tmp165_; gboolean _tmp166_; gboolean _tmp167_; _tmp159_ = f; _tmp160_ = vala_variable_get_variable_type ((ValaVariable*) _tmp159_); _tmp161_ = _tmp160_; _tmp162_ = _vala_code_node_ref0 (VALA_DELEGATE_TYPE (_tmp161_)); delegate_type = _tmp162_; _tmp163_ = delegate_type; _tmp164_ = vala_delegate_type_get_delegate_symbol (_tmp163_); _tmp165_ = _tmp164_; _tmp166_ = vala_delegate_get_has_target (_tmp165_); _tmp167_ = _tmp166_; if (_tmp167_) { ValaCCodeStruct* _tmp168_; ValaField* _tmp169_; const gchar* _tmp170_; const gchar* _tmp171_; gchar* _tmp172_ = NULL; gchar* _tmp173_; ValaDelegateType* _tmp174_; gboolean _tmp175_; gboolean _tmp176_; _tmp168_ = instance_priv_struct; _tmp169_ = f; _tmp170_ = vala_symbol_get_name ((ValaSymbol*) _tmp169_); _tmp171_ = _tmp170_; _tmp172_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, _tmp171_); _tmp173_ = _tmp172_; vala_ccode_struct_add_field (_tmp168_, "gpointer", _tmp173_, NULL); _g_free0 (_tmp173_); _tmp174_ = delegate_type; _tmp175_ = vala_data_type_get_value_owned ((ValaDataType*) _tmp174_); _tmp176_ = _tmp175_; if (_tmp176_) { ValaCCodeStruct* _tmp177_; ValaField* _tmp178_; const gchar* _tmp179_; const gchar* _tmp180_; gchar* _tmp181_ = NULL; gchar* _tmp182_; _tmp177_ = instance_priv_struct; _tmp178_ = f; _tmp179_ = vala_symbol_get_name ((ValaSymbol*) _tmp178_); _tmp180_ = _tmp179_; _tmp181_ = vala_ccode_base_module_get_delegate_target_destroy_notify_cname ((ValaCCodeBaseModule*) self, _tmp180_); _tmp182_ = _tmp181_; vala_ccode_struct_add_field (_tmp177_, "GDestroyNotify", _tmp182_, NULL); _g_free0 (_tmp182_); } } _vala_code_node_unref0 (delegate_type); } } } _tmp183_ = f; _tmp184_ = vala_lockable_get_lock_used ((ValaLockable*) _tmp183_); if (_tmp184_) { ValaClass* _tmp185_; ValaCCodeStruct* _tmp186_; ValaStruct* _tmp187_; gchar* _tmp188_ = NULL; gchar* _tmp189_; ValaField* _tmp190_; const gchar* _tmp191_; const gchar* _tmp192_; gchar* _tmp193_ = NULL; gchar* _tmp194_; _tmp185_ = cl; vala_class_set_has_private_fields (_tmp185_, TRUE); _tmp186_ = instance_priv_struct; _tmp187_ = ((ValaCCodeBaseModule*) self)->mutex_type; _tmp188_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp187_); _tmp189_ = _tmp188_; _tmp190_ = f; _tmp191_ = vala_symbol_get_name ((ValaSymbol*) _tmp190_); _tmp192_ = _tmp191_; _tmp193_ = vala_ccode_base_module_get_symbol_lock_name ((ValaCCodeBaseModule*) self, _tmp192_); _tmp194_ = _tmp193_; vala_ccode_struct_add_field (_tmp186_, _tmp189_, _tmp194_, NULL); _g_free0 (_tmp194_); _g_free0 (_tmp189_); } } else { ValaField* _tmp195_; ValaMemberBinding _tmp196_; ValaMemberBinding _tmp197_; _tmp195_ = f; _tmp196_ = vala_field_get_binding (_tmp195_); _tmp197_ = _tmp196_; if (_tmp197_ == VALA_MEMBER_BINDING_CLASS) { ValaField* _tmp198_; ValaSymbolAccessibility _tmp199_; ValaSymbolAccessibility _tmp200_; ValaField* _tmp206_; gboolean _tmp207_ = FALSE; _tmp198_ = f; _tmp199_ = vala_symbol_get_access ((ValaSymbol*) _tmp198_); _tmp200_ = _tmp199_; if (_tmp200_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeStruct* _tmp201_; const gchar* _tmp202_; ValaField* _tmp203_; gchar* _tmp204_ = NULL; gchar* _tmp205_; _tmp201_ = type_priv_struct; _tmp202_ = field_ctype; _tmp203_ = f; _tmp204_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp203_); _tmp205_ = _tmp204_; vala_ccode_struct_add_field (_tmp201_, _tmp202_, _tmp205_, NULL); _g_free0 (_tmp205_); } _tmp206_ = f; _tmp207_ = vala_lockable_get_lock_used ((ValaLockable*) _tmp206_); if (_tmp207_) { ValaCCodeStruct* _tmp208_; ValaStruct* _tmp209_; gchar* _tmp210_ = NULL; gchar* _tmp211_; ValaField* _tmp212_; gchar* _tmp213_ = NULL; gchar* _tmp214_; gchar* _tmp215_ = NULL; gchar* _tmp216_; has_class_locks = TRUE; _tmp208_ = type_priv_struct; _tmp209_ = ((ValaCCodeBaseModule*) self)->mutex_type; _tmp210_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp209_); _tmp211_ = _tmp210_; _tmp212_ = f; _tmp213_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp212_); _tmp214_ = _tmp213_; _tmp215_ = vala_ccode_base_module_get_symbol_lock_name ((ValaCCodeBaseModule*) self, _tmp214_); _tmp216_ = _tmp215_; vala_ccode_struct_add_field (_tmp208_, _tmp211_, _tmp216_, NULL); _g_free0 (_tmp216_); _g_free0 (_tmp214_); _g_free0 (_tmp211_); } } } _g_free0 (field_ctype); _vala_code_node_unref0 (f); } _vala_iterable_unref0 (_f_list); } { ValaClass* _tmp217_; ValaList* _tmp218_ = NULL; ValaList* _prop_list; ValaList* _tmp219_; gint _tmp220_; gint _tmp221_; gint _prop_size; gint _prop_index; _tmp217_ = cl; _tmp218_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) _tmp217_); _prop_list = _tmp218_; _tmp219_ = _prop_list; _tmp220_ = vala_collection_get_size ((ValaCollection*) _tmp219_); _tmp221_ = _tmp220_; _prop_size = _tmp221_; _prop_index = -1; while (TRUE) { gint _tmp222_; gint _tmp223_; gint _tmp224_; ValaList* _tmp225_; gint _tmp226_; gpointer _tmp227_ = NULL; ValaProperty* prop; ValaProperty* _tmp228_; ValaMemberBinding _tmp229_; ValaMemberBinding _tmp230_; _tmp222_ = _prop_index; _prop_index = _tmp222_ + 1; _tmp223_ = _prop_index; _tmp224_ = _prop_size; if (!(_tmp223_ < _tmp224_)) { break; } _tmp225_ = _prop_list; _tmp226_ = _prop_index; _tmp227_ = vala_list_get (_tmp225_, _tmp226_); prop = (ValaProperty*) _tmp227_; _tmp228_ = prop; _tmp229_ = vala_property_get_binding (_tmp228_); _tmp230_ = _tmp229_; if (_tmp230_ == VALA_MEMBER_BINDING_INSTANCE) { ValaProperty* _tmp231_; gboolean _tmp232_ = FALSE; _tmp231_ = prop; _tmp232_ = vala_lockable_get_lock_used ((ValaLockable*) _tmp231_); if (_tmp232_) { ValaClass* _tmp233_; ValaCCodeStruct* _tmp234_; ValaStruct* _tmp235_; gchar* _tmp236_ = NULL; gchar* _tmp237_; ValaProperty* _tmp238_; const gchar* _tmp239_; const gchar* _tmp240_; gchar* _tmp241_ = NULL; gchar* _tmp242_; _tmp233_ = cl; vala_class_set_has_private_fields (_tmp233_, TRUE); _tmp234_ = instance_priv_struct; _tmp235_ = ((ValaCCodeBaseModule*) self)->mutex_type; _tmp236_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp235_); _tmp237_ = _tmp236_; _tmp238_ = prop; _tmp239_ = vala_symbol_get_name ((ValaSymbol*) _tmp238_); _tmp240_ = _tmp239_; _tmp241_ = vala_ccode_base_module_get_symbol_lock_name ((ValaCCodeBaseModule*) self, _tmp240_); _tmp242_ = _tmp241_; vala_ccode_struct_add_field (_tmp234_, _tmp237_, _tmp242_, NULL); _g_free0 (_tmp242_); _g_free0 (_tmp237_); } } else { ValaProperty* _tmp243_; ValaMemberBinding _tmp244_; ValaMemberBinding _tmp245_; _tmp243_ = prop; _tmp244_ = vala_property_get_binding (_tmp243_); _tmp245_ = _tmp244_; if (_tmp245_ == VALA_MEMBER_BINDING_CLASS) { ValaProperty* _tmp246_; gboolean _tmp247_ = FALSE; _tmp246_ = prop; _tmp247_ = vala_lockable_get_lock_used ((ValaLockable*) _tmp246_); if (_tmp247_) { ValaCCodeStruct* _tmp248_; ValaStruct* _tmp249_; gchar* _tmp250_ = NULL; gchar* _tmp251_; ValaProperty* _tmp252_; const gchar* _tmp253_; const gchar* _tmp254_; gchar* _tmp255_ = NULL; gchar* _tmp256_; has_class_locks = TRUE; _tmp248_ = type_priv_struct; _tmp249_ = ((ValaCCodeBaseModule*) self)->mutex_type; _tmp250_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp249_); _tmp251_ = _tmp250_; _tmp252_ = prop; _tmp253_ = vala_symbol_get_name ((ValaSymbol*) _tmp252_); _tmp254_ = _tmp253_; _tmp255_ = vala_ccode_base_module_get_symbol_lock_name ((ValaCCodeBaseModule*) self, _tmp254_); _tmp256_ = _tmp255_; vala_ccode_struct_add_field (_tmp248_, _tmp251_, _tmp256_, NULL); _g_free0 (_tmp256_); _g_free0 (_tmp251_); } } } _vala_code_node_unref0 (prop); } _vala_iterable_unref0 (_prop_list); } _tmp257_ = is_gtypeinstance; if (_tmp257_) { gboolean _tmp258_ = FALSE; ValaClass* _tmp259_; gboolean _tmp260_; gboolean _tmp261_; gboolean _tmp263_; gboolean _tmp296_ = FALSE; ValaClass* _tmp297_; gboolean _tmp298_; gboolean _tmp299_; gboolean _tmp305_; gboolean _tmp325_ = FALSE; ValaClass* _tmp326_; gboolean _tmp327_; gboolean _tmp328_; gboolean _tmp330_; ValaCCodeFile* _tmp359_; ValaCCodeEnum* _tmp360_; _tmp259_ = cl; _tmp260_ = vala_class_get_has_class_private_fields (_tmp259_); _tmp261_ = _tmp260_; if (_tmp261_) { _tmp258_ = TRUE; } else { gboolean _tmp262_; _tmp262_ = has_class_locks; _tmp258_ = _tmp262_; } _tmp263_ = _tmp258_; if (_tmp263_) { ValaCCodeFile* _tmp264_; ValaCCodeStruct* _tmp265_; const gchar* _tmp266_; const gchar* _tmp267_; gchar* _tmp268_ = NULL; gchar* _tmp269_; ValaClass* _tmp270_; gchar* _tmp271_ = NULL; gchar* _tmp272_; gchar* _tmp273_ = NULL; gchar* _tmp274_; ValaCCodeVariableDeclarator* _tmp275_; ValaCCodeVariableDeclarator* _tmp276_; ValaCCodeTypeDefinition* _tmp277_; ValaCCodeTypeDefinition* _tmp278_; ValaCodeContext* _tmp279_; ValaCodeContext* _tmp280_; gboolean _tmp281_ = FALSE; _tmp264_ = decl_space; _tmp265_ = type_priv_struct; _tmp266_ = vala_ccode_struct_get_name (_tmp265_); _tmp267_ = _tmp266_; _tmp268_ = g_strdup_printf ("struct %s", _tmp267_); _tmp269_ = _tmp268_; _tmp270_ = cl; _tmp271_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp270_); _tmp272_ = _tmp271_; _tmp273_ = g_strdup_printf ("%sClassPrivate", _tmp272_); _tmp274_ = _tmp273_; _tmp275_ = vala_ccode_variable_declarator_new (_tmp274_, NULL, NULL); _tmp276_ = _tmp275_; _tmp277_ = vala_ccode_type_definition_new (_tmp269_, (ValaCCodeDeclarator*) _tmp276_); _tmp278_ = _tmp277_; vala_ccode_file_add_type_declaration (_tmp264_, (ValaCCodeNode*) _tmp278_); _vala_ccode_node_unref0 (_tmp278_); _vala_ccode_node_unref0 (_tmp276_); _g_free0 (_tmp274_); _g_free0 (_tmp272_); _g_free0 (_tmp269_); _tmp279_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp280_ = _tmp279_; _tmp281_ = vala_code_context_require_glib_version (_tmp280_, 2, 24); if (!_tmp281_) { ValaCCodeDeclaration* _tmp282_; ValaCCodeDeclaration* _cdecl_; ValaCCodeDeclaration* _tmp283_; ValaClass* _tmp284_; gchar* _tmp285_ = NULL; gchar* _tmp286_; gchar* _tmp287_ = NULL; gchar* _tmp288_; ValaCCodeConstant* _tmp289_; ValaCCodeConstant* _tmp290_; ValaCCodeVariableDeclarator* _tmp291_; ValaCCodeVariableDeclarator* _tmp292_; ValaCCodeDeclaration* _tmp293_; ValaCCodeFile* _tmp294_; ValaCCodeDeclaration* _tmp295_; _tmp282_ = vala_ccode_declaration_new ("GQuark"); _cdecl_ = _tmp282_; _tmp283_ = _cdecl_; _tmp284_ = cl; _tmp285_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp284_, NULL); _tmp286_ = _tmp285_; _tmp287_ = g_strdup_printf ("_vala_%s_class_private_quark", _tmp286_); _tmp288_ = _tmp287_; _tmp289_ = vala_ccode_constant_new ("0"); _tmp290_ = _tmp289_; _tmp291_ = vala_ccode_variable_declarator_new (_tmp288_, (ValaCCodeExpression*) _tmp290_, NULL); _tmp292_ = _tmp291_; vala_ccode_declaration_add_declarator (_tmp283_, (ValaCCodeDeclarator*) _tmp292_); _vala_ccode_node_unref0 (_tmp292_); _vala_ccode_node_unref0 (_tmp290_); _g_free0 (_tmp288_); _g_free0 (_tmp286_); _tmp293_ = _cdecl_; vala_ccode_declaration_set_modifiers (_tmp293_, VALA_CCODE_MODIFIERS_STATIC); _tmp294_ = decl_space; _tmp295_ = _cdecl_; vala_ccode_file_add_type_declaration (_tmp294_, (ValaCCodeNode*) _tmp295_); _vala_ccode_node_unref0 (_cdecl_); } } _tmp297_ = cl; _tmp298_ = vala_class_get_has_private_fields (_tmp297_); _tmp299_ = _tmp298_; if (_tmp299_) { _tmp296_ = TRUE; } else { ValaClass* _tmp300_; ValaList* _tmp301_ = NULL; ValaList* _tmp302_; gint _tmp303_; gint _tmp304_; _tmp300_ = cl; _tmp301_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) _tmp300_); _tmp302_ = _tmp301_; _tmp303_ = vala_collection_get_size ((ValaCollection*) _tmp302_); _tmp304_ = _tmp303_; _tmp296_ = _tmp304_ > 0; _vala_iterable_unref0 (_tmp302_); } _tmp305_ = _tmp296_; if (_tmp305_) { ValaCCodeFile* _tmp306_; ValaCCodeStruct* _tmp307_; ValaClass* _tmp308_; gchar* _tmp309_ = NULL; gchar* _tmp310_; ValaClass* _tmp311_; gchar* _tmp312_ = NULL; gchar* _tmp313_; gchar* _tmp314_ = NULL; gchar* _tmp315_; gchar* macro; ValaCCodeFile* _tmp316_; ValaClass* _tmp317_; gchar* _tmp318_ = NULL; gchar* _tmp319_; gchar* _tmp320_ = NULL; gchar* _tmp321_; const gchar* _tmp322_; ValaCCodeMacroReplacement* _tmp323_; ValaCCodeMacroReplacement* _tmp324_; _tmp306_ = decl_space; _tmp307_ = instance_priv_struct; vala_ccode_file_add_type_definition (_tmp306_, (ValaCCodeNode*) _tmp307_); _tmp308_ = cl; _tmp309_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp308_); _tmp310_ = _tmp309_; _tmp311_ = cl; _tmp312_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp311_); _tmp313_ = _tmp312_; _tmp314_ = g_strdup_printf ("(G_TYPE_INSTANCE_GET_PRIVATE ((o), %s, %sPrivate))", _tmp310_, _tmp313_); _tmp315_ = _tmp314_; _g_free0 (_tmp313_); _g_free0 (_tmp310_); macro = _tmp315_; _tmp316_ = decl_space; _tmp317_ = cl; _tmp318_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp317_, NULL); _tmp319_ = _tmp318_; _tmp320_ = g_strdup_printf ("%s_GET_PRIVATE(o)", _tmp319_); _tmp321_ = _tmp320_; _tmp322_ = macro; _tmp323_ = vala_ccode_macro_replacement_new (_tmp321_, _tmp322_); _tmp324_ = _tmp323_; vala_ccode_file_add_type_member_declaration (_tmp316_, (ValaCCodeNode*) _tmp324_); _vala_ccode_node_unref0 (_tmp324_); _g_free0 (_tmp321_); _g_free0 (_tmp319_); _g_free0 (macro); } _tmp326_ = cl; _tmp327_ = vala_class_get_has_class_private_fields (_tmp326_); _tmp328_ = _tmp327_; if (_tmp328_) { _tmp325_ = TRUE; } else { gboolean _tmp329_; _tmp329_ = has_class_locks; _tmp325_ = _tmp329_; } _tmp330_ = _tmp325_; if (_tmp330_) { ValaCCodeFile* _tmp331_; ValaCCodeStruct* _tmp332_; gchar* macro = NULL; ValaCodeContext* _tmp333_; ValaCodeContext* _tmp334_; gboolean _tmp335_ = FALSE; ValaCCodeFile* _tmp350_; ValaClass* _tmp351_; gchar* _tmp352_ = NULL; gchar* _tmp353_; gchar* _tmp354_ = NULL; gchar* _tmp355_; const gchar* _tmp356_; ValaCCodeMacroReplacement* _tmp357_; ValaCCodeMacroReplacement* _tmp358_; _tmp331_ = decl_space; _tmp332_ = type_priv_struct; vala_ccode_file_add_type_member_declaration (_tmp331_, (ValaCCodeNode*) _tmp332_); _tmp333_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp334_ = _tmp333_; _tmp335_ = vala_code_context_require_glib_version (_tmp334_, 2, 24); if (_tmp335_) { ValaClass* _tmp336_; gchar* _tmp337_ = NULL; gchar* _tmp338_; ValaClass* _tmp339_; gchar* _tmp340_ = NULL; gchar* _tmp341_; gchar* _tmp342_ = NULL; _tmp336_ = cl; _tmp337_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp336_); _tmp338_ = _tmp337_; _tmp339_ = cl; _tmp340_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp339_); _tmp341_ = _tmp340_; _tmp342_ = g_strdup_printf ("(G_TYPE_CLASS_GET_PRIVATE (klass, %s, %sClassPrivate))", _tmp338_, _tmp341_); _g_free0 (macro); macro = _tmp342_; _g_free0 (_tmp341_); _g_free0 (_tmp338_); } else { ValaClass* _tmp343_; gchar* _tmp344_ = NULL; gchar* _tmp345_; ValaClass* _tmp346_; gchar* _tmp347_ = NULL; gchar* _tmp348_; gchar* _tmp349_ = NULL; _tmp343_ = cl; _tmp344_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp343_); _tmp345_ = _tmp344_; _tmp346_ = cl; _tmp347_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp346_, NULL); _tmp348_ = _tmp347_; _tmp349_ = g_strdup_printf ("((%sClassPrivate *) g_type_get_qdata (G_TYPE_FROM_CLASS (klass), _vala" \ "_%s_class_private_quark))", _tmp345_, _tmp348_); _g_free0 (macro); macro = _tmp349_; _g_free0 (_tmp348_); _g_free0 (_tmp345_); } _tmp350_ = decl_space; _tmp351_ = cl; _tmp352_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp351_, NULL); _tmp353_ = _tmp352_; _tmp354_ = g_strdup_printf ("%s_GET_CLASS_PRIVATE(klass)", _tmp353_); _tmp355_ = _tmp354_; _tmp356_ = macro; _tmp357_ = vala_ccode_macro_replacement_new (_tmp355_, _tmp356_); _tmp358_ = _tmp357_; vala_ccode_file_add_type_member_declaration (_tmp350_, (ValaCCodeNode*) _tmp358_); _vala_ccode_node_unref0 (_tmp358_); _g_free0 (_tmp355_); _g_free0 (_tmp353_); _g_free0 (macro); } _tmp359_ = decl_space; _tmp360_ = ((ValaCCodeBaseModule*) self)->prop_enum; vala_ccode_file_add_type_member_declaration (_tmp359_, (ValaCCodeNode*) _tmp360_); } else { ValaClass* _tmp361_; gboolean _tmp362_; gboolean _tmp363_; _tmp361_ = cl; _tmp362_ = vala_class_get_has_private_fields (_tmp361_); _tmp363_ = _tmp362_; if (_tmp363_) { ValaClass* _tmp364_; ValaSourceReference* _tmp365_; ValaSourceReference* _tmp366_; _tmp364_ = cl; _tmp365_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp364_); _tmp366_ = _tmp365_; vala_report_error (_tmp366_, "Private fields not supported in compact classes"); } } _vala_ccode_node_unref0 (type_priv_struct); _vala_ccode_node_unref0 (instance_priv_struct); } static gpointer _vala_ccode_node_ref0 (gpointer self) { return self ? vala_ccode_node_ref (self) : NULL; } static gpointer _vala_ccode_base_module_emit_context_ref0 (gpointer self) { return self ? vala_ccode_base_module_emit_context_ref (self) : NULL; } static void vala_gtype_module_real_visit_class (ValaCodeVisitor* base, ValaClass* cl) { ValaGTypeModule * self; ValaClass* _tmp0_; ValaCCodeBaseModuleEmitContext* _tmp1_; ValaCCodeBaseModuleEmitContext* _tmp2_; ValaClass* _tmp3_; ValaSourceReference* _tmp4_; ValaSourceReference* _tmp5_; ValaCCodeStruct* _tmp6_; ValaCCodeStruct* _tmp7_; ValaCCodeStruct* old_param_spec_struct; ValaCCodeEnum* _tmp8_; ValaCCodeEnum* _tmp9_; ValaCCodeEnum* old_prop_enum; ValaCCodeBaseModuleEmitContext* _tmp10_; ValaCCodeBaseModuleEmitContext* _tmp11_; ValaCCodeBaseModuleEmitContext* old_class_init_context; ValaCCodeBaseModuleEmitContext* _tmp12_; ValaCCodeBaseModuleEmitContext* _tmp13_; ValaCCodeBaseModuleEmitContext* old_base_init_context; ValaCCodeBaseModuleEmitContext* _tmp14_; ValaCCodeBaseModuleEmitContext* _tmp15_; ValaCCodeBaseModuleEmitContext* old_class_finalize_context; ValaCCodeBaseModuleEmitContext* _tmp16_; ValaCCodeBaseModuleEmitContext* _tmp17_; ValaCCodeBaseModuleEmitContext* old_base_finalize_context; ValaCCodeBaseModuleEmitContext* _tmp18_; ValaCCodeBaseModuleEmitContext* _tmp19_; ValaCCodeBaseModuleEmitContext* old_instance_init_context; ValaCCodeBaseModuleEmitContext* _tmp20_; ValaCCodeBaseModuleEmitContext* _tmp21_; ValaCCodeBaseModuleEmitContext* old_instance_finalize_context; ValaClass* _tmp22_; gboolean _tmp23_; gboolean _tmp24_; gboolean is_gtypeinstance; gboolean _tmp25_ = FALSE; gboolean _tmp26_; gboolean _tmp30_; gboolean is_fundamental; ValaClass* _tmp31_; gchar* _tmp32_ = NULL; gchar* _tmp33_; gint _tmp34_; gint _tmp35_; gboolean _tmp36_; ValaCCodeEnum* _tmp46_; ValaCCodeEnum* _tmp47_; ValaClass* _tmp48_; gchar* _tmp49_ = NULL; gchar* _tmp50_; gchar* _tmp51_ = NULL; gchar* _tmp52_; ValaCCodeEnumValue* _tmp53_; ValaCCodeEnumValue* _tmp54_; ValaClass* _tmp55_; ValaCCodeBaseModuleEmitContext* _tmp56_; ValaClass* _tmp57_; ValaCCodeBaseModuleEmitContext* _tmp58_; ValaClass* _tmp59_; ValaCCodeBaseModuleEmitContext* _tmp60_; ValaClass* _tmp61_; ValaCCodeBaseModuleEmitContext* _tmp62_; ValaClass* _tmp63_; ValaCCodeBaseModuleEmitContext* _tmp64_; ValaClass* _tmp65_; ValaCCodeBaseModuleEmitContext* _tmp66_; ValaClass* _tmp67_; ValaCCodeFile* _tmp68_; ValaClass* _tmp69_; ValaCCodeFile* _tmp70_; ValaClass* _tmp71_; gboolean _tmp72_ = FALSE; ValaClass* _tmp75_; gboolean _tmp76_ = FALSE; gboolean _tmp79_; ValaClass* _tmp91_; gboolean _tmp92_; ValaCCodeStruct* _tmp387_; ValaCCodeStruct* _tmp388_; ValaCCodeEnum* _tmp389_; ValaCCodeEnum* _tmp390_; ValaCCodeBaseModuleEmitContext* _tmp391_; ValaCCodeBaseModuleEmitContext* _tmp392_; ValaCCodeBaseModuleEmitContext* _tmp393_; ValaCCodeBaseModuleEmitContext* _tmp394_; ValaCCodeBaseModuleEmitContext* _tmp395_; ValaCCodeBaseModuleEmitContext* _tmp396_; ValaCCodeBaseModuleEmitContext* _tmp397_; ValaCCodeBaseModuleEmitContext* _tmp398_; ValaCCodeBaseModuleEmitContext* _tmp399_; ValaCCodeBaseModuleEmitContext* _tmp400_; ValaCCodeBaseModuleEmitContext* _tmp401_; ValaCCodeBaseModuleEmitContext* _tmp402_; self = (ValaGTypeModule*) base; g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) _tmp0_); _tmp2_ = _tmp1_; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp2_); _vala_ccode_base_module_emit_context_unref0 (_tmp2_); _tmp3_ = cl; _tmp4_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp3_); _tmp5_ = _tmp4_; vala_ccode_base_module_push_line ((ValaCCodeBaseModule*) self, _tmp5_); _tmp6_ = ((ValaCCodeBaseModule*) self)->param_spec_struct; _tmp7_ = _vala_ccode_node_ref0 (_tmp6_); old_param_spec_struct = _tmp7_; _tmp8_ = ((ValaCCodeBaseModule*) self)->prop_enum; _tmp9_ = _vala_ccode_node_ref0 (_tmp8_); old_prop_enum = _tmp9_; _tmp10_ = ((ValaCCodeBaseModule*) self)->class_init_context; _tmp11_ = _vala_ccode_base_module_emit_context_ref0 (_tmp10_); old_class_init_context = _tmp11_; _tmp12_ = ((ValaCCodeBaseModule*) self)->base_init_context; _tmp13_ = _vala_ccode_base_module_emit_context_ref0 (_tmp12_); old_base_init_context = _tmp13_; _tmp14_ = ((ValaCCodeBaseModule*) self)->class_finalize_context; _tmp15_ = _vala_ccode_base_module_emit_context_ref0 (_tmp14_); old_class_finalize_context = _tmp15_; _tmp16_ = ((ValaCCodeBaseModule*) self)->base_finalize_context; _tmp17_ = _vala_ccode_base_module_emit_context_ref0 (_tmp16_); old_base_finalize_context = _tmp17_; _tmp18_ = ((ValaCCodeBaseModule*) self)->instance_init_context; _tmp19_ = _vala_ccode_base_module_emit_context_ref0 (_tmp18_); old_instance_init_context = _tmp19_; _tmp20_ = ((ValaCCodeBaseModule*) self)->instance_finalize_context; _tmp21_ = _vala_ccode_base_module_emit_context_ref0 (_tmp20_); old_instance_finalize_context = _tmp21_; _tmp22_ = cl; _tmp23_ = vala_class_get_is_compact (_tmp22_); _tmp24_ = _tmp23_; is_gtypeinstance = !_tmp24_; _tmp26_ = is_gtypeinstance; if (_tmp26_) { ValaClass* _tmp27_; ValaClass* _tmp28_; ValaClass* _tmp29_; _tmp27_ = cl; _tmp28_ = vala_class_get_base_class (_tmp27_); _tmp29_ = _tmp28_; _tmp25_ = _tmp29_ == NULL; } else { _tmp25_ = FALSE; } _tmp30_ = _tmp25_; is_fundamental = _tmp30_; _tmp31_ = cl; _tmp32_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp31_); _tmp33_ = _tmp32_; _tmp34_ = strlen (_tmp33_); _tmp35_ = _tmp34_; _tmp36_ = _tmp35_ < 3; _g_free0 (_tmp33_); if (_tmp36_) { ValaClass* _tmp37_; ValaClass* _tmp38_; ValaSourceReference* _tmp39_; ValaSourceReference* _tmp40_; ValaClass* _tmp41_; gchar* _tmp42_ = NULL; gchar* _tmp43_; gchar* _tmp44_ = NULL; gchar* _tmp45_; _tmp37_ = cl; vala_code_node_set_error ((ValaCodeNode*) _tmp37_, TRUE); _tmp38_ = cl; _tmp39_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp38_); _tmp40_ = _tmp39_; _tmp41_ = cl; _tmp42_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp41_); _tmp43_ = _tmp42_; _tmp44_ = g_strdup_printf ("Class name `%s' is too short", _tmp43_); _tmp45_ = _tmp44_; vala_report_error (_tmp40_, _tmp45_); _g_free0 (_tmp45_); _g_free0 (_tmp43_); _vala_ccode_base_module_emit_context_unref0 (old_instance_finalize_context); _vala_ccode_base_module_emit_context_unref0 (old_instance_init_context); _vala_ccode_base_module_emit_context_unref0 (old_base_finalize_context); _vala_ccode_base_module_emit_context_unref0 (old_class_finalize_context); _vala_ccode_base_module_emit_context_unref0 (old_base_init_context); _vala_ccode_base_module_emit_context_unref0 (old_class_init_context); _vala_ccode_node_unref0 (old_prop_enum); _vala_ccode_node_unref0 (old_param_spec_struct); return; } _tmp46_ = vala_ccode_enum_new (NULL); _vala_ccode_node_unref0 (((ValaCCodeBaseModule*) self)->prop_enum); ((ValaCCodeBaseModule*) self)->prop_enum = _tmp46_; _tmp47_ = ((ValaCCodeBaseModule*) self)->prop_enum; _tmp48_ = cl; _tmp49_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp48_, NULL); _tmp50_ = _tmp49_; _tmp51_ = g_strdup_printf ("%s_DUMMY_PROPERTY", _tmp50_); _tmp52_ = _tmp51_; _tmp53_ = vala_ccode_enum_value_new (_tmp52_, NULL); _tmp54_ = _tmp53_; vala_ccode_enum_add_value (_tmp47_, _tmp54_); _vala_ccode_node_unref0 (_tmp54_); _g_free0 (_tmp52_); _g_free0 (_tmp50_); _tmp55_ = cl; _tmp56_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) _tmp55_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->class_init_context); ((ValaCCodeBaseModule*) self)->class_init_context = _tmp56_; _tmp57_ = cl; _tmp58_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) _tmp57_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->base_init_context); ((ValaCCodeBaseModule*) self)->base_init_context = _tmp58_; _tmp59_ = cl; _tmp60_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) _tmp59_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->class_finalize_context); ((ValaCCodeBaseModule*) self)->class_finalize_context = _tmp60_; _tmp61_ = cl; _tmp62_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) _tmp61_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->base_finalize_context); ((ValaCCodeBaseModule*) self)->base_finalize_context = _tmp62_; _tmp63_ = cl; _tmp64_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) _tmp63_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->instance_init_context); ((ValaCCodeBaseModule*) self)->instance_init_context = _tmp64_; _tmp65_ = cl; _tmp66_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) _tmp65_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->instance_finalize_context); ((ValaCCodeBaseModule*) self)->instance_finalize_context = _tmp66_; _tmp67_ = cl; _tmp68_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_base_module_generate_class_struct_declaration ((ValaCCodeBaseModule*) self, _tmp67_, _tmp68_); _tmp69_ = cl; _tmp70_ = ((ValaCCodeBaseModule*) self)->cfile; vala_gtype_module_generate_class_private_declaration (self, _tmp69_, _tmp70_); _tmp71_ = cl; _tmp72_ = vala_symbol_is_internal_symbol ((ValaSymbol*) _tmp71_); if (!_tmp72_) { ValaClass* _tmp73_; ValaCCodeFile* _tmp74_; _tmp73_ = cl; _tmp74_ = ((ValaCCodeBaseModule*) self)->header_file; vala_ccode_base_module_generate_class_struct_declaration ((ValaCCodeBaseModule*) self, _tmp73_, _tmp74_); } _tmp75_ = cl; _tmp76_ = vala_symbol_is_private_symbol ((ValaSymbol*) _tmp75_); if (!_tmp76_) { ValaClass* _tmp77_; ValaCCodeFile* _tmp78_; _tmp77_ = cl; _tmp78_ = ((ValaCCodeBaseModule*) self)->internal_header_file; vala_ccode_base_module_generate_class_struct_declaration ((ValaCCodeBaseModule*) self, _tmp77_, _tmp78_); } _tmp79_ = is_gtypeinstance; if (_tmp79_) { ValaClass* _tmp80_; ValaClass* _tmp81_; ValaClass* _tmp82_; ValaClass* _tmp83_; ValaClass* _tmp84_; ValaClass* _tmp85_; _tmp80_ = cl; vala_gtype_module_begin_base_init_function (self, _tmp80_); _tmp81_ = cl; vala_gtype_module_begin_class_init_function (self, _tmp81_); _tmp82_ = cl; vala_gtype_module_begin_instance_init_function (self, _tmp82_); _tmp83_ = cl; vala_gtype_module_begin_base_finalize_function (self, _tmp83_); _tmp84_ = cl; vala_gtype_module_begin_class_finalize_function (self, _tmp84_); _tmp85_ = cl; vala_gtype_module_begin_finalize_function (self, _tmp85_); } else { ValaClass* _tmp86_; ValaClass* _tmp87_; ValaClass* _tmp88_; _tmp86_ = cl; _tmp87_ = vala_class_get_base_class (_tmp86_); _tmp88_ = _tmp87_; if (_tmp88_ == NULL) { ValaClass* _tmp89_; ValaClass* _tmp90_; _tmp89_ = cl; vala_gtype_module_begin_instance_init_function (self, _tmp89_); _tmp90_ = cl; vala_gtype_module_begin_finalize_function (self, _tmp90_); } } _tmp91_ = cl; vala_code_node_accept_children ((ValaCodeNode*) _tmp91_, (ValaCodeVisitor*) self); _tmp92_ = is_gtypeinstance; if (_tmp92_) { gboolean _tmp93_; gboolean _tmp150_ = FALSE; ValaClass* _tmp151_; ValaConstructor* _tmp152_; ValaConstructor* _tmp153_; gboolean _tmp162_; ValaClass* _tmp164_; gboolean _tmp165_ = FALSE; ValaClass* _tmp166_; ValaDestructor* _tmp167_; ValaDestructor* _tmp168_; gboolean _tmp177_; ValaClass* _tmp179_; ValaDestructor* _tmp180_; ValaDestructor* _tmp181_; ValaClass* _tmp201_; gboolean _tmp202_ = FALSE; ValaClass* _tmp203_; gboolean _tmp204_; gboolean _tmp205_; gboolean _tmp221_; ValaClass* _tmp223_; ValaComment* _tmp224_; ValaComment* _tmp225_; ValaClass* _tmp234_; ValaCodeContext* _tmp235_; ValaCodeContext* _tmp236_; ValaClassRegisterFunction* _tmp237_; ValaClassRegisterFunction* type_fun; ValaClassRegisterFunction* _tmp238_; gboolean _tmp239_; ValaCCodeFile* _tmp240_; ValaClassRegisterFunction* _tmp241_; ValaCCodeFragment* _tmp242_ = NULL; ValaCCodeFragment* _tmp243_; ValaCCodeFile* _tmp244_; ValaClassRegisterFunction* _tmp245_; ValaCCodeFragment* _tmp246_ = NULL; ValaCCodeFragment* _tmp247_; gboolean _tmp248_; _tmp93_ = is_fundamental; if (_tmp93_) { ValaClass* _tmp94_; ValaSymbol* _tmp95_; ValaSymbol* _tmp96_; gchar* _tmp97_ = NULL; gchar* _tmp98_; ValaClass* _tmp99_; const gchar* _tmp100_; const gchar* _tmp101_; gchar* _tmp102_ = NULL; gchar* _tmp103_; ValaCCodeStruct* _tmp104_; ValaCCodeStruct* _tmp105_; ValaCCodeFile* _tmp106_; ValaCCodeStruct* _tmp107_; ValaCCodeFile* _tmp108_; ValaCCodeStruct* _tmp109_; const gchar* _tmp110_; const gchar* _tmp111_; gchar* _tmp112_ = NULL; gchar* _tmp113_; ValaClass* _tmp114_; ValaSymbol* _tmp115_; ValaSymbol* _tmp116_; gchar* _tmp117_ = NULL; gchar* _tmp118_; ValaClass* _tmp119_; const gchar* _tmp120_; const gchar* _tmp121_; gchar* _tmp122_ = NULL; gchar* _tmp123_; ValaCCodeVariableDeclarator* _tmp124_; ValaCCodeVariableDeclarator* _tmp125_; ValaCCodeTypeDefinition* _tmp126_; ValaCCodeTypeDefinition* _tmp127_; ValaClass* _tmp128_; ValaClass* _tmp129_; ValaClass* _tmp130_; ValaClass* _tmp131_; ValaClass* _tmp132_; ValaClass* _tmp133_; ValaClass* _tmp134_; ValaClass* _tmp135_; ValaClass* _tmp136_; ValaClass* _tmp137_; ValaCCodeIdentifier* _tmp138_; ValaCCodeIdentifier* _tmp139_; ValaCCodeMemberAccess* _tmp140_; ValaCCodeMemberAccess* _tmp141_; ValaCCodeConstant* _tmp142_; ValaCCodeConstant* _tmp143_; ValaCCodeAssignment* _tmp144_; ValaCCodeAssignment* _tmp145_; ValaCCodeAssignment* ref_count; ValaCCodeBaseModuleEmitContext* _tmp146_; ValaCCodeFunction* _tmp147_; ValaCCodeFunction* _tmp148_; ValaCCodeAssignment* _tmp149_; _tmp94_ = cl; _tmp95_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp94_); _tmp96_ = _tmp95_; _tmp97_ = vala_ccode_base_module_get_ccode_prefix (_tmp96_); _tmp98_ = _tmp97_; _tmp99_ = cl; _tmp100_ = vala_symbol_get_name ((ValaSymbol*) _tmp99_); _tmp101_ = _tmp100_; _tmp102_ = g_strdup_printf ("_%sParamSpec%s", _tmp98_, _tmp101_); _tmp103_ = _tmp102_; _tmp104_ = vala_ccode_struct_new (_tmp103_); _vala_ccode_node_unref0 (((ValaCCodeBaseModule*) self)->param_spec_struct); ((ValaCCodeBaseModule*) self)->param_spec_struct = _tmp104_; _g_free0 (_tmp103_); _g_free0 (_tmp98_); _tmp105_ = ((ValaCCodeBaseModule*) self)->param_spec_struct; vala_ccode_struct_add_field (_tmp105_, "GParamSpec", "parent_instance", NULL); _tmp106_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp107_ = ((ValaCCodeBaseModule*) self)->param_spec_struct; vala_ccode_file_add_type_definition (_tmp106_, (ValaCCodeNode*) _tmp107_); _tmp108_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp109_ = ((ValaCCodeBaseModule*) self)->param_spec_struct; _tmp110_ = vala_ccode_struct_get_name (_tmp109_); _tmp111_ = _tmp110_; _tmp112_ = g_strdup_printf ("struct %s", _tmp111_); _tmp113_ = _tmp112_; _tmp114_ = cl; _tmp115_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp114_); _tmp116_ = _tmp115_; _tmp117_ = vala_ccode_base_module_get_ccode_prefix (_tmp116_); _tmp118_ = _tmp117_; _tmp119_ = cl; _tmp120_ = vala_symbol_get_name ((ValaSymbol*) _tmp119_); _tmp121_ = _tmp120_; _tmp122_ = g_strdup_printf ("%sParamSpec%s", _tmp118_, _tmp121_); _tmp123_ = _tmp122_; _tmp124_ = vala_ccode_variable_declarator_new (_tmp123_, NULL, NULL); _tmp125_ = _tmp124_; _tmp126_ = vala_ccode_type_definition_new (_tmp113_, (ValaCCodeDeclarator*) _tmp125_); _tmp127_ = _tmp126_; vala_ccode_file_add_type_declaration (_tmp108_, (ValaCCodeNode*) _tmp127_); _vala_ccode_node_unref0 (_tmp127_); _vala_ccode_node_unref0 (_tmp125_); _g_free0 (_tmp123_); _g_free0 (_tmp118_); _g_free0 (_tmp113_); ((ValaCCodeBaseModule*) self)->gvaluecollector_h_needed = TRUE; _tmp128_ = cl; vala_gtype_module_add_type_value_table_init_function (self, _tmp128_); _tmp129_ = cl; vala_gtype_module_add_type_value_table_free_function (self, _tmp129_); _tmp130_ = cl; vala_gtype_module_add_type_value_table_copy_function (self, _tmp130_); _tmp131_ = cl; vala_gtype_module_add_type_value_table_peek_pointer_function (self, _tmp131_); _tmp132_ = cl; vala_gtype_module_add_type_value_table_collect_value_function (self, _tmp132_); _tmp133_ = cl; vala_gtype_module_add_type_value_table_lcopy_value_function (self, _tmp133_); _tmp134_ = cl; vala_gtype_module_add_g_param_spec_type_function (self, _tmp134_); _tmp135_ = cl; vala_gtype_module_add_g_value_get_function (self, _tmp135_); _tmp136_ = cl; vala_gtype_module_add_g_value_set_function (self, _tmp136_); _tmp137_ = cl; vala_gtype_module_add_g_value_take_function (self, _tmp137_); _tmp138_ = vala_ccode_identifier_new ("self"); _tmp139_ = _tmp138_; _tmp140_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp139_, "ref_count"); _tmp141_ = _tmp140_; _tmp142_ = vala_ccode_constant_new ("1"); _tmp143_ = _tmp142_; _tmp144_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp141_, (ValaCCodeExpression*) _tmp143_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE); _tmp145_ = _tmp144_; _vala_ccode_node_unref0 (_tmp143_); _vala_ccode_node_unref0 (_tmp141_); _vala_ccode_node_unref0 (_tmp139_); ref_count = _tmp145_; _tmp146_ = ((ValaCCodeBaseModule*) self)->instance_init_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp146_); _tmp147_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp148_ = _tmp147_; _tmp149_ = ref_count; vala_ccode_function_add_expression (_tmp148_, (ValaCCodeExpression*) _tmp149_); vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_ccode_node_unref0 (ref_count); } _tmp151_ = cl; _tmp152_ = vala_class_get_class_constructor (_tmp151_); _tmp153_ = _tmp152_; if (_tmp153_ != NULL) { _tmp150_ = TRUE; } else { gboolean _tmp154_ = FALSE; ValaCodeContext* _tmp155_; ValaCodeContext* _tmp156_; gboolean _tmp157_ = FALSE; gboolean _tmp161_; _tmp155_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp156_ = _tmp155_; _tmp157_ = vala_code_context_require_glib_version (_tmp156_, 2, 24); if (!_tmp157_) { ValaClass* _tmp158_; gboolean _tmp159_; gboolean _tmp160_; _tmp158_ = cl; _tmp159_ = vala_class_get_has_class_private_fields (_tmp158_); _tmp160_ = _tmp159_; _tmp154_ = _tmp160_; } else { _tmp154_ = FALSE; } _tmp161_ = _tmp154_; _tmp150_ = _tmp161_; } _tmp162_ = _tmp150_; if (_tmp162_) { ValaClass* _tmp163_; _tmp163_ = cl; vala_gtype_module_add_base_init_function (self, _tmp163_); } _tmp164_ = cl; vala_gtype_module_add_class_init_function (self, _tmp164_); _tmp166_ = cl; _tmp167_ = vala_class_get_class_destructor (_tmp166_); _tmp168_ = _tmp167_; if (_tmp168_ != NULL) { _tmp165_ = TRUE; } else { gboolean _tmp169_ = FALSE; ValaCodeContext* _tmp170_; ValaCodeContext* _tmp171_; gboolean _tmp172_ = FALSE; gboolean _tmp176_; _tmp170_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp171_ = _tmp170_; _tmp172_ = vala_code_context_require_glib_version (_tmp171_, 2, 24); if (!_tmp172_) { ValaClass* _tmp173_; gboolean _tmp174_; gboolean _tmp175_; _tmp173_ = cl; _tmp174_ = vala_class_get_has_class_private_fields (_tmp173_); _tmp175_ = _tmp174_; _tmp169_ = _tmp175_; } else { _tmp169_ = FALSE; } _tmp176_ = _tmp169_; _tmp165_ = _tmp176_; } _tmp177_ = _tmp165_; if (_tmp177_) { ValaClass* _tmp178_; _tmp178_ = cl; vala_gtype_module_add_base_finalize_function (self, _tmp178_); } _tmp179_ = cl; _tmp180_ = vala_class_get_static_destructor (_tmp179_); _tmp181_ = _tmp180_; if (_tmp181_ != NULL) { ValaClass* _tmp182_; _tmp182_ = cl; vala_gtype_module_add_class_finalize_function (self, _tmp182_); } { ValaClass* _tmp183_; ValaList* _tmp184_ = NULL; ValaList* _base_type_list; ValaList* _tmp185_; gint _tmp186_; gint _tmp187_; gint _base_type_size; gint _base_type_index; _tmp183_ = cl; _tmp184_ = vala_class_get_base_types (_tmp183_); _base_type_list = _tmp184_; _tmp185_ = _base_type_list; _tmp186_ = vala_collection_get_size ((ValaCollection*) _tmp185_); _tmp187_ = _tmp186_; _base_type_size = _tmp187_; _base_type_index = -1; while (TRUE) { gint _tmp188_; gint _tmp189_; gint _tmp190_; ValaList* _tmp191_; gint _tmp192_; gpointer _tmp193_ = NULL; ValaDataType* base_type; ValaDataType* _tmp194_; ValaTypeSymbol* _tmp195_; ValaTypeSymbol* _tmp196_; _tmp188_ = _base_type_index; _base_type_index = _tmp188_ + 1; _tmp189_ = _base_type_index; _tmp190_ = _base_type_size; if (!(_tmp189_ < _tmp190_)) { break; } _tmp191_ = _base_type_list; _tmp192_ = _base_type_index; _tmp193_ = vala_list_get (_tmp191_, _tmp192_); base_type = (ValaDataType*) _tmp193_; _tmp194_ = base_type; _tmp195_ = vala_data_type_get_data_type (_tmp194_); _tmp196_ = _tmp195_; if (VALA_IS_INTERFACE (_tmp196_)) { ValaClass* _tmp197_; ValaDataType* _tmp198_; ValaTypeSymbol* _tmp199_; ValaTypeSymbol* _tmp200_; _tmp197_ = cl; _tmp198_ = base_type; _tmp199_ = vala_data_type_get_data_type (_tmp198_); _tmp200_ = _tmp199_; vala_gtype_module_add_interface_init_function (self, _tmp197_, VALA_INTERFACE (_tmp200_)); } _vala_code_node_unref0 (base_type); } _vala_iterable_unref0 (_base_type_list); } _tmp201_ = cl; vala_gtype_module_add_instance_init_function (self, _tmp201_); _tmp203_ = cl; _tmp204_ = vala_class_get_is_compact (_tmp203_); _tmp205_ = _tmp204_; if (!_tmp205_) { gboolean _tmp206_ = FALSE; gboolean _tmp207_ = FALSE; ValaClass* _tmp208_; ValaList* _tmp209_ = NULL; ValaList* _tmp210_; gint _tmp211_; gint _tmp212_; gboolean _tmp213_; gboolean _tmp217_; gboolean _tmp220_; _tmp208_ = cl; _tmp209_ = vala_class_get_fields (_tmp208_); _tmp210_ = _tmp209_; _tmp211_ = vala_collection_get_size ((ValaCollection*) _tmp210_); _tmp212_ = _tmp211_; _tmp213_ = _tmp212_ > 0; _vala_iterable_unref0 (_tmp210_); if (_tmp213_) { _tmp207_ = TRUE; } else { ValaClass* _tmp214_; ValaDestructor* _tmp215_; ValaDestructor* _tmp216_; _tmp214_ = cl; _tmp215_ = vala_class_get_destructor (_tmp214_); _tmp216_ = _tmp215_; _tmp207_ = _tmp216_ != NULL; } _tmp217_ = _tmp207_; if (_tmp217_) { _tmp206_ = TRUE; } else { ValaClass* _tmp218_; gboolean _tmp219_ = FALSE; _tmp218_ = cl; _tmp219_ = vala_class_is_fundamental (_tmp218_); _tmp206_ = _tmp219_; } _tmp220_ = _tmp206_; _tmp202_ = _tmp220_; } else { _tmp202_ = FALSE; } _tmp221_ = _tmp202_; if (_tmp221_) { ValaClass* _tmp222_; _tmp222_ = cl; vala_gtype_module_add_finalize_function (self, _tmp222_); } _tmp223_ = cl; _tmp224_ = vala_symbol_get_comment ((ValaSymbol*) _tmp223_); _tmp225_ = _tmp224_; if (_tmp225_ != NULL) { ValaCCodeFile* _tmp226_; ValaClass* _tmp227_; ValaComment* _tmp228_; ValaComment* _tmp229_; const gchar* _tmp230_; const gchar* _tmp231_; ValaCCodeComment* _tmp232_; ValaCCodeComment* _tmp233_; _tmp226_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp227_ = cl; _tmp228_ = vala_symbol_get_comment ((ValaSymbol*) _tmp227_); _tmp229_ = _tmp228_; _tmp230_ = vala_comment_get_content (_tmp229_); _tmp231_ = _tmp230_; _tmp232_ = vala_ccode_comment_new (_tmp231_); _tmp233_ = _tmp232_; vala_ccode_file_add_type_member_definition (_tmp226_, (ValaCCodeNode*) _tmp233_); _vala_ccode_node_unref0 (_tmp233_); } _tmp234_ = cl; _tmp235_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp236_ = _tmp235_; _tmp237_ = vala_class_register_function_new (_tmp234_, _tmp236_); type_fun = _tmp237_; _tmp238_ = type_fun; _tmp239_ = ((ValaCCodeBaseModule*) self)->in_plugin; vala_typeregister_function_init_from_type ((ValaTypeRegisterFunction*) _tmp238_, _tmp239_, FALSE); _tmp240_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp241_ = type_fun; _tmp242_ = vala_typeregister_function_get_source_declaration ((ValaTypeRegisterFunction*) _tmp241_); _tmp243_ = _tmp242_; vala_ccode_file_add_type_member_declaration (_tmp240_, (ValaCCodeNode*) _tmp243_); _vala_ccode_node_unref0 (_tmp243_); _tmp244_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp245_ = type_fun; _tmp246_ = vala_typeregister_function_get_definition ((ValaTypeRegisterFunction*) _tmp245_); _tmp247_ = _tmp246_; vala_ccode_file_add_type_member_definition (_tmp244_, (ValaCCodeNode*) _tmp247_); _vala_ccode_node_unref0 (_tmp247_); _tmp248_ = is_fundamental; if (_tmp248_) { ValaCCodeIdentifier* _tmp249_; ValaCCodeIdentifier* _tmp250_; ValaCCodeMemberAccess* _tmp251_; ValaCCodeMemberAccess* _tmp252_; ValaCCodeMemberAccess* ref_count; ValaClass* _tmp253_; gchar* _tmp254_ = NULL; gchar* _tmp255_; gchar* _tmp256_; gchar* _tmp257_; ValaCCodeFunction* _tmp258_; ValaCCodeFunction* _tmp259_; ValaCCodeFunction* ref_fun; ValaCCodeFunction* _tmp260_; ValaCCodeParameter* _tmp261_; ValaCCodeParameter* _tmp262_; ValaClass* _tmp263_; ValaSymbolAccessibility _tmp264_; ValaSymbolAccessibility _tmp265_; ValaCCodeFunction* _tmp267_; ValaCCodeFunction* _tmp268_; ValaCCodeFunction* _tmp269_; ValaClass* _tmp270_; gchar* _tmp271_ = NULL; gchar* _tmp272_; gchar* _tmp273_; gchar* _tmp274_; ValaCCodeIdentifier* _tmp275_; ValaCCodeIdentifier* _tmp276_; ValaCCodeVariableDeclarator* _tmp277_; ValaCCodeVariableDeclarator* _tmp278_; ValaCCodeIdentifier* _tmp279_; ValaCCodeIdentifier* _tmp280_; ValaCCodeFunctionCall* _tmp281_; ValaCCodeFunctionCall* _tmp282_; ValaCCodeFunctionCall* ccall; ValaCCodeFunctionCall* _tmp283_; ValaCCodeMemberAccess* _tmp284_; ValaCCodeUnaryExpression* _tmp285_; ValaCCodeUnaryExpression* _tmp286_; ValaCCodeFunction* _tmp287_; ValaCCodeFunction* _tmp288_; ValaCCodeFunctionCall* _tmp289_; ValaCCodeFunction* _tmp290_; ValaCCodeFunction* _tmp291_; ValaCCodeIdentifier* _tmp292_; ValaCCodeIdentifier* _tmp293_; ValaCCodeFile* _tmp294_; ValaCCodeFunction* _tmp295_; ValaClass* _tmp296_; gchar* _tmp297_ = NULL; gchar* _tmp298_; gchar* _tmp299_; gchar* _tmp300_; ValaCCodeFunction* _tmp301_; ValaCCodeFunction* _tmp302_; ValaCCodeFunction* unref_fun; ValaCCodeFunction* _tmp303_; ValaCCodeParameter* _tmp304_; ValaCCodeParameter* _tmp305_; ValaClass* _tmp306_; ValaSymbolAccessibility _tmp307_; ValaSymbolAccessibility _tmp308_; ValaCCodeFunction* _tmp310_; ValaCCodeFunction* _tmp311_; ValaCCodeFunction* _tmp312_; ValaClass* _tmp313_; gchar* _tmp314_ = NULL; gchar* _tmp315_; gchar* _tmp316_; gchar* _tmp317_; ValaCCodeIdentifier* _tmp318_; ValaCCodeIdentifier* _tmp319_; ValaCCodeVariableDeclarator* _tmp320_; ValaCCodeVariableDeclarator* _tmp321_; ValaCCodeIdentifier* _tmp322_; ValaCCodeIdentifier* _tmp323_; ValaCCodeFunctionCall* _tmp324_; ValaCCodeFunctionCall* _tmp325_; ValaCCodeMemberAccess* _tmp326_; ValaCCodeUnaryExpression* _tmp327_; ValaCCodeUnaryExpression* _tmp328_; ValaCCodeFunction* _tmp329_; ValaCCodeFunction* _tmp330_; ValaCCodeFunctionCall* _tmp331_; ValaClass* _tmp332_; gchar* _tmp333_ = NULL; gchar* _tmp334_; gchar* _tmp335_ = NULL; gchar* _tmp336_; ValaCCodeIdentifier* _tmp337_; ValaCCodeIdentifier* _tmp338_; ValaCCodeFunctionCall* _tmp339_; ValaCCodeFunctionCall* _tmp340_; ValaCCodeFunctionCall* get_class; ValaCCodeFunctionCall* _tmp341_; ValaCCodeIdentifier* _tmp342_; ValaCCodeIdentifier* _tmp343_; ValaClass* _tmp344_; gchar* _tmp345_ = NULL; gchar* _tmp346_; gchar* _tmp347_ = NULL; gchar* _tmp348_; ValaCCodeIdentifier* _tmp349_; ValaCCodeIdentifier* _tmp350_; ValaCCodeFunctionCall* _tmp351_; ValaCCodeFunctionCall* _tmp352_; ValaCCodeFunctionCall* ccast; ValaCCodeFunctionCall* _tmp353_; ValaCCodeIdentifier* _tmp354_; ValaCCodeIdentifier* _tmp355_; ValaCCodeFunctionCall* _tmp356_; ValaCCodeMemberAccess* _tmp357_; ValaCCodeMemberAccess* _tmp358_; ValaCCodeFunctionCall* _tmp359_; ValaCCodeFunctionCall* _tmp360_; ValaCCodeIdentifier* _tmp361_; ValaCCodeIdentifier* _tmp362_; ValaCCodeFunction* _tmp363_; ValaCCodeFunction* _tmp364_; ValaCCodeFunctionCall* _tmp365_; ValaCCodeIdentifier* _tmp366_; ValaCCodeIdentifier* _tmp367_; ValaCCodeFunctionCall* _tmp368_; ValaCCodeFunctionCall* _tmp369_; ValaCCodeFunctionCall* free; ValaCCodeFunctionCall* _tmp370_; ValaCCodeIdentifier* _tmp371_; ValaCCodeIdentifier* _tmp372_; ValaCCodeCastExpression* _tmp373_; ValaCCodeCastExpression* _tmp374_; ValaCCodeFunction* _tmp375_; ValaCCodeFunction* _tmp376_; ValaCCodeFunctionCall* _tmp377_; ValaCCodeFunction* _tmp378_; ValaCCodeFunction* _tmp379_; ValaCCodeFile* _tmp380_; ValaCCodeFunction* _tmp381_; _tmp249_ = vala_ccode_identifier_new ("self"); _tmp250_ = _tmp249_; _tmp251_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp250_, "ref_count"); _tmp252_ = _tmp251_; _vala_ccode_node_unref0 (_tmp250_); ref_count = _tmp252_; _tmp253_ = cl; _tmp254_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp253_); _tmp255_ = _tmp254_; _tmp256_ = g_strconcat (_tmp255_, "ref", NULL); _tmp257_ = _tmp256_; _tmp258_ = vala_ccode_function_new (_tmp257_, "gpointer"); _tmp259_ = _tmp258_; _g_free0 (_tmp257_); _g_free0 (_tmp255_); ref_fun = _tmp259_; _tmp260_ = ref_fun; _tmp261_ = vala_ccode_parameter_new ("instance", "gpointer"); _tmp262_ = _tmp261_; vala_ccode_function_add_parameter (_tmp260_, _tmp262_); _vala_ccode_node_unref0 (_tmp262_); _tmp263_ = cl; _tmp264_ = vala_symbol_get_access ((ValaSymbol*) _tmp263_); _tmp265_ = _tmp264_; if (_tmp265_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp266_; _tmp266_ = ref_fun; vala_ccode_function_set_modifiers (_tmp266_, VALA_CCODE_MODIFIERS_STATIC); } _tmp267_ = ref_fun; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp267_); _tmp268_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp269_ = _tmp268_; _tmp270_ = cl; _tmp271_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp270_); _tmp272_ = _tmp271_; _tmp273_ = g_strconcat (_tmp272_, "*", NULL); _tmp274_ = _tmp273_; _tmp275_ = vala_ccode_identifier_new ("instance"); _tmp276_ = _tmp275_; _tmp277_ = vala_ccode_variable_declarator_new ("self", (ValaCCodeExpression*) _tmp276_, NULL); _tmp278_ = _tmp277_; vala_ccode_function_add_declaration (_tmp269_, _tmp274_, (ValaCCodeDeclarator*) _tmp278_, 0); _vala_ccode_node_unref0 (_tmp278_); _vala_ccode_node_unref0 (_tmp276_); _g_free0 (_tmp274_); _g_free0 (_tmp272_); _tmp279_ = vala_ccode_identifier_new ("g_atomic_int_inc"); _tmp280_ = _tmp279_; _tmp281_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp280_); _tmp282_ = _tmp281_; _vala_ccode_node_unref0 (_tmp280_); ccall = _tmp282_; _tmp283_ = ccall; _tmp284_ = ref_count; _tmp285_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp284_); _tmp286_ = _tmp285_; vala_ccode_function_call_add_argument (_tmp283_, (ValaCCodeExpression*) _tmp286_); _vala_ccode_node_unref0 (_tmp286_); _tmp287_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp288_ = _tmp287_; _tmp289_ = ccall; vala_ccode_function_add_expression (_tmp288_, (ValaCCodeExpression*) _tmp289_); _tmp290_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp291_ = _tmp290_; _tmp292_ = vala_ccode_identifier_new ("instance"); _tmp293_ = _tmp292_; vala_ccode_function_add_return (_tmp291_, (ValaCCodeExpression*) _tmp293_); _vala_ccode_node_unref0 (_tmp293_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp294_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp295_ = ref_fun; vala_ccode_file_add_function (_tmp294_, _tmp295_); _tmp296_ = cl; _tmp297_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp296_); _tmp298_ = _tmp297_; _tmp299_ = g_strconcat (_tmp298_, "unref", NULL); _tmp300_ = _tmp299_; _tmp301_ = vala_ccode_function_new (_tmp300_, "void"); _tmp302_ = _tmp301_; _g_free0 (_tmp300_); _g_free0 (_tmp298_); unref_fun = _tmp302_; _tmp303_ = unref_fun; _tmp304_ = vala_ccode_parameter_new ("instance", "gpointer"); _tmp305_ = _tmp304_; vala_ccode_function_add_parameter (_tmp303_, _tmp305_); _vala_ccode_node_unref0 (_tmp305_); _tmp306_ = cl; _tmp307_ = vala_symbol_get_access ((ValaSymbol*) _tmp306_); _tmp308_ = _tmp307_; if (_tmp308_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp309_; _tmp309_ = unref_fun; vala_ccode_function_set_modifiers (_tmp309_, VALA_CCODE_MODIFIERS_STATIC); } _tmp310_ = unref_fun; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp310_); _tmp311_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp312_ = _tmp311_; _tmp313_ = cl; _tmp314_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp313_); _tmp315_ = _tmp314_; _tmp316_ = g_strconcat (_tmp315_, "*", NULL); _tmp317_ = _tmp316_; _tmp318_ = vala_ccode_identifier_new ("instance"); _tmp319_ = _tmp318_; _tmp320_ = vala_ccode_variable_declarator_new ("self", (ValaCCodeExpression*) _tmp319_, NULL); _tmp321_ = _tmp320_; vala_ccode_function_add_declaration (_tmp312_, _tmp317_, (ValaCCodeDeclarator*) _tmp321_, 0); _vala_ccode_node_unref0 (_tmp321_); _vala_ccode_node_unref0 (_tmp319_); _g_free0 (_tmp317_); _g_free0 (_tmp315_); _tmp322_ = vala_ccode_identifier_new ("g_atomic_int_dec_and_test"); _tmp323_ = _tmp322_; _tmp324_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp323_); _vala_ccode_node_unref0 (ccall); ccall = _tmp324_; _vala_ccode_node_unref0 (_tmp323_); _tmp325_ = ccall; _tmp326_ = ref_count; _tmp327_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp326_); _tmp328_ = _tmp327_; vala_ccode_function_call_add_argument (_tmp325_, (ValaCCodeExpression*) _tmp328_); _vala_ccode_node_unref0 (_tmp328_); _tmp329_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp330_ = _tmp329_; _tmp331_ = ccall; vala_ccode_function_open_if (_tmp330_, (ValaCCodeExpression*) _tmp331_); _tmp332_ = cl; _tmp333_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp332_, NULL); _tmp334_ = _tmp333_; _tmp335_ = g_strdup_printf ("%s_GET_CLASS", _tmp334_); _tmp336_ = _tmp335_; _tmp337_ = vala_ccode_identifier_new (_tmp336_); _tmp338_ = _tmp337_; _tmp339_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp338_); _tmp340_ = _tmp339_; _vala_ccode_node_unref0 (_tmp338_); _g_free0 (_tmp336_); _g_free0 (_tmp334_); get_class = _tmp340_; _tmp341_ = get_class; _tmp342_ = vala_ccode_identifier_new ("self"); _tmp343_ = _tmp342_; vala_ccode_function_call_add_argument (_tmp341_, (ValaCCodeExpression*) _tmp343_); _vala_ccode_node_unref0 (_tmp343_); _tmp344_ = cl; _tmp345_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp344_, NULL); _tmp346_ = _tmp345_; _tmp347_ = g_strdup_printf ("%s_GET_CLASS", _tmp346_); _tmp348_ = _tmp347_; _tmp349_ = vala_ccode_identifier_new (_tmp348_); _tmp350_ = _tmp349_; _tmp351_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp350_); _tmp352_ = _tmp351_; _vala_ccode_node_unref0 (_tmp350_); _g_free0 (_tmp348_); _g_free0 (_tmp346_); ccast = _tmp352_; _tmp353_ = ccast; _tmp354_ = vala_ccode_identifier_new ("self"); _tmp355_ = _tmp354_; vala_ccode_function_call_add_argument (_tmp353_, (ValaCCodeExpression*) _tmp355_); _vala_ccode_node_unref0 (_tmp355_); _tmp356_ = ccast; _tmp357_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp356_, "finalize"); _tmp358_ = _tmp357_; _tmp359_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp358_); _vala_ccode_node_unref0 (ccall); ccall = _tmp359_; _vala_ccode_node_unref0 (_tmp358_); _tmp360_ = ccall; _tmp361_ = vala_ccode_identifier_new ("self"); _tmp362_ = _tmp361_; vala_ccode_function_call_add_argument (_tmp360_, (ValaCCodeExpression*) _tmp362_); _vala_ccode_node_unref0 (_tmp362_); _tmp363_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp364_ = _tmp363_; _tmp365_ = ccall; vala_ccode_function_add_expression (_tmp364_, (ValaCCodeExpression*) _tmp365_); _tmp366_ = vala_ccode_identifier_new ("g_type_free_instance"); _tmp367_ = _tmp366_; _tmp368_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp367_); _tmp369_ = _tmp368_; _vala_ccode_node_unref0 (_tmp367_); free = _tmp369_; _tmp370_ = free; _tmp371_ = vala_ccode_identifier_new ("self"); _tmp372_ = _tmp371_; _tmp373_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp372_, "GTypeInstance *"); _tmp374_ = _tmp373_; vala_ccode_function_call_add_argument (_tmp370_, (ValaCCodeExpression*) _tmp374_); _vala_ccode_node_unref0 (_tmp374_); _vala_ccode_node_unref0 (_tmp372_); _tmp375_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp376_ = _tmp375_; _tmp377_ = free; vala_ccode_function_add_expression (_tmp376_, (ValaCCodeExpression*) _tmp377_); _tmp378_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp379_ = _tmp378_; vala_ccode_function_close (_tmp379_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp380_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp381_ = unref_fun; vala_ccode_file_add_function (_tmp380_, _tmp381_); _vala_ccode_node_unref0 (free); _vala_ccode_node_unref0 (ccast); _vala_ccode_node_unref0 (get_class); _vala_ccode_node_unref0 (unref_fun); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (ref_fun); _vala_ccode_node_unref0 (ref_count); } _vala_typeregister_function_unref0 (type_fun); } else { ValaClass* _tmp382_; ValaClass* _tmp383_; ValaClass* _tmp384_; _tmp382_ = cl; _tmp383_ = vala_class_get_base_class (_tmp382_); _tmp384_ = _tmp383_; if (_tmp384_ == NULL) { ValaClass* _tmp385_; ValaClass* _tmp386_; _tmp385_ = cl; vala_gtype_module_add_instance_init_function (self, _tmp385_); _tmp386_ = cl; vala_gtype_module_add_finalize_function (self, _tmp386_); } } _tmp387_ = old_param_spec_struct; _tmp388_ = _vala_ccode_node_ref0 (_tmp387_); _vala_ccode_node_unref0 (((ValaCCodeBaseModule*) self)->param_spec_struct); ((ValaCCodeBaseModule*) self)->param_spec_struct = _tmp388_; _tmp389_ = old_prop_enum; _tmp390_ = _vala_ccode_node_ref0 (_tmp389_); _vala_ccode_node_unref0 (((ValaCCodeBaseModule*) self)->prop_enum); ((ValaCCodeBaseModule*) self)->prop_enum = _tmp390_; _tmp391_ = old_class_init_context; _tmp392_ = _vala_ccode_base_module_emit_context_ref0 (_tmp391_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->class_init_context); ((ValaCCodeBaseModule*) self)->class_init_context = _tmp392_; _tmp393_ = old_base_init_context; _tmp394_ = _vala_ccode_base_module_emit_context_ref0 (_tmp393_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->base_init_context); ((ValaCCodeBaseModule*) self)->base_init_context = _tmp394_; _tmp395_ = old_class_finalize_context; _tmp396_ = _vala_ccode_base_module_emit_context_ref0 (_tmp395_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->class_finalize_context); ((ValaCCodeBaseModule*) self)->class_finalize_context = _tmp396_; _tmp397_ = old_base_finalize_context; _tmp398_ = _vala_ccode_base_module_emit_context_ref0 (_tmp397_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->base_finalize_context); ((ValaCCodeBaseModule*) self)->base_finalize_context = _tmp398_; _tmp399_ = old_instance_init_context; _tmp400_ = _vala_ccode_base_module_emit_context_ref0 (_tmp399_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->instance_init_context); ((ValaCCodeBaseModule*) self)->instance_init_context = _tmp400_; _tmp401_ = old_instance_finalize_context; _tmp402_ = _vala_ccode_base_module_emit_context_ref0 (_tmp401_); _vala_ccode_base_module_emit_context_unref0 (((ValaCCodeBaseModule*) self)->instance_finalize_context); ((ValaCCodeBaseModule*) self)->instance_finalize_context = _tmp402_; vala_ccode_base_module_pop_line ((ValaCCodeBaseModule*) self); vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_ccode_base_module_emit_context_unref0 (old_instance_finalize_context); _vala_ccode_base_module_emit_context_unref0 (old_instance_init_context); _vala_ccode_base_module_emit_context_unref0 (old_base_finalize_context); _vala_ccode_base_module_emit_context_unref0 (old_class_finalize_context); _vala_ccode_base_module_emit_context_unref0 (old_base_init_context); _vala_ccode_base_module_emit_context_unref0 (old_class_init_context); _vala_ccode_node_unref0 (old_prop_enum); _vala_ccode_node_unref0 (old_param_spec_struct); } static void vala_gtype_module_add_type_value_table_init_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; ValaCCodeFunction* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* function; ValaCCodeParameter* _tmp7_; ValaCCodeParameter* _tmp8_; ValaCCodeFunction* _tmp9_; ValaCCodeFunction* _tmp10_; ValaCCodeIdentifier* _tmp11_; ValaCCodeIdentifier* _tmp12_; ValaCCodeMemberAccess* _tmp13_; ValaCCodeMemberAccess* _tmp14_; ValaCCodeMemberAccess* _tmp15_; ValaCCodeMemberAccess* _tmp16_; ValaCCodeConstant* _tmp17_; ValaCCodeConstant* _tmp18_; ValaCCodeFile* _tmp19_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, "value_"); _tmp2_ = _tmp1_; _tmp3_ = g_strdup_printf ("%s_init", _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = vala_ccode_function_new (_tmp4_, "void"); _tmp6_ = _tmp5_; _g_free0 (_tmp4_); _g_free0 (_tmp2_); function = _tmp6_; _tmp7_ = vala_ccode_parameter_new ("value", "GValue*"); _tmp8_ = _tmp7_; vala_ccode_function_add_parameter (function, _tmp8_); _vala_ccode_node_unref0 (_tmp8_); vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC); vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function); _tmp9_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp10_ = _tmp9_; _tmp11_ = vala_ccode_identifier_new ("value"); _tmp12_ = _tmp11_; _tmp13_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp12_, "data[0]"); _tmp14_ = _tmp13_; _tmp15_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp14_, "v_pointer", FALSE); _tmp16_ = _tmp15_; _tmp17_ = vala_ccode_constant_new ("NULL"); _tmp18_ = _tmp17_; vala_ccode_function_add_assignment (_tmp10_, (ValaCCodeExpression*) _tmp16_, (ValaCCodeExpression*) _tmp18_); _vala_ccode_node_unref0 (_tmp18_); _vala_ccode_node_unref0 (_tmp16_); _vala_ccode_node_unref0 (_tmp14_); _vala_ccode_node_unref0 (_tmp12_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp19_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_file_add_function (_tmp19_, function); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_type_value_table_free_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; ValaCCodeFunction* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* function; ValaCCodeParameter* _tmp7_; ValaCCodeParameter* _tmp8_; ValaCCodeIdentifier* _tmp9_; ValaCCodeIdentifier* _tmp10_; ValaCCodeMemberAccess* _tmp11_; ValaCCodeMemberAccess* _tmp12_; ValaCCodeMemberAccess* _tmp13_; ValaCCodeMemberAccess* _tmp14_; ValaCCodeMemberAccess* vpointer; ValaClass* _tmp15_; gchar* _tmp16_ = NULL; gchar* _tmp17_; gchar* _tmp18_; gchar* _tmp19_; ValaCCodeIdentifier* _tmp20_; ValaCCodeIdentifier* _tmp21_; ValaCCodeFunctionCall* _tmp22_; ValaCCodeFunctionCall* _tmp23_; ValaCCodeFunctionCall* ccall; ValaCCodeFunction* _tmp24_; ValaCCodeFunction* _tmp25_; ValaCCodeFunction* _tmp26_; ValaCCodeFunction* _tmp27_; ValaCCodeFunction* _tmp28_; ValaCCodeFunction* _tmp29_; ValaCCodeFile* _tmp30_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, "value_"); _tmp2_ = _tmp1_; _tmp3_ = g_strdup_printf ("%s_free_value", _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = vala_ccode_function_new (_tmp4_, "void"); _tmp6_ = _tmp5_; _g_free0 (_tmp4_); _g_free0 (_tmp2_); function = _tmp6_; _tmp7_ = vala_ccode_parameter_new ("value", "GValue*"); _tmp8_ = _tmp7_; vala_ccode_function_add_parameter (function, _tmp8_); _vala_ccode_node_unref0 (_tmp8_); vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC); vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function); _tmp9_ = vala_ccode_identifier_new ("value"); _tmp10_ = _tmp9_; _tmp11_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp10_, "data[0]"); _tmp12_ = _tmp11_; _tmp13_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp12_, "v_pointer", FALSE); _tmp14_ = _tmp13_; _vala_ccode_node_unref0 (_tmp12_); _vala_ccode_node_unref0 (_tmp10_); vpointer = _tmp14_; _tmp15_ = cl; _tmp16_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp15_); _tmp17_ = _tmp16_; _tmp18_ = g_strconcat (_tmp17_, "unref", NULL); _tmp19_ = _tmp18_; _tmp20_ = vala_ccode_identifier_new (_tmp19_); _tmp21_ = _tmp20_; _tmp22_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp21_); _tmp23_ = _tmp22_; _vala_ccode_node_unref0 (_tmp21_); _g_free0 (_tmp19_); _g_free0 (_tmp17_); ccall = _tmp23_; vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) vpointer); _tmp24_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp25_ = _tmp24_; vala_ccode_function_open_if (_tmp25_, (ValaCCodeExpression*) vpointer); _tmp26_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp27_ = _tmp26_; vala_ccode_function_add_expression (_tmp27_, (ValaCCodeExpression*) ccall); _tmp28_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp29_ = _tmp28_; vala_ccode_function_close (_tmp29_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp30_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_file_add_function (_tmp30_, function); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (vpointer); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_type_value_table_copy_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; ValaCCodeFunction* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* function; ValaCCodeParameter* _tmp7_; ValaCCodeParameter* _tmp8_; ValaCCodeParameter* _tmp9_; ValaCCodeParameter* _tmp10_; ValaCCodeIdentifier* _tmp11_; ValaCCodeIdentifier* _tmp12_; ValaCCodeMemberAccess* _tmp13_; ValaCCodeMemberAccess* _tmp14_; ValaCCodeMemberAccess* _tmp15_; ValaCCodeMemberAccess* _tmp16_; ValaCCodeMemberAccess* dest_vpointer; ValaCCodeIdentifier* _tmp17_; ValaCCodeIdentifier* _tmp18_; ValaCCodeMemberAccess* _tmp19_; ValaCCodeMemberAccess* _tmp20_; ValaCCodeMemberAccess* _tmp21_; ValaCCodeMemberAccess* _tmp22_; ValaCCodeMemberAccess* src_vpointer; ValaClass* _tmp23_; gchar* _tmp24_ = NULL; gchar* _tmp25_; gchar* _tmp26_; gchar* _tmp27_; ValaCCodeIdentifier* _tmp28_; ValaCCodeIdentifier* _tmp29_; ValaCCodeFunctionCall* _tmp30_; ValaCCodeFunctionCall* _tmp31_; ValaCCodeFunctionCall* ref_ccall; ValaCCodeFunction* _tmp32_; ValaCCodeFunction* _tmp33_; ValaCCodeFunction* _tmp34_; ValaCCodeFunction* _tmp35_; ValaCCodeFunction* _tmp36_; ValaCCodeFunction* _tmp37_; ValaCCodeFunction* _tmp38_; ValaCCodeFunction* _tmp39_; ValaCCodeConstant* _tmp40_; ValaCCodeConstant* _tmp41_; ValaCCodeFunction* _tmp42_; ValaCCodeFunction* _tmp43_; ValaCCodeFile* _tmp44_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, "value_"); _tmp2_ = _tmp1_; _tmp3_ = g_strdup_printf ("%s_copy_value", _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = vala_ccode_function_new (_tmp4_, "void"); _tmp6_ = _tmp5_; _g_free0 (_tmp4_); _g_free0 (_tmp2_); function = _tmp6_; _tmp7_ = vala_ccode_parameter_new ("src_value", "const GValue*"); _tmp8_ = _tmp7_; vala_ccode_function_add_parameter (function, _tmp8_); _vala_ccode_node_unref0 (_tmp8_); _tmp9_ = vala_ccode_parameter_new ("dest_value", "GValue*"); _tmp10_ = _tmp9_; vala_ccode_function_add_parameter (function, _tmp10_); _vala_ccode_node_unref0 (_tmp10_); vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC); vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function); _tmp11_ = vala_ccode_identifier_new ("dest_value"); _tmp12_ = _tmp11_; _tmp13_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp12_, "data[0]"); _tmp14_ = _tmp13_; _tmp15_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp14_, "v_pointer", FALSE); _tmp16_ = _tmp15_; _vala_ccode_node_unref0 (_tmp14_); _vala_ccode_node_unref0 (_tmp12_); dest_vpointer = _tmp16_; _tmp17_ = vala_ccode_identifier_new ("src_value"); _tmp18_ = _tmp17_; _tmp19_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp18_, "data[0]"); _tmp20_ = _tmp19_; _tmp21_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp20_, "v_pointer", FALSE); _tmp22_ = _tmp21_; _vala_ccode_node_unref0 (_tmp20_); _vala_ccode_node_unref0 (_tmp18_); src_vpointer = _tmp22_; _tmp23_ = cl; _tmp24_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp23_); _tmp25_ = _tmp24_; _tmp26_ = g_strconcat (_tmp25_, "ref", NULL); _tmp27_ = _tmp26_; _tmp28_ = vala_ccode_identifier_new (_tmp27_); _tmp29_ = _tmp28_; _tmp30_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp29_); _tmp31_ = _tmp30_; _vala_ccode_node_unref0 (_tmp29_); _g_free0 (_tmp27_); _g_free0 (_tmp25_); ref_ccall = _tmp31_; vala_ccode_function_call_add_argument (ref_ccall, (ValaCCodeExpression*) src_vpointer); _tmp32_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp33_ = _tmp32_; vala_ccode_function_open_if (_tmp33_, (ValaCCodeExpression*) src_vpointer); _tmp34_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp35_ = _tmp34_; vala_ccode_function_add_assignment (_tmp35_, (ValaCCodeExpression*) dest_vpointer, (ValaCCodeExpression*) ref_ccall); _tmp36_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp37_ = _tmp36_; vala_ccode_function_add_else (_tmp37_); _tmp38_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp39_ = _tmp38_; _tmp40_ = vala_ccode_constant_new ("NULL"); _tmp41_ = _tmp40_; vala_ccode_function_add_assignment (_tmp39_, (ValaCCodeExpression*) dest_vpointer, (ValaCCodeExpression*) _tmp41_); _vala_ccode_node_unref0 (_tmp41_); _tmp42_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp43_ = _tmp42_; vala_ccode_function_close (_tmp43_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp44_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_file_add_function (_tmp44_, function); _vala_ccode_node_unref0 (ref_ccall); _vala_ccode_node_unref0 (src_vpointer); _vala_ccode_node_unref0 (dest_vpointer); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_type_value_table_peek_pointer_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; ValaCCodeFunction* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* function; ValaCCodeParameter* _tmp7_; ValaCCodeParameter* _tmp8_; ValaCCodeIdentifier* _tmp9_; ValaCCodeIdentifier* _tmp10_; ValaCCodeMemberAccess* _tmp11_; ValaCCodeMemberAccess* _tmp12_; ValaCCodeMemberAccess* _tmp13_; ValaCCodeMemberAccess* _tmp14_; ValaCCodeMemberAccess* vpointer; ValaCCodeFunction* _tmp15_; ValaCCodeFunction* _tmp16_; ValaCCodeFile* _tmp17_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, "value_"); _tmp2_ = _tmp1_; _tmp3_ = g_strdup_printf ("%s_peek_pointer", _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = vala_ccode_function_new (_tmp4_, "gpointer"); _tmp6_ = _tmp5_; _g_free0 (_tmp4_); _g_free0 (_tmp2_); function = _tmp6_; _tmp7_ = vala_ccode_parameter_new ("value", "const GValue*"); _tmp8_ = _tmp7_; vala_ccode_function_add_parameter (function, _tmp8_); _vala_ccode_node_unref0 (_tmp8_); vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC); vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function); _tmp9_ = vala_ccode_identifier_new ("value"); _tmp10_ = _tmp9_; _tmp11_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp10_, "data[0]"); _tmp12_ = _tmp11_; _tmp13_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp12_, "v_pointer", FALSE); _tmp14_ = _tmp13_; _vala_ccode_node_unref0 (_tmp12_); _vala_ccode_node_unref0 (_tmp10_); vpointer = _tmp14_; _tmp15_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp16_ = _tmp15_; vala_ccode_function_add_return (_tmp16_, (ValaCCodeExpression*) vpointer); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp17_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_file_add_function (_tmp17_, function); _vala_ccode_node_unref0 (vpointer); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_type_value_table_lcopy_value_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; ValaCCodeFunction* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* function; ValaCCodeParameter* _tmp7_; ValaCCodeParameter* _tmp8_; ValaCCodeParameter* _tmp9_; ValaCCodeParameter* _tmp10_; ValaCCodeParameter* _tmp11_; ValaCCodeParameter* _tmp12_; ValaCCodeParameter* _tmp13_; ValaCCodeParameter* _tmp14_; ValaCCodeIdentifier* _tmp15_; ValaCCodeIdentifier* _tmp16_; ValaCCodeMemberAccess* _tmp17_; ValaCCodeMemberAccess* _tmp18_; ValaCCodeMemberAccess* _tmp19_; ValaCCodeMemberAccess* _tmp20_; ValaCCodeMemberAccess* vpointer; ValaCCodeIdentifier* _tmp21_; ValaCCodeIdentifier* object_p_ptr; ValaCCodeConstant* _tmp22_; ValaCCodeConstant* null_; ValaCCodeFunction* _tmp23_; ValaCCodeFunction* _tmp24_; ValaClass* _tmp25_; gchar* _tmp26_ = NULL; gchar* _tmp27_; gchar* _tmp28_; gchar* _tmp29_; ValaCCodeIdentifier* _tmp30_; ValaCCodeIdentifier* _tmp31_; ValaCCodeMemberAccess* _tmp32_; ValaCCodeMemberAccess* _tmp33_; ValaCCodeVariableDeclarator* _tmp34_; ValaCCodeVariableDeclarator* _tmp35_; ValaCCodeIdentifier* _tmp36_; ValaCCodeIdentifier* _tmp37_; ValaCCodeFunctionCall* _tmp38_; ValaCCodeFunctionCall* _tmp39_; ValaCCodeFunctionCall* value_type_name_fct; ValaCCodeConstant* _tmp40_; ValaCCodeConstant* _tmp41_; ValaCCodeIdentifier* _tmp42_; ValaCCodeIdentifier* _tmp43_; ValaCCodeUnaryExpression* _tmp44_; ValaCCodeUnaryExpression* _tmp45_; ValaCCodeUnaryExpression* assert_condition; ValaCCodeFunction* _tmp46_; ValaCCodeFunction* _tmp47_; ValaCCodeIdentifier* _tmp48_; ValaCCodeIdentifier* _tmp49_; ValaCCodeFunctionCall* _tmp50_; ValaCCodeFunctionCall* _tmp51_; ValaCCodeFunctionCall* assert_printf; ValaCCodeConstant* _tmp52_; ValaCCodeConstant* _tmp53_; ValaCCodeFunction* _tmp54_; ValaCCodeFunction* _tmp55_; ValaCCodeFunction* _tmp56_; ValaCCodeFunction* _tmp57_; ValaCCodeUnaryExpression* _tmp58_; ValaCCodeUnaryExpression* main_condition; ValaCCodeIdentifier* _tmp59_; ValaCCodeIdentifier* _tmp60_; ValaCCodeIdentifier* _tmp61_; ValaCCodeIdentifier* _tmp62_; ValaCCodeBinaryExpression* _tmp63_; ValaCCodeBinaryExpression* _tmp64_; ValaCCodeBinaryExpression* main_else_if_condition; ValaClass* _tmp65_; gchar* _tmp66_ = NULL; gchar* _tmp67_; ValaCCodeIdentifier* _tmp68_; ValaCCodeIdentifier* _tmp69_; ValaCCodeFunctionCall* _tmp70_; ValaCCodeFunctionCall* _tmp71_; ValaCCodeFunctionCall* ref_fct; ValaCCodeFunction* _tmp72_; ValaCCodeFunction* _tmp73_; ValaCCodeFunction* _tmp74_; ValaCCodeFunction* _tmp75_; ValaCCodeFunction* _tmp76_; ValaCCodeFunction* _tmp77_; ValaCCodeFunction* _tmp78_; ValaCCodeFunction* _tmp79_; ValaCCodeFunction* _tmp80_; ValaCCodeFunction* _tmp81_; ValaCCodeFunction* _tmp82_; ValaCCodeFunction* _tmp83_; ValaCCodeFunction* _tmp84_; ValaCCodeFunction* _tmp85_; ValaCCodeFunction* _tmp86_; ValaCCodeFunction* _tmp87_; ValaCCodeFile* _tmp88_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, "value_"); _tmp2_ = _tmp1_; _tmp3_ = g_strdup_printf ("%s_lcopy_value", _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = vala_ccode_function_new (_tmp4_, "gchar*"); _tmp6_ = _tmp5_; _g_free0 (_tmp4_); _g_free0 (_tmp2_); function = _tmp6_; _tmp7_ = vala_ccode_parameter_new ("value", "const GValue*"); _tmp8_ = _tmp7_; vala_ccode_function_add_parameter (function, _tmp8_); _vala_ccode_node_unref0 (_tmp8_); _tmp9_ = vala_ccode_parameter_new ("n_collect_values", "guint"); _tmp10_ = _tmp9_; vala_ccode_function_add_parameter (function, _tmp10_); _vala_ccode_node_unref0 (_tmp10_); _tmp11_ = vala_ccode_parameter_new ("collect_values", "GTypeCValue*"); _tmp12_ = _tmp11_; vala_ccode_function_add_parameter (function, _tmp12_); _vala_ccode_node_unref0 (_tmp12_); _tmp13_ = vala_ccode_parameter_new ("collect_flags", "guint"); _tmp14_ = _tmp13_; vala_ccode_function_add_parameter (function, _tmp14_); _vala_ccode_node_unref0 (_tmp14_); vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC); _tmp15_ = vala_ccode_identifier_new ("value"); _tmp16_ = _tmp15_; _tmp17_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp16_, "data[0]"); _tmp18_ = _tmp17_; _tmp19_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp18_, "v_pointer", FALSE); _tmp20_ = _tmp19_; _vala_ccode_node_unref0 (_tmp18_); _vala_ccode_node_unref0 (_tmp16_); vpointer = _tmp20_; _tmp21_ = vala_ccode_identifier_new ("*object_p"); object_p_ptr = _tmp21_; _tmp22_ = vala_ccode_constant_new ("NULL"); null_ = _tmp22_; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function); _tmp23_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp24_ = _tmp23_; _tmp25_ = cl; _tmp26_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp25_); _tmp27_ = _tmp26_; _tmp28_ = g_strconcat (_tmp27_, "**", NULL); _tmp29_ = _tmp28_; _tmp30_ = vala_ccode_identifier_new ("collect_values[0]"); _tmp31_ = _tmp30_; _tmp32_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp31_, "v_pointer", FALSE); _tmp33_ = _tmp32_; _tmp34_ = vala_ccode_variable_declarator_new ("object_p", (ValaCCodeExpression*) _tmp33_, NULL); _tmp35_ = _tmp34_; vala_ccode_function_add_declaration (_tmp24_, _tmp29_, (ValaCCodeDeclarator*) _tmp35_, 0); _vala_ccode_node_unref0 (_tmp35_); _vala_ccode_node_unref0 (_tmp33_); _vala_ccode_node_unref0 (_tmp31_); _g_free0 (_tmp29_); _g_free0 (_tmp27_); _tmp36_ = vala_ccode_identifier_new ("G_VALUE_TYPE_NAME"); _tmp37_ = _tmp36_; _tmp38_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp37_); _tmp39_ = _tmp38_; _vala_ccode_node_unref0 (_tmp37_); value_type_name_fct = _tmp39_; _tmp40_ = vala_ccode_constant_new ("value"); _tmp41_ = _tmp40_; vala_ccode_function_call_add_argument (value_type_name_fct, (ValaCCodeExpression*) _tmp41_); _vala_ccode_node_unref0 (_tmp41_); _tmp42_ = vala_ccode_identifier_new ("object_p"); _tmp43_ = _tmp42_; _tmp44_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp43_); _tmp45_ = _tmp44_; _vala_ccode_node_unref0 (_tmp43_); assert_condition = _tmp45_; _tmp46_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp47_ = _tmp46_; vala_ccode_function_open_if (_tmp47_, (ValaCCodeExpression*) assert_condition); _tmp48_ = vala_ccode_identifier_new ("g_strdup_printf"); _tmp49_ = _tmp48_; _tmp50_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp49_); _tmp51_ = _tmp50_; _vala_ccode_node_unref0 (_tmp49_); assert_printf = _tmp51_; _tmp52_ = vala_ccode_constant_new ("\"value location for `%s' passed as NULL\""); _tmp53_ = _tmp52_; vala_ccode_function_call_add_argument (assert_printf, (ValaCCodeExpression*) _tmp53_); _vala_ccode_node_unref0 (_tmp53_); vala_ccode_function_call_add_argument (assert_printf, (ValaCCodeExpression*) value_type_name_fct); _tmp54_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp55_ = _tmp54_; vala_ccode_function_add_return (_tmp55_, (ValaCCodeExpression*) assert_printf); _tmp56_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp57_ = _tmp56_; vala_ccode_function_close (_tmp57_); _tmp58_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) vpointer); main_condition = _tmp58_; _tmp59_ = vala_ccode_identifier_new ("collect_flags"); _tmp60_ = _tmp59_; _tmp61_ = vala_ccode_identifier_new ("G_VALUE_NOCOPY_CONTENTS"); _tmp62_ = _tmp61_; _tmp63_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_BITWISE_AND, (ValaCCodeExpression*) _tmp60_, (ValaCCodeExpression*) _tmp62_); _tmp64_ = _tmp63_; _vala_ccode_node_unref0 (_tmp62_); _vala_ccode_node_unref0 (_tmp60_); main_else_if_condition = _tmp64_; _tmp65_ = cl; _tmp66_ = vala_ccode_base_module_get_ccode_ref_function ((ValaTypeSymbol*) _tmp65_); _tmp67_ = _tmp66_; _tmp68_ = vala_ccode_identifier_new (_tmp67_); _tmp69_ = _tmp68_; _tmp70_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp69_); _tmp71_ = _tmp70_; _vala_ccode_node_unref0 (_tmp69_); _g_free0 (_tmp67_); ref_fct = _tmp71_; vala_ccode_function_call_add_argument (ref_fct, (ValaCCodeExpression*) vpointer); _tmp72_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp73_ = _tmp72_; vala_ccode_function_open_if (_tmp73_, (ValaCCodeExpression*) main_condition); _tmp74_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp75_ = _tmp74_; vala_ccode_function_add_assignment (_tmp75_, (ValaCCodeExpression*) object_p_ptr, (ValaCCodeExpression*) null_); _tmp76_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp77_ = _tmp76_; vala_ccode_function_else_if (_tmp77_, (ValaCCodeExpression*) main_else_if_condition); _tmp78_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp79_ = _tmp78_; vala_ccode_function_add_assignment (_tmp79_, (ValaCCodeExpression*) object_p_ptr, (ValaCCodeExpression*) vpointer); _tmp80_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp81_ = _tmp80_; vala_ccode_function_add_else (_tmp81_); _tmp82_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp83_ = _tmp82_; vala_ccode_function_add_assignment (_tmp83_, (ValaCCodeExpression*) object_p_ptr, (ValaCCodeExpression*) ref_fct); _tmp84_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp85_ = _tmp84_; vala_ccode_function_close (_tmp85_); _tmp86_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp87_ = _tmp86_; vala_ccode_function_add_return (_tmp87_, (ValaCCodeExpression*) null_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp88_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_file_add_function (_tmp88_, function); _vala_ccode_node_unref0 (ref_fct); _vala_ccode_node_unref0 (main_else_if_condition); _vala_ccode_node_unref0 (main_condition); _vala_ccode_node_unref0 (assert_printf); _vala_ccode_node_unref0 (assert_condition); _vala_ccode_node_unref0 (value_type_name_fct); _vala_ccode_node_unref0 (null_); _vala_ccode_node_unref0 (object_p_ptr); _vala_ccode_node_unref0 (vpointer); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_type_value_table_collect_value_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; ValaCCodeFunction* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* function; ValaCCodeParameter* _tmp7_; ValaCCodeParameter* _tmp8_; ValaCCodeParameter* _tmp9_; ValaCCodeParameter* _tmp10_; ValaCCodeParameter* _tmp11_; ValaCCodeParameter* _tmp12_; ValaCCodeParameter* _tmp13_; ValaCCodeParameter* _tmp14_; ValaCCodeIdentifier* _tmp15_; ValaCCodeIdentifier* _tmp16_; ValaCCodeMemberAccess* _tmp17_; ValaCCodeMemberAccess* _tmp18_; ValaCCodeMemberAccess* _tmp19_; ValaCCodeMemberAccess* _tmp20_; ValaCCodeMemberAccess* vpointer; ValaCCodeIdentifier* _tmp21_; ValaCCodeIdentifier* _tmp22_; ValaCCodeMemberAccess* _tmp23_; ValaCCodeMemberAccess* _tmp24_; ValaCCodeMemberAccess* collect_vpointer; ValaCCodeFunction* _tmp25_; ValaCCodeFunction* _tmp26_; ValaCCodeFunction* _tmp27_; ValaCCodeFunction* _tmp28_; ValaClass* _tmp29_; gchar* _tmp30_ = NULL; gchar* _tmp31_; gchar* _tmp32_; gchar* _tmp33_; ValaCCodeVariableDeclarator* _tmp34_; ValaCCodeVariableDeclarator* _tmp35_; ValaCCodeIdentifier* _tmp36_; ValaCCodeIdentifier* obj_identifier; ValaCCodeMemberAccess* _tmp37_; ValaCCodeMemberAccess* _tmp38_; ValaCCodeMemberAccess* _tmp39_; ValaCCodeMemberAccess* _tmp40_; ValaCCodeMemberAccess* l_expression; ValaCCodeConstant* _tmp41_; ValaCCodeConstant* _tmp42_; ValaCCodeBinaryExpression* _tmp43_; ValaCCodeBinaryExpression* _tmp44_; ValaCCodeBinaryExpression* sub_condition; ValaCCodeIdentifier* _tmp45_; ValaCCodeIdentifier* _tmp46_; ValaCCodeFunctionCall* _tmp47_; ValaCCodeFunctionCall* _tmp48_; ValaCCodeFunctionCall* value_type_name_fct; ValaCCodeConstant* _tmp49_; ValaCCodeConstant* _tmp50_; ValaCCodeFunction* _tmp51_; ValaCCodeFunction* _tmp52_; ValaCCodeIdentifier* _tmp53_; ValaCCodeIdentifier* _tmp54_; ValaCCodeFunctionCall* _tmp55_; ValaCCodeFunctionCall* _tmp56_; ValaCCodeFunctionCall* true_return; ValaCCodeConstant* _tmp57_; ValaCCodeConstant* _tmp58_; ValaCCodeConstant* _tmp59_; ValaCCodeConstant* _tmp60_; ValaCCodeConstant* _tmp61_; ValaCCodeConstant* _tmp62_; ValaCCodeFunction* _tmp63_; ValaCCodeFunction* _tmp64_; ValaCCodeIdentifier* _tmp65_; ValaCCodeIdentifier* _tmp66_; ValaCCodeFunctionCall* _tmp67_; ValaCCodeFunctionCall* _tmp68_; ValaCCodeFunctionCall* reg_call; ValaCCodeIdentifier* _tmp69_; ValaCCodeIdentifier* _tmp70_; ValaCCodeFunctionCall* _tmp71_; ValaCCodeFunctionCall* _tmp72_; ValaCCodeFunctionCall* type_check; ValaCCodeIdentifier* _tmp73_; ValaCCodeIdentifier* _tmp74_; ValaCCodeIdentifier* _tmp75_; ValaCCodeIdentifier* _tmp76_; ValaCCodeFunctionCall* _tmp77_; ValaCCodeFunctionCall* _tmp78_; ValaCCodeFunctionCall* stored_type; ValaCCodeIdentifier* _tmp79_; ValaCCodeIdentifier* _tmp80_; ValaCCodeFunction* _tmp81_; ValaCCodeFunction* _tmp82_; ValaCCodeUnaryExpression* _tmp83_; ValaCCodeUnaryExpression* _tmp84_; ValaCCodeIdentifier* _tmp85_; ValaCCodeIdentifier* _tmp86_; ValaCCodeFunctionCall* _tmp87_; ValaCCodeFunctionCall* _tmp88_; ValaCCodeFunctionCall* false_return; ValaCCodeIdentifier* _tmp89_; ValaCCodeIdentifier* _tmp90_; ValaCCodeFunctionCall* _tmp91_; ValaCCodeFunctionCall* _tmp92_; ValaCCodeFunctionCall* type_name_fct; ValaCCodeConstant* _tmp93_; ValaCCodeConstant* _tmp94_; ValaCCodeConstant* _tmp95_; ValaCCodeConstant* _tmp96_; ValaCCodeConstant* _tmp97_; ValaCCodeConstant* _tmp98_; ValaCCodeConstant* _tmp99_; ValaCCodeConstant* _tmp100_; ValaCCodeFunction* _tmp101_; ValaCCodeFunction* _tmp102_; ValaCCodeFunction* _tmp103_; ValaCCodeFunction* _tmp104_; ValaClass* _tmp105_; gchar* _tmp106_ = NULL; gchar* _tmp107_; ValaCCodeIdentifier* _tmp108_; ValaCCodeIdentifier* _tmp109_; ValaCCodeFunctionCall* _tmp110_; ValaCCodeFunctionCall* _tmp111_; ValaCCodeFunctionCall* ref_call; ValaCCodeIdentifier* _tmp112_; ValaCCodeIdentifier* _tmp113_; ValaCCodeFunction* _tmp114_; ValaCCodeFunction* _tmp115_; ValaCCodeFunction* _tmp116_; ValaCCodeFunction* _tmp117_; ValaCCodeFunction* _tmp118_; ValaCCodeFunction* _tmp119_; ValaCCodeConstant* _tmp120_; ValaCCodeConstant* _tmp121_; ValaCCodeFunction* _tmp122_; ValaCCodeFunction* _tmp123_; ValaCCodeFunction* _tmp124_; ValaCCodeFunction* _tmp125_; ValaCCodeConstant* _tmp126_; ValaCCodeConstant* _tmp127_; ValaCCodeFile* _tmp128_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, "value_"); _tmp2_ = _tmp1_; _tmp3_ = g_strdup_printf ("%s_collect_value", _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = vala_ccode_function_new (_tmp4_, "gchar*"); _tmp6_ = _tmp5_; _g_free0 (_tmp4_); _g_free0 (_tmp2_); function = _tmp6_; _tmp7_ = vala_ccode_parameter_new ("value", "GValue*"); _tmp8_ = _tmp7_; vala_ccode_function_add_parameter (function, _tmp8_); _vala_ccode_node_unref0 (_tmp8_); _tmp9_ = vala_ccode_parameter_new ("n_collect_values", "guint"); _tmp10_ = _tmp9_; vala_ccode_function_add_parameter (function, _tmp10_); _vala_ccode_node_unref0 (_tmp10_); _tmp11_ = vala_ccode_parameter_new ("collect_values", "GTypeCValue*"); _tmp12_ = _tmp11_; vala_ccode_function_add_parameter (function, _tmp12_); _vala_ccode_node_unref0 (_tmp12_); _tmp13_ = vala_ccode_parameter_new ("collect_flags", "guint"); _tmp14_ = _tmp13_; vala_ccode_function_add_parameter (function, _tmp14_); _vala_ccode_node_unref0 (_tmp14_); vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC); _tmp15_ = vala_ccode_identifier_new ("value"); _tmp16_ = _tmp15_; _tmp17_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp16_, "data[0]"); _tmp18_ = _tmp17_; _tmp19_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp18_, "v_pointer", FALSE); _tmp20_ = _tmp19_; _vala_ccode_node_unref0 (_tmp18_); _vala_ccode_node_unref0 (_tmp16_); vpointer = _tmp20_; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function); _tmp21_ = vala_ccode_identifier_new ("collect_values[0]"); _tmp22_ = _tmp21_; _tmp23_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp22_, "v_pointer", FALSE); _tmp24_ = _tmp23_; _vala_ccode_node_unref0 (_tmp22_); collect_vpointer = _tmp24_; _tmp25_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp26_ = _tmp25_; vala_ccode_function_open_if (_tmp26_, (ValaCCodeExpression*) collect_vpointer); _tmp27_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp28_ = _tmp27_; _tmp29_ = cl; _tmp30_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp29_); _tmp31_ = _tmp30_; _tmp32_ = g_strconcat (_tmp31_, "*", NULL); _tmp33_ = _tmp32_; _tmp34_ = vala_ccode_variable_declarator_new ("object", (ValaCCodeExpression*) collect_vpointer, NULL); _tmp35_ = _tmp34_; vala_ccode_function_add_declaration (_tmp28_, _tmp33_, (ValaCCodeDeclarator*) _tmp35_, 0); _vala_ccode_node_unref0 (_tmp35_); _g_free0 (_tmp33_); _g_free0 (_tmp31_); _tmp36_ = vala_ccode_identifier_new ("object"); obj_identifier = _tmp36_; _tmp37_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) obj_identifier, "parent_instance"); _tmp38_ = _tmp37_; _tmp39_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp38_, "g_class", FALSE); _tmp40_ = _tmp39_; _vala_ccode_node_unref0 (_tmp38_); l_expression = _tmp40_; _tmp41_ = vala_ccode_constant_new ("NULL"); _tmp42_ = _tmp41_; _tmp43_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) l_expression, (ValaCCodeExpression*) _tmp42_); _tmp44_ = _tmp43_; _vala_ccode_node_unref0 (_tmp42_); sub_condition = _tmp44_; _tmp45_ = vala_ccode_identifier_new ("G_VALUE_TYPE_NAME"); _tmp46_ = _tmp45_; _tmp47_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp46_); _tmp48_ = _tmp47_; _vala_ccode_node_unref0 (_tmp46_); value_type_name_fct = _tmp48_; _tmp49_ = vala_ccode_constant_new ("value"); _tmp50_ = _tmp49_; vala_ccode_function_call_add_argument (value_type_name_fct, (ValaCCodeExpression*) _tmp50_); _vala_ccode_node_unref0 (_tmp50_); _tmp51_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp52_ = _tmp51_; vala_ccode_function_open_if (_tmp52_, (ValaCCodeExpression*) sub_condition); _tmp53_ = vala_ccode_identifier_new ("g_strconcat"); _tmp54_ = _tmp53_; _tmp55_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp54_); _tmp56_ = _tmp55_; _vala_ccode_node_unref0 (_tmp54_); true_return = _tmp56_; _tmp57_ = vala_ccode_constant_new ("\"invalid unclassed object pointer for value type `\""); _tmp58_ = _tmp57_; vala_ccode_function_call_add_argument (true_return, (ValaCCodeExpression*) _tmp58_); _vala_ccode_node_unref0 (_tmp58_); vala_ccode_function_call_add_argument (true_return, (ValaCCodeExpression*) value_type_name_fct); _tmp59_ = vala_ccode_constant_new ("\"'\""); _tmp60_ = _tmp59_; vala_ccode_function_call_add_argument (true_return, (ValaCCodeExpression*) _tmp60_); _vala_ccode_node_unref0 (_tmp60_); _tmp61_ = vala_ccode_constant_new ("NULL"); _tmp62_ = _tmp61_; vala_ccode_function_call_add_argument (true_return, (ValaCCodeExpression*) _tmp62_); _vala_ccode_node_unref0 (_tmp62_); _tmp63_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp64_ = _tmp63_; vala_ccode_function_add_return (_tmp64_, (ValaCCodeExpression*) true_return); _tmp65_ = vala_ccode_identifier_new ("g_value_type_compatible"); _tmp66_ = _tmp65_; _tmp67_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp66_); _tmp68_ = _tmp67_; _vala_ccode_node_unref0 (_tmp66_); reg_call = _tmp68_; _tmp69_ = vala_ccode_identifier_new ("G_TYPE_FROM_INSTANCE"); _tmp70_ = _tmp69_; _tmp71_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp70_); _tmp72_ = _tmp71_; _vala_ccode_node_unref0 (_tmp70_); type_check = _tmp72_; _tmp73_ = vala_ccode_identifier_new ("object"); _tmp74_ = _tmp73_; vala_ccode_function_call_add_argument (type_check, (ValaCCodeExpression*) _tmp74_); _vala_ccode_node_unref0 (_tmp74_); vala_ccode_function_call_add_argument (reg_call, (ValaCCodeExpression*) type_check); _tmp75_ = vala_ccode_identifier_new ("G_VALUE_TYPE"); _tmp76_ = _tmp75_; _tmp77_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp76_); _tmp78_ = _tmp77_; _vala_ccode_node_unref0 (_tmp76_); stored_type = _tmp78_; _tmp79_ = vala_ccode_identifier_new ("value"); _tmp80_ = _tmp79_; vala_ccode_function_call_add_argument (stored_type, (ValaCCodeExpression*) _tmp80_); _vala_ccode_node_unref0 (_tmp80_); vala_ccode_function_call_add_argument (reg_call, (ValaCCodeExpression*) stored_type); _tmp81_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp82_ = _tmp81_; _tmp83_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) reg_call); _tmp84_ = _tmp83_; vala_ccode_function_else_if (_tmp82_, (ValaCCodeExpression*) _tmp84_); _vala_ccode_node_unref0 (_tmp84_); _tmp85_ = vala_ccode_identifier_new ("g_strconcat"); _tmp86_ = _tmp85_; _tmp87_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp86_); _tmp88_ = _tmp87_; _vala_ccode_node_unref0 (_tmp86_); false_return = _tmp88_; _tmp89_ = vala_ccode_identifier_new ("g_type_name"); _tmp90_ = _tmp89_; _tmp91_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp90_); _tmp92_ = _tmp91_; _vala_ccode_node_unref0 (_tmp90_); type_name_fct = _tmp92_; vala_ccode_function_call_add_argument (type_name_fct, (ValaCCodeExpression*) type_check); _tmp93_ = vala_ccode_constant_new ("\"invalid object type `\""); _tmp94_ = _tmp93_; vala_ccode_function_call_add_argument (false_return, (ValaCCodeExpression*) _tmp94_); _vala_ccode_node_unref0 (_tmp94_); vala_ccode_function_call_add_argument (false_return, (ValaCCodeExpression*) type_name_fct); _tmp95_ = vala_ccode_constant_new ("\"' for value type `\""); _tmp96_ = _tmp95_; vala_ccode_function_call_add_argument (false_return, (ValaCCodeExpression*) _tmp96_); _vala_ccode_node_unref0 (_tmp96_); vala_ccode_function_call_add_argument (false_return, (ValaCCodeExpression*) value_type_name_fct); _tmp97_ = vala_ccode_constant_new ("\"'\""); _tmp98_ = _tmp97_; vala_ccode_function_call_add_argument (false_return, (ValaCCodeExpression*) _tmp98_); _vala_ccode_node_unref0 (_tmp98_); _tmp99_ = vala_ccode_constant_new ("NULL"); _tmp100_ = _tmp99_; vala_ccode_function_call_add_argument (false_return, (ValaCCodeExpression*) _tmp100_); _vala_ccode_node_unref0 (_tmp100_); _tmp101_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp102_ = _tmp101_; vala_ccode_function_add_return (_tmp102_, (ValaCCodeExpression*) false_return); _tmp103_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp104_ = _tmp103_; vala_ccode_function_close (_tmp104_); _tmp105_ = cl; _tmp106_ = vala_ccode_base_module_get_ccode_ref_function ((ValaTypeSymbol*) _tmp105_); _tmp107_ = _tmp106_; _tmp108_ = vala_ccode_identifier_new (_tmp107_); _tmp109_ = _tmp108_; _tmp110_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp109_); _tmp111_ = _tmp110_; _vala_ccode_node_unref0 (_tmp109_); _g_free0 (_tmp107_); ref_call = _tmp111_; _tmp112_ = vala_ccode_identifier_new ("object"); _tmp113_ = _tmp112_; vala_ccode_function_call_add_argument (ref_call, (ValaCCodeExpression*) _tmp113_); _vala_ccode_node_unref0 (_tmp113_); _tmp114_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp115_ = _tmp114_; vala_ccode_function_add_assignment (_tmp115_, (ValaCCodeExpression*) vpointer, (ValaCCodeExpression*) ref_call); _tmp116_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp117_ = _tmp116_; vala_ccode_function_add_else (_tmp117_); _tmp118_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp119_ = _tmp118_; _tmp120_ = vala_ccode_constant_new ("NULL"); _tmp121_ = _tmp120_; vala_ccode_function_add_assignment (_tmp119_, (ValaCCodeExpression*) vpointer, (ValaCCodeExpression*) _tmp121_); _vala_ccode_node_unref0 (_tmp121_); _tmp122_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp123_ = _tmp122_; vala_ccode_function_close (_tmp123_); _tmp124_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp125_ = _tmp124_; _tmp126_ = vala_ccode_constant_new ("NULL"); _tmp127_ = _tmp126_; vala_ccode_function_add_return (_tmp125_, (ValaCCodeExpression*) _tmp127_); _vala_ccode_node_unref0 (_tmp127_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp128_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_file_add_function (_tmp128_, function); _vala_ccode_node_unref0 (ref_call); _vala_ccode_node_unref0 (type_name_fct); _vala_ccode_node_unref0 (false_return); _vala_ccode_node_unref0 (stored_type); _vala_ccode_node_unref0 (type_check); _vala_ccode_node_unref0 (reg_call); _vala_ccode_node_unref0 (true_return); _vala_ccode_node_unref0 (value_type_name_fct); _vala_ccode_node_unref0 (sub_condition); _vala_ccode_node_unref0 (l_expression); _vala_ccode_node_unref0 (obj_identifier); _vala_ccode_node_unref0 (collect_vpointer); _vala_ccode_node_unref0 (vpointer); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_g_param_spec_type_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* function_name; const gchar* _tmp2_; ValaCCodeFunction* _tmp3_; ValaCCodeFunction* function; ValaCCodeFunction* _tmp4_; ValaCCodeParameter* _tmp5_; ValaCCodeParameter* _tmp6_; ValaCCodeFunction* _tmp7_; ValaCCodeParameter* _tmp8_; ValaCCodeParameter* _tmp9_; ValaCCodeFunction* _tmp10_; ValaCCodeParameter* _tmp11_; ValaCCodeParameter* _tmp12_; ValaCCodeFunction* _tmp13_; ValaCCodeParameter* _tmp14_; ValaCCodeParameter* _tmp15_; ValaCCodeFunction* _tmp16_; ValaCCodeParameter* _tmp17_; ValaCCodeParameter* _tmp18_; ValaClass* _tmp19_; ValaSymbolAccessibility _tmp20_; ValaSymbolAccessibility _tmp21_; ValaCCodeFunction* _tmp23_; ValaCCodeFunction* _tmp24_; ValaCCodeFunction* _tmp25_; ValaClass* _tmp26_; ValaSymbol* _tmp27_; ValaSymbol* _tmp28_; gchar* _tmp29_ = NULL; gchar* _tmp30_; ValaClass* _tmp31_; const gchar* _tmp32_; const gchar* _tmp33_; gchar* _tmp34_ = NULL; gchar* _tmp35_; ValaCCodeVariableDeclarator* _tmp36_; ValaCCodeVariableDeclarator* _tmp37_; ValaCCodeIdentifier* _tmp38_; ValaCCodeIdentifier* _tmp39_; ValaCCodeFunctionCall* _tmp40_; ValaCCodeFunctionCall* _tmp41_; ValaCCodeFunctionCall* subccall; ValaCCodeIdentifier* _tmp42_; ValaCCodeIdentifier* _tmp43_; ValaClass* _tmp44_; gchar* _tmp45_ = NULL; gchar* _tmp46_; ValaCCodeIdentifier* _tmp47_; ValaCCodeIdentifier* _tmp48_; ValaCCodeIdentifier* _tmp49_; ValaCCodeIdentifier* _tmp50_; ValaCCodeFunctionCall* _tmp51_; ValaCCodeFunctionCall* _tmp52_; ValaCCodeFunctionCall* ccall; ValaCCodeFunctionCall* _tmp53_; ValaCCodeFunctionCall* _tmp54_; ValaCCodeIdentifier* _tmp55_; ValaCCodeIdentifier* _tmp56_; ValaCCodeFunction* _tmp57_; ValaCCodeFunction* _tmp58_; ValaCCodeFunctionCall* _tmp59_; ValaCCodeIdentifier* _tmp60_; ValaCCodeIdentifier* _tmp61_; ValaCCodeFunctionCall* _tmp62_; ValaCCodeFunctionCall* _tmp63_; ValaCCodeIdentifier* _tmp64_; ValaCCodeIdentifier* _tmp65_; ValaCCodeFunctionCall* _tmp66_; ValaCCodeIdentifier* _tmp67_; ValaCCodeIdentifier* _tmp68_; ValaCCodeFunctionCall* _tmp69_; ValaCCodeIdentifier* _tmp70_; ValaCCodeIdentifier* _tmp71_; ValaCCodeFunctionCall* _tmp72_; ValaCCodeIdentifier* _tmp73_; ValaCCodeIdentifier* _tmp74_; ValaCCodeFunctionCall* _tmp75_; ValaCCodeIdentifier* _tmp76_; ValaCCodeIdentifier* _tmp77_; ValaCCodeFunction* _tmp78_; ValaCCodeFunction* _tmp79_; ValaCCodeIdentifier* _tmp80_; ValaCCodeIdentifier* _tmp81_; ValaCCodeFunctionCall* _tmp82_; ValaCCodeIdentifier* _tmp83_; ValaCCodeIdentifier* _tmp84_; ValaCCodeFunctionCall* _tmp85_; ValaCCodeFunctionCall* _tmp86_; ValaCCodeIdentifier* _tmp87_; ValaCCodeIdentifier* _tmp88_; ValaCCodeFunction* _tmp89_; ValaCCodeFunction* _tmp90_; ValaCCodeFunctionCall* _tmp91_; ValaCCodeMemberAccess* _tmp92_; ValaCCodeMemberAccess* _tmp93_; ValaCCodeIdentifier* _tmp94_; ValaCCodeIdentifier* _tmp95_; ValaCCodeFunction* _tmp96_; ValaCCodeFunction* _tmp97_; ValaCCodeFunctionCall* _tmp98_; ValaCCodeFile* _tmp99_; ValaCCodeFunction* _tmp100_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, "param_spec_"); function_name = _tmp1_; _tmp2_ = function_name; _tmp3_ = vala_ccode_function_new (_tmp2_, "GParamSpec*"); function = _tmp3_; _tmp4_ = function; _tmp5_ = vala_ccode_parameter_new ("name", "const gchar*"); _tmp6_ = _tmp5_; vala_ccode_function_add_parameter (_tmp4_, _tmp6_); _vala_ccode_node_unref0 (_tmp6_); _tmp7_ = function; _tmp8_ = vala_ccode_parameter_new ("nick", "const gchar*"); _tmp9_ = _tmp8_; vala_ccode_function_add_parameter (_tmp7_, _tmp9_); _vala_ccode_node_unref0 (_tmp9_); _tmp10_ = function; _tmp11_ = vala_ccode_parameter_new ("blurb", "const gchar*"); _tmp12_ = _tmp11_; vala_ccode_function_add_parameter (_tmp10_, _tmp12_); _vala_ccode_node_unref0 (_tmp12_); _tmp13_ = function; _tmp14_ = vala_ccode_parameter_new ("object_type", "GType"); _tmp15_ = _tmp14_; vala_ccode_function_add_parameter (_tmp13_, _tmp15_); _vala_ccode_node_unref0 (_tmp15_); _tmp16_ = function; _tmp17_ = vala_ccode_parameter_new ("flags", "GParamFlags"); _tmp18_ = _tmp17_; vala_ccode_function_add_parameter (_tmp16_, _tmp18_); _vala_ccode_node_unref0 (_tmp18_); _tmp19_ = cl; _tmp20_ = vala_symbol_get_access ((ValaSymbol*) _tmp19_); _tmp21_ = _tmp20_; if (_tmp21_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp22_; _tmp22_ = function; vala_ccode_function_set_modifiers (_tmp22_, VALA_CCODE_MODIFIERS_STATIC); } _tmp23_ = function; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp23_); _tmp24_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp25_ = _tmp24_; _tmp26_ = cl; _tmp27_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp26_); _tmp28_ = _tmp27_; _tmp29_ = vala_ccode_base_module_get_ccode_prefix (_tmp28_); _tmp30_ = _tmp29_; _tmp31_ = cl; _tmp32_ = vala_symbol_get_name ((ValaSymbol*) _tmp31_); _tmp33_ = _tmp32_; _tmp34_ = g_strdup_printf ("%sParamSpec%s*", _tmp30_, _tmp33_); _tmp35_ = _tmp34_; _tmp36_ = vala_ccode_variable_declarator_new ("spec", NULL, NULL); _tmp37_ = _tmp36_; vala_ccode_function_add_declaration (_tmp25_, _tmp35_, (ValaCCodeDeclarator*) _tmp37_, 0); _vala_ccode_node_unref0 (_tmp37_); _g_free0 (_tmp35_); _g_free0 (_tmp30_); _tmp38_ = vala_ccode_identifier_new ("g_type_is_a"); _tmp39_ = _tmp38_; _tmp40_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp39_); _tmp41_ = _tmp40_; _vala_ccode_node_unref0 (_tmp39_); subccall = _tmp41_; _tmp42_ = vala_ccode_identifier_new ("object_type"); _tmp43_ = _tmp42_; vala_ccode_function_call_add_argument (subccall, (ValaCCodeExpression*) _tmp43_); _vala_ccode_node_unref0 (_tmp43_); _tmp44_ = cl; _tmp45_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp44_); _tmp46_ = _tmp45_; _tmp47_ = vala_ccode_identifier_new (_tmp46_); _tmp48_ = _tmp47_; vala_ccode_function_call_add_argument (subccall, (ValaCCodeExpression*) _tmp48_); _vala_ccode_node_unref0 (_tmp48_); _g_free0 (_tmp46_); _tmp49_ = vala_ccode_identifier_new ("g_return_val_if_fail"); _tmp50_ = _tmp49_; _tmp51_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp50_); _tmp52_ = _tmp51_; _vala_ccode_node_unref0 (_tmp50_); ccall = _tmp52_; _tmp53_ = ccall; vala_ccode_function_call_add_argument (_tmp53_, (ValaCCodeExpression*) subccall); _tmp54_ = ccall; _tmp55_ = vala_ccode_identifier_new ("NULL"); _tmp56_ = _tmp55_; vala_ccode_function_call_add_argument (_tmp54_, (ValaCCodeExpression*) _tmp56_); _vala_ccode_node_unref0 (_tmp56_); _tmp57_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp58_ = _tmp57_; _tmp59_ = ccall; vala_ccode_function_add_expression (_tmp58_, (ValaCCodeExpression*) _tmp59_); _tmp60_ = vala_ccode_identifier_new ("g_param_spec_internal"); _tmp61_ = _tmp60_; _tmp62_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp61_); _vala_ccode_node_unref0 (ccall); ccall = _tmp62_; _vala_ccode_node_unref0 (_tmp61_); _tmp63_ = ccall; _tmp64_ = vala_ccode_identifier_new ("G_TYPE_PARAM_OBJECT"); _tmp65_ = _tmp64_; vala_ccode_function_call_add_argument (_tmp63_, (ValaCCodeExpression*) _tmp65_); _vala_ccode_node_unref0 (_tmp65_); _tmp66_ = ccall; _tmp67_ = vala_ccode_identifier_new ("name"); _tmp68_ = _tmp67_; vala_ccode_function_call_add_argument (_tmp66_, (ValaCCodeExpression*) _tmp68_); _vala_ccode_node_unref0 (_tmp68_); _tmp69_ = ccall; _tmp70_ = vala_ccode_identifier_new ("nick"); _tmp71_ = _tmp70_; vala_ccode_function_call_add_argument (_tmp69_, (ValaCCodeExpression*) _tmp71_); _vala_ccode_node_unref0 (_tmp71_); _tmp72_ = ccall; _tmp73_ = vala_ccode_identifier_new ("blurb"); _tmp74_ = _tmp73_; vala_ccode_function_call_add_argument (_tmp72_, (ValaCCodeExpression*) _tmp74_); _vala_ccode_node_unref0 (_tmp74_); _tmp75_ = ccall; _tmp76_ = vala_ccode_identifier_new ("flags"); _tmp77_ = _tmp76_; vala_ccode_function_call_add_argument (_tmp75_, (ValaCCodeExpression*) _tmp77_); _vala_ccode_node_unref0 (_tmp77_); _tmp78_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp79_ = _tmp78_; _tmp80_ = vala_ccode_identifier_new ("spec"); _tmp81_ = _tmp80_; _tmp82_ = ccall; vala_ccode_function_add_assignment (_tmp79_, (ValaCCodeExpression*) _tmp81_, (ValaCCodeExpression*) _tmp82_); _vala_ccode_node_unref0 (_tmp81_); _tmp83_ = vala_ccode_identifier_new ("G_PARAM_SPEC"); _tmp84_ = _tmp83_; _tmp85_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp84_); _vala_ccode_node_unref0 (ccall); ccall = _tmp85_; _vala_ccode_node_unref0 (_tmp84_); _tmp86_ = ccall; _tmp87_ = vala_ccode_identifier_new ("spec"); _tmp88_ = _tmp87_; vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp88_); _vala_ccode_node_unref0 (_tmp88_); _tmp89_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp90_ = _tmp89_; _tmp91_ = ccall; _tmp92_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp91_, "value_type"); _tmp93_ = _tmp92_; _tmp94_ = vala_ccode_identifier_new ("object_type"); _tmp95_ = _tmp94_; vala_ccode_function_add_assignment (_tmp90_, (ValaCCodeExpression*) _tmp93_, (ValaCCodeExpression*) _tmp95_); _vala_ccode_node_unref0 (_tmp95_); _vala_ccode_node_unref0 (_tmp93_); _tmp96_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp97_ = _tmp96_; _tmp98_ = ccall; vala_ccode_function_add_return (_tmp97_, (ValaCCodeExpression*) _tmp98_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp99_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp100_ = function; vala_ccode_file_add_function (_tmp99_, _tmp100_); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (subccall); _vala_ccode_node_unref0 (function); _g_free0 (function_name); } static void vala_gtype_module_add_g_value_set_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; ValaCCodeFunction* _tmp3_; ValaCCodeFunction* _tmp4_; ValaCCodeFunction* function; ValaCCodeFunction* _tmp5_; ValaCCodeParameter* _tmp6_; ValaCCodeParameter* _tmp7_; ValaCCodeFunction* _tmp8_; ValaCCodeParameter* _tmp9_; ValaCCodeParameter* _tmp10_; ValaClass* _tmp11_; ValaSymbolAccessibility _tmp12_; ValaSymbolAccessibility _tmp13_; ValaCCodeIdentifier* _tmp15_; ValaCCodeIdentifier* _tmp16_; ValaCCodeMemberAccess* _tmp17_; ValaCCodeMemberAccess* _tmp18_; ValaCCodeMemberAccess* _tmp19_; ValaCCodeMemberAccess* _tmp20_; ValaCCodeMemberAccess* vpointer; ValaCCodeFunction* _tmp21_; ValaCCodeFunction* _tmp22_; ValaCCodeFunction* _tmp23_; ValaClass* _tmp24_; gchar* _tmp25_ = NULL; gchar* _tmp26_; gchar* _tmp27_; gchar* _tmp28_; ValaCCodeVariableDeclarator* _tmp29_; ValaCCodeVariableDeclarator* _tmp30_; ValaCCodeIdentifier* _tmp31_; ValaCCodeIdentifier* _tmp32_; ValaCCodeFunctionCall* _tmp33_; ValaCCodeFunctionCall* _tmp34_; ValaCCodeFunctionCall* ccall_typecheck; ValaCCodeFunctionCall* _tmp35_; ValaCCodeIdentifier* _tmp36_; ValaCCodeIdentifier* _tmp37_; ValaCCodeFunctionCall* _tmp38_; ValaClass* _tmp39_; gchar* _tmp40_ = NULL; gchar* _tmp41_; ValaCCodeIdentifier* _tmp42_; ValaCCodeIdentifier* _tmp43_; ValaCCodeIdentifier* _tmp44_; ValaCCodeIdentifier* _tmp45_; ValaCCodeFunctionCall* _tmp46_; ValaCCodeFunctionCall* _tmp47_; ValaCCodeFunctionCall* ccall; ValaCCodeFunctionCall* _tmp48_; ValaCCodeFunctionCall* _tmp49_; ValaCCodeFunction* _tmp50_; ValaCCodeFunction* _tmp51_; ValaCCodeFunctionCall* _tmp52_; ValaCCodeFunction* _tmp53_; ValaCCodeFunction* _tmp54_; ValaCCodeConstant* _tmp55_; ValaCCodeConstant* _tmp56_; ValaCCodeFunction* _tmp57_; ValaCCodeFunction* _tmp58_; ValaCCodeIdentifier* _tmp59_; ValaCCodeIdentifier* _tmp60_; ValaCCodeIdentifier* _tmp61_; ValaCCodeIdentifier* _tmp62_; ValaCCodeFunctionCall* _tmp63_; ValaCCodeFunctionCall* _tmp64_; ValaCCodeIdentifier* _tmp65_; ValaCCodeIdentifier* _tmp66_; ValaCCodeFunctionCall* _tmp67_; ValaClass* _tmp68_; gchar* _tmp69_ = NULL; gchar* _tmp70_; ValaCCodeIdentifier* _tmp71_; ValaCCodeIdentifier* _tmp72_; ValaCCodeIdentifier* _tmp73_; ValaCCodeIdentifier* _tmp74_; ValaCCodeFunctionCall* _tmp75_; ValaCCodeFunctionCall* _tmp76_; ValaCCodeFunctionCall* _tmp77_; ValaCCodeFunction* _tmp78_; ValaCCodeFunction* _tmp79_; ValaCCodeFunctionCall* _tmp80_; ValaCCodeIdentifier* _tmp81_; ValaCCodeIdentifier* _tmp82_; ValaCCodeFunctionCall* _tmp83_; ValaCCodeFunctionCall* _tmp84_; ValaCCodeFunctionCall* ccall_typefrominstance; ValaCCodeIdentifier* _tmp85_; ValaCCodeIdentifier* _tmp86_; ValaCCodeIdentifier* _tmp87_; ValaCCodeIdentifier* _tmp88_; ValaCCodeFunctionCall* _tmp89_; ValaCCodeFunctionCall* _tmp90_; ValaCCodeFunctionCall* ccall_gvaluetype; ValaCCodeIdentifier* _tmp91_; ValaCCodeIdentifier* _tmp92_; ValaCCodeIdentifier* _tmp93_; ValaCCodeIdentifier* _tmp94_; ValaCCodeFunctionCall* _tmp95_; ValaCCodeFunctionCall* _tmp96_; ValaCCodeFunctionCall* ccall_typecompatible; ValaCCodeIdentifier* _tmp97_; ValaCCodeIdentifier* _tmp98_; ValaCCodeFunctionCall* _tmp99_; ValaCCodeFunctionCall* _tmp100_; ValaCCodeFunction* _tmp101_; ValaCCodeFunction* _tmp102_; ValaCCodeFunctionCall* _tmp103_; ValaCCodeFunction* _tmp104_; ValaCCodeFunction* _tmp105_; ValaCCodeConstant* _tmp106_; ValaCCodeConstant* _tmp107_; ValaClass* _tmp108_; gchar* _tmp109_ = NULL; gchar* _tmp110_; ValaCCodeIdentifier* _tmp111_; ValaCCodeIdentifier* _tmp112_; ValaCCodeFunctionCall* _tmp113_; ValaCCodeFunctionCall* _tmp114_; ValaCCodeFunction* _tmp115_; ValaCCodeFunction* _tmp116_; ValaCCodeFunctionCall* _tmp117_; ValaCCodeFunction* _tmp118_; ValaCCodeFunction* _tmp119_; ValaCCodeFunction* _tmp120_; ValaCCodeFunction* _tmp121_; ValaCCodeConstant* _tmp122_; ValaCCodeConstant* _tmp123_; ValaCCodeFunction* _tmp124_; ValaCCodeFunction* _tmp125_; ValaCCodeFunction* _tmp126_; ValaCCodeFunction* _tmp127_; ValaCCodeIdentifier* _tmp128_; ValaCCodeIdentifier* _tmp129_; ValaClass* _tmp130_; gchar* _tmp131_ = NULL; gchar* _tmp132_; ValaCCodeIdentifier* _tmp133_; ValaCCodeIdentifier* _tmp134_; ValaCCodeFunctionCall* _tmp135_; ValaCCodeFunctionCall* _tmp136_; ValaCCodeIdentifier* _tmp137_; ValaCCodeIdentifier* _tmp138_; ValaCCodeFunction* _tmp139_; ValaCCodeFunction* _tmp140_; ValaCCodeFunctionCall* _tmp141_; ValaCCodeFunction* _tmp142_; ValaCCodeFunction* _tmp143_; ValaCCodeFile* _tmp144_; ValaCCodeFunction* _tmp145_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_set_value_function ((ValaCodeNode*) _tmp0_); _tmp2_ = _tmp1_; _tmp3_ = vala_ccode_function_new (_tmp2_, "void"); _tmp4_ = _tmp3_; _g_free0 (_tmp2_); function = _tmp4_; _tmp5_ = function; _tmp6_ = vala_ccode_parameter_new ("value", "GValue*"); _tmp7_ = _tmp6_; vala_ccode_function_add_parameter (_tmp5_, _tmp7_); _vala_ccode_node_unref0 (_tmp7_); _tmp8_ = function; _tmp9_ = vala_ccode_parameter_new ("v_object", "gpointer"); _tmp10_ = _tmp9_; vala_ccode_function_add_parameter (_tmp8_, _tmp10_); _vala_ccode_node_unref0 (_tmp10_); _tmp11_ = cl; _tmp12_ = vala_symbol_get_access ((ValaSymbol*) _tmp11_); _tmp13_ = _tmp12_; if (_tmp13_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp14_; _tmp14_ = function; vala_ccode_function_set_modifiers (_tmp14_, VALA_CCODE_MODIFIERS_STATIC); } _tmp15_ = vala_ccode_identifier_new ("value"); _tmp16_ = _tmp15_; _tmp17_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp16_, "data[0]"); _tmp18_ = _tmp17_; _tmp19_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp18_, "v_pointer", FALSE); _tmp20_ = _tmp19_; _vala_ccode_node_unref0 (_tmp18_); _vala_ccode_node_unref0 (_tmp16_); vpointer = _tmp20_; _tmp21_ = function; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp21_); _tmp22_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp23_ = _tmp22_; _tmp24_ = cl; _tmp25_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp24_); _tmp26_ = _tmp25_; _tmp27_ = g_strconcat (_tmp26_, "*", NULL); _tmp28_ = _tmp27_; _tmp29_ = vala_ccode_variable_declarator_new ("old", NULL, NULL); _tmp30_ = _tmp29_; vala_ccode_function_add_declaration (_tmp23_, _tmp28_, (ValaCCodeDeclarator*) _tmp30_, 0); _vala_ccode_node_unref0 (_tmp30_); _g_free0 (_tmp28_); _g_free0 (_tmp26_); _tmp31_ = vala_ccode_identifier_new ("G_TYPE_CHECK_VALUE_TYPE"); _tmp32_ = _tmp31_; _tmp33_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp32_); _tmp34_ = _tmp33_; _vala_ccode_node_unref0 (_tmp32_); ccall_typecheck = _tmp34_; _tmp35_ = ccall_typecheck; _tmp36_ = vala_ccode_identifier_new ("value"); _tmp37_ = _tmp36_; vala_ccode_function_call_add_argument (_tmp35_, (ValaCCodeExpression*) _tmp37_); _vala_ccode_node_unref0 (_tmp37_); _tmp38_ = ccall_typecheck; _tmp39_ = cl; _tmp40_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp39_); _tmp41_ = _tmp40_; _tmp42_ = vala_ccode_identifier_new (_tmp41_); _tmp43_ = _tmp42_; vala_ccode_function_call_add_argument (_tmp38_, (ValaCCodeExpression*) _tmp43_); _vala_ccode_node_unref0 (_tmp43_); _g_free0 (_tmp41_); _tmp44_ = vala_ccode_identifier_new ("g_return_if_fail"); _tmp45_ = _tmp44_; _tmp46_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp45_); _tmp47_ = _tmp46_; _vala_ccode_node_unref0 (_tmp45_); ccall = _tmp47_; _tmp48_ = ccall; _tmp49_ = ccall_typecheck; vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp49_); _tmp50_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp51_ = _tmp50_; _tmp52_ = ccall; vala_ccode_function_add_expression (_tmp51_, (ValaCCodeExpression*) _tmp52_); _tmp53_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp54_ = _tmp53_; _tmp55_ = vala_ccode_constant_new ("old"); _tmp56_ = _tmp55_; vala_ccode_function_add_assignment (_tmp54_, (ValaCCodeExpression*) _tmp56_, (ValaCCodeExpression*) vpointer); _vala_ccode_node_unref0 (_tmp56_); _tmp57_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp58_ = _tmp57_; _tmp59_ = vala_ccode_identifier_new ("v_object"); _tmp60_ = _tmp59_; vala_ccode_function_open_if (_tmp58_, (ValaCCodeExpression*) _tmp60_); _vala_ccode_node_unref0 (_tmp60_); _tmp61_ = vala_ccode_identifier_new ("G_TYPE_CHECK_INSTANCE_TYPE"); _tmp62_ = _tmp61_; _tmp63_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp62_); _vala_ccode_node_unref0 (ccall_typecheck); ccall_typecheck = _tmp63_; _vala_ccode_node_unref0 (_tmp62_); _tmp64_ = ccall_typecheck; _tmp65_ = vala_ccode_identifier_new ("v_object"); _tmp66_ = _tmp65_; vala_ccode_function_call_add_argument (_tmp64_, (ValaCCodeExpression*) _tmp66_); _vala_ccode_node_unref0 (_tmp66_); _tmp67_ = ccall_typecheck; _tmp68_ = cl; _tmp69_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp68_); _tmp70_ = _tmp69_; _tmp71_ = vala_ccode_identifier_new (_tmp70_); _tmp72_ = _tmp71_; vala_ccode_function_call_add_argument (_tmp67_, (ValaCCodeExpression*) _tmp72_); _vala_ccode_node_unref0 (_tmp72_); _g_free0 (_tmp70_); _tmp73_ = vala_ccode_identifier_new ("g_return_if_fail"); _tmp74_ = _tmp73_; _tmp75_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp74_); _vala_ccode_node_unref0 (ccall); ccall = _tmp75_; _vala_ccode_node_unref0 (_tmp74_); _tmp76_ = ccall; _tmp77_ = ccall_typecheck; vala_ccode_function_call_add_argument (_tmp76_, (ValaCCodeExpression*) _tmp77_); _tmp78_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp79_ = _tmp78_; _tmp80_ = ccall; vala_ccode_function_add_expression (_tmp79_, (ValaCCodeExpression*) _tmp80_); _tmp81_ = vala_ccode_identifier_new ("G_TYPE_FROM_INSTANCE"); _tmp82_ = _tmp81_; _tmp83_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp82_); _tmp84_ = _tmp83_; _vala_ccode_node_unref0 (_tmp82_); ccall_typefrominstance = _tmp84_; _tmp85_ = vala_ccode_identifier_new ("v_object"); _tmp86_ = _tmp85_; vala_ccode_function_call_add_argument (ccall_typefrominstance, (ValaCCodeExpression*) _tmp86_); _vala_ccode_node_unref0 (_tmp86_); _tmp87_ = vala_ccode_identifier_new ("G_VALUE_TYPE"); _tmp88_ = _tmp87_; _tmp89_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp88_); _tmp90_ = _tmp89_; _vala_ccode_node_unref0 (_tmp88_); ccall_gvaluetype = _tmp90_; _tmp91_ = vala_ccode_identifier_new ("value"); _tmp92_ = _tmp91_; vala_ccode_function_call_add_argument (ccall_gvaluetype, (ValaCCodeExpression*) _tmp92_); _vala_ccode_node_unref0 (_tmp92_); _tmp93_ = vala_ccode_identifier_new ("g_value_type_compatible"); _tmp94_ = _tmp93_; _tmp95_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp94_); _tmp96_ = _tmp95_; _vala_ccode_node_unref0 (_tmp94_); ccall_typecompatible = _tmp96_; vala_ccode_function_call_add_argument (ccall_typecompatible, (ValaCCodeExpression*) ccall_typefrominstance); vala_ccode_function_call_add_argument (ccall_typecompatible, (ValaCCodeExpression*) ccall_gvaluetype); _tmp97_ = vala_ccode_identifier_new ("g_return_if_fail"); _tmp98_ = _tmp97_; _tmp99_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp98_); _vala_ccode_node_unref0 (ccall); ccall = _tmp99_; _vala_ccode_node_unref0 (_tmp98_); _tmp100_ = ccall; vala_ccode_function_call_add_argument (_tmp100_, (ValaCCodeExpression*) ccall_typecompatible); _tmp101_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp102_ = _tmp101_; _tmp103_ = ccall; vala_ccode_function_add_expression (_tmp102_, (ValaCCodeExpression*) _tmp103_); _tmp104_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp105_ = _tmp104_; _tmp106_ = vala_ccode_constant_new ("v_object"); _tmp107_ = _tmp106_; vala_ccode_function_add_assignment (_tmp105_, (ValaCCodeExpression*) vpointer, (ValaCCodeExpression*) _tmp107_); _vala_ccode_node_unref0 (_tmp107_); _tmp108_ = cl; _tmp109_ = vala_ccode_base_module_get_ccode_ref_function ((ValaTypeSymbol*) _tmp108_); _tmp110_ = _tmp109_; _tmp111_ = vala_ccode_identifier_new (_tmp110_); _tmp112_ = _tmp111_; _tmp113_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp112_); _vala_ccode_node_unref0 (ccall); ccall = _tmp113_; _vala_ccode_node_unref0 (_tmp112_); _g_free0 (_tmp110_); _tmp114_ = ccall; vala_ccode_function_call_add_argument (_tmp114_, (ValaCCodeExpression*) vpointer); _tmp115_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp116_ = _tmp115_; _tmp117_ = ccall; vala_ccode_function_add_expression (_tmp116_, (ValaCCodeExpression*) _tmp117_); _tmp118_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp119_ = _tmp118_; vala_ccode_function_add_else (_tmp119_); _tmp120_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp121_ = _tmp120_; _tmp122_ = vala_ccode_constant_new ("NULL"); _tmp123_ = _tmp122_; vala_ccode_function_add_assignment (_tmp121_, (ValaCCodeExpression*) vpointer, (ValaCCodeExpression*) _tmp123_); _vala_ccode_node_unref0 (_tmp123_); _tmp124_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp125_ = _tmp124_; vala_ccode_function_close (_tmp125_); _tmp126_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp127_ = _tmp126_; _tmp128_ = vala_ccode_identifier_new ("old"); _tmp129_ = _tmp128_; vala_ccode_function_open_if (_tmp127_, (ValaCCodeExpression*) _tmp129_); _vala_ccode_node_unref0 (_tmp129_); _tmp130_ = cl; _tmp131_ = vala_ccode_base_module_get_ccode_unref_function ((ValaObjectTypeSymbol*) _tmp130_); _tmp132_ = _tmp131_; _tmp133_ = vala_ccode_identifier_new (_tmp132_); _tmp134_ = _tmp133_; _tmp135_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp134_); _vala_ccode_node_unref0 (ccall); ccall = _tmp135_; _vala_ccode_node_unref0 (_tmp134_); _g_free0 (_tmp132_); _tmp136_ = ccall; _tmp137_ = vala_ccode_identifier_new ("old"); _tmp138_ = _tmp137_; vala_ccode_function_call_add_argument (_tmp136_, (ValaCCodeExpression*) _tmp138_); _vala_ccode_node_unref0 (_tmp138_); _tmp139_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp140_ = _tmp139_; _tmp141_ = ccall; vala_ccode_function_add_expression (_tmp140_, (ValaCCodeExpression*) _tmp141_); _tmp142_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp143_ = _tmp142_; vala_ccode_function_close (_tmp143_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp144_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp145_ = function; vala_ccode_file_add_function (_tmp144_, _tmp145_); _vala_ccode_node_unref0 (ccall_typecompatible); _vala_ccode_node_unref0 (ccall_gvaluetype); _vala_ccode_node_unref0 (ccall_typefrominstance); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (ccall_typecheck); _vala_ccode_node_unref0 (vpointer); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_g_value_take_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; ValaCCodeFunction* _tmp3_; ValaCCodeFunction* _tmp4_; ValaCCodeFunction* function; ValaCCodeFunction* _tmp5_; ValaCCodeParameter* _tmp6_; ValaCCodeParameter* _tmp7_; ValaCCodeFunction* _tmp8_; ValaCCodeParameter* _tmp9_; ValaCCodeParameter* _tmp10_; ValaClass* _tmp11_; ValaSymbolAccessibility _tmp12_; ValaSymbolAccessibility _tmp13_; ValaCCodeIdentifier* _tmp15_; ValaCCodeIdentifier* _tmp16_; ValaCCodeMemberAccess* _tmp17_; ValaCCodeMemberAccess* _tmp18_; ValaCCodeMemberAccess* _tmp19_; ValaCCodeMemberAccess* _tmp20_; ValaCCodeMemberAccess* vpointer; ValaCCodeFunction* _tmp21_; ValaCCodeFunction* _tmp22_; ValaCCodeFunction* _tmp23_; ValaClass* _tmp24_; gchar* _tmp25_ = NULL; gchar* _tmp26_; gchar* _tmp27_; gchar* _tmp28_; ValaCCodeVariableDeclarator* _tmp29_; ValaCCodeVariableDeclarator* _tmp30_; ValaCCodeIdentifier* _tmp31_; ValaCCodeIdentifier* _tmp32_; ValaCCodeFunctionCall* _tmp33_; ValaCCodeFunctionCall* _tmp34_; ValaCCodeFunctionCall* ccall_typecheck; ValaCCodeFunctionCall* _tmp35_; ValaCCodeIdentifier* _tmp36_; ValaCCodeIdentifier* _tmp37_; ValaCCodeFunctionCall* _tmp38_; ValaClass* _tmp39_; gchar* _tmp40_ = NULL; gchar* _tmp41_; ValaCCodeIdentifier* _tmp42_; ValaCCodeIdentifier* _tmp43_; ValaCCodeIdentifier* _tmp44_; ValaCCodeIdentifier* _tmp45_; ValaCCodeFunctionCall* _tmp46_; ValaCCodeFunctionCall* _tmp47_; ValaCCodeFunctionCall* ccall; ValaCCodeFunctionCall* _tmp48_; ValaCCodeFunctionCall* _tmp49_; ValaCCodeFunction* _tmp50_; ValaCCodeFunction* _tmp51_; ValaCCodeFunctionCall* _tmp52_; ValaCCodeFunction* _tmp53_; ValaCCodeFunction* _tmp54_; ValaCCodeConstant* _tmp55_; ValaCCodeConstant* _tmp56_; ValaCCodeFunction* _tmp57_; ValaCCodeFunction* _tmp58_; ValaCCodeIdentifier* _tmp59_; ValaCCodeIdentifier* _tmp60_; ValaCCodeIdentifier* _tmp61_; ValaCCodeIdentifier* _tmp62_; ValaCCodeFunctionCall* _tmp63_; ValaCCodeFunctionCall* _tmp64_; ValaCCodeIdentifier* _tmp65_; ValaCCodeIdentifier* _tmp66_; ValaCCodeFunctionCall* _tmp67_; ValaClass* _tmp68_; gchar* _tmp69_ = NULL; gchar* _tmp70_; ValaCCodeIdentifier* _tmp71_; ValaCCodeIdentifier* _tmp72_; ValaCCodeIdentifier* _tmp73_; ValaCCodeIdentifier* _tmp74_; ValaCCodeFunctionCall* _tmp75_; ValaCCodeFunctionCall* _tmp76_; ValaCCodeFunctionCall* _tmp77_; ValaCCodeFunction* _tmp78_; ValaCCodeFunction* _tmp79_; ValaCCodeFunctionCall* _tmp80_; ValaCCodeIdentifier* _tmp81_; ValaCCodeIdentifier* _tmp82_; ValaCCodeFunctionCall* _tmp83_; ValaCCodeFunctionCall* _tmp84_; ValaCCodeFunctionCall* ccall_typefrominstance; ValaCCodeIdentifier* _tmp85_; ValaCCodeIdentifier* _tmp86_; ValaCCodeIdentifier* _tmp87_; ValaCCodeIdentifier* _tmp88_; ValaCCodeFunctionCall* _tmp89_; ValaCCodeFunctionCall* _tmp90_; ValaCCodeFunctionCall* ccall_gvaluetype; ValaCCodeIdentifier* _tmp91_; ValaCCodeIdentifier* _tmp92_; ValaCCodeIdentifier* _tmp93_; ValaCCodeIdentifier* _tmp94_; ValaCCodeFunctionCall* _tmp95_; ValaCCodeFunctionCall* _tmp96_; ValaCCodeFunctionCall* ccall_typecompatible; ValaCCodeIdentifier* _tmp97_; ValaCCodeIdentifier* _tmp98_; ValaCCodeFunctionCall* _tmp99_; ValaCCodeFunctionCall* _tmp100_; ValaCCodeFunction* _tmp101_; ValaCCodeFunction* _tmp102_; ValaCCodeFunctionCall* _tmp103_; ValaCCodeFunction* _tmp104_; ValaCCodeFunction* _tmp105_; ValaCCodeConstant* _tmp106_; ValaCCodeConstant* _tmp107_; ValaCCodeFunction* _tmp108_; ValaCCodeFunction* _tmp109_; ValaCCodeFunction* _tmp110_; ValaCCodeFunction* _tmp111_; ValaCCodeConstant* _tmp112_; ValaCCodeConstant* _tmp113_; ValaCCodeFunction* _tmp114_; ValaCCodeFunction* _tmp115_; ValaCCodeFunction* _tmp116_; ValaCCodeFunction* _tmp117_; ValaCCodeIdentifier* _tmp118_; ValaCCodeIdentifier* _tmp119_; ValaClass* _tmp120_; gchar* _tmp121_ = NULL; gchar* _tmp122_; ValaCCodeIdentifier* _tmp123_; ValaCCodeIdentifier* _tmp124_; ValaCCodeFunctionCall* _tmp125_; ValaCCodeFunctionCall* _tmp126_; ValaCCodeIdentifier* _tmp127_; ValaCCodeIdentifier* _tmp128_; ValaCCodeFunction* _tmp129_; ValaCCodeFunction* _tmp130_; ValaCCodeFunctionCall* _tmp131_; ValaCCodeFunction* _tmp132_; ValaCCodeFunction* _tmp133_; ValaCCodeFile* _tmp134_; ValaCCodeFunction* _tmp135_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_take_value_function ((ValaCodeNode*) _tmp0_); _tmp2_ = _tmp1_; _tmp3_ = vala_ccode_function_new (_tmp2_, "void"); _tmp4_ = _tmp3_; _g_free0 (_tmp2_); function = _tmp4_; _tmp5_ = function; _tmp6_ = vala_ccode_parameter_new ("value", "GValue*"); _tmp7_ = _tmp6_; vala_ccode_function_add_parameter (_tmp5_, _tmp7_); _vala_ccode_node_unref0 (_tmp7_); _tmp8_ = function; _tmp9_ = vala_ccode_parameter_new ("v_object", "gpointer"); _tmp10_ = _tmp9_; vala_ccode_function_add_parameter (_tmp8_, _tmp10_); _vala_ccode_node_unref0 (_tmp10_); _tmp11_ = cl; _tmp12_ = vala_symbol_get_access ((ValaSymbol*) _tmp11_); _tmp13_ = _tmp12_; if (_tmp13_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp14_; _tmp14_ = function; vala_ccode_function_set_modifiers (_tmp14_, VALA_CCODE_MODIFIERS_STATIC); } _tmp15_ = vala_ccode_identifier_new ("value"); _tmp16_ = _tmp15_; _tmp17_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp16_, "data[0]"); _tmp18_ = _tmp17_; _tmp19_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp18_, "v_pointer", FALSE); _tmp20_ = _tmp19_; _vala_ccode_node_unref0 (_tmp18_); _vala_ccode_node_unref0 (_tmp16_); vpointer = _tmp20_; _tmp21_ = function; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp21_); _tmp22_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp23_ = _tmp22_; _tmp24_ = cl; _tmp25_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp24_); _tmp26_ = _tmp25_; _tmp27_ = g_strconcat (_tmp26_, "*", NULL); _tmp28_ = _tmp27_; _tmp29_ = vala_ccode_variable_declarator_new ("old", NULL, NULL); _tmp30_ = _tmp29_; vala_ccode_function_add_declaration (_tmp23_, _tmp28_, (ValaCCodeDeclarator*) _tmp30_, 0); _vala_ccode_node_unref0 (_tmp30_); _g_free0 (_tmp28_); _g_free0 (_tmp26_); _tmp31_ = vala_ccode_identifier_new ("G_TYPE_CHECK_VALUE_TYPE"); _tmp32_ = _tmp31_; _tmp33_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp32_); _tmp34_ = _tmp33_; _vala_ccode_node_unref0 (_tmp32_); ccall_typecheck = _tmp34_; _tmp35_ = ccall_typecheck; _tmp36_ = vala_ccode_identifier_new ("value"); _tmp37_ = _tmp36_; vala_ccode_function_call_add_argument (_tmp35_, (ValaCCodeExpression*) _tmp37_); _vala_ccode_node_unref0 (_tmp37_); _tmp38_ = ccall_typecheck; _tmp39_ = cl; _tmp40_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp39_); _tmp41_ = _tmp40_; _tmp42_ = vala_ccode_identifier_new (_tmp41_); _tmp43_ = _tmp42_; vala_ccode_function_call_add_argument (_tmp38_, (ValaCCodeExpression*) _tmp43_); _vala_ccode_node_unref0 (_tmp43_); _g_free0 (_tmp41_); _tmp44_ = vala_ccode_identifier_new ("g_return_if_fail"); _tmp45_ = _tmp44_; _tmp46_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp45_); _tmp47_ = _tmp46_; _vala_ccode_node_unref0 (_tmp45_); ccall = _tmp47_; _tmp48_ = ccall; _tmp49_ = ccall_typecheck; vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp49_); _tmp50_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp51_ = _tmp50_; _tmp52_ = ccall; vala_ccode_function_add_expression (_tmp51_, (ValaCCodeExpression*) _tmp52_); _tmp53_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp54_ = _tmp53_; _tmp55_ = vala_ccode_constant_new ("old"); _tmp56_ = _tmp55_; vala_ccode_function_add_assignment (_tmp54_, (ValaCCodeExpression*) _tmp56_, (ValaCCodeExpression*) vpointer); _vala_ccode_node_unref0 (_tmp56_); _tmp57_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp58_ = _tmp57_; _tmp59_ = vala_ccode_identifier_new ("v_object"); _tmp60_ = _tmp59_; vala_ccode_function_open_if (_tmp58_, (ValaCCodeExpression*) _tmp60_); _vala_ccode_node_unref0 (_tmp60_); _tmp61_ = vala_ccode_identifier_new ("G_TYPE_CHECK_INSTANCE_TYPE"); _tmp62_ = _tmp61_; _tmp63_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp62_); _vala_ccode_node_unref0 (ccall_typecheck); ccall_typecheck = _tmp63_; _vala_ccode_node_unref0 (_tmp62_); _tmp64_ = ccall_typecheck; _tmp65_ = vala_ccode_identifier_new ("v_object"); _tmp66_ = _tmp65_; vala_ccode_function_call_add_argument (_tmp64_, (ValaCCodeExpression*) _tmp66_); _vala_ccode_node_unref0 (_tmp66_); _tmp67_ = ccall_typecheck; _tmp68_ = cl; _tmp69_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp68_); _tmp70_ = _tmp69_; _tmp71_ = vala_ccode_identifier_new (_tmp70_); _tmp72_ = _tmp71_; vala_ccode_function_call_add_argument (_tmp67_, (ValaCCodeExpression*) _tmp72_); _vala_ccode_node_unref0 (_tmp72_); _g_free0 (_tmp70_); _tmp73_ = vala_ccode_identifier_new ("g_return_if_fail"); _tmp74_ = _tmp73_; _tmp75_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp74_); _vala_ccode_node_unref0 (ccall); ccall = _tmp75_; _vala_ccode_node_unref0 (_tmp74_); _tmp76_ = ccall; _tmp77_ = ccall_typecheck; vala_ccode_function_call_add_argument (_tmp76_, (ValaCCodeExpression*) _tmp77_); _tmp78_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp79_ = _tmp78_; _tmp80_ = ccall; vala_ccode_function_add_expression (_tmp79_, (ValaCCodeExpression*) _tmp80_); _tmp81_ = vala_ccode_identifier_new ("G_TYPE_FROM_INSTANCE"); _tmp82_ = _tmp81_; _tmp83_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp82_); _tmp84_ = _tmp83_; _vala_ccode_node_unref0 (_tmp82_); ccall_typefrominstance = _tmp84_; _tmp85_ = vala_ccode_identifier_new ("v_object"); _tmp86_ = _tmp85_; vala_ccode_function_call_add_argument (ccall_typefrominstance, (ValaCCodeExpression*) _tmp86_); _vala_ccode_node_unref0 (_tmp86_); _tmp87_ = vala_ccode_identifier_new ("G_VALUE_TYPE"); _tmp88_ = _tmp87_; _tmp89_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp88_); _tmp90_ = _tmp89_; _vala_ccode_node_unref0 (_tmp88_); ccall_gvaluetype = _tmp90_; _tmp91_ = vala_ccode_identifier_new ("value"); _tmp92_ = _tmp91_; vala_ccode_function_call_add_argument (ccall_gvaluetype, (ValaCCodeExpression*) _tmp92_); _vala_ccode_node_unref0 (_tmp92_); _tmp93_ = vala_ccode_identifier_new ("g_value_type_compatible"); _tmp94_ = _tmp93_; _tmp95_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp94_); _tmp96_ = _tmp95_; _vala_ccode_node_unref0 (_tmp94_); ccall_typecompatible = _tmp96_; vala_ccode_function_call_add_argument (ccall_typecompatible, (ValaCCodeExpression*) ccall_typefrominstance); vala_ccode_function_call_add_argument (ccall_typecompatible, (ValaCCodeExpression*) ccall_gvaluetype); _tmp97_ = vala_ccode_identifier_new ("g_return_if_fail"); _tmp98_ = _tmp97_; _tmp99_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp98_); _vala_ccode_node_unref0 (ccall); ccall = _tmp99_; _vala_ccode_node_unref0 (_tmp98_); _tmp100_ = ccall; vala_ccode_function_call_add_argument (_tmp100_, (ValaCCodeExpression*) ccall_typecompatible); _tmp101_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp102_ = _tmp101_; _tmp103_ = ccall; vala_ccode_function_add_expression (_tmp102_, (ValaCCodeExpression*) _tmp103_); _tmp104_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp105_ = _tmp104_; _tmp106_ = vala_ccode_constant_new ("v_object"); _tmp107_ = _tmp106_; vala_ccode_function_add_assignment (_tmp105_, (ValaCCodeExpression*) vpointer, (ValaCCodeExpression*) _tmp107_); _vala_ccode_node_unref0 (_tmp107_); _tmp108_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp109_ = _tmp108_; vala_ccode_function_add_else (_tmp109_); _tmp110_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp111_ = _tmp110_; _tmp112_ = vala_ccode_constant_new ("NULL"); _tmp113_ = _tmp112_; vala_ccode_function_add_assignment (_tmp111_, (ValaCCodeExpression*) vpointer, (ValaCCodeExpression*) _tmp113_); _vala_ccode_node_unref0 (_tmp113_); _tmp114_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp115_ = _tmp114_; vala_ccode_function_close (_tmp115_); _tmp116_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp117_ = _tmp116_; _tmp118_ = vala_ccode_identifier_new ("old"); _tmp119_ = _tmp118_; vala_ccode_function_open_if (_tmp117_, (ValaCCodeExpression*) _tmp119_); _vala_ccode_node_unref0 (_tmp119_); _tmp120_ = cl; _tmp121_ = vala_ccode_base_module_get_ccode_unref_function ((ValaObjectTypeSymbol*) _tmp120_); _tmp122_ = _tmp121_; _tmp123_ = vala_ccode_identifier_new (_tmp122_); _tmp124_ = _tmp123_; _tmp125_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp124_); _vala_ccode_node_unref0 (ccall); ccall = _tmp125_; _vala_ccode_node_unref0 (_tmp124_); _g_free0 (_tmp122_); _tmp126_ = ccall; _tmp127_ = vala_ccode_identifier_new ("old"); _tmp128_ = _tmp127_; vala_ccode_function_call_add_argument (_tmp126_, (ValaCCodeExpression*) _tmp128_); _vala_ccode_node_unref0 (_tmp128_); _tmp129_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp130_ = _tmp129_; _tmp131_ = ccall; vala_ccode_function_add_expression (_tmp130_, (ValaCCodeExpression*) _tmp131_); _tmp132_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp133_ = _tmp132_; vala_ccode_function_close (_tmp133_); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp134_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp135_ = function; vala_ccode_file_add_function (_tmp134_, _tmp135_); _vala_ccode_node_unref0 (ccall_typecompatible); _vala_ccode_node_unref0 (ccall_gvaluetype); _vala_ccode_node_unref0 (ccall_typefrominstance); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (ccall_typecheck); _vala_ccode_node_unref0 (vpointer); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_g_value_get_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; ValaCCodeFunction* _tmp3_; ValaCCodeFunction* _tmp4_; ValaCCodeFunction* function; ValaCCodeFunction* _tmp5_; ValaCCodeParameter* _tmp6_; ValaCCodeParameter* _tmp7_; ValaClass* _tmp8_; ValaSymbolAccessibility _tmp9_; ValaSymbolAccessibility _tmp10_; ValaCCodeIdentifier* _tmp12_; ValaCCodeIdentifier* _tmp13_; ValaCCodeMemberAccess* _tmp14_; ValaCCodeMemberAccess* _tmp15_; ValaCCodeMemberAccess* _tmp16_; ValaCCodeMemberAccess* _tmp17_; ValaCCodeMemberAccess* vpointer; ValaCCodeFunction* _tmp18_; ValaCCodeIdentifier* _tmp19_; ValaCCodeIdentifier* _tmp20_; ValaCCodeFunctionCall* _tmp21_; ValaCCodeFunctionCall* _tmp22_; ValaCCodeFunctionCall* ccall_typecheck; ValaCCodeIdentifier* _tmp23_; ValaCCodeIdentifier* _tmp24_; ValaClass* _tmp25_; gchar* _tmp26_ = NULL; gchar* _tmp27_; ValaCCodeIdentifier* _tmp28_; ValaCCodeIdentifier* _tmp29_; ValaCCodeIdentifier* _tmp30_; ValaCCodeIdentifier* _tmp31_; ValaCCodeFunctionCall* _tmp32_; ValaCCodeFunctionCall* _tmp33_; ValaCCodeFunctionCall* ccall; ValaCCodeIdentifier* _tmp34_; ValaCCodeIdentifier* _tmp35_; ValaCCodeFunction* _tmp36_; ValaCCodeFunction* _tmp37_; ValaCCodeFunction* _tmp38_; ValaCCodeFunction* _tmp39_; ValaCCodeFile* _tmp40_; ValaCCodeFunction* _tmp41_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_get_value_function ((ValaCodeNode*) _tmp0_); _tmp2_ = _tmp1_; _tmp3_ = vala_ccode_function_new (_tmp2_, "gpointer"); _tmp4_ = _tmp3_; _g_free0 (_tmp2_); function = _tmp4_; _tmp5_ = function; _tmp6_ = vala_ccode_parameter_new ("value", "const GValue*"); _tmp7_ = _tmp6_; vala_ccode_function_add_parameter (_tmp5_, _tmp7_); _vala_ccode_node_unref0 (_tmp7_); _tmp8_ = cl; _tmp9_ = vala_symbol_get_access ((ValaSymbol*) _tmp8_); _tmp10_ = _tmp9_; if (_tmp10_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp11_; _tmp11_ = function; vala_ccode_function_set_modifiers (_tmp11_, VALA_CCODE_MODIFIERS_STATIC); } _tmp12_ = vala_ccode_identifier_new ("value"); _tmp13_ = _tmp12_; _tmp14_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp13_, "data[0]"); _tmp15_ = _tmp14_; _tmp16_ = vala_ccode_member_access_new ((ValaCCodeExpression*) _tmp15_, "v_pointer", FALSE); _tmp17_ = _tmp16_; _vala_ccode_node_unref0 (_tmp15_); _vala_ccode_node_unref0 (_tmp13_); vpointer = _tmp17_; _tmp18_ = function; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp18_); _tmp19_ = vala_ccode_identifier_new ("G_TYPE_CHECK_VALUE_TYPE"); _tmp20_ = _tmp19_; _tmp21_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp20_); _tmp22_ = _tmp21_; _vala_ccode_node_unref0 (_tmp20_); ccall_typecheck = _tmp22_; _tmp23_ = vala_ccode_identifier_new ("value"); _tmp24_ = _tmp23_; vala_ccode_function_call_add_argument (ccall_typecheck, (ValaCCodeExpression*) _tmp24_); _vala_ccode_node_unref0 (_tmp24_); _tmp25_ = cl; _tmp26_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp25_); _tmp27_ = _tmp26_; _tmp28_ = vala_ccode_identifier_new (_tmp27_); _tmp29_ = _tmp28_; vala_ccode_function_call_add_argument (ccall_typecheck, (ValaCCodeExpression*) _tmp29_); _vala_ccode_node_unref0 (_tmp29_); _g_free0 (_tmp27_); _tmp30_ = vala_ccode_identifier_new ("g_return_val_if_fail"); _tmp31_ = _tmp30_; _tmp32_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp31_); _tmp33_ = _tmp32_; _vala_ccode_node_unref0 (_tmp31_); ccall = _tmp33_; vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) ccall_typecheck); _tmp34_ = vala_ccode_identifier_new ("NULL"); _tmp35_ = _tmp34_; vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp35_); _vala_ccode_node_unref0 (_tmp35_); _tmp36_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp37_ = _tmp36_; vala_ccode_function_add_expression (_tmp37_, (ValaCCodeExpression*) ccall); _tmp38_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp39_ = _tmp38_; vala_ccode_function_add_return (_tmp39_, (ValaCCodeExpression*) vpointer); vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp40_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp41_ = function; vala_ccode_file_add_function (_tmp40_, _tmp41_); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (ccall_typecheck); _vala_ccode_node_unref0 (vpointer); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_begin_base_init_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeBaseModuleEmitContext* _tmp0_; ValaClass* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_; gchar* _tmp4_ = NULL; gchar* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* _tmp7_; ValaCCodeFunction* base_init; ValaCCodeFunction* _tmp8_; ValaClass* _tmp9_; gchar* _tmp10_ = NULL; gchar* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; ValaCCodeParameter* _tmp14_; ValaCCodeParameter* _tmp15_; ValaCCodeFunction* _tmp16_; ValaCCodeFunction* _tmp17_; gboolean _tmp18_ = FALSE; ValaCodeContext* _tmp19_; ValaCodeContext* _tmp20_; gboolean _tmp21_ = FALSE; gboolean _tmp25_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->base_init_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp0_); _tmp1_ = cl; _tmp2_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp1_, NULL); _tmp3_ = _tmp2_; _tmp4_ = g_strdup_printf ("%s_base_init", _tmp3_); _tmp5_ = _tmp4_; _tmp6_ = vala_ccode_function_new (_tmp5_, "void"); _tmp7_ = _tmp6_; _g_free0 (_tmp5_); _g_free0 (_tmp3_); base_init = _tmp7_; _tmp8_ = base_init; _tmp9_ = cl; _tmp10_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp9_); _tmp11_ = _tmp10_; _tmp12_ = g_strdup_printf ("%sClass *", _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = vala_ccode_parameter_new ("klass", _tmp13_); _tmp15_ = _tmp14_; vala_ccode_function_add_parameter (_tmp8_, _tmp15_); _vala_ccode_node_unref0 (_tmp15_); _g_free0 (_tmp13_); _g_free0 (_tmp11_); _tmp16_ = base_init; vala_ccode_function_set_modifiers (_tmp16_, VALA_CCODE_MODIFIERS_STATIC); _tmp17_ = base_init; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp17_); _tmp19_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp20_ = _tmp19_; _tmp21_ = vala_code_context_require_glib_version (_tmp20_, 2, 24); if (!_tmp21_) { ValaClass* _tmp22_; gboolean _tmp23_; gboolean _tmp24_; _tmp22_ = cl; _tmp23_ = vala_class_get_has_class_private_fields (_tmp22_); _tmp24_ = _tmp23_; _tmp18_ = _tmp24_; } else { _tmp18_ = FALSE; } _tmp25_ = _tmp18_; if (_tmp25_) { ValaCCodeFunction* _tmp26_; ValaCCodeFunction* _tmp27_; ValaClass* _tmp28_; gchar* _tmp29_ = NULL; gchar* _tmp30_; gchar* _tmp31_ = NULL; gchar* _tmp32_; ValaCCodeVariableDeclarator* _tmp33_; ValaCCodeVariableDeclarator* _tmp34_; ValaCCodeFunction* _tmp35_; ValaCCodeFunction* _tmp36_; ValaClass* _tmp37_; gchar* _tmp38_ = NULL; gchar* _tmp39_; gchar* _tmp40_ = NULL; gchar* _tmp41_; ValaCCodeConstant* _tmp42_; ValaCCodeConstant* _tmp43_; ValaCCodeVariableDeclarator* _tmp44_; ValaCCodeVariableDeclarator* _tmp45_; ValaCCodeFunction* _tmp46_; ValaCCodeFunction* _tmp47_; ValaCCodeVariableDeclarator* _tmp48_; ValaCCodeVariableDeclarator* _tmp49_; ValaCCodeIdentifier* _tmp50_; ValaCCodeIdentifier* _tmp51_; ValaCCodeFunctionCall* _tmp52_; ValaCCodeFunctionCall* _tmp53_; ValaCCodeFunctionCall* ccall; ValaCCodeIdentifier* _tmp54_; ValaCCodeIdentifier* _tmp55_; ValaCCodeFunctionCall* _tmp56_; ValaCCodeFunctionCall* _tmp57_; ValaCCodeFunctionCall* ccall2; ValaCCodeFunctionCall* _tmp58_; ValaCCodeIdentifier* _tmp59_; ValaCCodeIdentifier* _tmp60_; ValaCCodeFunctionCall* _tmp61_; ValaCCodeFunctionCall* _tmp62_; ValaCCodeFunction* _tmp63_; ValaCCodeFunction* _tmp64_; ValaCCodeIdentifier* _tmp65_; ValaCCodeIdentifier* _tmp66_; ValaCCodeFunctionCall* _tmp67_; ValaCCodeFunction* _tmp68_; ValaCCodeFunction* _tmp69_; ValaCCodeIdentifier* _tmp70_; ValaCCodeIdentifier* _tmp71_; ValaClass* _tmp72_; gchar* _tmp73_ = NULL; gchar* _tmp74_; gchar* _tmp75_ = NULL; gchar* _tmp76_; ValaCCodeIdentifier* _tmp77_; ValaCCodeIdentifier* _tmp78_; ValaCCodeFunctionCall* _tmp79_; ValaCCodeIdentifier* _tmp80_; ValaCCodeIdentifier* _tmp81_; ValaCCodeFunctionCall* _tmp82_; ValaCCodeFunctionCall* _tmp83_; ValaCCodeIdentifier* _tmp84_; ValaCCodeIdentifier* _tmp85_; ValaCCodeFunctionCall* _tmp86_; ValaCCodeFunctionCall* _tmp87_; ValaCCodeFunction* _tmp88_; ValaCCodeFunction* _tmp89_; ValaCCodeIdentifier* _tmp90_; ValaCCodeIdentifier* _tmp91_; ValaCCodeFunctionCall* _tmp92_; ValaCCodeFunction* _tmp93_; ValaCCodeFunction* _tmp94_; ValaCCodeIdentifier* _tmp95_; ValaCCodeIdentifier* _tmp96_; ValaCCodeFunctionCall* _tmp97_; ValaCCodeFunctionCall* _tmp98_; ValaClass* _tmp99_; gchar* _tmp100_ = NULL; gchar* _tmp101_; gchar* _tmp102_ = NULL; gchar* _tmp103_; ValaCCodeIdentifier* _tmp104_; ValaCCodeIdentifier* _tmp105_; ValaCCodeFunction* _tmp106_; ValaCCodeFunction* _tmp107_; ValaCCodeIdentifier* _tmp108_; ValaCCodeIdentifier* _tmp109_; ValaCCodeFunctionCall* _tmp110_; ValaCCodeFile* _tmp111_; ValaCCodeFunction* _tmp112_; ValaCCodeFunction* _tmp113_; ValaCCodeIdentifier* _tmp114_; ValaCCodeIdentifier* _tmp115_; ValaCCodeIdentifier* _tmp116_; ValaCCodeIdentifier* _tmp117_; ValaCCodeFunctionCall* _tmp118_; ValaCCodeFunctionCall* _tmp119_; ValaCCodeIdentifier* _tmp120_; ValaCCodeIdentifier* _tmp121_; ValaCCodeFunctionCall* _tmp122_; ValaCCodeIdentifier* _tmp123_; ValaCCodeIdentifier* _tmp124_; ValaCCodeFunctionCall* _tmp125_; ValaClass* _tmp126_; gchar* _tmp127_ = NULL; gchar* _tmp128_; gchar* _tmp129_ = NULL; gchar* _tmp130_; ValaCCodeIdentifier* _tmp131_; ValaCCodeIdentifier* _tmp132_; ValaCCodeFunction* _tmp133_; ValaCCodeFunction* _tmp134_; ValaCCodeFunctionCall* _tmp135_; ValaCCodeFunction* _tmp136_; ValaCCodeFunction* _tmp137_; ValaCCodeIdentifier* _tmp138_; ValaCCodeIdentifier* _tmp139_; ValaCCodeFunctionCall* _tmp140_; ValaCCodeIdentifier* _tmp141_; ValaCCodeIdentifier* _tmp142_; ValaCCodeFunctionCall* _tmp143_; ValaCCodeFunctionCall* _tmp144_; ValaCCodeIdentifier* _tmp145_; ValaCCodeIdentifier* _tmp146_; ValaCCodeFunctionCall* _tmp147_; ValaCCodeFunctionCall* _tmp148_; ValaCCodeFunctionCall* _tmp149_; ValaClass* _tmp150_; gchar* _tmp151_ = NULL; gchar* _tmp152_; gchar* _tmp153_ = NULL; gchar* _tmp154_; ValaCCodeIdentifier* _tmp155_; ValaCCodeIdentifier* _tmp156_; ValaCCodeFunctionCall* _tmp157_; ValaCCodeIdentifier* _tmp158_; ValaCCodeIdentifier* _tmp159_; ValaCCodeFunction* _tmp160_; ValaCCodeFunction* _tmp161_; ValaCCodeFunctionCall* _tmp162_; _tmp26_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp27_ = _tmp26_; _tmp28_ = cl; _tmp29_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp28_); _tmp30_ = _tmp29_; _tmp31_ = g_strdup_printf ("%sClassPrivate *", _tmp30_); _tmp32_ = _tmp31_; _tmp33_ = vala_ccode_variable_declarator_new ("priv", NULL, NULL); _tmp34_ = _tmp33_; vala_ccode_function_add_declaration (_tmp27_, _tmp32_, (ValaCCodeDeclarator*) _tmp34_, 0); _vala_ccode_node_unref0 (_tmp34_); _g_free0 (_tmp32_); _g_free0 (_tmp30_); _tmp35_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp36_ = _tmp35_; _tmp37_ = cl; _tmp38_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp37_); _tmp39_ = _tmp38_; _tmp40_ = g_strdup_printf ("%sClassPrivate *", _tmp39_); _tmp41_ = _tmp40_; _tmp42_ = vala_ccode_constant_new ("NULL"); _tmp43_ = _tmp42_; _tmp44_ = vala_ccode_variable_declarator_new ("parent_priv", (ValaCCodeExpression*) _tmp43_, NULL); _tmp45_ = _tmp44_; vala_ccode_function_add_declaration (_tmp36_, _tmp41_, (ValaCCodeDeclarator*) _tmp45_, 0); _vala_ccode_node_unref0 (_tmp45_); _vala_ccode_node_unref0 (_tmp43_); _g_free0 (_tmp41_); _g_free0 (_tmp39_); _tmp46_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp47_ = _tmp46_; _tmp48_ = vala_ccode_variable_declarator_new ("parent_type", NULL, NULL); _tmp49_ = _tmp48_; vala_ccode_function_add_declaration (_tmp47_, "GType", (ValaCCodeDeclarator*) _tmp49_, 0); _vala_ccode_node_unref0 (_tmp49_); _tmp50_ = vala_ccode_identifier_new ("g_type_parent"); _tmp51_ = _tmp50_; _tmp52_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp51_); _tmp53_ = _tmp52_; _vala_ccode_node_unref0 (_tmp51_); ccall = _tmp53_; _tmp54_ = vala_ccode_identifier_new ("G_TYPE_FROM_CLASS"); _tmp55_ = _tmp54_; _tmp56_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp55_); _tmp57_ = _tmp56_; _vala_ccode_node_unref0 (_tmp55_); ccall2 = _tmp57_; _tmp58_ = ccall2; _tmp59_ = vala_ccode_identifier_new ("klass"); _tmp60_ = _tmp59_; vala_ccode_function_call_add_argument (_tmp58_, (ValaCCodeExpression*) _tmp60_); _vala_ccode_node_unref0 (_tmp60_); _tmp61_ = ccall; _tmp62_ = ccall2; vala_ccode_function_call_add_argument (_tmp61_, (ValaCCodeExpression*) _tmp62_); _tmp63_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp64_ = _tmp63_; _tmp65_ = vala_ccode_identifier_new ("parent_type"); _tmp66_ = _tmp65_; _tmp67_ = ccall; vala_ccode_function_add_assignment (_tmp64_, (ValaCCodeExpression*) _tmp66_, (ValaCCodeExpression*) _tmp67_); _vala_ccode_node_unref0 (_tmp66_); _tmp68_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp69_ = _tmp68_; _tmp70_ = vala_ccode_identifier_new ("parent_type"); _tmp71_ = _tmp70_; vala_ccode_function_open_if (_tmp69_, (ValaCCodeExpression*) _tmp71_); _vala_ccode_node_unref0 (_tmp71_); _tmp72_ = cl; _tmp73_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp72_, NULL); _tmp74_ = _tmp73_; _tmp75_ = g_strdup_printf ("%s_GET_CLASS_PRIVATE", _tmp74_); _tmp76_ = _tmp75_; _tmp77_ = vala_ccode_identifier_new (_tmp76_); _tmp78_ = _tmp77_; _tmp79_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp78_); _vala_ccode_node_unref0 (ccall); ccall = _tmp79_; _vala_ccode_node_unref0 (_tmp78_); _g_free0 (_tmp76_); _g_free0 (_tmp74_); _tmp80_ = vala_ccode_identifier_new ("g_type_class_peek"); _tmp81_ = _tmp80_; _tmp82_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp81_); _vala_ccode_node_unref0 (ccall2); ccall2 = _tmp82_; _vala_ccode_node_unref0 (_tmp81_); _tmp83_ = ccall2; _tmp84_ = vala_ccode_identifier_new ("parent_type"); _tmp85_ = _tmp84_; vala_ccode_function_call_add_argument (_tmp83_, (ValaCCodeExpression*) _tmp85_); _vala_ccode_node_unref0 (_tmp85_); _tmp86_ = ccall; _tmp87_ = ccall2; vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp87_); _tmp88_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp89_ = _tmp88_; _tmp90_ = vala_ccode_identifier_new ("parent_priv"); _tmp91_ = _tmp90_; _tmp92_ = ccall; vala_ccode_function_add_assignment (_tmp89_, (ValaCCodeExpression*) _tmp91_, (ValaCCodeExpression*) _tmp92_); _vala_ccode_node_unref0 (_tmp91_); _tmp93_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp94_ = _tmp93_; vala_ccode_function_close (_tmp94_); _tmp95_ = vala_ccode_identifier_new ("g_slice_new0"); _tmp96_ = _tmp95_; _tmp97_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp96_); _vala_ccode_node_unref0 (ccall); ccall = _tmp97_; _vala_ccode_node_unref0 (_tmp96_); _tmp98_ = ccall; _tmp99_ = cl; _tmp100_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp99_); _tmp101_ = _tmp100_; _tmp102_ = g_strdup_printf ("%sClassPrivate", _tmp101_); _tmp103_ = _tmp102_; _tmp104_ = vala_ccode_identifier_new (_tmp103_); _tmp105_ = _tmp104_; vala_ccode_function_call_add_argument (_tmp98_, (ValaCCodeExpression*) _tmp105_); _vala_ccode_node_unref0 (_tmp105_); _g_free0 (_tmp103_); _g_free0 (_tmp101_); _tmp106_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp107_ = _tmp106_; _tmp108_ = vala_ccode_identifier_new ("priv"); _tmp109_ = _tmp108_; _tmp110_ = ccall; vala_ccode_function_add_assignment (_tmp107_, (ValaCCodeExpression*) _tmp109_, (ValaCCodeExpression*) _tmp110_); _vala_ccode_node_unref0 (_tmp109_); _tmp111_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_file_add_include (_tmp111_, "string.h", FALSE); _tmp112_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp113_ = _tmp112_; _tmp114_ = vala_ccode_identifier_new ("parent_priv"); _tmp115_ = _tmp114_; vala_ccode_function_open_if (_tmp113_, (ValaCCodeExpression*) _tmp115_); _vala_ccode_node_unref0 (_tmp115_); _tmp116_ = vala_ccode_identifier_new ("memcpy"); _tmp117_ = _tmp116_; _tmp118_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp117_); _vala_ccode_node_unref0 (ccall); ccall = _tmp118_; _vala_ccode_node_unref0 (_tmp117_); _tmp119_ = ccall; _tmp120_ = vala_ccode_identifier_new ("priv"); _tmp121_ = _tmp120_; vala_ccode_function_call_add_argument (_tmp119_, (ValaCCodeExpression*) _tmp121_); _vala_ccode_node_unref0 (_tmp121_); _tmp122_ = ccall; _tmp123_ = vala_ccode_identifier_new ("parent_priv"); _tmp124_ = _tmp123_; vala_ccode_function_call_add_argument (_tmp122_, (ValaCCodeExpression*) _tmp124_); _vala_ccode_node_unref0 (_tmp124_); _tmp125_ = ccall; _tmp126_ = cl; _tmp127_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp126_); _tmp128_ = _tmp127_; _tmp129_ = g_strdup_printf ("sizeof (%sClassPrivate)", _tmp128_); _tmp130_ = _tmp129_; _tmp131_ = vala_ccode_identifier_new (_tmp130_); _tmp132_ = _tmp131_; vala_ccode_function_call_add_argument (_tmp125_, (ValaCCodeExpression*) _tmp132_); _vala_ccode_node_unref0 (_tmp132_); _g_free0 (_tmp130_); _g_free0 (_tmp128_); _tmp133_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp134_ = _tmp133_; _tmp135_ = ccall; vala_ccode_function_add_expression (_tmp134_, (ValaCCodeExpression*) _tmp135_); _tmp136_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp137_ = _tmp136_; vala_ccode_function_close (_tmp137_); _tmp138_ = vala_ccode_identifier_new ("g_type_set_qdata"); _tmp139_ = _tmp138_; _tmp140_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp139_); _vala_ccode_node_unref0 (ccall); ccall = _tmp140_; _vala_ccode_node_unref0 (_tmp139_); _tmp141_ = vala_ccode_identifier_new ("G_TYPE_FROM_CLASS"); _tmp142_ = _tmp141_; _tmp143_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp142_); _vala_ccode_node_unref0 (ccall2); ccall2 = _tmp143_; _vala_ccode_node_unref0 (_tmp142_); _tmp144_ = ccall2; _tmp145_ = vala_ccode_identifier_new ("klass"); _tmp146_ = _tmp145_; vala_ccode_function_call_add_argument (_tmp144_, (ValaCCodeExpression*) _tmp146_); _vala_ccode_node_unref0 (_tmp146_); _tmp147_ = ccall; _tmp148_ = ccall2; vala_ccode_function_call_add_argument (_tmp147_, (ValaCCodeExpression*) _tmp148_); _tmp149_ = ccall; _tmp150_ = cl; _tmp151_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp150_, NULL); _tmp152_ = _tmp151_; _tmp153_ = g_strdup_printf ("_vala_%s_class_private_quark", _tmp152_); _tmp154_ = _tmp153_; _tmp155_ = vala_ccode_identifier_new (_tmp154_); _tmp156_ = _tmp155_; vala_ccode_function_call_add_argument (_tmp149_, (ValaCCodeExpression*) _tmp156_); _vala_ccode_node_unref0 (_tmp156_); _g_free0 (_tmp154_); _g_free0 (_tmp152_); _tmp157_ = ccall; _tmp158_ = vala_ccode_identifier_new ("priv"); _tmp159_ = _tmp158_; vala_ccode_function_call_add_argument (_tmp157_, (ValaCCodeExpression*) _tmp159_); _vala_ccode_node_unref0 (_tmp159_); _tmp160_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp161_ = _tmp160_; _tmp162_ = ccall; vala_ccode_function_add_expression (_tmp161_, (ValaCCodeExpression*) _tmp162_); _vala_ccode_node_unref0 (ccall2); _vala_ccode_node_unref0 (ccall); } vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_ccode_node_unref0 (base_init); } static void vala_gtype_module_add_base_init_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeFile* _tmp0_; ValaCCodeBaseModuleEmitContext* _tmp1_; ValaCCodeFunction* _tmp2_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp1_ = ((ValaCCodeBaseModule*) self)->base_init_context; _tmp2_ = _tmp1_->ccode; vala_ccode_file_add_function (_tmp0_, _tmp2_); } static void vala_gtype_module_real_generate_class_init (ValaGTypeModule* self, ValaClass* cl) { g_return_if_fail (cl != NULL); } void vala_gtype_module_generate_class_init (ValaGTypeModule* self, ValaClass* cl) { g_return_if_fail (self != NULL); VALA_GTYPE_MODULE_GET_CLASS (self)->generate_class_init (self, cl); } static void vala_gtype_module_begin_class_init_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeBaseModuleEmitContext* _tmp0_; ValaClass* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_; gchar* _tmp4_ = NULL; gchar* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* _tmp7_; ValaCCodeFunction* func; ValaCCodeFunction* _tmp8_; ValaClass* _tmp9_; gchar* _tmp10_ = NULL; gchar* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; ValaCCodeParameter* _tmp14_; ValaCCodeParameter* _tmp15_; ValaCCodeFunction* _tmp16_; ValaCCodeFunctionCall* ccall = NULL; ValaCCodeDeclaration* _tmp17_; ValaCCodeDeclaration* parent_decl; ValaClass* _tmp18_; gchar* _tmp19_ = NULL; gchar* _tmp20_; gchar* _tmp21_ = NULL; gchar* _tmp22_; ValaCCodeVariableDeclarator* _tmp23_; ValaCCodeVariableDeclarator* _tmp24_; ValaCCodeVariableDeclarator* parent_var_decl; ValaCCodeVariableDeclarator* _tmp25_; ValaCCodeConstant* _tmp26_; ValaCCodeConstant* _tmp27_; ValaCCodeDeclaration* _tmp28_; ValaCCodeVariableDeclarator* _tmp29_; ValaCCodeDeclaration* _tmp30_; ValaCCodeFile* _tmp31_; ValaCCodeDeclaration* _tmp32_; ValaCCodeFunction* _tmp33_; ValaCCodeIdentifier* _tmp34_; ValaCCodeIdentifier* _tmp35_; ValaCCodeFunctionCall* _tmp36_; ValaCCodeFunctionCall* _tmp37_; ValaCCodeIdentifier* _tmp38_; ValaCCodeIdentifier* _tmp39_; ValaClass* _tmp40_; gchar* _tmp41_ = NULL; gchar* _tmp42_; gchar* _tmp43_ = NULL; gchar* _tmp44_; ValaCCodeIdentifier* _tmp45_; ValaCCodeIdentifier* _tmp46_; ValaCCodeFunctionCall* _tmp47_; ValaCCodeAssignment* _tmp48_; ValaCCodeAssignment* _tmp49_; ValaCCodeAssignment* parent_assignment; ValaCCodeFunction* _tmp50_; ValaCCodeFunction* _tmp51_; ValaCCodeAssignment* _tmp52_; gboolean _tmp53_ = FALSE; gboolean _tmp54_ = FALSE; ValaClass* _tmp55_; gboolean _tmp56_; gboolean _tmp57_; gboolean _tmp61_; gboolean _tmp77_; gboolean _tmp113_ = FALSE; ValaClass* _tmp114_; gboolean _tmp115_; gboolean _tmp116_; gboolean _tmp122_; ValaClass* _tmp332_; ValaClass* _tmp333_; gboolean _tmp334_; gboolean _tmp335_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->class_init_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp0_); _tmp1_ = cl; _tmp2_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp1_, NULL); _tmp3_ = _tmp2_; _tmp4_ = g_strdup_printf ("%s_class_init", _tmp3_); _tmp5_ = _tmp4_; _tmp6_ = vala_ccode_function_new (_tmp5_, "void"); _tmp7_ = _tmp6_; _g_free0 (_tmp5_); _g_free0 (_tmp3_); func = _tmp7_; _tmp8_ = func; _tmp9_ = cl; _tmp10_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp9_); _tmp11_ = _tmp10_; _tmp12_ = g_strdup_printf ("%sClass *", _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = vala_ccode_parameter_new ("klass", _tmp13_); _tmp15_ = _tmp14_; vala_ccode_function_add_parameter (_tmp8_, _tmp15_); _vala_ccode_node_unref0 (_tmp15_); _g_free0 (_tmp13_); _g_free0 (_tmp11_); _tmp16_ = func; vala_ccode_function_set_modifiers (_tmp16_, VALA_CCODE_MODIFIERS_STATIC); _tmp17_ = vala_ccode_declaration_new ("gpointer"); parent_decl = _tmp17_; _tmp18_ = cl; _tmp19_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp18_, NULL); _tmp20_ = _tmp19_; _tmp21_ = g_strdup_printf ("%s_parent_class", _tmp20_); _tmp22_ = _tmp21_; _tmp23_ = vala_ccode_variable_declarator_new (_tmp22_, NULL, NULL); _tmp24_ = _tmp23_; _g_free0 (_tmp22_); _g_free0 (_tmp20_); parent_var_decl = _tmp24_; _tmp25_ = parent_var_decl; _tmp26_ = vala_ccode_constant_new ("NULL"); _tmp27_ = _tmp26_; vala_ccode_variable_declarator_set_initializer (_tmp25_, (ValaCCodeExpression*) _tmp27_); _vala_ccode_node_unref0 (_tmp27_); _tmp28_ = parent_decl; _tmp29_ = parent_var_decl; vala_ccode_declaration_add_declarator (_tmp28_, (ValaCCodeDeclarator*) _tmp29_); _tmp30_ = parent_decl; vala_ccode_declaration_set_modifiers (_tmp30_, VALA_CCODE_MODIFIERS_STATIC); _tmp31_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp32_ = parent_decl; vala_ccode_file_add_type_member_declaration (_tmp31_, (ValaCCodeNode*) _tmp32_); _tmp33_ = func; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp33_); _tmp34_ = vala_ccode_identifier_new ("g_type_class_peek_parent"); _tmp35_ = _tmp34_; _tmp36_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp35_); _vala_ccode_node_unref0 (ccall); ccall = _tmp36_; _vala_ccode_node_unref0 (_tmp35_); _tmp37_ = ccall; _tmp38_ = vala_ccode_identifier_new ("klass"); _tmp39_ = _tmp38_; vala_ccode_function_call_add_argument (_tmp37_, (ValaCCodeExpression*) _tmp39_); _vala_ccode_node_unref0 (_tmp39_); _tmp40_ = cl; _tmp41_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp40_, NULL); _tmp42_ = _tmp41_; _tmp43_ = g_strdup_printf ("%s_parent_class", _tmp42_); _tmp44_ = _tmp43_; _tmp45_ = vala_ccode_identifier_new (_tmp44_); _tmp46_ = _tmp45_; _tmp47_ = ccall; _tmp48_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp46_, (ValaCCodeExpression*) _tmp47_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE); _tmp49_ = _tmp48_; _vala_ccode_node_unref0 (_tmp46_); _g_free0 (_tmp44_); _g_free0 (_tmp42_); parent_assignment = _tmp49_; _tmp50_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp51_ = _tmp50_; _tmp52_ = parent_assignment; vala_ccode_function_add_expression (_tmp51_, (ValaCCodeExpression*) _tmp52_); _tmp55_ = cl; _tmp56_ = vala_class_get_is_compact (_tmp55_); _tmp57_ = _tmp56_; if (!_tmp57_) { ValaClass* _tmp58_; ValaTypeSymbol* _tmp59_; gboolean _tmp60_ = FALSE; _tmp58_ = cl; _tmp59_ = ((ValaCCodeBaseModule*) self)->gobject_type; _tmp60_ = vala_typesymbol_is_subtype_of ((ValaTypeSymbol*) _tmp58_, _tmp59_); _tmp54_ = !_tmp60_; } else { _tmp54_ = FALSE; } _tmp61_ = _tmp54_; if (_tmp61_) { gboolean _tmp62_ = FALSE; gboolean _tmp63_ = FALSE; ValaClass* _tmp64_; ValaList* _tmp65_ = NULL; ValaList* _tmp66_; gint _tmp67_; gint _tmp68_; gboolean _tmp69_; gboolean _tmp73_; gboolean _tmp76_; _tmp64_ = cl; _tmp65_ = vala_class_get_fields (_tmp64_); _tmp66_ = _tmp65_; _tmp67_ = vala_collection_get_size ((ValaCollection*) _tmp66_); _tmp68_ = _tmp67_; _tmp69_ = _tmp68_ > 0; _vala_iterable_unref0 (_tmp66_); if (_tmp69_) { _tmp63_ = TRUE; } else { ValaClass* _tmp70_; ValaDestructor* _tmp71_; ValaDestructor* _tmp72_; _tmp70_ = cl; _tmp71_ = vala_class_get_destructor (_tmp70_); _tmp72_ = _tmp71_; _tmp63_ = _tmp72_ != NULL; } _tmp73_ = _tmp63_; if (_tmp73_) { _tmp62_ = TRUE; } else { ValaClass* _tmp74_; gboolean _tmp75_ = FALSE; _tmp74_ = cl; _tmp75_ = vala_class_is_fundamental (_tmp74_); _tmp62_ = _tmp75_; } _tmp76_ = _tmp62_; _tmp53_ = _tmp76_; } else { _tmp53_ = FALSE; } _tmp77_ = _tmp53_; if (_tmp77_) { ValaClass* _tmp78_; ValaClass* _tmp79_; ValaClass* fundamental_class; ValaClass* _tmp87_; gchar* _tmp88_ = NULL; gchar* _tmp89_; gchar* _tmp90_ = NULL; gchar* _tmp91_; ValaCCodeIdentifier* _tmp92_; ValaCCodeIdentifier* _tmp93_; ValaCCodeFunctionCall* _tmp94_; ValaCCodeFunctionCall* _tmp95_; ValaCCodeIdentifier* _tmp96_; ValaCCodeIdentifier* _tmp97_; ValaCCodeFunctionCall* _tmp98_; ValaCCodeMemberAccess* _tmp99_; ValaCCodeMemberAccess* _tmp100_; ValaClass* _tmp101_; gchar* _tmp102_ = NULL; gchar* _tmp103_; gchar* _tmp104_; gchar* _tmp105_; ValaCCodeIdentifier* _tmp106_; ValaCCodeIdentifier* _tmp107_; ValaCCodeAssignment* _tmp108_; ValaCCodeAssignment* _tmp109_; ValaCCodeAssignment* finalize_assignment; ValaCCodeFunction* _tmp110_; ValaCCodeFunction* _tmp111_; ValaCCodeAssignment* _tmp112_; _tmp78_ = cl; _tmp79_ = _vala_code_node_ref0 (_tmp78_); fundamental_class = _tmp79_; while (TRUE) { ValaClass* _tmp80_; ValaClass* _tmp81_; ValaClass* _tmp82_; ValaClass* _tmp83_; ValaClass* _tmp84_; ValaClass* _tmp85_; ValaClass* _tmp86_; _tmp80_ = fundamental_class; _tmp81_ = vala_class_get_base_class (_tmp80_); _tmp82_ = _tmp81_; if (!(_tmp82_ != NULL)) { break; } _tmp83_ = fundamental_class; _tmp84_ = vala_class_get_base_class (_tmp83_); _tmp85_ = _tmp84_; _tmp86_ = _vala_code_node_ref0 (_tmp85_); _vala_code_node_unref0 (fundamental_class); fundamental_class = _tmp86_; } _tmp87_ = fundamental_class; _tmp88_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp87_, NULL); _tmp89_ = _tmp88_; _tmp90_ = g_strdup_printf ("%s_CLASS", _tmp89_); _tmp91_ = _tmp90_; _tmp92_ = vala_ccode_identifier_new (_tmp91_); _tmp93_ = _tmp92_; _tmp94_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp93_); _vala_ccode_node_unref0 (ccall); ccall = _tmp94_; _vala_ccode_node_unref0 (_tmp93_); _g_free0 (_tmp91_); _g_free0 (_tmp89_); _tmp95_ = ccall; _tmp96_ = vala_ccode_identifier_new ("klass"); _tmp97_ = _tmp96_; vala_ccode_function_call_add_argument (_tmp95_, (ValaCCodeExpression*) _tmp97_); _vala_ccode_node_unref0 (_tmp97_); _tmp98_ = ccall; _tmp99_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp98_, "finalize"); _tmp100_ = _tmp99_; _tmp101_ = cl; _tmp102_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp101_); _tmp103_ = _tmp102_; _tmp104_ = g_strconcat (_tmp103_, "finalize", NULL); _tmp105_ = _tmp104_; _tmp106_ = vala_ccode_identifier_new (_tmp105_); _tmp107_ = _tmp106_; _tmp108_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp100_, (ValaCCodeExpression*) _tmp107_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE); _tmp109_ = _tmp108_; _vala_ccode_node_unref0 (_tmp107_); _g_free0 (_tmp105_); _g_free0 (_tmp103_); _vala_ccode_node_unref0 (_tmp100_); finalize_assignment = _tmp109_; _tmp110_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp111_ = _tmp110_; _tmp112_ = finalize_assignment; vala_ccode_function_add_expression (_tmp111_, (ValaCCodeExpression*) _tmp112_); _vala_ccode_node_unref0 (finalize_assignment); _vala_code_node_unref0 (fundamental_class); } _tmp114_ = cl; _tmp115_ = vala_class_get_has_private_fields (_tmp114_); _tmp116_ = _tmp115_; if (_tmp116_) { _tmp113_ = TRUE; } else { ValaClass* _tmp117_; ValaList* _tmp118_ = NULL; ValaList* _tmp119_; gint _tmp120_; gint _tmp121_; _tmp117_ = cl; _tmp118_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) _tmp117_); _tmp119_ = _tmp118_; _tmp120_ = vala_collection_get_size ((ValaCollection*) _tmp119_); _tmp121_ = _tmp120_; _tmp113_ = _tmp121_ > 0; _vala_iterable_unref0 (_tmp119_); } _tmp122_ = _tmp113_; if (_tmp122_) { ValaCCodeIdentifier* _tmp123_; ValaCCodeIdentifier* _tmp124_; ValaCCodeFunctionCall* _tmp125_; ValaCCodeFunctionCall* _tmp126_; ValaCCodeIdentifier* _tmp127_; ValaCCodeIdentifier* _tmp128_; ValaCCodeFunctionCall* _tmp129_; ValaClass* _tmp130_; gchar* _tmp131_ = NULL; gchar* _tmp132_; gchar* _tmp133_ = NULL; gchar* _tmp134_; ValaCCodeConstant* _tmp135_; ValaCCodeConstant* _tmp136_; ValaCCodeFunction* _tmp137_; ValaCCodeFunction* _tmp138_; ValaCCodeFunctionCall* _tmp139_; _tmp123_ = vala_ccode_identifier_new ("g_type_class_add_private"); _tmp124_ = _tmp123_; _tmp125_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp124_); _vala_ccode_node_unref0 (ccall); ccall = _tmp125_; _vala_ccode_node_unref0 (_tmp124_); _tmp126_ = ccall; _tmp127_ = vala_ccode_identifier_new ("klass"); _tmp128_ = _tmp127_; vala_ccode_function_call_add_argument (_tmp126_, (ValaCCodeExpression*) _tmp128_); _vala_ccode_node_unref0 (_tmp128_); _tmp129_ = ccall; _tmp130_ = cl; _tmp131_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp130_); _tmp132_ = _tmp131_; _tmp133_ = g_strdup_printf ("sizeof (%sPrivate)", _tmp132_); _tmp134_ = _tmp133_; _tmp135_ = vala_ccode_constant_new (_tmp134_); _tmp136_ = _tmp135_; vala_ccode_function_call_add_argument (_tmp129_, (ValaCCodeExpression*) _tmp136_); _vala_ccode_node_unref0 (_tmp136_); _g_free0 (_tmp134_); _g_free0 (_tmp132_); _tmp137_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp138_ = _tmp137_; _tmp139_ = ccall; vala_ccode_function_add_expression (_tmp138_, (ValaCCodeExpression*) _tmp139_); } { ValaClass* _tmp140_; ValaList* _tmp141_ = NULL; ValaList* _m_list; ValaList* _tmp142_; gint _tmp143_; gint _tmp144_; gint _m_size; gint _m_index; _tmp140_ = cl; _tmp141_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp140_); _m_list = _tmp141_; _tmp142_ = _m_list; _tmp143_ = vala_collection_get_size ((ValaCollection*) _tmp142_); _tmp144_ = _tmp143_; _m_size = _tmp144_; _m_index = -1; while (TRUE) { gint _tmp145_; gint _tmp146_; gint _tmp147_; ValaList* _tmp148_; gint _tmp149_; gpointer _tmp150_ = NULL; ValaMethod* m; ValaMethod* _tmp151_; ValaMethod* _tmp152_; ValaMethod* _tmp153_; ValaMethod* _tmp154_; ValaMethod* _tmp155_; ValaMethod* _tmp156_; ValaSymbol* _tmp157_; ValaSymbol* _tmp158_; ValaSymbol* _tmp159_; ValaSymbol* base_type; gboolean _tmp160_ = FALSE; ValaMethod* _tmp161_; gboolean _tmp162_; gboolean _tmp163_; gboolean _tmp167_; _tmp145_ = _m_index; _m_index = _tmp145_ + 1; _tmp146_ = _m_index; _tmp147_ = _m_size; if (!(_tmp146_ < _tmp147_)) { break; } _tmp148_ = _m_list; _tmp149_ = _m_index; _tmp150_ = vala_list_get (_tmp148_, _tmp149_); m = (ValaMethod*) _tmp150_; _tmp151_ = m; _tmp152_ = vala_method_get_base_method (_tmp151_); _tmp153_ = _tmp152_; if (_tmp153_ == NULL) { _vala_code_node_unref0 (m); continue; } _tmp154_ = m; _tmp155_ = vala_method_get_base_method (_tmp154_); _tmp156_ = _tmp155_; _tmp157_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp156_); _tmp158_ = _tmp157_; _tmp159_ = _vala_code_node_ref0 (_tmp158_); base_type = _tmp159_; _tmp161_ = m; _tmp162_ = vala_method_get_is_abstract (_tmp161_); _tmp163_ = _tmp162_; if (!_tmp163_) { _tmp160_ = TRUE; } else { ValaMethod* _tmp164_; gboolean _tmp165_; gboolean _tmp166_; _tmp164_ = m; _tmp165_ = vala_method_get_coroutine (_tmp164_); _tmp166_ = _tmp165_; _tmp160_ = !_tmp166_; } _tmp167_ = _tmp160_; if (_tmp167_) { ValaSymbol* _tmp168_; gchar* _tmp169_ = NULL; gchar* _tmp170_; gchar* _tmp171_ = NULL; gchar* _tmp172_; ValaCCodeIdentifier* _tmp173_; ValaCCodeIdentifier* _tmp174_; ValaCCodeFunctionCall* _tmp175_; ValaCCodeFunctionCall* _tmp176_; ValaCCodeFunctionCall* ccast; ValaCCodeFunctionCall* _tmp177_; ValaCCodeIdentifier* _tmp178_; ValaCCodeIdentifier* _tmp179_; ValaCCodeFunction* _tmp180_; ValaCCodeFunction* _tmp181_; ValaCCodeFunctionCall* _tmp182_; ValaMethod* _tmp183_; ValaMethod* _tmp184_; ValaMethod* _tmp185_; gchar* _tmp186_ = NULL; gchar* _tmp187_; ValaCCodeMemberAccess* _tmp188_; ValaCCodeMemberAccess* _tmp189_; ValaMethod* _tmp190_; gchar* _tmp191_ = NULL; gchar* _tmp192_; ValaCCodeIdentifier* _tmp193_; ValaCCodeIdentifier* _tmp194_; ValaMethod* _tmp195_; gboolean _tmp196_; gboolean _tmp197_; _tmp168_ = base_type; _tmp169_ = vala_ccode_base_module_get_ccode_upper_case_name (_tmp168_, NULL); _tmp170_ = _tmp169_; _tmp171_ = g_strdup_printf ("%s_CLASS", _tmp170_); _tmp172_ = _tmp171_; _tmp173_ = vala_ccode_identifier_new (_tmp172_); _tmp174_ = _tmp173_; _tmp175_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp174_); _tmp176_ = _tmp175_; _vala_ccode_node_unref0 (_tmp174_); _g_free0 (_tmp172_); _g_free0 (_tmp170_); ccast = _tmp176_; _tmp177_ = ccast; _tmp178_ = vala_ccode_identifier_new ("klass"); _tmp179_ = _tmp178_; vala_ccode_function_call_add_argument (_tmp177_, (ValaCCodeExpression*) _tmp179_); _vala_ccode_node_unref0 (_tmp179_); _tmp180_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp181_ = _tmp180_; _tmp182_ = ccast; _tmp183_ = m; _tmp184_ = vala_method_get_base_method (_tmp183_); _tmp185_ = _tmp184_; _tmp186_ = vala_ccode_base_module_get_ccode_vfunc_name (_tmp185_); _tmp187_ = _tmp186_; _tmp188_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp182_, _tmp187_); _tmp189_ = _tmp188_; _tmp190_ = m; _tmp191_ = vala_ccode_base_module_get_ccode_real_name ((ValaSymbol*) _tmp190_); _tmp192_ = _tmp191_; _tmp193_ = vala_ccode_identifier_new (_tmp192_); _tmp194_ = _tmp193_; vala_ccode_function_add_assignment (_tmp181_, (ValaCCodeExpression*) _tmp189_, (ValaCCodeExpression*) _tmp194_); _vala_ccode_node_unref0 (_tmp194_); _g_free0 (_tmp192_); _vala_ccode_node_unref0 (_tmp189_); _g_free0 (_tmp187_); _tmp195_ = m; _tmp196_ = vala_method_get_coroutine (_tmp195_); _tmp197_ = _tmp196_; if (_tmp197_) { ValaCCodeFunction* _tmp198_; ValaCCodeFunction* _tmp199_; ValaCCodeFunctionCall* _tmp200_; ValaMethod* _tmp201_; ValaMethod* _tmp202_; ValaMethod* _tmp203_; gchar* _tmp204_ = NULL; gchar* _tmp205_; ValaCCodeMemberAccess* _tmp206_; ValaCCodeMemberAccess* _tmp207_; ValaMethod* _tmp208_; gchar* _tmp209_ = NULL; gchar* _tmp210_; ValaCCodeIdentifier* _tmp211_; ValaCCodeIdentifier* _tmp212_; _tmp198_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp199_ = _tmp198_; _tmp200_ = ccast; _tmp201_ = m; _tmp202_ = vala_method_get_base_method (_tmp201_); _tmp203_ = _tmp202_; _tmp204_ = vala_ccode_base_module_get_ccode_finish_vfunc_name (_tmp203_); _tmp205_ = _tmp204_; _tmp206_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp200_, _tmp205_); _tmp207_ = _tmp206_; _tmp208_ = m; _tmp209_ = vala_ccode_base_module_get_ccode_finish_real_name (_tmp208_); _tmp210_ = _tmp209_; _tmp211_ = vala_ccode_identifier_new (_tmp210_); _tmp212_ = _tmp211_; vala_ccode_function_add_assignment (_tmp199_, (ValaCCodeExpression*) _tmp207_, (ValaCCodeExpression*) _tmp212_); _vala_ccode_node_unref0 (_tmp212_); _g_free0 (_tmp210_); _vala_ccode_node_unref0 (_tmp207_); _g_free0 (_tmp205_); } _vala_ccode_node_unref0 (ccast); } _vala_code_node_unref0 (base_type); _vala_code_node_unref0 (m); } _vala_iterable_unref0 (_m_list); } { ValaClass* _tmp213_; ValaList* _tmp214_ = NULL; ValaList* _sig_list; ValaList* _tmp215_; gint _tmp216_; gint _tmp217_; gint _sig_size; gint _sig_index; _tmp213_ = cl; _tmp214_ = vala_object_type_symbol_get_signals ((ValaObjectTypeSymbol*) _tmp213_); _sig_list = _tmp214_; _tmp215_ = _sig_list; _tmp216_ = vala_collection_get_size ((ValaCollection*) _tmp215_); _tmp217_ = _tmp216_; _sig_size = _tmp217_; _sig_index = -1; while (TRUE) { gint _tmp218_; gint _tmp219_; gint _tmp220_; ValaList* _tmp221_; gint _tmp222_; gpointer _tmp223_ = NULL; ValaSignal* sig; ValaSignal* _tmp224_; ValaMethod* _tmp225_; ValaMethod* _tmp226_; ValaClass* _tmp227_; gchar* _tmp228_ = NULL; gchar* _tmp229_; gchar* _tmp230_ = NULL; gchar* _tmp231_; ValaCCodeIdentifier* _tmp232_; ValaCCodeIdentifier* _tmp233_; ValaCCodeFunctionCall* _tmp234_; ValaCCodeFunctionCall* _tmp235_; ValaCCodeFunctionCall* ccast; ValaCCodeFunctionCall* _tmp236_; ValaCCodeIdentifier* _tmp237_; ValaCCodeIdentifier* _tmp238_; ValaCCodeFunction* _tmp239_; ValaCCodeFunction* _tmp240_; ValaCCodeFunctionCall* _tmp241_; ValaSignal* _tmp242_; ValaMethod* _tmp243_; ValaMethod* _tmp244_; gchar* _tmp245_ = NULL; gchar* _tmp246_; ValaCCodeMemberAccess* _tmp247_; ValaCCodeMemberAccess* _tmp248_; ValaSignal* _tmp249_; ValaMethod* _tmp250_; ValaMethod* _tmp251_; gchar* _tmp252_ = NULL; gchar* _tmp253_; ValaCCodeIdentifier* _tmp254_; ValaCCodeIdentifier* _tmp255_; _tmp218_ = _sig_index; _sig_index = _tmp218_ + 1; _tmp219_ = _sig_index; _tmp220_ = _sig_size; if (!(_tmp219_ < _tmp220_)) { break; } _tmp221_ = _sig_list; _tmp222_ = _sig_index; _tmp223_ = vala_list_get (_tmp221_, _tmp222_); sig = (ValaSignal*) _tmp223_; _tmp224_ = sig; _tmp225_ = vala_signal_get_default_handler (_tmp224_); _tmp226_ = _tmp225_; if (_tmp226_ == NULL) { _vala_code_node_unref0 (sig); continue; } _tmp227_ = cl; _tmp228_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp227_, NULL); _tmp229_ = _tmp228_; _tmp230_ = g_strdup_printf ("%s_CLASS", _tmp229_); _tmp231_ = _tmp230_; _tmp232_ = vala_ccode_identifier_new (_tmp231_); _tmp233_ = _tmp232_; _tmp234_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp233_); _tmp235_ = _tmp234_; _vala_ccode_node_unref0 (_tmp233_); _g_free0 (_tmp231_); _g_free0 (_tmp229_); ccast = _tmp235_; _tmp236_ = ccast; _tmp237_ = vala_ccode_identifier_new ("klass"); _tmp238_ = _tmp237_; vala_ccode_function_call_add_argument (_tmp236_, (ValaCCodeExpression*) _tmp238_); _vala_ccode_node_unref0 (_tmp238_); _tmp239_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp240_ = _tmp239_; _tmp241_ = ccast; _tmp242_ = sig; _tmp243_ = vala_signal_get_default_handler (_tmp242_); _tmp244_ = _tmp243_; _tmp245_ = vala_ccode_base_module_get_ccode_vfunc_name (_tmp244_); _tmp246_ = _tmp245_; _tmp247_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp241_, _tmp246_); _tmp248_ = _tmp247_; _tmp249_ = sig; _tmp250_ = vala_signal_get_default_handler (_tmp249_); _tmp251_ = _tmp250_; _tmp252_ = vala_ccode_base_module_get_ccode_real_name ((ValaSymbol*) _tmp251_); _tmp253_ = _tmp252_; _tmp254_ = vala_ccode_identifier_new (_tmp253_); _tmp255_ = _tmp254_; vala_ccode_function_add_assignment (_tmp240_, (ValaCCodeExpression*) _tmp248_, (ValaCCodeExpression*) _tmp255_); _vala_ccode_node_unref0 (_tmp255_); _g_free0 (_tmp253_); _vala_ccode_node_unref0 (_tmp248_); _g_free0 (_tmp246_); _vala_ccode_node_unref0 (ccast); _vala_code_node_unref0 (sig); } _vala_iterable_unref0 (_sig_list); } { ValaClass* _tmp256_; ValaList* _tmp257_ = NULL; ValaList* _prop_list; ValaList* _tmp258_; gint _tmp259_; gint _tmp260_; gint _prop_size; gint _prop_index; _tmp256_ = cl; _tmp257_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) _tmp256_); _prop_list = _tmp257_; _tmp258_ = _prop_list; _tmp259_ = vala_collection_get_size ((ValaCollection*) _tmp258_); _tmp260_ = _tmp259_; _prop_size = _tmp260_; _prop_index = -1; while (TRUE) { gint _tmp261_; gint _tmp262_; gint _tmp263_; ValaList* _tmp264_; gint _tmp265_; gpointer _tmp266_ = NULL; ValaProperty* prop; ValaProperty* _tmp267_; ValaProperty* _tmp268_; ValaProperty* _tmp269_; ValaProperty* _tmp270_; ValaProperty* _tmp271_; ValaProperty* _tmp272_; ValaSymbol* _tmp273_; ValaSymbol* _tmp274_; ValaSymbol* _tmp275_; ValaSymbol* base_type; ValaSymbol* _tmp276_; gchar* _tmp277_ = NULL; gchar* _tmp278_; gchar* _tmp279_ = NULL; gchar* _tmp280_; ValaCCodeIdentifier* _tmp281_; ValaCCodeIdentifier* _tmp282_; ValaCCodeFunctionCall* _tmp283_; ValaCCodeFunctionCall* _tmp284_; ValaCCodeFunctionCall* ccast; ValaCCodeFunctionCall* _tmp285_; ValaCCodeIdentifier* _tmp286_; ValaCCodeIdentifier* _tmp287_; ValaProperty* _tmp288_; ValaProperty* _tmp289_; ValaProperty* _tmp290_; gboolean _tmp291_ = FALSE; _tmp261_ = _prop_index; _prop_index = _tmp261_ + 1; _tmp262_ = _prop_index; _tmp263_ = _prop_size; if (!(_tmp262_ < _tmp263_)) { break; } _tmp264_ = _prop_list; _tmp265_ = _prop_index; _tmp266_ = vala_list_get (_tmp264_, _tmp265_); prop = (ValaProperty*) _tmp266_; _tmp267_ = prop; _tmp268_ = vala_property_get_base_property (_tmp267_); _tmp269_ = _tmp268_; if (_tmp269_ == NULL) { _vala_code_node_unref0 (prop); continue; } _tmp270_ = prop; _tmp271_ = vala_property_get_base_property (_tmp270_); _tmp272_ = _tmp271_; _tmp273_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp272_); _tmp274_ = _tmp273_; _tmp275_ = _vala_code_node_ref0 (_tmp274_); base_type = _tmp275_; _tmp276_ = base_type; _tmp277_ = vala_ccode_base_module_get_ccode_upper_case_name (_tmp276_, NULL); _tmp278_ = _tmp277_; _tmp279_ = g_strdup_printf ("%s_CLASS", _tmp278_); _tmp280_ = _tmp279_; _tmp281_ = vala_ccode_identifier_new (_tmp280_); _tmp282_ = _tmp281_; _tmp283_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp282_); _tmp284_ = _tmp283_; _vala_ccode_node_unref0 (_tmp282_); _g_free0 (_tmp280_); _g_free0 (_tmp278_); ccast = _tmp284_; _tmp285_ = ccast; _tmp286_ = vala_ccode_identifier_new ("klass"); _tmp287_ = _tmp286_; vala_ccode_function_call_add_argument (_tmp285_, (ValaCCodeExpression*) _tmp287_); _vala_ccode_node_unref0 (_tmp287_); _tmp288_ = prop; _tmp289_ = vala_property_get_base_property (_tmp288_); _tmp290_ = _tmp289_; _tmp291_ = vala_ccode_base_module_get_ccode_no_accessor_method (_tmp290_); if (!_tmp291_) { ValaProperty* _tmp292_; ValaPropertyAccessor* _tmp293_; ValaPropertyAccessor* _tmp294_; ValaProperty* _tmp312_; ValaPropertyAccessor* _tmp313_; ValaPropertyAccessor* _tmp314_; _tmp292_ = prop; _tmp293_ = vala_property_get_get_accessor (_tmp292_); _tmp294_ = _tmp293_; if (_tmp294_ != NULL) { ValaProperty* _tmp295_; ValaPropertyAccessor* _tmp296_; ValaPropertyAccessor* _tmp297_; gchar* _tmp298_ = NULL; gchar* cname; ValaCCodeFunction* _tmp299_; ValaCCodeFunction* _tmp300_; ValaCCodeFunctionCall* _tmp301_; ValaProperty* _tmp302_; const gchar* _tmp303_; const gchar* _tmp304_; gchar* _tmp305_ = NULL; gchar* _tmp306_; ValaCCodeMemberAccess* _tmp307_; ValaCCodeMemberAccess* _tmp308_; const gchar* _tmp309_; ValaCCodeIdentifier* _tmp310_; ValaCCodeIdentifier* _tmp311_; _tmp295_ = prop; _tmp296_ = vala_property_get_get_accessor (_tmp295_); _tmp297_ = _tmp296_; _tmp298_ = vala_ccode_base_module_get_ccode_real_name ((ValaSymbol*) _tmp297_); cname = _tmp298_; _tmp299_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp300_ = _tmp299_; _tmp301_ = ccast; _tmp302_ = prop; _tmp303_ = vala_symbol_get_name ((ValaSymbol*) _tmp302_); _tmp304_ = _tmp303_; _tmp305_ = g_strdup_printf ("get_%s", _tmp304_); _tmp306_ = _tmp305_; _tmp307_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp301_, _tmp306_); _tmp308_ = _tmp307_; _tmp309_ = cname; _tmp310_ = vala_ccode_identifier_new (_tmp309_); _tmp311_ = _tmp310_; vala_ccode_function_add_assignment (_tmp300_, (ValaCCodeExpression*) _tmp308_, (ValaCCodeExpression*) _tmp311_); _vala_ccode_node_unref0 (_tmp311_); _vala_ccode_node_unref0 (_tmp308_); _g_free0 (_tmp306_); _g_free0 (cname); } _tmp312_ = prop; _tmp313_ = vala_property_get_set_accessor (_tmp312_); _tmp314_ = _tmp313_; if (_tmp314_ != NULL) { ValaProperty* _tmp315_; ValaPropertyAccessor* _tmp316_; ValaPropertyAccessor* _tmp317_; gchar* _tmp318_ = NULL; gchar* cname; ValaCCodeFunction* _tmp319_; ValaCCodeFunction* _tmp320_; ValaCCodeFunctionCall* _tmp321_; ValaProperty* _tmp322_; const gchar* _tmp323_; const gchar* _tmp324_; gchar* _tmp325_ = NULL; gchar* _tmp326_; ValaCCodeMemberAccess* _tmp327_; ValaCCodeMemberAccess* _tmp328_; const gchar* _tmp329_; ValaCCodeIdentifier* _tmp330_; ValaCCodeIdentifier* _tmp331_; _tmp315_ = prop; _tmp316_ = vala_property_get_set_accessor (_tmp315_); _tmp317_ = _tmp316_; _tmp318_ = vala_ccode_base_module_get_ccode_real_name ((ValaSymbol*) _tmp317_); cname = _tmp318_; _tmp319_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp320_ = _tmp319_; _tmp321_ = ccast; _tmp322_ = prop; _tmp323_ = vala_symbol_get_name ((ValaSymbol*) _tmp322_); _tmp324_ = _tmp323_; _tmp325_ = g_strdup_printf ("set_%s", _tmp324_); _tmp326_ = _tmp325_; _tmp327_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp321_, _tmp326_); _tmp328_ = _tmp327_; _tmp329_ = cname; _tmp330_ = vala_ccode_identifier_new (_tmp329_); _tmp331_ = _tmp330_; vala_ccode_function_add_assignment (_tmp320_, (ValaCCodeExpression*) _tmp328_, (ValaCCodeExpression*) _tmp331_); _vala_ccode_node_unref0 (_tmp331_); _vala_ccode_node_unref0 (_tmp328_); _g_free0 (_tmp326_); _g_free0 (cname); } } _vala_ccode_node_unref0 (ccast); _vala_code_node_unref0 (base_type); _vala_code_node_unref0 (prop); } _vala_iterable_unref0 (_prop_list); } _tmp332_ = cl; vala_gtype_module_generate_class_init (self, _tmp332_); _tmp333_ = cl; _tmp334_ = vala_class_get_is_compact (_tmp333_); _tmp335_ = _tmp334_; if (!_tmp335_) { { ValaClass* _tmp336_; ValaList* _tmp337_ = NULL; ValaList* _sig_list; ValaList* _tmp338_; gint _tmp339_; gint _tmp340_; gint _sig_size; gint _sig_index; _tmp336_ = cl; _tmp337_ = vala_object_type_symbol_get_signals ((ValaObjectTypeSymbol*) _tmp336_); _sig_list = _tmp337_; _tmp338_ = _sig_list; _tmp339_ = vala_collection_get_size ((ValaCollection*) _tmp338_); _tmp340_ = _tmp339_; _sig_size = _tmp340_; _sig_index = -1; while (TRUE) { gint _tmp341_; gint _tmp342_; gint _tmp343_; ValaList* _tmp344_; gint _tmp345_; gpointer _tmp346_ = NULL; ValaSignal* sig; ValaSignal* _tmp347_; ValaComment* _tmp348_; ValaComment* _tmp349_; ValaCCodeFunction* _tmp359_; ValaCCodeFunction* _tmp360_; ValaSignal* _tmp361_; ValaClass* _tmp362_; ValaCCodeFunctionCall* _tmp363_ = NULL; ValaCCodeFunctionCall* _tmp364_; _tmp341_ = _sig_index; _sig_index = _tmp341_ + 1; _tmp342_ = _sig_index; _tmp343_ = _sig_size; if (!(_tmp342_ < _tmp343_)) { break; } _tmp344_ = _sig_list; _tmp345_ = _sig_index; _tmp346_ = vala_list_get (_tmp344_, _tmp345_); sig = (ValaSignal*) _tmp346_; _tmp347_ = sig; _tmp348_ = vala_symbol_get_comment ((ValaSymbol*) _tmp347_); _tmp349_ = _tmp348_; if (_tmp349_ != NULL) { ValaCCodeFunction* _tmp350_; ValaCCodeFunction* _tmp351_; ValaSignal* _tmp352_; ValaComment* _tmp353_; ValaComment* _tmp354_; const gchar* _tmp355_; const gchar* _tmp356_; ValaCCodeComment* _tmp357_; ValaCCodeComment* _tmp358_; _tmp350_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp351_ = _tmp350_; _tmp352_ = sig; _tmp353_ = vala_symbol_get_comment ((ValaSymbol*) _tmp352_); _tmp354_ = _tmp353_; _tmp355_ = vala_comment_get_content (_tmp354_); _tmp356_ = _tmp355_; _tmp357_ = vala_ccode_comment_new (_tmp356_); _tmp358_ = _tmp357_; vala_ccode_function_add_statement (_tmp351_, (ValaCCodeNode*) _tmp358_); _vala_ccode_node_unref0 (_tmp358_); } _tmp359_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp360_ = _tmp359_; _tmp361_ = sig; _tmp362_ = cl; _tmp363_ = vala_ccode_base_module_get_signal_creation ((ValaCCodeBaseModule*) self, _tmp361_, (ValaTypeSymbol*) _tmp362_); _tmp364_ = _tmp363_; vala_ccode_function_add_expression (_tmp360_, (ValaCCodeExpression*) _tmp364_); _vala_ccode_node_unref0 (_tmp364_); _vala_code_node_unref0 (sig); } _vala_iterable_unref0 (_sig_list); } } vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_ccode_node_unref0 (parent_assignment); _vala_ccode_node_unref0 (parent_var_decl); _vala_ccode_node_unref0 (parent_decl); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (func); } static void vala_gtype_module_add_class_init_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeFile* _tmp0_; ValaCCodeBaseModuleEmitContext* _tmp1_; ValaCCodeFunction* _tmp2_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp1_ = ((ValaCCodeBaseModule*) self)->class_init_context; _tmp2_ = _tmp1_->ccode; vala_ccode_file_add_function (_tmp0_, _tmp2_); } static void vala_gtype_module_add_interface_init_function (ValaGTypeModule* self, ValaClass* cl, ValaInterface* iface) { ValaClass* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; ValaInterface* _tmp3_; gchar* _tmp4_ = NULL; gchar* _tmp5_; gchar* _tmp6_ = NULL; gchar* _tmp7_; ValaCCodeFunction* _tmp8_; ValaCCodeFunction* _tmp9_; ValaCCodeFunction* iface_init; ValaCCodeFunction* _tmp10_; ValaInterface* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; gchar* _tmp14_ = NULL; gchar* _tmp15_; ValaCCodeParameter* _tmp16_; ValaCCodeParameter* _tmp17_; ValaCCodeFunction* _tmp18_; ValaCCodeFunction* _tmp19_; ValaCCodeFunctionCall* ccall = NULL; ValaClass* _tmp20_; gchar* _tmp21_ = NULL; gchar* _tmp22_; ValaInterface* _tmp23_; gchar* _tmp24_ = NULL; gchar* _tmp25_; gchar* _tmp26_ = NULL; gchar* _tmp27_; gchar* parent_iface_var; ValaInterface* _tmp28_; gchar* _tmp29_ = NULL; gchar* _tmp30_; gchar* _tmp31_; gchar* _tmp32_; ValaCCodeDeclaration* _tmp33_; ValaCCodeDeclaration* _tmp34_; ValaCCodeDeclaration* parent_decl; const gchar* _tmp35_; ValaCCodeVariableDeclarator* _tmp36_; ValaCCodeVariableDeclarator* parent_var_decl; ValaCCodeVariableDeclarator* _tmp37_; ValaCCodeConstant* _tmp38_; ValaCCodeConstant* _tmp39_; ValaCCodeDeclaration* _tmp40_; ValaCCodeVariableDeclarator* _tmp41_; ValaCCodeDeclaration* _tmp42_; ValaCCodeFile* _tmp43_; ValaCCodeDeclaration* _tmp44_; ValaCCodeIdentifier* _tmp45_; ValaCCodeIdentifier* _tmp46_; ValaCCodeFunctionCall* _tmp47_; ValaCCodeFunctionCall* _tmp48_; ValaCCodeIdentifier* _tmp49_; ValaCCodeIdentifier* _tmp50_; ValaCCodeFunction* _tmp51_; ValaCCodeFunction* _tmp52_; const gchar* _tmp53_; ValaCCodeIdentifier* _tmp54_; ValaCCodeIdentifier* _tmp55_; ValaCCodeFunctionCall* _tmp56_; ValaCCodeFile* _tmp452_; ValaCCodeFunction* _tmp453_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); g_return_if_fail (iface != NULL); _tmp0_ = cl; _tmp1_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, NULL); _tmp2_ = _tmp1_; _tmp3_ = iface; _tmp4_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp3_, NULL); _tmp5_ = _tmp4_; _tmp6_ = g_strdup_printf ("%s_%s_interface_init", _tmp2_, _tmp5_); _tmp7_ = _tmp6_; _tmp8_ = vala_ccode_function_new (_tmp7_, "void"); _tmp9_ = _tmp8_; _g_free0 (_tmp7_); _g_free0 (_tmp5_); _g_free0 (_tmp2_); iface_init = _tmp9_; _tmp10_ = iface_init; _tmp11_ = iface; _tmp12_ = vala_ccode_base_module_get_ccode_type_name (_tmp11_); _tmp13_ = _tmp12_; _tmp14_ = g_strdup_printf ("%s *", _tmp13_); _tmp15_ = _tmp14_; _tmp16_ = vala_ccode_parameter_new ("iface", _tmp15_); _tmp17_ = _tmp16_; vala_ccode_function_add_parameter (_tmp10_, _tmp17_); _vala_ccode_node_unref0 (_tmp17_); _g_free0 (_tmp15_); _g_free0 (_tmp13_); _tmp18_ = iface_init; vala_ccode_function_set_modifiers (_tmp18_, VALA_CCODE_MODIFIERS_STATIC); _tmp19_ = iface_init; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp19_); _tmp20_ = cl; _tmp21_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp20_, NULL); _tmp22_ = _tmp21_; _tmp23_ = iface; _tmp24_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp23_, NULL); _tmp25_ = _tmp24_; _tmp26_ = g_strdup_printf ("%s_%s_parent_iface", _tmp22_, _tmp25_); _tmp27_ = _tmp26_; _g_free0 (_tmp25_); _g_free0 (_tmp22_); parent_iface_var = _tmp27_; _tmp28_ = iface; _tmp29_ = vala_ccode_base_module_get_ccode_type_name (_tmp28_); _tmp30_ = _tmp29_; _tmp31_ = g_strconcat (_tmp30_, "*", NULL); _tmp32_ = _tmp31_; _tmp33_ = vala_ccode_declaration_new (_tmp32_); _tmp34_ = _tmp33_; _g_free0 (_tmp32_); _g_free0 (_tmp30_); parent_decl = _tmp34_; _tmp35_ = parent_iface_var; _tmp36_ = vala_ccode_variable_declarator_new (_tmp35_, NULL, NULL); parent_var_decl = _tmp36_; _tmp37_ = parent_var_decl; _tmp38_ = vala_ccode_constant_new ("NULL"); _tmp39_ = _tmp38_; vala_ccode_variable_declarator_set_initializer (_tmp37_, (ValaCCodeExpression*) _tmp39_); _vala_ccode_node_unref0 (_tmp39_); _tmp40_ = parent_decl; _tmp41_ = parent_var_decl; vala_ccode_declaration_add_declarator (_tmp40_, (ValaCCodeDeclarator*) _tmp41_); _tmp42_ = parent_decl; vala_ccode_declaration_set_modifiers (_tmp42_, VALA_CCODE_MODIFIERS_STATIC); _tmp43_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp44_ = parent_decl; vala_ccode_file_add_type_member_declaration (_tmp43_, (ValaCCodeNode*) _tmp44_); _tmp45_ = vala_ccode_identifier_new ("g_type_interface_peek_parent"); _tmp46_ = _tmp45_; _tmp47_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp46_); _vala_ccode_node_unref0 (ccall); ccall = _tmp47_; _vala_ccode_node_unref0 (_tmp46_); _tmp48_ = ccall; _tmp49_ = vala_ccode_identifier_new ("iface"); _tmp50_ = _tmp49_; vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp50_); _vala_ccode_node_unref0 (_tmp50_); _tmp51_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp52_ = _tmp51_; _tmp53_ = parent_iface_var; _tmp54_ = vala_ccode_identifier_new (_tmp53_); _tmp55_ = _tmp54_; _tmp56_ = ccall; vala_ccode_function_add_assignment (_tmp52_, (ValaCCodeExpression*) _tmp55_, (ValaCCodeExpression*) _tmp56_); _vala_ccode_node_unref0 (_tmp55_); { ValaClass* _tmp57_; ValaList* _tmp58_ = NULL; ValaList* _m_list; ValaList* _tmp59_; gint _tmp60_; gint _tmp61_; gint _m_size; gint _m_index; _tmp57_ = cl; _tmp58_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp57_); _m_list = _tmp58_; _tmp59_ = _m_list; _tmp60_ = vala_collection_get_size ((ValaCollection*) _tmp59_); _tmp61_ = _tmp60_; _m_size = _tmp61_; _m_index = -1; while (TRUE) { gint _tmp62_; gint _tmp63_; gint _tmp64_; ValaList* _tmp65_; gint _tmp66_; gpointer _tmp67_ = NULL; ValaMethod* m; ValaMethod* _tmp68_; ValaMethod* _tmp69_; ValaMethod* _tmp70_; ValaMethod* _tmp71_; ValaMethod* _tmp72_; ValaMethod* _tmp73_; ValaSymbol* _tmp74_; ValaSymbol* _tmp75_; ValaSymbol* _tmp76_; ValaSymbol* base_type; ValaSymbol* _tmp77_; ValaInterface* _tmp78_; ValaCCodeIdentifier* _tmp79_; ValaCCodeIdentifier* ciface; ValaCCodeExpression* cfunc = NULL; gboolean _tmp80_ = FALSE; ValaMethod* _tmp81_; gboolean _tmp82_; gboolean _tmp83_; gboolean _tmp87_; ValaMethod* _tmp96_; ValaMethod* _tmp97_; ValaMethod* _tmp98_; ValaCCodeExpression* _tmp99_; ValaInterface* _tmp100_; ValaCCodeExpression* _tmp101_ = NULL; ValaCCodeFunction* _tmp102_; ValaCCodeFunction* _tmp103_; ValaCCodeIdentifier* _tmp104_; ValaMethod* _tmp105_; ValaMethod* _tmp106_; ValaMethod* _tmp107_; gchar* _tmp108_ = NULL; gchar* _tmp109_; ValaCCodeMemberAccess* _tmp110_; ValaCCodeMemberAccess* _tmp111_; ValaCCodeExpression* _tmp112_; ValaMethod* _tmp113_; gboolean _tmp114_; gboolean _tmp115_; _tmp62_ = _m_index; _m_index = _tmp62_ + 1; _tmp63_ = _m_index; _tmp64_ = _m_size; if (!(_tmp63_ < _tmp64_)) { break; } _tmp65_ = _m_list; _tmp66_ = _m_index; _tmp67_ = vala_list_get (_tmp65_, _tmp66_); m = (ValaMethod*) _tmp67_; _tmp68_ = m; _tmp69_ = vala_method_get_base_interface_method (_tmp68_); _tmp70_ = _tmp69_; if (_tmp70_ == NULL) { _vala_code_node_unref0 (m); continue; } _tmp71_ = m; _tmp72_ = vala_method_get_base_interface_method (_tmp71_); _tmp73_ = _tmp72_; _tmp74_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp73_); _tmp75_ = _tmp74_; _tmp76_ = _vala_code_node_ref0 (_tmp75_); base_type = _tmp76_; _tmp77_ = base_type; _tmp78_ = iface; if (_tmp77_ != VALA_SYMBOL (_tmp78_)) { _vala_code_node_unref0 (base_type); _vala_code_node_unref0 (m); continue; } _tmp79_ = vala_ccode_identifier_new ("iface"); ciface = _tmp79_; _tmp81_ = m; _tmp82_ = vala_method_get_is_abstract (_tmp81_); _tmp83_ = _tmp82_; if (_tmp83_) { _tmp80_ = TRUE; } else { ValaMethod* _tmp84_; gboolean _tmp85_; gboolean _tmp86_; _tmp84_ = m; _tmp85_ = vala_method_get_is_virtual (_tmp84_); _tmp86_ = _tmp85_; _tmp80_ = _tmp86_; } _tmp87_ = _tmp80_; if (_tmp87_) { ValaMethod* _tmp88_; gchar* _tmp89_ = NULL; gchar* _tmp90_; ValaCCodeIdentifier* _tmp91_; _tmp88_ = m; _tmp89_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp88_); _tmp90_ = _tmp89_; _tmp91_ = vala_ccode_identifier_new (_tmp90_); _vala_ccode_node_unref0 (cfunc); cfunc = (ValaCCodeExpression*) _tmp91_; _g_free0 (_tmp90_); } else { ValaMethod* _tmp92_; gchar* _tmp93_ = NULL; gchar* _tmp94_; ValaCCodeIdentifier* _tmp95_; _tmp92_ = m; _tmp93_ = vala_ccode_base_module_get_ccode_real_name ((ValaSymbol*) _tmp92_); _tmp94_ = _tmp93_; _tmp95_ = vala_ccode_identifier_new (_tmp94_); _vala_ccode_node_unref0 (cfunc); cfunc = (ValaCCodeExpression*) _tmp95_; _g_free0 (_tmp94_); } _tmp96_ = m; _tmp97_ = vala_method_get_base_interface_method (_tmp96_); _tmp98_ = _tmp97_; _tmp99_ = cfunc; _tmp100_ = iface; _tmp101_ = vala_gtype_module_cast_method_pointer (self, _tmp98_, _tmp99_, (ValaObjectTypeSymbol*) _tmp100_); _vala_ccode_node_unref0 (cfunc); cfunc = _tmp101_; _tmp102_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp103_ = _tmp102_; _tmp104_ = ciface; _tmp105_ = m; _tmp106_ = vala_method_get_base_interface_method (_tmp105_); _tmp107_ = _tmp106_; _tmp108_ = vala_ccode_base_module_get_ccode_vfunc_name (_tmp107_); _tmp109_ = _tmp108_; _tmp110_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp104_, _tmp109_); _tmp111_ = _tmp110_; _tmp112_ = cfunc; vala_ccode_function_add_assignment (_tmp103_, (ValaCCodeExpression*) _tmp111_, _tmp112_); _vala_ccode_node_unref0 (_tmp111_); _g_free0 (_tmp109_); _tmp113_ = m; _tmp114_ = vala_method_get_coroutine (_tmp113_); _tmp115_ = _tmp114_; if (_tmp115_) { gboolean _tmp116_ = FALSE; ValaMethod* _tmp117_; gboolean _tmp118_; gboolean _tmp119_; gboolean _tmp123_; ValaCCodeFunction* _tmp132_; ValaCCodeFunction* _tmp133_; ValaCCodeIdentifier* _tmp134_; ValaMethod* _tmp135_; ValaMethod* _tmp136_; ValaMethod* _tmp137_; gchar* _tmp138_ = NULL; gchar* _tmp139_; ValaCCodeMemberAccess* _tmp140_; ValaCCodeMemberAccess* _tmp141_; ValaCCodeExpression* _tmp142_; _tmp117_ = m; _tmp118_ = vala_method_get_is_abstract (_tmp117_); _tmp119_ = _tmp118_; if (_tmp119_) { _tmp116_ = TRUE; } else { ValaMethod* _tmp120_; gboolean _tmp121_; gboolean _tmp122_; _tmp120_ = m; _tmp121_ = vala_method_get_is_virtual (_tmp120_); _tmp122_ = _tmp121_; _tmp116_ = _tmp122_; } _tmp123_ = _tmp116_; if (_tmp123_) { ValaMethod* _tmp124_; gchar* _tmp125_ = NULL; gchar* _tmp126_; ValaCCodeIdentifier* _tmp127_; _tmp124_ = m; _tmp125_ = vala_ccode_base_module_get_ccode_finish_name (_tmp124_); _tmp126_ = _tmp125_; _tmp127_ = vala_ccode_identifier_new (_tmp126_); _vala_ccode_node_unref0 (cfunc); cfunc = (ValaCCodeExpression*) _tmp127_; _g_free0 (_tmp126_); } else { ValaMethod* _tmp128_; gchar* _tmp129_ = NULL; gchar* _tmp130_; ValaCCodeIdentifier* _tmp131_; _tmp128_ = m; _tmp129_ = vala_ccode_base_module_get_ccode_finish_real_name (_tmp128_); _tmp130_ = _tmp129_; _tmp131_ = vala_ccode_identifier_new (_tmp130_); _vala_ccode_node_unref0 (cfunc); cfunc = (ValaCCodeExpression*) _tmp131_; _g_free0 (_tmp130_); } _tmp132_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp133_ = _tmp132_; _tmp134_ = ciface; _tmp135_ = m; _tmp136_ = vala_method_get_base_interface_method (_tmp135_); _tmp137_ = _tmp136_; _tmp138_ = vala_ccode_base_module_get_ccode_finish_vfunc_name (_tmp137_); _tmp139_ = _tmp138_; _tmp140_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp134_, _tmp139_); _tmp141_ = _tmp140_; _tmp142_ = cfunc; vala_ccode_function_add_assignment (_tmp133_, (ValaCCodeExpression*) _tmp141_, _tmp142_); _vala_ccode_node_unref0 (_tmp141_); _g_free0 (_tmp139_); } _vala_ccode_node_unref0 (cfunc); _vala_ccode_node_unref0 (ciface); _vala_code_node_unref0 (base_type); _vala_code_node_unref0 (m); } _vala_iterable_unref0 (_m_list); } { ValaInterface* _tmp143_; ValaList* _tmp144_ = NULL; ValaList* _m_list; ValaList* _tmp145_; gint _tmp146_; gint _tmp147_; gint _m_size; gint _m_index; _tmp143_ = iface; _tmp144_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp143_); _m_list = _tmp144_; _tmp145_ = _m_list; _tmp146_ = vala_collection_get_size ((ValaCollection*) _tmp145_); _tmp147_ = _tmp146_; _m_size = _tmp147_; _m_index = -1; while (TRUE) { gint _tmp148_; gint _tmp149_; gint _tmp150_; ValaList* _tmp151_; gint _tmp152_; gpointer _tmp153_ = NULL; ValaMethod* m; ValaMethod* _tmp154_; gboolean _tmp155_; gboolean _tmp156_; _tmp148_ = _m_index; _m_index = _tmp148_ + 1; _tmp149_ = _m_index; _tmp150_ = _m_size; if (!(_tmp149_ < _tmp150_)) { break; } _tmp151_ = _m_list; _tmp152_ = _m_index; _tmp153_ = vala_list_get (_tmp151_, _tmp152_); m = (ValaMethod*) _tmp153_; _tmp154_ = m; _tmp155_ = vala_method_get_is_abstract (_tmp154_); _tmp156_ = _tmp155_; if (_tmp156_) { ValaMethod* cl_method; ValaClass* _tmp157_; ValaClass* _tmp158_; ValaClass* base_class; gboolean _tmp174_ = FALSE; ValaClass* _tmp175_; gboolean _tmp180_; cl_method = NULL; _tmp157_ = cl; _tmp158_ = _vala_code_node_ref0 (_tmp157_); base_class = _tmp158_; while (TRUE) { gboolean _tmp159_ = FALSE; ValaClass* _tmp160_; gboolean _tmp162_; ValaClass* _tmp163_; ValaScope* _tmp164_; ValaScope* _tmp165_; ValaMethod* _tmp166_; const gchar* _tmp167_; const gchar* _tmp168_; ValaSymbol* _tmp169_ = NULL; ValaClass* _tmp170_; ValaClass* _tmp171_; ValaClass* _tmp172_; ValaClass* _tmp173_; _tmp160_ = base_class; if (_tmp160_ != NULL) { ValaMethod* _tmp161_; _tmp161_ = cl_method; _tmp159_ = _tmp161_ == NULL; } else { _tmp159_ = FALSE; } _tmp162_ = _tmp159_; if (!_tmp162_) { break; } _tmp163_ = base_class; _tmp164_ = vala_symbol_get_scope ((ValaSymbol*) _tmp163_); _tmp165_ = _tmp164_; _tmp166_ = m; _tmp167_ = vala_symbol_get_name ((ValaSymbol*) _tmp166_); _tmp168_ = _tmp167_; _tmp169_ = vala_scope_lookup (_tmp165_, _tmp168_); _vala_code_node_unref0 (cl_method); cl_method = VALA_IS_METHOD (_tmp169_) ? ((ValaMethod*) _tmp169_) : NULL; _tmp170_ = base_class; _tmp171_ = vala_class_get_base_class (_tmp170_); _tmp172_ = _tmp171_; _tmp173_ = _vala_code_node_ref0 (_tmp172_); _vala_code_node_unref0 (base_class); base_class = _tmp173_; } _tmp175_ = base_class; if (_tmp175_ != NULL) { ValaMethod* _tmp176_; ValaSymbol* _tmp177_; ValaSymbol* _tmp178_; ValaClass* _tmp179_; _tmp176_ = cl_method; _tmp177_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp176_); _tmp178_ = _tmp177_; _tmp179_ = cl; _tmp174_ = _tmp178_ != VALA_SYMBOL (_tmp179_); } else { _tmp174_ = FALSE; } _tmp180_ = _tmp174_; if (_tmp180_) { ValaMethod* _tmp181_; ValaMethod* _tmp182_; ValaMethod* base_method; ValaMethod* _tmp183_; ValaMethod* _tmp184_; ValaMethod* _tmp185_; ValaMethod* _tmp197_; ValaCCodeFile* _tmp198_; ValaMethod* _tmp199_; gchar* _tmp200_ = NULL; gchar* _tmp201_; ValaCCodeIdentifier* _tmp202_; ValaCCodeExpression* _tmp203_; ValaCCodeExpression* cfunc; ValaMethod* _tmp204_; ValaCCodeExpression* _tmp205_; ValaInterface* _tmp206_; ValaCCodeExpression* _tmp207_ = NULL; ValaCCodeIdentifier* _tmp208_; ValaCCodeIdentifier* ciface; ValaCCodeFunction* _tmp209_; ValaCCodeFunction* _tmp210_; ValaCCodeIdentifier* _tmp211_; ValaMethod* _tmp212_; gchar* _tmp213_ = NULL; gchar* _tmp214_; ValaCCodeMemberAccess* _tmp215_; ValaCCodeMemberAccess* _tmp216_; ValaCCodeExpression* _tmp217_; _tmp181_ = cl_method; _tmp182_ = _vala_code_node_ref0 (_tmp181_); base_method = _tmp182_; _tmp183_ = cl_method; _tmp184_ = vala_method_get_base_method (_tmp183_); _tmp185_ = _tmp184_; if (_tmp185_ != NULL) { ValaMethod* _tmp186_; ValaMethod* _tmp187_; ValaMethod* _tmp188_; ValaMethod* _tmp189_; _tmp186_ = cl_method; _tmp187_ = vala_method_get_base_method (_tmp186_); _tmp188_ = _tmp187_; _tmp189_ = _vala_code_node_ref0 (_tmp188_); _vala_code_node_unref0 (base_method); base_method = _tmp189_; } else { ValaMethod* _tmp190_; ValaMethod* _tmp191_; ValaMethod* _tmp192_; _tmp190_ = cl_method; _tmp191_ = vala_method_get_base_interface_method (_tmp190_); _tmp192_ = _tmp191_; if (_tmp192_ != NULL) { ValaMethod* _tmp193_; ValaMethod* _tmp194_; ValaMethod* _tmp195_; ValaMethod* _tmp196_; _tmp193_ = cl_method; _tmp194_ = vala_method_get_base_interface_method (_tmp193_); _tmp195_ = _tmp194_; _tmp196_ = _vala_code_node_ref0 (_tmp195_); _vala_code_node_unref0 (base_method); base_method = _tmp196_; } } _tmp197_ = base_method; _tmp198_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_base_module_generate_method_declaration ((ValaCCodeBaseModule*) self, _tmp197_, _tmp198_); _tmp199_ = base_method; _tmp200_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp199_); _tmp201_ = _tmp200_; _tmp202_ = vala_ccode_identifier_new (_tmp201_); _tmp203_ = (ValaCCodeExpression*) _tmp202_; _g_free0 (_tmp201_); cfunc = _tmp203_; _tmp204_ = base_method; _tmp205_ = cfunc; _tmp206_ = iface; _tmp207_ = vala_gtype_module_cast_method_pointer (self, _tmp204_, _tmp205_, (ValaObjectTypeSymbol*) _tmp206_); _vala_ccode_node_unref0 (cfunc); cfunc = _tmp207_; _tmp208_ = vala_ccode_identifier_new ("iface"); ciface = _tmp208_; _tmp209_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp210_ = _tmp209_; _tmp211_ = ciface; _tmp212_ = m; _tmp213_ = vala_ccode_base_module_get_ccode_vfunc_name (_tmp212_); _tmp214_ = _tmp213_; _tmp215_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp211_, _tmp214_); _tmp216_ = _tmp215_; _tmp217_ = cfunc; vala_ccode_function_add_assignment (_tmp210_, (ValaCCodeExpression*) _tmp216_, _tmp217_); _vala_ccode_node_unref0 (_tmp216_); _g_free0 (_tmp214_); _vala_ccode_node_unref0 (ciface); _vala_ccode_node_unref0 (cfunc); _vala_code_node_unref0 (base_method); } _vala_code_node_unref0 (base_class); _vala_code_node_unref0 (cl_method); } _vala_code_node_unref0 (m); } _vala_iterable_unref0 (_m_list); } { ValaClass* _tmp218_; ValaList* _tmp219_ = NULL; ValaList* _prop_list; ValaList* _tmp220_; gint _tmp221_; gint _tmp222_; gint _prop_size; gint _prop_index; _tmp218_ = cl; _tmp219_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) _tmp218_); _prop_list = _tmp219_; _tmp220_ = _prop_list; _tmp221_ = vala_collection_get_size ((ValaCollection*) _tmp220_); _tmp222_ = _tmp221_; _prop_size = _tmp222_; _prop_index = -1; while (TRUE) { gint _tmp223_; gint _tmp224_; gint _tmp225_; ValaList* _tmp226_; gint _tmp227_; gpointer _tmp228_ = NULL; ValaProperty* prop; ValaProperty* _tmp229_; ValaProperty* _tmp230_; ValaProperty* _tmp231_; ValaProperty* _tmp232_; ValaProperty* _tmp233_; ValaProperty* _tmp234_; ValaSymbol* _tmp235_; ValaSymbol* _tmp236_; ValaObjectTypeSymbol* _tmp237_; ValaObjectTypeSymbol* base_type; ValaObjectTypeSymbol* _tmp238_; ValaInterface* _tmp239_; ValaCCodeIdentifier* _tmp240_; ValaCCodeIdentifier* ciface; ValaProperty* _tmp241_; ValaProperty* _tmp242_; ValaProperty* _tmp243_; gboolean _tmp244_ = FALSE; _tmp223_ = _prop_index; _prop_index = _tmp223_ + 1; _tmp224_ = _prop_index; _tmp225_ = _prop_size; if (!(_tmp224_ < _tmp225_)) { break; } _tmp226_ = _prop_list; _tmp227_ = _prop_index; _tmp228_ = vala_list_get (_tmp226_, _tmp227_); prop = (ValaProperty*) _tmp228_; _tmp229_ = prop; _tmp230_ = vala_property_get_base_interface_property (_tmp229_); _tmp231_ = _tmp230_; if (_tmp231_ == NULL) { _vala_code_node_unref0 (prop); continue; } _tmp232_ = prop; _tmp233_ = vala_property_get_base_interface_property (_tmp232_); _tmp234_ = _tmp233_; _tmp235_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp234_); _tmp236_ = _tmp235_; _tmp237_ = _vala_code_node_ref0 (VALA_OBJECT_TYPE_SYMBOL (_tmp236_)); base_type = _tmp237_; _tmp238_ = base_type; _tmp239_ = iface; if (_tmp238_ != VALA_OBJECT_TYPE_SYMBOL (_tmp239_)) { _vala_code_node_unref0 (base_type); _vala_code_node_unref0 (prop); continue; } _tmp240_ = vala_ccode_identifier_new ("iface"); ciface = _tmp240_; _tmp241_ = prop; _tmp242_ = vala_property_get_base_interface_property (_tmp241_); _tmp243_ = _tmp242_; _tmp244_ = vala_ccode_base_module_get_ccode_no_accessor_method (_tmp243_); if (!_tmp244_) { ValaProperty* _tmp245_; ValaPropertyAccessor* _tmp246_; ValaPropertyAccessor* _tmp247_; ValaProperty* _tmp291_; ValaPropertyAccessor* _tmp292_; ValaPropertyAccessor* _tmp293_; _tmp245_ = prop; _tmp246_ = vala_property_get_get_accessor (_tmp245_); _tmp247_ = _tmp246_; if (_tmp247_ != NULL) { ValaProperty* _tmp248_; ValaPropertyAccessor* _tmp249_; ValaPropertyAccessor* _tmp250_; gchar* _tmp251_ = NULL; gchar* cname; gboolean _tmp252_ = FALSE; ValaProperty* _tmp253_; gboolean _tmp254_; gboolean _tmp255_; gboolean _tmp259_; const gchar* _tmp264_; ValaCCodeIdentifier* _tmp265_; ValaCCodeExpression* cfunc; gboolean _tmp266_ = FALSE; ValaProperty* _tmp267_; gboolean _tmp268_; gboolean _tmp269_; gboolean _tmp273_; ValaCCodeFunction* _tmp280_; ValaCCodeFunction* _tmp281_; ValaCCodeIdentifier* _tmp282_; ValaProperty* _tmp283_; const gchar* _tmp284_; const gchar* _tmp285_; gchar* _tmp286_ = NULL; gchar* _tmp287_; ValaCCodeMemberAccess* _tmp288_; ValaCCodeMemberAccess* _tmp289_; ValaCCodeExpression* _tmp290_; _tmp248_ = prop; _tmp249_ = vala_property_get_get_accessor (_tmp248_); _tmp250_ = _tmp249_; _tmp251_ = vala_ccode_base_module_get_ccode_real_name ((ValaSymbol*) _tmp250_); cname = _tmp251_; _tmp253_ = prop; _tmp254_ = vala_property_get_is_abstract (_tmp253_); _tmp255_ = _tmp254_; if (_tmp255_) { _tmp252_ = TRUE; } else { ValaProperty* _tmp256_; gboolean _tmp257_; gboolean _tmp258_; _tmp256_ = prop; _tmp257_ = vala_property_get_is_virtual (_tmp256_); _tmp258_ = _tmp257_; _tmp252_ = _tmp258_; } _tmp259_ = _tmp252_; if (_tmp259_) { ValaProperty* _tmp260_; ValaPropertyAccessor* _tmp261_; ValaPropertyAccessor* _tmp262_; gchar* _tmp263_ = NULL; _tmp260_ = prop; _tmp261_ = vala_property_get_get_accessor (_tmp260_); _tmp262_ = _tmp261_; _tmp263_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp262_); _g_free0 (cname); cname = _tmp263_; } _tmp264_ = cname; _tmp265_ = vala_ccode_identifier_new (_tmp264_); cfunc = (ValaCCodeExpression*) _tmp265_; _tmp267_ = prop; _tmp268_ = vala_property_get_is_abstract (_tmp267_); _tmp269_ = _tmp268_; if (_tmp269_) { _tmp266_ = TRUE; } else { ValaProperty* _tmp270_; gboolean _tmp271_; gboolean _tmp272_; _tmp270_ = prop; _tmp271_ = vala_property_get_is_virtual (_tmp270_); _tmp272_ = _tmp271_; _tmp266_ = _tmp272_; } _tmp273_ = _tmp266_; if (_tmp273_) { ValaProperty* _tmp274_; ValaPropertyAccessor* _tmp275_; ValaPropertyAccessor* _tmp276_; ValaCCodeExpression* _tmp277_; ValaObjectTypeSymbol* _tmp278_; ValaCCodeExpression* _tmp279_ = NULL; _tmp274_ = prop; _tmp275_ = vala_property_get_get_accessor (_tmp274_); _tmp276_ = _tmp275_; _tmp277_ = cfunc; _tmp278_ = base_type; _tmp279_ = vala_gtype_module_cast_property_accessor_pointer (self, _tmp276_, _tmp277_, _tmp278_); _vala_ccode_node_unref0 (cfunc); cfunc = _tmp279_; } _tmp280_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp281_ = _tmp280_; _tmp282_ = ciface; _tmp283_ = prop; _tmp284_ = vala_symbol_get_name ((ValaSymbol*) _tmp283_); _tmp285_ = _tmp284_; _tmp286_ = g_strdup_printf ("get_%s", _tmp285_); _tmp287_ = _tmp286_; _tmp288_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp282_, _tmp287_); _tmp289_ = _tmp288_; _tmp290_ = cfunc; vala_ccode_function_add_assignment (_tmp281_, (ValaCCodeExpression*) _tmp289_, _tmp290_); _vala_ccode_node_unref0 (_tmp289_); _g_free0 (_tmp287_); _vala_ccode_node_unref0 (cfunc); _g_free0 (cname); } _tmp291_ = prop; _tmp292_ = vala_property_get_set_accessor (_tmp291_); _tmp293_ = _tmp292_; if (_tmp293_ != NULL) { ValaProperty* _tmp294_; ValaPropertyAccessor* _tmp295_; ValaPropertyAccessor* _tmp296_; gchar* _tmp297_ = NULL; gchar* cname; gboolean _tmp298_ = FALSE; ValaProperty* _tmp299_; gboolean _tmp300_; gboolean _tmp301_; gboolean _tmp305_; const gchar* _tmp310_; ValaCCodeIdentifier* _tmp311_; ValaCCodeExpression* cfunc; gboolean _tmp312_ = FALSE; ValaProperty* _tmp313_; gboolean _tmp314_; gboolean _tmp315_; gboolean _tmp319_; ValaCCodeFunction* _tmp326_; ValaCCodeFunction* _tmp327_; ValaCCodeIdentifier* _tmp328_; ValaProperty* _tmp329_; const gchar* _tmp330_; const gchar* _tmp331_; gchar* _tmp332_ = NULL; gchar* _tmp333_; ValaCCodeMemberAccess* _tmp334_; ValaCCodeMemberAccess* _tmp335_; ValaCCodeExpression* _tmp336_; _tmp294_ = prop; _tmp295_ = vala_property_get_set_accessor (_tmp294_); _tmp296_ = _tmp295_; _tmp297_ = vala_ccode_base_module_get_ccode_real_name ((ValaSymbol*) _tmp296_); cname = _tmp297_; _tmp299_ = prop; _tmp300_ = vala_property_get_is_abstract (_tmp299_); _tmp301_ = _tmp300_; if (_tmp301_) { _tmp298_ = TRUE; } else { ValaProperty* _tmp302_; gboolean _tmp303_; gboolean _tmp304_; _tmp302_ = prop; _tmp303_ = vala_property_get_is_virtual (_tmp302_); _tmp304_ = _tmp303_; _tmp298_ = _tmp304_; } _tmp305_ = _tmp298_; if (_tmp305_) { ValaProperty* _tmp306_; ValaPropertyAccessor* _tmp307_; ValaPropertyAccessor* _tmp308_; gchar* _tmp309_ = NULL; _tmp306_ = prop; _tmp307_ = vala_property_get_set_accessor (_tmp306_); _tmp308_ = _tmp307_; _tmp309_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp308_); _g_free0 (cname); cname = _tmp309_; } _tmp310_ = cname; _tmp311_ = vala_ccode_identifier_new (_tmp310_); cfunc = (ValaCCodeExpression*) _tmp311_; _tmp313_ = prop; _tmp314_ = vala_property_get_is_abstract (_tmp313_); _tmp315_ = _tmp314_; if (_tmp315_) { _tmp312_ = TRUE; } else { ValaProperty* _tmp316_; gboolean _tmp317_; gboolean _tmp318_; _tmp316_ = prop; _tmp317_ = vala_property_get_is_virtual (_tmp316_); _tmp318_ = _tmp317_; _tmp312_ = _tmp318_; } _tmp319_ = _tmp312_; if (_tmp319_) { ValaProperty* _tmp320_; ValaPropertyAccessor* _tmp321_; ValaPropertyAccessor* _tmp322_; ValaCCodeExpression* _tmp323_; ValaObjectTypeSymbol* _tmp324_; ValaCCodeExpression* _tmp325_ = NULL; _tmp320_ = prop; _tmp321_ = vala_property_get_set_accessor (_tmp320_); _tmp322_ = _tmp321_; _tmp323_ = cfunc; _tmp324_ = base_type; _tmp325_ = vala_gtype_module_cast_property_accessor_pointer (self, _tmp322_, _tmp323_, _tmp324_); _vala_ccode_node_unref0 (cfunc); cfunc = _tmp325_; } _tmp326_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp327_ = _tmp326_; _tmp328_ = ciface; _tmp329_ = prop; _tmp330_ = vala_symbol_get_name ((ValaSymbol*) _tmp329_); _tmp331_ = _tmp330_; _tmp332_ = g_strdup_printf ("set_%s", _tmp331_); _tmp333_ = _tmp332_; _tmp334_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp328_, _tmp333_); _tmp335_ = _tmp334_; _tmp336_ = cfunc; vala_ccode_function_add_assignment (_tmp327_, (ValaCCodeExpression*) _tmp335_, _tmp336_); _vala_ccode_node_unref0 (_tmp335_); _g_free0 (_tmp333_); _vala_ccode_node_unref0 (cfunc); _g_free0 (cname); } } _vala_ccode_node_unref0 (ciface); _vala_code_node_unref0 (base_type); _vala_code_node_unref0 (prop); } _vala_iterable_unref0 (_prop_list); } { ValaInterface* _tmp337_; ValaList* _tmp338_ = NULL; ValaList* _prop_list; ValaList* _tmp339_; gint _tmp340_; gint _tmp341_; gint _prop_size; gint _prop_index; _tmp337_ = iface; _tmp338_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) _tmp337_); _prop_list = _tmp338_; _tmp339_ = _prop_list; _tmp340_ = vala_collection_get_size ((ValaCollection*) _tmp339_); _tmp341_ = _tmp340_; _prop_size = _tmp341_; _prop_index = -1; while (TRUE) { gint _tmp342_; gint _tmp343_; gint _tmp344_; ValaList* _tmp345_; gint _tmp346_; gpointer _tmp347_ = NULL; ValaProperty* prop; ValaProperty* _tmp348_; gboolean _tmp349_; gboolean _tmp350_; ValaProperty* cl_prop; ValaClass* _tmp351_; ValaClass* _tmp352_; ValaClass* base_class; gboolean _tmp368_ = FALSE; ValaClass* _tmp369_; gboolean _tmp374_; _tmp342_ = _prop_index; _prop_index = _tmp342_ + 1; _tmp343_ = _prop_index; _tmp344_ = _prop_size; if (!(_tmp343_ < _tmp344_)) { break; } _tmp345_ = _prop_list; _tmp346_ = _prop_index; _tmp347_ = vala_list_get (_tmp345_, _tmp346_); prop = (ValaProperty*) _tmp347_; _tmp348_ = prop; _tmp349_ = vala_property_get_is_abstract (_tmp348_); _tmp350_ = _tmp349_; if (!_tmp350_) { _vala_code_node_unref0 (prop); continue; } cl_prop = NULL; _tmp351_ = cl; _tmp352_ = _vala_code_node_ref0 (_tmp351_); base_class = _tmp352_; while (TRUE) { gboolean _tmp353_ = FALSE; ValaClass* _tmp354_; gboolean _tmp356_; ValaClass* _tmp357_; ValaScope* _tmp358_; ValaScope* _tmp359_; ValaProperty* _tmp360_; const gchar* _tmp361_; const gchar* _tmp362_; ValaSymbol* _tmp363_ = NULL; ValaClass* _tmp364_; ValaClass* _tmp365_; ValaClass* _tmp366_; ValaClass* _tmp367_; _tmp354_ = base_class; if (_tmp354_ != NULL) { ValaProperty* _tmp355_; _tmp355_ = cl_prop; _tmp353_ = _tmp355_ == NULL; } else { _tmp353_ = FALSE; } _tmp356_ = _tmp353_; if (!_tmp356_) { break; } _tmp357_ = base_class; _tmp358_ = vala_symbol_get_scope ((ValaSymbol*) _tmp357_); _tmp359_ = _tmp358_; _tmp360_ = prop; _tmp361_ = vala_symbol_get_name ((ValaSymbol*) _tmp360_); _tmp362_ = _tmp361_; _tmp363_ = vala_scope_lookup (_tmp359_, _tmp362_); _vala_code_node_unref0 (cl_prop); cl_prop = VALA_IS_PROPERTY (_tmp363_) ? ((ValaProperty*) _tmp363_) : NULL; _tmp364_ = base_class; _tmp365_ = vala_class_get_base_class (_tmp364_); _tmp366_ = _tmp365_; _tmp367_ = _vala_code_node_ref0 (_tmp366_); _vala_code_node_unref0 (base_class); base_class = _tmp367_; } _tmp369_ = base_class; if (_tmp369_ != NULL) { ValaProperty* _tmp370_; ValaSymbol* _tmp371_; ValaSymbol* _tmp372_; ValaClass* _tmp373_; _tmp370_ = cl_prop; _tmp371_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp370_); _tmp372_ = _tmp371_; _tmp373_ = cl; _tmp368_ = _tmp372_ != VALA_SYMBOL (_tmp373_); } else { _tmp368_ = FALSE; } _tmp374_ = _tmp368_; if (_tmp374_) { ValaProperty* _tmp375_; ValaProperty* _tmp376_; ValaProperty* base_property; ValaProperty* _tmp377_; ValaProperty* _tmp378_; ValaProperty* _tmp379_; ValaCCodeIdentifier* _tmp391_; ValaCCodeIdentifier* ciface; ValaProperty* _tmp392_; ValaPropertyAccessor* _tmp393_; ValaPropertyAccessor* _tmp394_; ValaProperty* _tmp422_; ValaPropertyAccessor* _tmp423_; ValaPropertyAccessor* _tmp424_; _tmp375_ = cl_prop; _tmp376_ = _vala_code_node_ref0 (_tmp375_); base_property = _tmp376_; _tmp377_ = cl_prop; _tmp378_ = vala_property_get_base_property (_tmp377_); _tmp379_ = _tmp378_; if (_tmp379_ != NULL) { ValaProperty* _tmp380_; ValaProperty* _tmp381_; ValaProperty* _tmp382_; ValaProperty* _tmp383_; _tmp380_ = cl_prop; _tmp381_ = vala_property_get_base_property (_tmp380_); _tmp382_ = _tmp381_; _tmp383_ = _vala_code_node_ref0 (_tmp382_); _vala_code_node_unref0 (base_property); base_property = _tmp383_; } else { ValaProperty* _tmp384_; ValaProperty* _tmp385_; ValaProperty* _tmp386_; _tmp384_ = cl_prop; _tmp385_ = vala_property_get_base_interface_property (_tmp384_); _tmp386_ = _tmp385_; if (_tmp386_ != NULL) { ValaProperty* _tmp387_; ValaProperty* _tmp388_; ValaProperty* _tmp389_; ValaProperty* _tmp390_; _tmp387_ = cl_prop; _tmp388_ = vala_property_get_base_interface_property (_tmp387_); _tmp389_ = _tmp388_; _tmp390_ = _vala_code_node_ref0 (_tmp389_); _vala_code_node_unref0 (base_property); base_property = _tmp390_; } } _tmp391_ = vala_ccode_identifier_new ("iface"); ciface = _tmp391_; _tmp392_ = base_property; _tmp393_ = vala_property_get_get_accessor (_tmp392_); _tmp394_ = _tmp393_; if (_tmp394_ != NULL) { ValaProperty* _tmp395_; ValaPropertyAccessor* _tmp396_; ValaPropertyAccessor* _tmp397_; ValaCCodeFile* _tmp398_; ValaProperty* _tmp399_; ValaPropertyAccessor* _tmp400_; ValaPropertyAccessor* _tmp401_; gchar* _tmp402_ = NULL; gchar* cname; const gchar* _tmp403_; ValaCCodeIdentifier* _tmp404_; ValaCCodeExpression* cfunc; ValaProperty* _tmp405_; ValaPropertyAccessor* _tmp406_; ValaPropertyAccessor* _tmp407_; ValaCCodeExpression* _tmp408_; ValaInterface* _tmp409_; ValaCCodeExpression* _tmp410_ = NULL; ValaCCodeFunction* _tmp411_; ValaCCodeFunction* _tmp412_; ValaCCodeIdentifier* _tmp413_; ValaProperty* _tmp414_; const gchar* _tmp415_; const gchar* _tmp416_; gchar* _tmp417_ = NULL; gchar* _tmp418_; ValaCCodeMemberAccess* _tmp419_; ValaCCodeMemberAccess* _tmp420_; ValaCCodeExpression* _tmp421_; _tmp395_ = base_property; _tmp396_ = vala_property_get_get_accessor (_tmp395_); _tmp397_ = _tmp396_; _tmp398_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_base_module_generate_property_accessor_declaration ((ValaCCodeBaseModule*) self, _tmp397_, _tmp398_); _tmp399_ = base_property; _tmp400_ = vala_property_get_get_accessor (_tmp399_); _tmp401_ = _tmp400_; _tmp402_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp401_); cname = _tmp402_; _tmp403_ = cname; _tmp404_ = vala_ccode_identifier_new (_tmp403_); cfunc = (ValaCCodeExpression*) _tmp404_; _tmp405_ = prop; _tmp406_ = vala_property_get_get_accessor (_tmp405_); _tmp407_ = _tmp406_; _tmp408_ = cfunc; _tmp409_ = iface; _tmp410_ = vala_gtype_module_cast_property_accessor_pointer (self, _tmp407_, _tmp408_, (ValaObjectTypeSymbol*) _tmp409_); _vala_ccode_node_unref0 (cfunc); cfunc = _tmp410_; _tmp411_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp412_ = _tmp411_; _tmp413_ = ciface; _tmp414_ = prop; _tmp415_ = vala_symbol_get_name ((ValaSymbol*) _tmp414_); _tmp416_ = _tmp415_; _tmp417_ = g_strdup_printf ("get_%s", _tmp416_); _tmp418_ = _tmp417_; _tmp419_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp413_, _tmp418_); _tmp420_ = _tmp419_; _tmp421_ = cfunc; vala_ccode_function_add_assignment (_tmp412_, (ValaCCodeExpression*) _tmp420_, _tmp421_); _vala_ccode_node_unref0 (_tmp420_); _g_free0 (_tmp418_); _vala_ccode_node_unref0 (cfunc); _g_free0 (cname); } _tmp422_ = base_property; _tmp423_ = vala_property_get_set_accessor (_tmp422_); _tmp424_ = _tmp423_; if (_tmp424_ != NULL) { ValaProperty* _tmp425_; ValaPropertyAccessor* _tmp426_; ValaPropertyAccessor* _tmp427_; ValaCCodeFile* _tmp428_; ValaProperty* _tmp429_; ValaPropertyAccessor* _tmp430_; ValaPropertyAccessor* _tmp431_; gchar* _tmp432_ = NULL; gchar* cname; const gchar* _tmp433_; ValaCCodeIdentifier* _tmp434_; ValaCCodeExpression* cfunc; ValaProperty* _tmp435_; ValaPropertyAccessor* _tmp436_; ValaPropertyAccessor* _tmp437_; ValaCCodeExpression* _tmp438_; ValaInterface* _tmp439_; ValaCCodeExpression* _tmp440_ = NULL; ValaCCodeFunction* _tmp441_; ValaCCodeFunction* _tmp442_; ValaCCodeIdentifier* _tmp443_; ValaProperty* _tmp444_; const gchar* _tmp445_; const gchar* _tmp446_; gchar* _tmp447_ = NULL; gchar* _tmp448_; ValaCCodeMemberAccess* _tmp449_; ValaCCodeMemberAccess* _tmp450_; ValaCCodeExpression* _tmp451_; _tmp425_ = base_property; _tmp426_ = vala_property_get_set_accessor (_tmp425_); _tmp427_ = _tmp426_; _tmp428_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_base_module_generate_property_accessor_declaration ((ValaCCodeBaseModule*) self, _tmp427_, _tmp428_); _tmp429_ = base_property; _tmp430_ = vala_property_get_set_accessor (_tmp429_); _tmp431_ = _tmp430_; _tmp432_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp431_); cname = _tmp432_; _tmp433_ = cname; _tmp434_ = vala_ccode_identifier_new (_tmp433_); cfunc = (ValaCCodeExpression*) _tmp434_; _tmp435_ = prop; _tmp436_ = vala_property_get_set_accessor (_tmp435_); _tmp437_ = _tmp436_; _tmp438_ = cfunc; _tmp439_ = iface; _tmp440_ = vala_gtype_module_cast_property_accessor_pointer (self, _tmp437_, _tmp438_, (ValaObjectTypeSymbol*) _tmp439_); _vala_ccode_node_unref0 (cfunc); cfunc = _tmp440_; _tmp441_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp442_ = _tmp441_; _tmp443_ = ciface; _tmp444_ = prop; _tmp445_ = vala_symbol_get_name ((ValaSymbol*) _tmp444_); _tmp446_ = _tmp445_; _tmp447_ = g_strdup_printf ("set_%s", _tmp446_); _tmp448_ = _tmp447_; _tmp449_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp443_, _tmp448_); _tmp450_ = _tmp449_; _tmp451_ = cfunc; vala_ccode_function_add_assignment (_tmp442_, (ValaCCodeExpression*) _tmp450_, _tmp451_); _vala_ccode_node_unref0 (_tmp450_); _g_free0 (_tmp448_); _vala_ccode_node_unref0 (cfunc); _g_free0 (cname); } _vala_ccode_node_unref0 (ciface); _vala_code_node_unref0 (base_property); } _vala_code_node_unref0 (base_class); _vala_code_node_unref0 (cl_prop); _vala_code_node_unref0 (prop); } _vala_iterable_unref0 (_prop_list); } vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self); _tmp452_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp453_ = iface_init; vala_ccode_file_add_function (_tmp452_, _tmp453_); _vala_ccode_node_unref0 (parent_var_decl); _vala_ccode_node_unref0 (parent_decl); _g_free0 (parent_iface_var); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (iface_init); } static ValaCCodeExpression* vala_gtype_module_cast_property_accessor_pointer (ValaGTypeModule* self, ValaPropertyAccessor* acc, ValaCCodeExpression* cfunc, ValaObjectTypeSymbol* base_type) { ValaCCodeExpression* result = NULL; gchar* cast = NULL; gboolean _tmp0_ = FALSE; ValaPropertyAccessor* _tmp1_; gboolean _tmp2_; gboolean _tmp3_; gboolean _tmp8_; ValaCCodeExpression* _tmp52_; const gchar* _tmp53_; ValaCCodeCastExpression* _tmp54_; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (acc != NULL, NULL); g_return_val_if_fail (cfunc != NULL, NULL); g_return_val_if_fail (base_type != NULL, NULL); _tmp1_ = acc; _tmp2_ = vala_property_accessor_get_readable (_tmp1_); _tmp3_ = _tmp2_; if (_tmp3_) { ValaPropertyAccessor* _tmp4_; ValaDataType* _tmp5_; ValaDataType* _tmp6_; gboolean _tmp7_ = FALSE; _tmp4_ = acc; _tmp5_ = vala_property_accessor_get_value_type (_tmp4_); _tmp6_ = _tmp5_; _tmp7_ = vala_data_type_is_real_non_null_struct_type (_tmp6_); _tmp0_ = _tmp7_; } else { _tmp0_ = FALSE; } _tmp8_ = _tmp0_; if (_tmp8_) { ValaObjectTypeSymbol* _tmp9_; gchar* _tmp10_ = NULL; gchar* _tmp11_; ValaPropertyAccessor* _tmp12_; ValaDataType* _tmp13_; ValaDataType* _tmp14_; gchar* _tmp15_ = NULL; gchar* _tmp16_; gchar* _tmp17_ = NULL; _tmp9_ = base_type; _tmp10_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp9_); _tmp11_ = _tmp10_; _tmp12_ = acc; _tmp13_ = vala_property_accessor_get_value_type (_tmp12_); _tmp14_ = _tmp13_; _tmp15_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp14_); _tmp16_ = _tmp15_; _tmp17_ = g_strdup_printf ("void (*) (%s *, %s *)", _tmp11_, _tmp16_); _g_free0 (cast); cast = _tmp17_; _g_free0 (_tmp16_); _g_free0 (_tmp11_); } else { ValaPropertyAccessor* _tmp18_; gboolean _tmp19_; gboolean _tmp20_; _tmp18_ = acc; _tmp19_ = vala_property_accessor_get_readable (_tmp18_); _tmp20_ = _tmp19_; if (_tmp20_) { ValaPropertyAccessor* _tmp21_; ValaDataType* _tmp22_; ValaDataType* _tmp23_; gchar* _tmp24_ = NULL; gchar* _tmp25_; ValaObjectTypeSymbol* _tmp26_; gchar* _tmp27_ = NULL; gchar* _tmp28_; gchar* _tmp29_ = NULL; _tmp21_ = acc; _tmp22_ = vala_property_accessor_get_value_type (_tmp21_); _tmp23_ = _tmp22_; _tmp24_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp23_); _tmp25_ = _tmp24_; _tmp26_ = base_type; _tmp27_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp26_); _tmp28_ = _tmp27_; _tmp29_ = g_strdup_printf ("%s (*) (%s *)", _tmp25_, _tmp28_); _g_free0 (cast); cast = _tmp29_; _g_free0 (_tmp28_); _g_free0 (_tmp25_); } else { ValaPropertyAccessor* _tmp30_; ValaDataType* _tmp31_; ValaDataType* _tmp32_; gboolean _tmp33_ = FALSE; _tmp30_ = acc; _tmp31_ = vala_property_accessor_get_value_type (_tmp30_); _tmp32_ = _tmp31_; _tmp33_ = vala_data_type_is_real_non_null_struct_type (_tmp32_); if (_tmp33_) { ValaObjectTypeSymbol* _tmp34_; gchar* _tmp35_ = NULL; gchar* _tmp36_; ValaPropertyAccessor* _tmp37_; ValaDataType* _tmp38_; ValaDataType* _tmp39_; gchar* _tmp40_ = NULL; gchar* _tmp41_; gchar* _tmp42_ = NULL; _tmp34_ = base_type; _tmp35_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp34_); _tmp36_ = _tmp35_; _tmp37_ = acc; _tmp38_ = vala_property_accessor_get_value_type (_tmp37_); _tmp39_ = _tmp38_; _tmp40_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp39_); _tmp41_ = _tmp40_; _tmp42_ = g_strdup_printf ("void (*) (%s *, %s *)", _tmp36_, _tmp41_); _g_free0 (cast); cast = _tmp42_; _g_free0 (_tmp41_); _g_free0 (_tmp36_); } else { ValaObjectTypeSymbol* _tmp43_; gchar* _tmp44_ = NULL; gchar* _tmp45_; ValaPropertyAccessor* _tmp46_; ValaDataType* _tmp47_; ValaDataType* _tmp48_; gchar* _tmp49_ = NULL; gchar* _tmp50_; gchar* _tmp51_ = NULL; _tmp43_ = base_type; _tmp44_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp43_); _tmp45_ = _tmp44_; _tmp46_ = acc; _tmp47_ = vala_property_accessor_get_value_type (_tmp46_); _tmp48_ = _tmp47_; _tmp49_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp48_); _tmp50_ = _tmp49_; _tmp51_ = g_strdup_printf ("void (*) (%s *, %s)", _tmp45_, _tmp50_); _g_free0 (cast); cast = _tmp51_; _g_free0 (_tmp50_); _g_free0 (_tmp45_); } } } _tmp52_ = cfunc; _tmp53_ = cast; _tmp54_ = vala_ccode_cast_expression_new (_tmp52_, _tmp53_); result = (ValaCCodeExpression*) _tmp54_; _g_free0 (cast); return result; } static ValaCCodeExpression* vala_gtype_module_cast_method_pointer (ValaGTypeModule* self, ValaMethod* m, ValaCCodeExpression* cfunc, ValaObjectTypeSymbol* base_type) { ValaCCodeExpression* result = NULL; gchar* cast = NULL; ValaMethod* _tmp0_; ValaDataType* _tmp1_; ValaDataType* _tmp2_; gboolean _tmp3_ = FALSE; ValaObjectTypeSymbol* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; gchar* _tmp14_; gchar* _tmp15_; gchar* cast_args; ValaMethod* _tmp16_; gchar* _tmp17_ = NULL; gchar* _tmp18_; ValaCCodeFunctionDeclarator* _tmp19_; ValaCCodeFunctionDeclarator* _tmp20_; ValaCCodeFunctionDeclarator* vdeclarator; GHashFunc _tmp21_; GEqualFunc _tmp22_; GEqualFunc _tmp23_; ValaHashMap* _tmp24_; ValaHashMap* cparam_map; ValaMethod* _tmp25_; ValaCCodeFile* _tmp26_; ValaHashMap* _tmp27_; ValaCCodeFunction* _tmp28_; ValaCCodeFunction* _tmp29_; ValaCCodeFunctionDeclarator* _tmp30_; gint last_pos; gint min_pos = 0; const gchar* _tmp68_; const gchar* _tmp69_; gchar* _tmp70_; gchar* _tmp71_; gchar* _tmp72_; gchar* _tmp73_; gchar* _tmp74_; ValaCCodeExpression* _tmp75_; const gchar* _tmp76_; ValaCCodeCastExpression* _tmp77_; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (m != NULL, NULL); g_return_val_if_fail (cfunc != NULL, NULL); g_return_val_if_fail (base_type != NULL, NULL); _tmp0_ = m; _tmp1_ = vala_method_get_return_type (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = vala_data_type_is_real_non_null_struct_type (_tmp2_); if (_tmp3_) { gchar* _tmp4_; _tmp4_ = g_strdup ("void (*)"); _g_free0 (cast); cast = _tmp4_; } else { ValaMethod* _tmp5_; ValaDataType* _tmp6_; ValaDataType* _tmp7_; gchar* _tmp8_ = NULL; gchar* _tmp9_; gchar* _tmp10_; _tmp5_ = m; _tmp6_ = vala_method_get_return_type (_tmp5_); _tmp7_ = _tmp6_; _tmp8_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp7_); _tmp9_ = _tmp8_; _tmp10_ = g_strconcat (_tmp9_, " (*)", NULL); _g_free0 (cast); cast = _tmp10_; _g_free0 (_tmp9_); } _tmp11_ = base_type; _tmp12_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = g_strconcat (_tmp13_, "*", NULL); _tmp15_ = _tmp14_; _g_free0 (_tmp13_); cast_args = _tmp15_; _tmp16_ = m; _tmp17_ = vala_ccode_base_module_get_ccode_vfunc_name (_tmp16_); _tmp18_ = _tmp17_; _tmp19_ = vala_ccode_function_declarator_new (_tmp18_); _tmp20_ = _tmp19_; _g_free0 (_tmp18_); vdeclarator = _tmp20_; _tmp21_ = g_direct_hash; _tmp22_ = g_direct_equal; _tmp23_ = g_direct_equal; _tmp24_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, _tmp21_, _tmp22_, _tmp23_); cparam_map = _tmp24_; _tmp25_ = m; _tmp26_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp27_ = cparam_map; _tmp28_ = vala_ccode_function_new ("fake", "void"); _tmp29_ = _tmp28_; _tmp30_ = vdeclarator; vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, _tmp25_, _tmp26_, (ValaMap*) _tmp27_, _tmp29_, _tmp30_, NULL, NULL, 3); _vala_ccode_node_unref0 (_tmp29_); last_pos = -1; while (TRUE) { gint _tmp50_; gint _tmp67_; min_pos = -1; { ValaHashMap* _tmp31_; ValaSet* _tmp32_ = NULL; ValaSet* _tmp33_; ValaIterator* _tmp34_ = NULL; ValaIterator* _tmp35_; ValaIterator* _pos_it; _tmp31_ = cparam_map; _tmp32_ = vala_map_get_keys ((ValaMap*) _tmp31_); _tmp33_ = _tmp32_; _tmp34_ = vala_iterable_iterator ((ValaIterable*) _tmp33_); _tmp35_ = _tmp34_; _vala_iterable_unref0 (_tmp33_); _pos_it = _tmp35_; while (TRUE) { ValaIterator* _tmp36_; gboolean _tmp37_ = FALSE; ValaIterator* _tmp38_; gpointer _tmp39_ = NULL; gint pos; gboolean _tmp40_ = FALSE; gint _tmp41_; gint _tmp42_; gboolean _tmp48_; _tmp36_ = _pos_it; _tmp37_ = vala_iterator_next (_tmp36_); if (!_tmp37_) { break; } _tmp38_ = _pos_it; _tmp39_ = vala_iterator_get (_tmp38_); pos = GPOINTER_TO_INT (_tmp39_); _tmp41_ = pos; _tmp42_ = last_pos; if (_tmp41_ > _tmp42_) { gboolean _tmp43_ = FALSE; gint _tmp44_; gboolean _tmp47_; _tmp44_ = min_pos; if (_tmp44_ == (-1)) { _tmp43_ = TRUE; } else { gint _tmp45_; gint _tmp46_; _tmp45_ = pos; _tmp46_ = min_pos; _tmp43_ = _tmp45_ < _tmp46_; } _tmp47_ = _tmp43_; _tmp40_ = _tmp47_; } else { _tmp40_ = FALSE; } _tmp48_ = _tmp40_; if (_tmp48_) { gint _tmp49_; _tmp49_ = pos; min_pos = _tmp49_; } } _vala_iterator_unref0 (_pos_it); } _tmp50_ = last_pos; if (_tmp50_ != (-1)) { gint _tmp51_; ValaHashMap* _tmp52_; gint _tmp53_; gpointer _tmp54_ = NULL; ValaCCodeParameter* tmp; ValaCCodeParameter* _tmp55_; gboolean _tmp56_; gboolean _tmp57_; _tmp51_ = min_pos; if (_tmp51_ == (-1)) { break; } _tmp52_ = cparam_map; _tmp53_ = min_pos; _tmp54_ = vala_map_get ((ValaMap*) _tmp52_, GINT_TO_POINTER (_tmp53_)); tmp = (ValaCCodeParameter*) _tmp54_; _tmp55_ = tmp; _tmp56_ = vala_ccode_parameter_get_ellipsis (_tmp55_); _tmp57_ = _tmp56_; if (_tmp57_) { const gchar* _tmp58_; gchar* _tmp59_; _tmp58_ = cast_args; _tmp59_ = g_strconcat (_tmp58_, ", " " ...", NULL); _g_free0 (cast_args); cast_args = _tmp59_; } else { const gchar* _tmp60_; ValaCCodeParameter* _tmp61_; const gchar* _tmp62_; const gchar* _tmp63_; gchar* _tmp64_; gchar* _tmp65_; gchar* _tmp66_; _tmp60_ = cast_args; _tmp61_ = tmp; _tmp62_ = vala_ccode_parameter_get_type_name (_tmp61_); _tmp63_ = _tmp62_; _tmp64_ = g_strconcat (", ", _tmp63_, NULL); _tmp65_ = _tmp64_; _tmp66_ = g_strconcat (_tmp60_, _tmp65_, NULL); _g_free0 (cast_args); cast_args = _tmp66_; _g_free0 (_tmp65_); } _vala_ccode_node_unref0 (tmp); } _tmp67_ = min_pos; last_pos = _tmp67_; } _tmp68_ = cast; _tmp69_ = cast_args; _tmp70_ = g_strconcat ("(", _tmp69_, NULL); _tmp71_ = _tmp70_; _tmp72_ = g_strconcat (_tmp71_, ")", NULL); _tmp73_ = _tmp72_; _tmp74_ = g_strconcat (_tmp68_, _tmp73_, NULL); _g_free0 (cast); cast = _tmp74_; _g_free0 (_tmp73_); _g_free0 (_tmp71_); _tmp75_ = cfunc; _tmp76_ = cast; _tmp77_ = vala_ccode_cast_expression_new (_tmp75_, _tmp76_); result = (ValaCCodeExpression*) _tmp77_; _vala_map_unref0 (cparam_map); _vala_ccode_node_unref0 (vdeclarator); _g_free0 (cast_args); _g_free0 (cast); return result; } static void vala_gtype_module_begin_instance_init_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeBaseModuleEmitContext* _tmp0_; ValaClass* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_; gchar* _tmp4_ = NULL; gchar* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* _tmp7_; ValaCCodeFunction* func; ValaCCodeFunction* _tmp8_; ValaClass* _tmp9_; gchar* _tmp10_ = NULL; gchar* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; ValaCCodeParameter* _tmp14_; ValaCCodeParameter* _tmp15_; ValaCCodeFunction* _tmp16_; ValaCCodeFunction* _tmp17_; ValaClass* _tmp18_; gboolean _tmp19_; gboolean _tmp20_; gboolean _tmp23_ = FALSE; ValaClass* _tmp24_; gboolean _tmp25_; gboolean _tmp26_; gboolean _tmp37_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->instance_init_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp0_); _tmp1_ = cl; _tmp2_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp1_, NULL); _tmp3_ = _tmp2_; _tmp4_ = g_strdup_printf ("%s_instance_init", _tmp3_); _tmp5_ = _tmp4_; _tmp6_ = vala_ccode_function_new (_tmp5_, "void"); _tmp7_ = _tmp6_; _g_free0 (_tmp5_); _g_free0 (_tmp3_); func = _tmp7_; _tmp8_ = func; _tmp9_ = cl; _tmp10_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp9_); _tmp11_ = _tmp10_; _tmp12_ = g_strdup_printf ("%s *", _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = vala_ccode_parameter_new ("self", _tmp13_); _tmp15_ = _tmp14_; vala_ccode_function_add_parameter (_tmp8_, _tmp15_); _vala_ccode_node_unref0 (_tmp15_); _g_free0 (_tmp13_); _g_free0 (_tmp11_); _tmp16_ = func; vala_ccode_function_set_modifiers (_tmp16_, VALA_CCODE_MODIFIERS_STATIC); _tmp17_ = func; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp17_); _tmp18_ = cl; _tmp19_ = vala_class_get_is_compact (_tmp18_); _tmp20_ = _tmp19_; if (_tmp20_) { ValaCCodeFile* _tmp21_; ValaCCodeFunction* _tmp22_; _tmp21_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp22_ = func; vala_ccode_file_add_function_declaration (_tmp21_, _tmp22_); } _tmp24_ = cl; _tmp25_ = vala_class_get_is_compact (_tmp24_); _tmp26_ = _tmp25_; if (!_tmp26_) { gboolean _tmp27_ = FALSE; ValaClass* _tmp28_; gboolean _tmp29_; gboolean _tmp30_; gboolean _tmp36_; _tmp28_ = cl; _tmp29_ = vala_class_get_has_private_fields (_tmp28_); _tmp30_ = _tmp29_; if (_tmp30_) { _tmp27_ = TRUE; } else { ValaClass* _tmp31_; ValaList* _tmp32_ = NULL; ValaList* _tmp33_; gint _tmp34_; gint _tmp35_; _tmp31_ = cl; _tmp32_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) _tmp31_); _tmp33_ = _tmp32_; _tmp34_ = vala_collection_get_size ((ValaCollection*) _tmp33_); _tmp35_ = _tmp34_; _tmp27_ = _tmp35_ > 0; _vala_iterable_unref0 (_tmp33_); } _tmp36_ = _tmp27_; _tmp23_ = _tmp36_; } else { _tmp23_ = FALSE; } _tmp37_ = _tmp23_; if (_tmp37_) { ValaClass* _tmp38_; gchar* _tmp39_ = NULL; gchar* _tmp40_; gchar* _tmp41_ = NULL; gchar* _tmp42_; ValaCCodeIdentifier* _tmp43_; ValaCCodeIdentifier* _tmp44_; ValaCCodeFunctionCall* _tmp45_; ValaCCodeFunctionCall* _tmp46_; ValaCCodeFunctionCall* ccall; ValaCCodeFunctionCall* _tmp47_; ValaCCodeIdentifier* _tmp48_; ValaCCodeIdentifier* _tmp49_; ValaCCodeFunction* _tmp50_; ValaCCodeIdentifier* _tmp51_; ValaCCodeIdentifier* _tmp52_; ValaCCodeMemberAccess* _tmp53_; ValaCCodeMemberAccess* _tmp54_; ValaCCodeFunctionCall* _tmp55_; _tmp38_ = cl; _tmp39_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp38_, NULL); _tmp40_ = _tmp39_; _tmp41_ = g_strdup_printf ("%s_GET_PRIVATE", _tmp40_); _tmp42_ = _tmp41_; _tmp43_ = vala_ccode_identifier_new (_tmp42_); _tmp44_ = _tmp43_; _tmp45_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp44_); _tmp46_ = _tmp45_; _vala_ccode_node_unref0 (_tmp44_); _g_free0 (_tmp42_); _g_free0 (_tmp40_); ccall = _tmp46_; _tmp47_ = ccall; _tmp48_ = vala_ccode_identifier_new ("self"); _tmp49_ = _tmp48_; vala_ccode_function_call_add_argument (_tmp47_, (ValaCCodeExpression*) _tmp49_); _vala_ccode_node_unref0 (_tmp49_); _tmp50_ = func; _tmp51_ = vala_ccode_identifier_new ("self"); _tmp52_ = _tmp51_; _tmp53_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp52_, "priv"); _tmp54_ = _tmp53_; _tmp55_ = ccall; vala_ccode_function_add_assignment (_tmp50_, (ValaCCodeExpression*) _tmp54_, (ValaCCodeExpression*) _tmp55_); _vala_ccode_node_unref0 (_tmp54_); _vala_ccode_node_unref0 (_tmp52_); _vala_ccode_node_unref0 (ccall); } vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_ccode_node_unref0 (func); } static void vala_gtype_module_add_instance_init_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeFile* _tmp0_; ValaCCodeBaseModuleEmitContext* _tmp1_; ValaCCodeFunction* _tmp2_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp1_ = ((ValaCCodeBaseModule*) self)->instance_init_context; _tmp2_ = _tmp1_->ccode; vala_ccode_file_add_function (_tmp0_, _tmp2_); } static void vala_gtype_module_begin_class_finalize_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeBaseModuleEmitContext* _tmp0_; ValaClass* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_; gchar* _tmp4_ = NULL; gchar* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* _tmp7_; ValaCCodeFunction* function; ValaCCodeFunction* _tmp8_; ValaCCodeFunction* _tmp9_; ValaClass* _tmp10_; gchar* _tmp11_ = NULL; gchar* _tmp12_; gchar* _tmp13_; gchar* _tmp14_; ValaCCodeParameter* _tmp15_; ValaCCodeParameter* _tmp16_; ValaCCodeFunction* _tmp17_; ValaClass* _tmp18_; ValaDestructor* _tmp19_; ValaDestructor* _tmp20_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->class_finalize_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp0_); _tmp1_ = cl; _tmp2_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp1_, NULL); _tmp3_ = _tmp2_; _tmp4_ = g_strdup_printf ("%s_class_finalize", _tmp3_); _tmp5_ = _tmp4_; _tmp6_ = vala_ccode_function_new (_tmp5_, "void"); _tmp7_ = _tmp6_; _g_free0 (_tmp5_); _g_free0 (_tmp3_); function = _tmp7_; _tmp8_ = function; vala_ccode_function_set_modifiers (_tmp8_, VALA_CCODE_MODIFIERS_STATIC); _tmp9_ = function; _tmp10_ = cl; _tmp11_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp10_); _tmp12_ = _tmp11_; _tmp13_ = g_strconcat (_tmp12_, "Class *", NULL); _tmp14_ = _tmp13_; _tmp15_ = vala_ccode_parameter_new ("klass", _tmp14_); _tmp16_ = _tmp15_; vala_ccode_function_add_parameter (_tmp9_, _tmp16_); _vala_ccode_node_unref0 (_tmp16_); _g_free0 (_tmp14_); _g_free0 (_tmp12_); _tmp17_ = function; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp17_); _tmp18_ = cl; _tmp19_ = vala_class_get_static_destructor (_tmp18_); _tmp20_ = _tmp19_; if (_tmp20_ != NULL) { ValaClass* _tmp21_; ValaDestructor* _tmp22_; ValaDestructor* _tmp23_; ValaBlock* _tmp24_; ValaBlock* _tmp25_; _tmp21_ = cl; _tmp22_ = vala_class_get_static_destructor (_tmp21_); _tmp23_ = _tmp22_; _tmp24_ = vala_subroutine_get_body ((ValaSubroutine*) _tmp23_); _tmp25_ = _tmp24_; vala_code_node_emit ((ValaCodeNode*) _tmp25_, (ValaCodeGenerator*) self); } vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_class_finalize_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeFile* _tmp0_; ValaCCodeBaseModuleEmitContext* _tmp1_; ValaCCodeFunction* _tmp2_; ValaCCodeFile* _tmp3_; ValaCCodeBaseModuleEmitContext* _tmp4_; ValaCCodeFunction* _tmp5_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp1_ = ((ValaCCodeBaseModule*) self)->class_finalize_context; _tmp2_ = _tmp1_->ccode; vala_ccode_file_add_function_declaration (_tmp0_, _tmp2_); _tmp3_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp4_ = ((ValaCCodeBaseModule*) self)->class_finalize_context; _tmp5_ = _tmp4_->ccode; vala_ccode_file_add_function (_tmp3_, _tmp5_); } static void vala_gtype_module_begin_base_finalize_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeBaseModuleEmitContext* _tmp0_; ValaClass* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_; gchar* _tmp4_ = NULL; gchar* _tmp5_; ValaCCodeFunction* _tmp6_; ValaCCodeFunction* _tmp7_; ValaCCodeFunction* function; ValaCCodeFunction* _tmp8_; ValaCCodeFunction* _tmp9_; ValaClass* _tmp10_; gchar* _tmp11_ = NULL; gchar* _tmp12_; gchar* _tmp13_; gchar* _tmp14_; ValaCCodeParameter* _tmp15_; ValaCCodeParameter* _tmp16_; ValaCCodeFunction* _tmp17_; ValaClass* _tmp18_; ValaDestructor* _tmp19_; ValaDestructor* _tmp20_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->base_finalize_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp0_); _tmp1_ = cl; _tmp2_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp1_, NULL); _tmp3_ = _tmp2_; _tmp4_ = g_strdup_printf ("%s_base_finalize", _tmp3_); _tmp5_ = _tmp4_; _tmp6_ = vala_ccode_function_new (_tmp5_, "void"); _tmp7_ = _tmp6_; _g_free0 (_tmp5_); _g_free0 (_tmp3_); function = _tmp7_; _tmp8_ = function; vala_ccode_function_set_modifiers (_tmp8_, VALA_CCODE_MODIFIERS_STATIC); _tmp9_ = function; _tmp10_ = cl; _tmp11_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp10_); _tmp12_ = _tmp11_; _tmp13_ = g_strconcat (_tmp12_, "Class *", NULL); _tmp14_ = _tmp13_; _tmp15_ = vala_ccode_parameter_new ("klass", _tmp14_); _tmp16_ = _tmp15_; vala_ccode_function_add_parameter (_tmp9_, _tmp16_); _vala_ccode_node_unref0 (_tmp16_); _g_free0 (_tmp14_); _g_free0 (_tmp12_); _tmp17_ = function; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp17_); _tmp18_ = cl; _tmp19_ = vala_class_get_class_destructor (_tmp18_); _tmp20_ = _tmp19_; if (_tmp20_ != NULL) { ValaClass* _tmp21_; ValaDestructor* _tmp22_; ValaDestructor* _tmp23_; ValaBlock* _tmp24_; ValaBlock* _tmp25_; _tmp21_ = cl; _tmp22_ = vala_class_get_class_destructor (_tmp21_); _tmp23_ = _tmp22_; _tmp24_ = vala_subroutine_get_body ((ValaSubroutine*) _tmp23_); _tmp25_ = _tmp24_; vala_code_node_emit ((ValaCodeNode*) _tmp25_, (ValaCodeGenerator*) self); } vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_ccode_node_unref0 (function); } static void vala_gtype_module_add_base_finalize_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeBaseModuleEmitContext* _tmp0_; gboolean _tmp1_ = FALSE; ValaCodeContext* _tmp2_; ValaCodeContext* _tmp3_; gboolean _tmp4_ = FALSE; gboolean _tmp8_; ValaCCodeFile* _tmp66_; ValaCCodeFunction* _tmp67_; ValaCCodeFunction* _tmp68_; ValaCCodeFile* _tmp69_; ValaCCodeFunction* _tmp70_; ValaCCodeFunction* _tmp71_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->base_finalize_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp0_); _tmp2_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp3_ = _tmp2_; _tmp4_ = vala_code_context_require_glib_version (_tmp3_, 2, 24); if (!_tmp4_) { ValaClass* _tmp5_; gboolean _tmp6_; gboolean _tmp7_; _tmp5_ = cl; _tmp6_ = vala_class_get_has_class_private_fields (_tmp5_); _tmp7_ = _tmp6_; _tmp1_ = _tmp7_; } else { _tmp1_ = FALSE; } _tmp8_ = _tmp1_; if (_tmp8_) { ValaCCodeFunction* _tmp9_; ValaCCodeFunction* _tmp10_; ValaClass* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; gchar* _tmp14_ = NULL; gchar* _tmp15_; ValaCCodeDeclaration* _tmp16_; ValaCCodeDeclaration* _tmp17_; ValaCCodeDeclaration* _cdecl_; ValaCCodeDeclaration* _tmp18_; ValaCCodeVariableDeclarator* _tmp19_; ValaCCodeVariableDeclarator* _tmp20_; ValaCCodeFunction* _tmp21_; ValaCCodeFunction* _tmp22_; ValaCCodeDeclaration* _tmp23_; ValaClass* _tmp24_; gchar* _tmp25_ = NULL; gchar* _tmp26_; gchar* _tmp27_ = NULL; gchar* _tmp28_; ValaCCodeIdentifier* _tmp29_; ValaCCodeIdentifier* _tmp30_; ValaCCodeFunctionCall* _tmp31_; ValaCCodeFunctionCall* _tmp32_; ValaCCodeFunctionCall* ccall; ValaCCodeFunctionCall* _tmp33_; ValaCCodeConstant* _tmp34_; ValaCCodeConstant* _tmp35_; ValaCCodeFunction* _tmp36_; ValaCCodeFunction* _tmp37_; ValaCCodeIdentifier* _tmp38_; ValaCCodeIdentifier* _tmp39_; ValaCCodeFunctionCall* _tmp40_; ValaCCodeAssignment* _tmp41_; ValaCCodeAssignment* _tmp42_; ValaCCodeExpressionStatement* _tmp43_; ValaCCodeExpressionStatement* _tmp44_; ValaCCodeIdentifier* _tmp45_; ValaCCodeIdentifier* _tmp46_; ValaCCodeFunctionCall* _tmp47_; ValaCCodeFunctionCall* _tmp48_; ValaClass* _tmp49_; gchar* _tmp50_ = NULL; gchar* _tmp51_; gchar* _tmp52_ = NULL; gchar* _tmp53_; ValaCCodeIdentifier* _tmp54_; ValaCCodeIdentifier* _tmp55_; ValaCCodeFunctionCall* _tmp56_; ValaCCodeIdentifier* _tmp57_; ValaCCodeIdentifier* _tmp58_; ValaCCodeFunction* _tmp59_; ValaCCodeFunction* _tmp60_; ValaCCodeFunctionCall* _tmp61_; ValaCCodeExpressionStatement* _tmp62_; ValaCCodeExpressionStatement* _tmp63_; ValaCCodeFunction* _tmp64_; ValaCCodeFunction* _tmp65_; _tmp9_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp10_ = _tmp9_; vala_ccode_function_open_block (_tmp10_); _tmp11_ = cl; _tmp12_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = g_strdup_printf ("%sClassPrivate *", _tmp13_); _tmp15_ = _tmp14_; _tmp16_ = vala_ccode_declaration_new (_tmp15_); _tmp17_ = _tmp16_; _g_free0 (_tmp15_); _g_free0 (_tmp13_); _cdecl_ = _tmp17_; _tmp18_ = _cdecl_; _tmp19_ = vala_ccode_variable_declarator_new ("priv", NULL, NULL); _tmp20_ = _tmp19_; vala_ccode_declaration_add_declarator (_tmp18_, (ValaCCodeDeclarator*) _tmp20_); _vala_ccode_node_unref0 (_tmp20_); _tmp21_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp22_ = _tmp21_; _tmp23_ = _cdecl_; vala_ccode_function_add_statement (_tmp22_, (ValaCCodeNode*) _tmp23_); _tmp24_ = cl; _tmp25_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp24_, NULL); _tmp26_ = _tmp25_; _tmp27_ = g_strdup_printf ("%s_GET_CLASS_PRIVATE", _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_); _g_free0 (_tmp26_); ccall = _tmp32_; _tmp33_ = ccall; _tmp34_ = vala_ccode_constant_new ("klass"); _tmp35_ = _tmp34_; vala_ccode_function_call_add_argument (_tmp33_, (ValaCCodeExpression*) _tmp35_); _vala_ccode_node_unref0 (_tmp35_); _tmp36_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp37_ = _tmp36_; _tmp38_ = vala_ccode_identifier_new ("priv"); _tmp39_ = _tmp38_; _tmp40_ = ccall; _tmp41_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp39_, (ValaCCodeExpression*) _tmp40_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE); _tmp42_ = _tmp41_; _tmp43_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp42_); _tmp44_ = _tmp43_; vala_ccode_function_add_statement (_tmp37_, (ValaCCodeNode*) _tmp44_); _vala_ccode_node_unref0 (_tmp44_); _vala_ccode_node_unref0 (_tmp42_); _vala_ccode_node_unref0 (_tmp39_); _tmp45_ = vala_ccode_identifier_new ("g_slice_free"); _tmp46_ = _tmp45_; _tmp47_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp46_); _vala_ccode_node_unref0 (ccall); ccall = _tmp47_; _vala_ccode_node_unref0 (_tmp46_); _tmp48_ = ccall; _tmp49_ = cl; _tmp50_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp49_); _tmp51_ = _tmp50_; _tmp52_ = g_strdup_printf ("%sClassPrivate", _tmp51_); _tmp53_ = _tmp52_; _tmp54_ = vala_ccode_identifier_new (_tmp53_); _tmp55_ = _tmp54_; vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp55_); _vala_ccode_node_unref0 (_tmp55_); _g_free0 (_tmp53_); _g_free0 (_tmp51_); _tmp56_ = ccall; _tmp57_ = vala_ccode_identifier_new ("priv"); _tmp58_ = _tmp57_; vala_ccode_function_call_add_argument (_tmp56_, (ValaCCodeExpression*) _tmp58_); _vala_ccode_node_unref0 (_tmp58_); _tmp59_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp60_ = _tmp59_; _tmp61_ = ccall; _tmp62_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp61_); _tmp63_ = _tmp62_; vala_ccode_function_add_statement (_tmp60_, (ValaCCodeNode*) _tmp63_); _vala_ccode_node_unref0 (_tmp63_); _tmp64_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp65_ = _tmp64_; vala_ccode_function_close (_tmp65_); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (_cdecl_); } _tmp66_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp67_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp68_ = _tmp67_; vala_ccode_file_add_function_declaration (_tmp66_, _tmp68_); _tmp69_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp70_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp71_ = _tmp70_; vala_ccode_file_add_function (_tmp69_, _tmp71_); vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); } static void vala_gtype_module_begin_finalize_function (ValaGTypeModule* self, ValaClass* cl) { ValaCCodeBaseModuleEmitContext* _tmp0_; ValaClass* _tmp1_; gboolean _tmp2_; gboolean _tmp3_; ValaClass* _tmp69_; ValaDestructor* _tmp70_; ValaDestructor* _tmp71_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = ((ValaCCodeBaseModule*) self)->instance_finalize_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp0_); _tmp1_ = cl; _tmp2_ = vala_class_get_is_compact (_tmp1_); _tmp3_ = _tmp2_; if (!_tmp3_) { ValaClass* _tmp4_; ValaClass* _tmp5_; ValaClass* fundamental_class; ValaClass* _tmp13_; gchar* _tmp14_ = NULL; gchar* _tmp15_; gchar* _tmp16_ = NULL; gchar* _tmp17_; ValaCCodeFunction* _tmp18_; ValaCCodeFunction* _tmp19_; ValaCCodeFunction* func; ValaCCodeFunction* _tmp20_; ValaClass* _tmp21_; gchar* _tmp22_ = NULL; gchar* _tmp23_; gchar* _tmp24_; gchar* _tmp25_; ValaCCodeParameter* _tmp26_; ValaCCodeParameter* _tmp27_; ValaCCodeFunction* _tmp28_; ValaCCodeFunction* _tmp29_; ValaCCodeIdentifier* _tmp30_; ValaCCodeIdentifier* _tmp31_; ValaClass* _tmp32_; ValaCCodeFunctionCall* _tmp33_ = NULL; ValaCCodeFunctionCall* _tmp34_; ValaCCodeFunctionCall* ccall; ValaCCodeFunction* _tmp35_; ValaCCodeFunction* _tmp36_; ValaClass* _tmp37_; gchar* _tmp38_ = NULL; gchar* _tmp39_; gchar* _tmp40_ = NULL; gchar* _tmp41_; ValaCCodeVariableDeclarator* _tmp42_; ValaCCodeVariableDeclarator* _tmp43_; ValaCCodeFunction* _tmp44_; ValaCCodeFunction* _tmp45_; ValaCCodeIdentifier* _tmp46_; ValaCCodeIdentifier* _tmp47_; ValaCCodeFunctionCall* _tmp48_; _tmp4_ = cl; _tmp5_ = _vala_code_node_ref0 (_tmp4_); fundamental_class = _tmp5_; while (TRUE) { ValaClass* _tmp6_; ValaClass* _tmp7_; ValaClass* _tmp8_; ValaClass* _tmp9_; ValaClass* _tmp10_; ValaClass* _tmp11_; ValaClass* _tmp12_; _tmp6_ = fundamental_class; _tmp7_ = vala_class_get_base_class (_tmp6_); _tmp8_ = _tmp7_; if (!(_tmp8_ != NULL)) { break; } _tmp9_ = fundamental_class; _tmp10_ = vala_class_get_base_class (_tmp9_); _tmp11_ = _tmp10_; _tmp12_ = _vala_code_node_ref0 (_tmp11_); _vala_code_node_unref0 (fundamental_class); fundamental_class = _tmp12_; } _tmp13_ = cl; _tmp14_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp13_, NULL); _tmp15_ = _tmp14_; _tmp16_ = g_strdup_printf ("%s_finalize", _tmp15_); _tmp17_ = _tmp16_; _tmp18_ = vala_ccode_function_new (_tmp17_, "void"); _tmp19_ = _tmp18_; _g_free0 (_tmp17_); _g_free0 (_tmp15_); func = _tmp19_; _tmp20_ = func; _tmp21_ = fundamental_class; _tmp22_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp21_); _tmp23_ = _tmp22_; _tmp24_ = g_strconcat (_tmp23_, "*", NULL); _tmp25_ = _tmp24_; _tmp26_ = vala_ccode_parameter_new ("obj", _tmp25_); _tmp27_ = _tmp26_; vala_ccode_function_add_parameter (_tmp20_, _tmp27_); _vala_ccode_node_unref0 (_tmp27_); _g_free0 (_tmp25_); _g_free0 (_tmp23_); _tmp28_ = func; vala_ccode_function_set_modifiers (_tmp28_, VALA_CCODE_MODIFIERS_STATIC); _tmp29_ = func; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp29_); _tmp30_ = vala_ccode_identifier_new ("obj"); _tmp31_ = _tmp30_; _tmp32_ = cl; _tmp33_ = vala_ccode_base_module_generate_instance_cast ((ValaCCodeBaseModule*) self, (ValaCCodeExpression*) _tmp31_, (ValaTypeSymbol*) _tmp32_); _tmp34_ = _tmp33_; _vala_ccode_node_unref0 (_tmp31_); ccall = _tmp34_; _tmp35_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp36_ = _tmp35_; _tmp37_ = cl; _tmp38_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp37_); _tmp39_ = _tmp38_; _tmp40_ = g_strdup_printf ("%s *", _tmp39_); _tmp41_ = _tmp40_; _tmp42_ = vala_ccode_variable_declarator_new ("self", NULL, NULL); _tmp43_ = _tmp42_; vala_ccode_function_add_declaration (_tmp36_, _tmp41_, (ValaCCodeDeclarator*) _tmp43_, 0); _vala_ccode_node_unref0 (_tmp43_); _g_free0 (_tmp41_); _g_free0 (_tmp39_); _tmp44_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp45_ = _tmp44_; _tmp46_ = vala_ccode_identifier_new ("self"); _tmp47_ = _tmp46_; _tmp48_ = ccall; vala_ccode_function_add_assignment (_tmp45_, (ValaCCodeExpression*) _tmp47_, (ValaCCodeExpression*) _tmp48_); _vala_ccode_node_unref0 (_tmp47_); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (func); _vala_code_node_unref0 (fundamental_class); } else { ValaClass* _tmp49_; gchar* _tmp50_ = NULL; gchar* _tmp51_; gchar* _tmp52_; gchar* _tmp53_; ValaCCodeFunction* _tmp54_; ValaCCodeFunction* _tmp55_; ValaCCodeFunction* function; ValaClass* _tmp56_; ValaSymbolAccessibility _tmp57_; ValaSymbolAccessibility _tmp58_; ValaCCodeFunction* _tmp60_; ValaClass* _tmp61_; gchar* _tmp62_ = NULL; gchar* _tmp63_; gchar* _tmp64_; gchar* _tmp65_; ValaCCodeParameter* _tmp66_; ValaCCodeParameter* _tmp67_; ValaCCodeFunction* _tmp68_; _tmp49_ = cl; _tmp50_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp49_); _tmp51_ = _tmp50_; _tmp52_ = g_strconcat (_tmp51_, "free", NULL); _tmp53_ = _tmp52_; _tmp54_ = vala_ccode_function_new (_tmp53_, "void"); _tmp55_ = _tmp54_; _g_free0 (_tmp53_); _g_free0 (_tmp51_); function = _tmp55_; _tmp56_ = cl; _tmp57_ = vala_symbol_get_access ((ValaSymbol*) _tmp56_); _tmp58_ = _tmp57_; if (_tmp58_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp59_; _tmp59_ = function; vala_ccode_function_set_modifiers (_tmp59_, VALA_CCODE_MODIFIERS_STATIC); } _tmp60_ = function; _tmp61_ = cl; _tmp62_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp61_); _tmp63_ = _tmp62_; _tmp64_ = g_strconcat (_tmp63_, "*", NULL); _tmp65_ = _tmp64_; _tmp66_ = vala_ccode_parameter_new ("self", _tmp65_); _tmp67_ = _tmp66_; vala_ccode_function_add_parameter (_tmp60_, _tmp67_); _vala_ccode_node_unref0 (_tmp67_); _g_free0 (_tmp65_); _g_free0 (_tmp63_); _tmp68_ = function; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp68_); _vala_ccode_node_unref0 (function); } _tmp69_ = cl; _tmp70_ = vala_class_get_destructor (_tmp69_); _tmp71_ = _tmp70_; if (_tmp71_ != NULL) { ValaClass* _tmp72_; ValaDestructor* _tmp73_; ValaDestructor* _tmp74_; ValaBlock* _tmp75_; ValaBlock* _tmp76_; gboolean _tmp77_; gboolean _tmp78_; gboolean _tmp85_; gboolean _tmp86_; _tmp72_ = cl; _tmp73_ = vala_class_get_destructor (_tmp72_); _tmp74_ = _tmp73_; _tmp75_ = vala_subroutine_get_body ((ValaSubroutine*) _tmp74_); _tmp76_ = _tmp75_; vala_code_node_emit ((ValaCodeNode*) _tmp76_, (ValaCodeGenerator*) self); _tmp77_ = vala_ccode_base_module_get_current_method_inner_error ((ValaCCodeBaseModule*) self); _tmp78_ = _tmp77_; if (_tmp78_) { ValaCCodeFunction* _tmp79_; ValaCCodeFunction* _tmp80_; ValaCCodeConstant* _tmp81_; ValaCCodeConstant* _tmp82_; ValaCCodeVariableDeclarator* _tmp83_; ValaCCodeVariableDeclarator* _tmp84_; _tmp79_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp80_ = _tmp79_; _tmp81_ = vala_ccode_constant_new ("NULL"); _tmp82_ = _tmp81_; _tmp83_ = vala_ccode_variable_declarator_new_zero ("_inner_error_", (ValaCCodeExpression*) _tmp82_, NULL); _tmp84_ = _tmp83_; vala_ccode_function_add_declaration (_tmp80_, "GError *", (ValaCCodeDeclarator*) _tmp84_, 0); _vala_ccode_node_unref0 (_tmp84_); _vala_ccode_node_unref0 (_tmp82_); } _tmp85_ = vala_ccode_base_module_get_current_method_return ((ValaCCodeBaseModule*) self); _tmp86_ = _tmp85_; if (_tmp86_) { ValaCCodeFunction* _tmp87_; ValaCCodeFunction* _tmp88_; _tmp87_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp88_ = _tmp87_; vala_ccode_function_add_label (_tmp88_, "_return"); } } vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); } static void vala_gtype_module_add_finalize_function (ValaGTypeModule* self, ValaClass* cl) { ValaClass* _tmp0_; gboolean _tmp1_; gboolean _tmp2_; ValaCCodeFile* _tmp64_; ValaCCodeBaseModuleEmitContext* _tmp65_; ValaCCodeFunction* _tmp66_; g_return_if_fail (self != NULL); g_return_if_fail (cl != NULL); _tmp0_ = cl; _tmp1_ = vala_class_get_is_compact (_tmp0_); _tmp2_ = _tmp1_; if (!_tmp2_) { ValaClass* _tmp3_; ValaClass* _tmp4_; ValaClass* fundamental_class; ValaClass* _tmp12_; ValaClass* _tmp13_; ValaClass* _tmp14_; ValaCCodeFile* _tmp44_; ValaCCodeBaseModuleEmitContext* _tmp45_; ValaCCodeFunction* _tmp46_; _tmp3_ = cl; _tmp4_ = _vala_code_node_ref0 (_tmp3_); fundamental_class = _tmp4_; while (TRUE) { ValaClass* _tmp5_; ValaClass* _tmp6_; ValaClass* _tmp7_; ValaClass* _tmp8_; ValaClass* _tmp9_; ValaClass* _tmp10_; ValaClass* _tmp11_; _tmp5_ = fundamental_class; _tmp6_ = vala_class_get_base_class (_tmp5_); _tmp7_ = _tmp6_; if (!(_tmp7_ != NULL)) { break; } _tmp8_ = fundamental_class; _tmp9_ = vala_class_get_base_class (_tmp8_); _tmp10_ = _tmp9_; _tmp11_ = _vala_code_node_ref0 (_tmp10_); _vala_code_node_unref0 (fundamental_class); fundamental_class = _tmp11_; } _tmp12_ = cl; _tmp13_ = vala_class_get_base_class (_tmp12_); _tmp14_ = _tmp13_; if (_tmp14_ != NULL) { ValaClass* _tmp15_; gchar* _tmp16_ = NULL; gchar* _tmp17_; gchar* _tmp18_ = NULL; gchar* _tmp19_; ValaCCodeIdentifier* _tmp20_; ValaCCodeIdentifier* _tmp21_; ValaCCodeFunctionCall* _tmp22_; ValaCCodeFunctionCall* _tmp23_; ValaCCodeFunctionCall* ccast; ValaCCodeFunctionCall* _tmp24_; ValaClass* _tmp25_; gchar* _tmp26_ = NULL; gchar* _tmp27_; gchar* _tmp28_ = NULL; gchar* _tmp29_; ValaCCodeIdentifier* _tmp30_; ValaCCodeIdentifier* _tmp31_; ValaCCodeFunctionCall* _tmp32_; ValaCCodeMemberAccess* _tmp33_; ValaCCodeMemberAccess* _tmp34_; ValaCCodeFunctionCall* _tmp35_; ValaCCodeFunctionCall* _tmp36_; ValaCCodeFunctionCall* ccall; ValaCCodeFunctionCall* _tmp37_; ValaCCodeIdentifier* _tmp38_; ValaCCodeIdentifier* _tmp39_; ValaCCodeBaseModuleEmitContext* _tmp40_; ValaCCodeFunction* _tmp41_; ValaCCodeFunction* _tmp42_; ValaCCodeFunctionCall* _tmp43_; _tmp15_ = fundamental_class; _tmp16_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp15_, NULL); _tmp17_ = _tmp16_; _tmp18_ = g_strdup_printf ("%s_CLASS", _tmp17_); _tmp19_ = _tmp18_; _tmp20_ = vala_ccode_identifier_new (_tmp19_); _tmp21_ = _tmp20_; _tmp22_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp21_); _tmp23_ = _tmp22_; _vala_ccode_node_unref0 (_tmp21_); _g_free0 (_tmp19_); _g_free0 (_tmp17_); ccast = _tmp23_; _tmp24_ = ccast; _tmp25_ = cl; _tmp26_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp25_, NULL); _tmp27_ = _tmp26_; _tmp28_ = g_strdup_printf ("%s_parent_class", _tmp27_); _tmp29_ = _tmp28_; _tmp30_ = vala_ccode_identifier_new (_tmp29_); _tmp31_ = _tmp30_; vala_ccode_function_call_add_argument (_tmp24_, (ValaCCodeExpression*) _tmp31_); _vala_ccode_node_unref0 (_tmp31_); _g_free0 (_tmp29_); _g_free0 (_tmp27_); _tmp32_ = ccast; _tmp33_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp32_, "finalize"); _tmp34_ = _tmp33_; _tmp35_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp34_); _tmp36_ = _tmp35_; _vala_ccode_node_unref0 (_tmp34_); ccall = _tmp36_; _tmp37_ = ccall; _tmp38_ = vala_ccode_identifier_new ("obj"); _tmp39_ = _tmp38_; vala_ccode_function_call_add_argument (_tmp37_, (ValaCCodeExpression*) _tmp39_); _vala_ccode_node_unref0 (_tmp39_); _tmp40_ = ((ValaCCodeBaseModule*) self)->instance_finalize_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp40_); _tmp41_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp42_ = _tmp41_; _tmp43_ = ccall; vala_ccode_function_add_expression (_tmp42_, (ValaCCodeExpression*) _tmp43_); vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_ccode_node_unref0 (ccall); _vala_ccode_node_unref0 (ccast); } _tmp44_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp45_ = ((ValaCCodeBaseModule*) self)->instance_finalize_context; _tmp46_ = _tmp45_->ccode; vala_ccode_file_add_function_declaration (_tmp44_, _tmp46_); _vala_code_node_unref0 (fundamental_class); } else { ValaCCodeIdentifier* _tmp47_; ValaCCodeIdentifier* _tmp48_; ValaCCodeFunctionCall* _tmp49_; ValaCCodeFunctionCall* _tmp50_; ValaCCodeFunctionCall* ccall; ValaCCodeFunctionCall* _tmp51_; ValaClass* _tmp52_; gchar* _tmp53_ = NULL; gchar* _tmp54_; ValaCCodeIdentifier* _tmp55_; ValaCCodeIdentifier* _tmp56_; ValaCCodeFunctionCall* _tmp57_; ValaCCodeIdentifier* _tmp58_; ValaCCodeIdentifier* _tmp59_; ValaCCodeBaseModuleEmitContext* _tmp60_; ValaCCodeFunction* _tmp61_; ValaCCodeFunction* _tmp62_; ValaCCodeFunctionCall* _tmp63_; _tmp47_ = vala_ccode_identifier_new ("g_slice_free"); _tmp48_ = _tmp47_; _tmp49_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp48_); _tmp50_ = _tmp49_; _vala_ccode_node_unref0 (_tmp48_); ccall = _tmp50_; _tmp51_ = ccall; _tmp52_ = cl; _tmp53_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp52_); _tmp54_ = _tmp53_; _tmp55_ = vala_ccode_identifier_new (_tmp54_); _tmp56_ = _tmp55_; vala_ccode_function_call_add_argument (_tmp51_, (ValaCCodeExpression*) _tmp56_); _vala_ccode_node_unref0 (_tmp56_); _g_free0 (_tmp54_); _tmp57_ = ccall; _tmp58_ = vala_ccode_identifier_new ("self"); _tmp59_ = _tmp58_; vala_ccode_function_call_add_argument (_tmp57_, (ValaCCodeExpression*) _tmp59_); _vala_ccode_node_unref0 (_tmp59_); _tmp60_ = ((ValaCCodeBaseModule*) self)->instance_finalize_context; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp60_); _tmp61_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp62_ = _tmp61_; _tmp63_ = ccall; vala_ccode_function_add_expression (_tmp62_, (ValaCCodeExpression*) _tmp63_); vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_ccode_node_unref0 (ccall); } _tmp64_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp65_ = ((ValaCCodeBaseModule*) self)->instance_finalize_context; _tmp66_ = _tmp65_->ccode; vala_ccode_file_add_function (_tmp64_, _tmp66_); } static ValaCCodeFunctionCall* vala_gtype_module_real_get_param_spec (ValaCCodeBaseModule* base, ValaProperty* prop) { ValaGTypeModule * self; ValaCCodeFunctionCall* result = NULL; ValaCCodeFunctionCall* _tmp0_; ValaCCodeFunctionCall* cspec; ValaCCodeFunctionCall* _tmp1_; ValaProperty* _tmp2_; ValaCCodeConstant* _tmp3_ = NULL; ValaCCodeConstant* _tmp4_; ValaProperty* _tmp5_; gchar* _tmp6_ = NULL; gchar* nick; ValaProperty* _tmp7_; gchar* _tmp8_ = NULL; gchar* blurb; ValaCCodeFunctionCall* _tmp9_; const gchar* _tmp10_; gchar* _tmp11_ = NULL; gchar* _tmp12_; ValaCCodeConstant* _tmp13_; ValaCCodeConstant* _tmp14_; ValaCCodeFunctionCall* _tmp15_; const gchar* _tmp16_; gchar* _tmp17_ = NULL; gchar* _tmp18_; ValaCCodeConstant* _tmp19_; ValaCCodeConstant* _tmp20_; gboolean _tmp21_ = FALSE; ValaProperty* _tmp22_; ValaDataType* _tmp23_; ValaDataType* _tmp24_; ValaTypeSymbol* _tmp25_; ValaTypeSymbol* _tmp26_; gboolean _tmp32_; gchar* _tmp472_; gchar* pflags; gboolean _tmp473_ = FALSE; ValaProperty* _tmp474_; ValaPropertyAccessor* _tmp475_; ValaPropertyAccessor* _tmp476_; gboolean _tmp482_; gboolean _tmp485_ = FALSE; ValaProperty* _tmp486_; ValaPropertyAccessor* _tmp487_; ValaPropertyAccessor* _tmp488_; gboolean _tmp494_; ValaCCodeFunctionCall* _tmp511_; const gchar* _tmp512_; ValaCCodeConstant* _tmp513_; ValaCCodeConstant* _tmp514_; self = (ValaGTypeModule*) base; g_return_val_if_fail (prop != NULL, NULL); _tmp0_ = vala_ccode_function_call_new (NULL); cspec = _tmp0_; _tmp1_ = cspec; _tmp2_ = prop; _tmp3_ = vala_ccode_base_module_get_property_canonical_cconstant ((ValaCCodeBaseModule*) self, _tmp2_); _tmp4_ = _tmp3_; vala_ccode_function_call_add_argument (_tmp1_, (ValaCCodeExpression*) _tmp4_); _vala_ccode_node_unref0 (_tmp4_); _tmp5_ = prop; _tmp6_ = vala_ccode_base_module_get_ccode_nick (_tmp5_); nick = _tmp6_; _tmp7_ = prop; _tmp8_ = vala_ccode_base_module_get_ccode_blurb (_tmp7_); blurb = _tmp8_; _tmp9_ = cspec; _tmp10_ = nick; _tmp11_ = g_strdup_printf ("\"%s\"", _tmp10_); _tmp12_ = _tmp11_; _tmp13_ = vala_ccode_constant_new (_tmp12_); _tmp14_ = _tmp13_; vala_ccode_function_call_add_argument (_tmp9_, (ValaCCodeExpression*) _tmp14_); _vala_ccode_node_unref0 (_tmp14_); _g_free0 (_tmp12_); _tmp15_ = cspec; _tmp16_ = blurb; _tmp17_ = g_strdup_printf ("\"%s\"", _tmp16_); _tmp18_ = _tmp17_; _tmp19_ = vala_ccode_constant_new (_tmp18_); _tmp20_ = _tmp19_; vala_ccode_function_call_add_argument (_tmp15_, (ValaCCodeExpression*) _tmp20_); _vala_ccode_node_unref0 (_tmp20_); _g_free0 (_tmp18_); _tmp22_ = prop; _tmp23_ = vala_property_get_property_type (_tmp22_); _tmp24_ = _tmp23_; _tmp25_ = vala_data_type_get_data_type (_tmp24_); _tmp26_ = _tmp25_; if (VALA_IS_CLASS (_tmp26_)) { _tmp21_ = TRUE; } else { ValaProperty* _tmp27_; ValaDataType* _tmp28_; ValaDataType* _tmp29_; ValaTypeSymbol* _tmp30_; ValaTypeSymbol* _tmp31_; _tmp27_ = prop; _tmp28_ = vala_property_get_property_type (_tmp27_); _tmp29_ = _tmp28_; _tmp30_ = vala_data_type_get_data_type (_tmp29_); _tmp31_ = _tmp30_; _tmp21_ = VALA_IS_INTERFACE (_tmp31_); } _tmp32_ = _tmp21_; if (_tmp32_) { ValaProperty* _tmp33_; ValaDataType* _tmp34_; ValaDataType* _tmp35_; ValaTypeSymbol* _tmp36_; ValaTypeSymbol* _tmp37_; gchar* _tmp38_ = NULL; gchar* param_spec_name; ValaCCodeFunctionCall* _tmp39_; const gchar* _tmp40_; ValaCCodeIdentifier* _tmp41_; ValaCCodeIdentifier* _tmp42_; const gchar* _tmp43_; _tmp33_ = prop; _tmp34_ = vala_property_get_property_type (_tmp33_); _tmp35_ = _tmp34_; _tmp36_ = vala_data_type_get_data_type (_tmp35_); _tmp37_ = _tmp36_; _tmp38_ = vala_ccode_base_module_get_ccode_param_spec_function ((ValaCodeNode*) _tmp37_); param_spec_name = _tmp38_; _tmp39_ = cspec; _tmp40_ = param_spec_name; _tmp41_ = vala_ccode_identifier_new (_tmp40_); _tmp42_ = _tmp41_; vala_ccode_function_call_set_call (_tmp39_, (ValaCCodeExpression*) _tmp42_); _vala_ccode_node_unref0 (_tmp42_); _tmp43_ = param_spec_name; if (g_strcmp0 (_tmp43_, "g_param_spec_string") == 0) { ValaCCodeFunctionCall* _tmp44_; ValaCCodeConstant* _tmp45_; ValaCCodeConstant* _tmp46_; _tmp44_ = cspec; _tmp45_ = vala_ccode_constant_new ("NULL"); _tmp46_ = _tmp45_; vala_ccode_function_call_add_argument (_tmp44_, (ValaCCodeExpression*) _tmp46_); _vala_ccode_node_unref0 (_tmp46_); } else { const gchar* _tmp47_; _tmp47_ = param_spec_name; if (g_strcmp0 (_tmp47_, "g_param_spec_variant") == 0) { ValaCCodeFunctionCall* _tmp48_; ValaCCodeConstant* _tmp49_; ValaCCodeConstant* _tmp50_; ValaCCodeFunctionCall* _tmp51_; ValaCCodeConstant* _tmp52_; ValaCCodeConstant* _tmp53_; _tmp48_ = cspec; _tmp49_ = vala_ccode_constant_new ("G_VARIANT_TYPE_ANY"); _tmp50_ = _tmp49_; vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp50_); _vala_ccode_node_unref0 (_tmp50_); _tmp51_ = cspec; _tmp52_ = vala_ccode_constant_new ("NULL"); _tmp53_ = _tmp52_; vala_ccode_function_call_add_argument (_tmp51_, (ValaCCodeExpression*) _tmp53_); _vala_ccode_node_unref0 (_tmp53_); } else { ValaProperty* _tmp54_; ValaDataType* _tmp55_; ValaDataType* _tmp56_; ValaTypeSymbol* _tmp57_; ValaTypeSymbol* _tmp58_; gchar* _tmp59_ = NULL; gchar* _tmp60_; gboolean _tmp61_; _tmp54_ = prop; _tmp55_ = vala_property_get_property_type (_tmp54_); _tmp56_ = _tmp55_; _tmp57_ = vala_data_type_get_data_type (_tmp56_); _tmp58_ = _tmp57_; _tmp59_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp58_); _tmp60_ = _tmp59_; _tmp61_ = g_strcmp0 (_tmp60_, "G_TYPE_POINTER") != 0; _g_free0 (_tmp60_); if (_tmp61_) { ValaCCodeFunctionCall* _tmp62_; ValaProperty* _tmp63_; ValaDataType* _tmp64_; ValaDataType* _tmp65_; ValaTypeSymbol* _tmp66_; ValaTypeSymbol* _tmp67_; gchar* _tmp68_ = NULL; gchar* _tmp69_; ValaCCodeIdentifier* _tmp70_; ValaCCodeIdentifier* _tmp71_; _tmp62_ = cspec; _tmp63_ = prop; _tmp64_ = vala_property_get_property_type (_tmp63_); _tmp65_ = _tmp64_; _tmp66_ = vala_data_type_get_data_type (_tmp65_); _tmp67_ = _tmp66_; _tmp68_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp67_); _tmp69_ = _tmp68_; _tmp70_ = vala_ccode_identifier_new (_tmp69_); _tmp71_ = _tmp70_; vala_ccode_function_call_add_argument (_tmp62_, (ValaCCodeExpression*) _tmp71_); _vala_ccode_node_unref0 (_tmp71_); _g_free0 (_tmp69_); } } } _g_free0 (param_spec_name); } else { ValaProperty* _tmp72_; ValaDataType* _tmp73_; ValaDataType* _tmp74_; ValaTypeSymbol* _tmp75_; ValaTypeSymbol* _tmp76_; _tmp72_ = prop; _tmp73_ = vala_property_get_property_type (_tmp72_); _tmp74_ = _tmp73_; _tmp75_ = vala_data_type_get_data_type (_tmp74_); _tmp76_ = _tmp75_; if (VALA_IS_ENUM (_tmp76_)) { ValaProperty* _tmp77_; ValaDataType* _tmp78_; ValaDataType* _tmp79_; ValaTypeSymbol* _tmp80_; ValaTypeSymbol* _tmp81_; ValaEnum* _tmp82_; ValaEnum* e; ValaEnum* _tmp83_; gboolean _tmp84_ = FALSE; ValaProperty* _tmp121_; ValaExpression* _tmp122_; ValaExpression* _tmp123_; _tmp77_ = prop; _tmp78_ = vala_property_get_property_type (_tmp77_); _tmp79_ = _tmp78_; _tmp80_ = vala_data_type_get_data_type (_tmp79_); _tmp81_ = _tmp80_; _tmp82_ = _vala_code_node_ref0 (VALA_IS_ENUM (_tmp81_) ? ((ValaEnum*) _tmp81_) : NULL); e = _tmp82_; _tmp83_ = e; _tmp84_ = vala_ccode_base_module_get_ccode_has_type_id ((ValaTypeSymbol*) _tmp83_); if (_tmp84_) { ValaEnum* _tmp85_; gboolean _tmp86_; gboolean _tmp87_; ValaCCodeFunctionCall* _tmp94_; ValaEnum* _tmp95_; gchar* _tmp96_ = NULL; gchar* _tmp97_; ValaCCodeIdentifier* _tmp98_; ValaCCodeIdentifier* _tmp99_; _tmp85_ = e; _tmp86_ = vala_enum_get_is_flags (_tmp85_); _tmp87_ = _tmp86_; if (_tmp87_) { ValaCCodeFunctionCall* _tmp88_; ValaCCodeIdentifier* _tmp89_; ValaCCodeIdentifier* _tmp90_; _tmp88_ = cspec; _tmp89_ = vala_ccode_identifier_new ("g_param_spec_flags"); _tmp90_ = _tmp89_; vala_ccode_function_call_set_call (_tmp88_, (ValaCCodeExpression*) _tmp90_); _vala_ccode_node_unref0 (_tmp90_); } else { ValaCCodeFunctionCall* _tmp91_; ValaCCodeIdentifier* _tmp92_; ValaCCodeIdentifier* _tmp93_; _tmp91_ = cspec; _tmp92_ = vala_ccode_identifier_new ("g_param_spec_enum"); _tmp93_ = _tmp92_; vala_ccode_function_call_set_call (_tmp91_, (ValaCCodeExpression*) _tmp93_); _vala_ccode_node_unref0 (_tmp93_); } _tmp94_ = cspec; _tmp95_ = e; _tmp96_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp95_); _tmp97_ = _tmp96_; _tmp98_ = vala_ccode_identifier_new (_tmp97_); _tmp99_ = _tmp98_; vala_ccode_function_call_add_argument (_tmp94_, (ValaCCodeExpression*) _tmp99_); _vala_ccode_node_unref0 (_tmp99_); _g_free0 (_tmp97_); } else { ValaEnum* _tmp100_; gboolean _tmp101_; gboolean _tmp102_; _tmp100_ = e; _tmp101_ = vala_enum_get_is_flags (_tmp100_); _tmp102_ = _tmp101_; if (_tmp102_) { ValaCCodeFunctionCall* _tmp103_; ValaCCodeIdentifier* _tmp104_; ValaCCodeIdentifier* _tmp105_; ValaCCodeFunctionCall* _tmp106_; ValaCCodeConstant* _tmp107_; ValaCCodeConstant* _tmp108_; ValaCCodeFunctionCall* _tmp109_; ValaCCodeConstant* _tmp110_; ValaCCodeConstant* _tmp111_; _tmp103_ = cspec; _tmp104_ = vala_ccode_identifier_new ("g_param_spec_uint"); _tmp105_ = _tmp104_; vala_ccode_function_call_set_call (_tmp103_, (ValaCCodeExpression*) _tmp105_); _vala_ccode_node_unref0 (_tmp105_); _tmp106_ = cspec; _tmp107_ = vala_ccode_constant_new ("0"); _tmp108_ = _tmp107_; vala_ccode_function_call_add_argument (_tmp106_, (ValaCCodeExpression*) _tmp108_); _vala_ccode_node_unref0 (_tmp108_); _tmp109_ = cspec; _tmp110_ = vala_ccode_constant_new ("G_MAXUINT"); _tmp111_ = _tmp110_; vala_ccode_function_call_add_argument (_tmp109_, (ValaCCodeExpression*) _tmp111_); _vala_ccode_node_unref0 (_tmp111_); } else { ValaCCodeFunctionCall* _tmp112_; ValaCCodeIdentifier* _tmp113_; ValaCCodeIdentifier* _tmp114_; ValaCCodeFunctionCall* _tmp115_; ValaCCodeConstant* _tmp116_; ValaCCodeConstant* _tmp117_; ValaCCodeFunctionCall* _tmp118_; ValaCCodeConstant* _tmp119_; ValaCCodeConstant* _tmp120_; _tmp112_ = cspec; _tmp113_ = vala_ccode_identifier_new ("g_param_spec_int"); _tmp114_ = _tmp113_; vala_ccode_function_call_set_call (_tmp112_, (ValaCCodeExpression*) _tmp114_); _vala_ccode_node_unref0 (_tmp114_); _tmp115_ = cspec; _tmp116_ = vala_ccode_constant_new ("G_MININT"); _tmp117_ = _tmp116_; vala_ccode_function_call_add_argument (_tmp115_, (ValaCCodeExpression*) _tmp117_); _vala_ccode_node_unref0 (_tmp117_); _tmp118_ = cspec; _tmp119_ = vala_ccode_constant_new ("G_MAXINT"); _tmp120_ = _tmp119_; vala_ccode_function_call_add_argument (_tmp118_, (ValaCCodeExpression*) _tmp120_); _vala_ccode_node_unref0 (_tmp120_); } } _tmp121_ = prop; _tmp122_ = vala_property_get_initializer (_tmp121_); _tmp123_ = _tmp122_; if (_tmp123_ != NULL) { ValaCCodeFunctionCall* _tmp124_; ValaProperty* _tmp125_; ValaExpression* _tmp126_; ValaExpression* _tmp127_; ValaCCodeExpression* _tmp128_ = NULL; ValaCCodeExpression* _tmp129_; _tmp124_ = cspec; _tmp125_ = prop; _tmp126_ = vala_property_get_initializer (_tmp125_); _tmp127_ = _tmp126_; _tmp128_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp127_); _tmp129_ = VALA_CCODE_EXPRESSION (_tmp128_); vala_ccode_function_call_add_argument (_tmp124_, _tmp129_); _vala_ccode_node_unref0 (_tmp129_); } else { ValaCCodeFunctionCall* _tmp130_; ValaProperty* _tmp131_; ValaDataType* _tmp132_; ValaDataType* _tmp133_; ValaTypeSymbol* _tmp134_; ValaTypeSymbol* _tmp135_; gchar* _tmp136_ = NULL; gchar* _tmp137_; ValaCCodeConstant* _tmp138_; ValaCCodeConstant* _tmp139_; _tmp130_ = cspec; _tmp131_ = prop; _tmp132_ = vala_property_get_property_type (_tmp131_); _tmp133_ = _tmp132_; _tmp134_ = vala_data_type_get_data_type (_tmp133_); _tmp135_ = _tmp134_; _tmp136_ = vala_ccode_base_module_get_ccode_default_value (_tmp135_); _tmp137_ = _tmp136_; _tmp138_ = vala_ccode_constant_new (_tmp137_); _tmp139_ = _tmp138_; vala_ccode_function_call_add_argument (_tmp130_, (ValaCCodeExpression*) _tmp139_); _vala_ccode_node_unref0 (_tmp139_); _g_free0 (_tmp137_); } _vala_code_node_unref0 (e); } else { ValaProperty* _tmp140_; ValaDataType* _tmp141_; ValaDataType* _tmp142_; ValaTypeSymbol* _tmp143_; ValaTypeSymbol* _tmp144_; _tmp140_ = prop; _tmp141_ = vala_property_get_property_type (_tmp140_); _tmp142_ = _tmp141_; _tmp143_ = vala_data_type_get_data_type (_tmp142_); _tmp144_ = _tmp143_; if (VALA_IS_STRUCT (_tmp144_)) { ValaProperty* _tmp145_; ValaDataType* _tmp146_; ValaDataType* _tmp147_; ValaTypeSymbol* _tmp148_; ValaTypeSymbol* _tmp149_; ValaStruct* _tmp150_; ValaStruct* st; ValaStruct* _tmp151_; gchar* _tmp152_ = NULL; gchar* _tmp153_; gboolean _tmp154_; _tmp145_ = prop; _tmp146_ = vala_property_get_property_type (_tmp145_); _tmp147_ = _tmp146_; _tmp148_ = vala_data_type_get_data_type (_tmp147_); _tmp149_ = _tmp148_; _tmp150_ = _vala_code_node_ref0 (VALA_STRUCT (_tmp149_)); st = _tmp150_; _tmp151_ = st; _tmp152_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp151_); _tmp153_ = _tmp152_; _tmp154_ = g_strcmp0 (_tmp153_, "G_TYPE_INT") == 0; _g_free0 (_tmp153_); if (_tmp154_) { ValaCCodeFunctionCall* _tmp155_; ValaCCodeIdentifier* _tmp156_; ValaCCodeIdentifier* _tmp157_; ValaCCodeFunctionCall* _tmp158_; ValaCCodeConstant* _tmp159_; ValaCCodeConstant* _tmp160_; ValaCCodeFunctionCall* _tmp161_; ValaCCodeConstant* _tmp162_; ValaCCodeConstant* _tmp163_; ValaProperty* _tmp164_; ValaExpression* _tmp165_; ValaExpression* _tmp166_; _tmp155_ = cspec; _tmp156_ = vala_ccode_identifier_new ("g_param_spec_int"); _tmp157_ = _tmp156_; vala_ccode_function_call_set_call (_tmp155_, (ValaCCodeExpression*) _tmp157_); _vala_ccode_node_unref0 (_tmp157_); _tmp158_ = cspec; _tmp159_ = vala_ccode_constant_new ("G_MININT"); _tmp160_ = _tmp159_; vala_ccode_function_call_add_argument (_tmp158_, (ValaCCodeExpression*) _tmp160_); _vala_ccode_node_unref0 (_tmp160_); _tmp161_ = cspec; _tmp162_ = vala_ccode_constant_new ("G_MAXINT"); _tmp163_ = _tmp162_; vala_ccode_function_call_add_argument (_tmp161_, (ValaCCodeExpression*) _tmp163_); _vala_ccode_node_unref0 (_tmp163_); _tmp164_ = prop; _tmp165_ = vala_property_get_initializer (_tmp164_); _tmp166_ = _tmp165_; if (_tmp166_ != NULL) { ValaCCodeFunctionCall* _tmp167_; ValaProperty* _tmp168_; ValaExpression* _tmp169_; ValaExpression* _tmp170_; ValaCCodeExpression* _tmp171_ = NULL; ValaCCodeExpression* _tmp172_; _tmp167_ = cspec; _tmp168_ = prop; _tmp169_ = vala_property_get_initializer (_tmp168_); _tmp170_ = _tmp169_; _tmp171_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp170_); _tmp172_ = VALA_CCODE_EXPRESSION (_tmp171_); vala_ccode_function_call_add_argument (_tmp167_, _tmp172_); _vala_ccode_node_unref0 (_tmp172_); } else { ValaCCodeFunctionCall* _tmp173_; ValaCCodeConstant* _tmp174_; ValaCCodeConstant* _tmp175_; _tmp173_ = cspec; _tmp174_ = vala_ccode_constant_new ("0"); _tmp175_ = _tmp174_; vala_ccode_function_call_add_argument (_tmp173_, (ValaCCodeExpression*) _tmp175_); _vala_ccode_node_unref0 (_tmp175_); } } else { ValaStruct* _tmp176_; gchar* _tmp177_ = NULL; gchar* _tmp178_; gboolean _tmp179_; _tmp176_ = st; _tmp177_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp176_); _tmp178_ = _tmp177_; _tmp179_ = g_strcmp0 (_tmp178_, "G_TYPE_UINT") == 0; _g_free0 (_tmp178_); if (_tmp179_) { ValaCCodeFunctionCall* _tmp180_; ValaCCodeIdentifier* _tmp181_; ValaCCodeIdentifier* _tmp182_; ValaCCodeFunctionCall* _tmp183_; ValaCCodeConstant* _tmp184_; ValaCCodeConstant* _tmp185_; ValaCCodeFunctionCall* _tmp186_; ValaCCodeConstant* _tmp187_; ValaCCodeConstant* _tmp188_; ValaProperty* _tmp189_; ValaExpression* _tmp190_; ValaExpression* _tmp191_; _tmp180_ = cspec; _tmp181_ = vala_ccode_identifier_new ("g_param_spec_uint"); _tmp182_ = _tmp181_; vala_ccode_function_call_set_call (_tmp180_, (ValaCCodeExpression*) _tmp182_); _vala_ccode_node_unref0 (_tmp182_); _tmp183_ = cspec; _tmp184_ = vala_ccode_constant_new ("0"); _tmp185_ = _tmp184_; vala_ccode_function_call_add_argument (_tmp183_, (ValaCCodeExpression*) _tmp185_); _vala_ccode_node_unref0 (_tmp185_); _tmp186_ = cspec; _tmp187_ = vala_ccode_constant_new ("G_MAXUINT"); _tmp188_ = _tmp187_; vala_ccode_function_call_add_argument (_tmp186_, (ValaCCodeExpression*) _tmp188_); _vala_ccode_node_unref0 (_tmp188_); _tmp189_ = prop; _tmp190_ = vala_property_get_initializer (_tmp189_); _tmp191_ = _tmp190_; if (_tmp191_ != NULL) { ValaCCodeFunctionCall* _tmp192_; ValaProperty* _tmp193_; ValaExpression* _tmp194_; ValaExpression* _tmp195_; ValaCCodeExpression* _tmp196_ = NULL; ValaCCodeExpression* _tmp197_; _tmp192_ = cspec; _tmp193_ = prop; _tmp194_ = vala_property_get_initializer (_tmp193_); _tmp195_ = _tmp194_; _tmp196_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp195_); _tmp197_ = VALA_CCODE_EXPRESSION (_tmp196_); vala_ccode_function_call_add_argument (_tmp192_, _tmp197_); _vala_ccode_node_unref0 (_tmp197_); } else { ValaCCodeFunctionCall* _tmp198_; ValaCCodeConstant* _tmp199_; ValaCCodeConstant* _tmp200_; _tmp198_ = cspec; _tmp199_ = vala_ccode_constant_new ("0U"); _tmp200_ = _tmp199_; vala_ccode_function_call_add_argument (_tmp198_, (ValaCCodeExpression*) _tmp200_); _vala_ccode_node_unref0 (_tmp200_); } } else { ValaStruct* _tmp201_; gchar* _tmp202_ = NULL; gchar* _tmp203_; gboolean _tmp204_; _tmp201_ = st; _tmp202_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp201_); _tmp203_ = _tmp202_; _tmp204_ = g_strcmp0 (_tmp203_, "G_TYPE_INT64") == 0; _g_free0 (_tmp203_); if (_tmp204_) { ValaCCodeFunctionCall* _tmp205_; ValaCCodeIdentifier* _tmp206_; ValaCCodeIdentifier* _tmp207_; ValaCCodeFunctionCall* _tmp208_; ValaCCodeConstant* _tmp209_; ValaCCodeConstant* _tmp210_; ValaCCodeFunctionCall* _tmp211_; ValaCCodeConstant* _tmp212_; ValaCCodeConstant* _tmp213_; ValaProperty* _tmp214_; ValaExpression* _tmp215_; ValaExpression* _tmp216_; _tmp205_ = cspec; _tmp206_ = vala_ccode_identifier_new ("g_param_spec_int64"); _tmp207_ = _tmp206_; vala_ccode_function_call_set_call (_tmp205_, (ValaCCodeExpression*) _tmp207_); _vala_ccode_node_unref0 (_tmp207_); _tmp208_ = cspec; _tmp209_ = vala_ccode_constant_new ("G_MININT64"); _tmp210_ = _tmp209_; vala_ccode_function_call_add_argument (_tmp208_, (ValaCCodeExpression*) _tmp210_); _vala_ccode_node_unref0 (_tmp210_); _tmp211_ = cspec; _tmp212_ = vala_ccode_constant_new ("G_MAXINT64"); _tmp213_ = _tmp212_; vala_ccode_function_call_add_argument (_tmp211_, (ValaCCodeExpression*) _tmp213_); _vala_ccode_node_unref0 (_tmp213_); _tmp214_ = prop; _tmp215_ = vala_property_get_initializer (_tmp214_); _tmp216_ = _tmp215_; if (_tmp216_ != NULL) { ValaCCodeFunctionCall* _tmp217_; ValaProperty* _tmp218_; ValaExpression* _tmp219_; ValaExpression* _tmp220_; ValaCCodeExpression* _tmp221_ = NULL; ValaCCodeExpression* _tmp222_; _tmp217_ = cspec; _tmp218_ = prop; _tmp219_ = vala_property_get_initializer (_tmp218_); _tmp220_ = _tmp219_; _tmp221_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp220_); _tmp222_ = VALA_CCODE_EXPRESSION (_tmp221_); vala_ccode_function_call_add_argument (_tmp217_, _tmp222_); _vala_ccode_node_unref0 (_tmp222_); } else { ValaCCodeFunctionCall* _tmp223_; ValaCCodeConstant* _tmp224_; ValaCCodeConstant* _tmp225_; _tmp223_ = cspec; _tmp224_ = vala_ccode_constant_new ("0"); _tmp225_ = _tmp224_; vala_ccode_function_call_add_argument (_tmp223_, (ValaCCodeExpression*) _tmp225_); _vala_ccode_node_unref0 (_tmp225_); } } else { ValaStruct* _tmp226_; gchar* _tmp227_ = NULL; gchar* _tmp228_; gboolean _tmp229_; _tmp226_ = st; _tmp227_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp226_); _tmp228_ = _tmp227_; _tmp229_ = g_strcmp0 (_tmp228_, "G_TYPE_UINT64") == 0; _g_free0 (_tmp228_); if (_tmp229_) { ValaCCodeFunctionCall* _tmp230_; ValaCCodeIdentifier* _tmp231_; ValaCCodeIdentifier* _tmp232_; ValaCCodeFunctionCall* _tmp233_; ValaCCodeConstant* _tmp234_; ValaCCodeConstant* _tmp235_; ValaCCodeFunctionCall* _tmp236_; ValaCCodeConstant* _tmp237_; ValaCCodeConstant* _tmp238_; ValaProperty* _tmp239_; ValaExpression* _tmp240_; ValaExpression* _tmp241_; _tmp230_ = cspec; _tmp231_ = vala_ccode_identifier_new ("g_param_spec_uint64"); _tmp232_ = _tmp231_; vala_ccode_function_call_set_call (_tmp230_, (ValaCCodeExpression*) _tmp232_); _vala_ccode_node_unref0 (_tmp232_); _tmp233_ = cspec; _tmp234_ = vala_ccode_constant_new ("0"); _tmp235_ = _tmp234_; vala_ccode_function_call_add_argument (_tmp233_, (ValaCCodeExpression*) _tmp235_); _vala_ccode_node_unref0 (_tmp235_); _tmp236_ = cspec; _tmp237_ = vala_ccode_constant_new ("G_MAXUINT64"); _tmp238_ = _tmp237_; vala_ccode_function_call_add_argument (_tmp236_, (ValaCCodeExpression*) _tmp238_); _vala_ccode_node_unref0 (_tmp238_); _tmp239_ = prop; _tmp240_ = vala_property_get_initializer (_tmp239_); _tmp241_ = _tmp240_; if (_tmp241_ != NULL) { ValaCCodeFunctionCall* _tmp242_; ValaProperty* _tmp243_; ValaExpression* _tmp244_; ValaExpression* _tmp245_; ValaCCodeExpression* _tmp246_ = NULL; ValaCCodeExpression* _tmp247_; _tmp242_ = cspec; _tmp243_ = prop; _tmp244_ = vala_property_get_initializer (_tmp243_); _tmp245_ = _tmp244_; _tmp246_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp245_); _tmp247_ = VALA_CCODE_EXPRESSION (_tmp246_); vala_ccode_function_call_add_argument (_tmp242_, _tmp247_); _vala_ccode_node_unref0 (_tmp247_); } else { ValaCCodeFunctionCall* _tmp248_; ValaCCodeConstant* _tmp249_; ValaCCodeConstant* _tmp250_; _tmp248_ = cspec; _tmp249_ = vala_ccode_constant_new ("0U"); _tmp250_ = _tmp249_; vala_ccode_function_call_add_argument (_tmp248_, (ValaCCodeExpression*) _tmp250_); _vala_ccode_node_unref0 (_tmp250_); } } else { ValaStruct* _tmp251_; gchar* _tmp252_ = NULL; gchar* _tmp253_; gboolean _tmp254_; _tmp251_ = st; _tmp252_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp251_); _tmp253_ = _tmp252_; _tmp254_ = g_strcmp0 (_tmp253_, "G_TYPE_LONG") == 0; _g_free0 (_tmp253_); if (_tmp254_) { ValaCCodeFunctionCall* _tmp255_; ValaCCodeIdentifier* _tmp256_; ValaCCodeIdentifier* _tmp257_; ValaCCodeFunctionCall* _tmp258_; ValaCCodeConstant* _tmp259_; ValaCCodeConstant* _tmp260_; ValaCCodeFunctionCall* _tmp261_; ValaCCodeConstant* _tmp262_; ValaCCodeConstant* _tmp263_; ValaProperty* _tmp264_; ValaExpression* _tmp265_; ValaExpression* _tmp266_; _tmp255_ = cspec; _tmp256_ = vala_ccode_identifier_new ("g_param_spec_long"); _tmp257_ = _tmp256_; vala_ccode_function_call_set_call (_tmp255_, (ValaCCodeExpression*) _tmp257_); _vala_ccode_node_unref0 (_tmp257_); _tmp258_ = cspec; _tmp259_ = vala_ccode_constant_new ("G_MINLONG"); _tmp260_ = _tmp259_; vala_ccode_function_call_add_argument (_tmp258_, (ValaCCodeExpression*) _tmp260_); _vala_ccode_node_unref0 (_tmp260_); _tmp261_ = cspec; _tmp262_ = vala_ccode_constant_new ("G_MAXLONG"); _tmp263_ = _tmp262_; vala_ccode_function_call_add_argument (_tmp261_, (ValaCCodeExpression*) _tmp263_); _vala_ccode_node_unref0 (_tmp263_); _tmp264_ = prop; _tmp265_ = vala_property_get_initializer (_tmp264_); _tmp266_ = _tmp265_; if (_tmp266_ != NULL) { ValaCCodeFunctionCall* _tmp267_; ValaProperty* _tmp268_; ValaExpression* _tmp269_; ValaExpression* _tmp270_; ValaCCodeExpression* _tmp271_ = NULL; ValaCCodeExpression* _tmp272_; _tmp267_ = cspec; _tmp268_ = prop; _tmp269_ = vala_property_get_initializer (_tmp268_); _tmp270_ = _tmp269_; _tmp271_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp270_); _tmp272_ = VALA_CCODE_EXPRESSION (_tmp271_); vala_ccode_function_call_add_argument (_tmp267_, _tmp272_); _vala_ccode_node_unref0 (_tmp272_); } else { ValaCCodeFunctionCall* _tmp273_; ValaCCodeConstant* _tmp274_; ValaCCodeConstant* _tmp275_; _tmp273_ = cspec; _tmp274_ = vala_ccode_constant_new ("0L"); _tmp275_ = _tmp274_; vala_ccode_function_call_add_argument (_tmp273_, (ValaCCodeExpression*) _tmp275_); _vala_ccode_node_unref0 (_tmp275_); } } else { ValaStruct* _tmp276_; gchar* _tmp277_ = NULL; gchar* _tmp278_; gboolean _tmp279_; _tmp276_ = st; _tmp277_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp276_); _tmp278_ = _tmp277_; _tmp279_ = g_strcmp0 (_tmp278_, "G_TYPE_ULONG") == 0; _g_free0 (_tmp278_); if (_tmp279_) { ValaCCodeFunctionCall* _tmp280_; ValaCCodeIdentifier* _tmp281_; ValaCCodeIdentifier* _tmp282_; ValaCCodeFunctionCall* _tmp283_; ValaCCodeConstant* _tmp284_; ValaCCodeConstant* _tmp285_; ValaCCodeFunctionCall* _tmp286_; ValaCCodeConstant* _tmp287_; ValaCCodeConstant* _tmp288_; ValaProperty* _tmp289_; ValaExpression* _tmp290_; ValaExpression* _tmp291_; _tmp280_ = cspec; _tmp281_ = vala_ccode_identifier_new ("g_param_spec_ulong"); _tmp282_ = _tmp281_; vala_ccode_function_call_set_call (_tmp280_, (ValaCCodeExpression*) _tmp282_); _vala_ccode_node_unref0 (_tmp282_); _tmp283_ = cspec; _tmp284_ = vala_ccode_constant_new ("0"); _tmp285_ = _tmp284_; vala_ccode_function_call_add_argument (_tmp283_, (ValaCCodeExpression*) _tmp285_); _vala_ccode_node_unref0 (_tmp285_); _tmp286_ = cspec; _tmp287_ = vala_ccode_constant_new ("G_MAXULONG"); _tmp288_ = _tmp287_; vala_ccode_function_call_add_argument (_tmp286_, (ValaCCodeExpression*) _tmp288_); _vala_ccode_node_unref0 (_tmp288_); _tmp289_ = prop; _tmp290_ = vala_property_get_initializer (_tmp289_); _tmp291_ = _tmp290_; if (_tmp291_ != NULL) { ValaCCodeFunctionCall* _tmp292_; ValaProperty* _tmp293_; ValaExpression* _tmp294_; ValaExpression* _tmp295_; ValaCCodeExpression* _tmp296_ = NULL; ValaCCodeExpression* _tmp297_; _tmp292_ = cspec; _tmp293_ = prop; _tmp294_ = vala_property_get_initializer (_tmp293_); _tmp295_ = _tmp294_; _tmp296_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp295_); _tmp297_ = VALA_CCODE_EXPRESSION (_tmp296_); vala_ccode_function_call_add_argument (_tmp292_, _tmp297_); _vala_ccode_node_unref0 (_tmp297_); } else { ValaCCodeFunctionCall* _tmp298_; ValaCCodeConstant* _tmp299_; ValaCCodeConstant* _tmp300_; _tmp298_ = cspec; _tmp299_ = vala_ccode_constant_new ("0UL"); _tmp300_ = _tmp299_; vala_ccode_function_call_add_argument (_tmp298_, (ValaCCodeExpression*) _tmp300_); _vala_ccode_node_unref0 (_tmp300_); } } else { ValaStruct* _tmp301_; gchar* _tmp302_ = NULL; gchar* _tmp303_; gboolean _tmp304_; _tmp301_ = st; _tmp302_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp301_); _tmp303_ = _tmp302_; _tmp304_ = g_strcmp0 (_tmp303_, "G_TYPE_BOOLEAN") == 0; _g_free0 (_tmp303_); if (_tmp304_) { ValaCCodeFunctionCall* _tmp305_; ValaCCodeIdentifier* _tmp306_; ValaCCodeIdentifier* _tmp307_; ValaProperty* _tmp308_; ValaExpression* _tmp309_; ValaExpression* _tmp310_; _tmp305_ = cspec; _tmp306_ = vala_ccode_identifier_new ("g_param_spec_boolean"); _tmp307_ = _tmp306_; vala_ccode_function_call_set_call (_tmp305_, (ValaCCodeExpression*) _tmp307_); _vala_ccode_node_unref0 (_tmp307_); _tmp308_ = prop; _tmp309_ = vala_property_get_initializer (_tmp308_); _tmp310_ = _tmp309_; if (_tmp310_ != NULL) { ValaCCodeFunctionCall* _tmp311_; ValaProperty* _tmp312_; ValaExpression* _tmp313_; ValaExpression* _tmp314_; ValaCCodeExpression* _tmp315_ = NULL; ValaCCodeExpression* _tmp316_; _tmp311_ = cspec; _tmp312_ = prop; _tmp313_ = vala_property_get_initializer (_tmp312_); _tmp314_ = _tmp313_; _tmp315_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp314_); _tmp316_ = VALA_CCODE_EXPRESSION (_tmp315_); vala_ccode_function_call_add_argument (_tmp311_, _tmp316_); _vala_ccode_node_unref0 (_tmp316_); } else { ValaCCodeFunctionCall* _tmp317_; ValaCCodeConstant* _tmp318_; ValaCCodeConstant* _tmp319_; _tmp317_ = cspec; _tmp318_ = vala_ccode_constant_new ("FALSE"); _tmp319_ = _tmp318_; vala_ccode_function_call_add_argument (_tmp317_, (ValaCCodeExpression*) _tmp319_); _vala_ccode_node_unref0 (_tmp319_); } } else { ValaStruct* _tmp320_; gchar* _tmp321_ = NULL; gchar* _tmp322_; gboolean _tmp323_; _tmp320_ = st; _tmp321_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp320_); _tmp322_ = _tmp321_; _tmp323_ = g_strcmp0 (_tmp322_, "G_TYPE_CHAR") == 0; _g_free0 (_tmp322_); if (_tmp323_) { ValaCCodeFunctionCall* _tmp324_; ValaCCodeIdentifier* _tmp325_; ValaCCodeIdentifier* _tmp326_; ValaCCodeFunctionCall* _tmp327_; ValaCCodeConstant* _tmp328_; ValaCCodeConstant* _tmp329_; ValaCCodeFunctionCall* _tmp330_; ValaCCodeConstant* _tmp331_; ValaCCodeConstant* _tmp332_; ValaProperty* _tmp333_; ValaExpression* _tmp334_; ValaExpression* _tmp335_; _tmp324_ = cspec; _tmp325_ = vala_ccode_identifier_new ("g_param_spec_char"); _tmp326_ = _tmp325_; vala_ccode_function_call_set_call (_tmp324_, (ValaCCodeExpression*) _tmp326_); _vala_ccode_node_unref0 (_tmp326_); _tmp327_ = cspec; _tmp328_ = vala_ccode_constant_new ("G_MININT8"); _tmp329_ = _tmp328_; vala_ccode_function_call_add_argument (_tmp327_, (ValaCCodeExpression*) _tmp329_); _vala_ccode_node_unref0 (_tmp329_); _tmp330_ = cspec; _tmp331_ = vala_ccode_constant_new ("G_MAXINT8"); _tmp332_ = _tmp331_; vala_ccode_function_call_add_argument (_tmp330_, (ValaCCodeExpression*) _tmp332_); _vala_ccode_node_unref0 (_tmp332_); _tmp333_ = prop; _tmp334_ = vala_property_get_initializer (_tmp333_); _tmp335_ = _tmp334_; if (_tmp335_ != NULL) { ValaCCodeFunctionCall* _tmp336_; ValaProperty* _tmp337_; ValaExpression* _tmp338_; ValaExpression* _tmp339_; ValaCCodeExpression* _tmp340_ = NULL; ValaCCodeExpression* _tmp341_; _tmp336_ = cspec; _tmp337_ = prop; _tmp338_ = vala_property_get_initializer (_tmp337_); _tmp339_ = _tmp338_; _tmp340_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp339_); _tmp341_ = VALA_CCODE_EXPRESSION (_tmp340_); vala_ccode_function_call_add_argument (_tmp336_, _tmp341_); _vala_ccode_node_unref0 (_tmp341_); } else { ValaCCodeFunctionCall* _tmp342_; ValaCCodeConstant* _tmp343_; ValaCCodeConstant* _tmp344_; _tmp342_ = cspec; _tmp343_ = vala_ccode_constant_new ("0"); _tmp344_ = _tmp343_; vala_ccode_function_call_add_argument (_tmp342_, (ValaCCodeExpression*) _tmp344_); _vala_ccode_node_unref0 (_tmp344_); } } else { ValaStruct* _tmp345_; gchar* _tmp346_ = NULL; gchar* _tmp347_; gboolean _tmp348_; _tmp345_ = st; _tmp346_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp345_); _tmp347_ = _tmp346_; _tmp348_ = g_strcmp0 (_tmp347_, "G_TYPE_UCHAR") == 0; _g_free0 (_tmp347_); if (_tmp348_) { ValaCCodeFunctionCall* _tmp349_; ValaCCodeIdentifier* _tmp350_; ValaCCodeIdentifier* _tmp351_; ValaCCodeFunctionCall* _tmp352_; ValaCCodeConstant* _tmp353_; ValaCCodeConstant* _tmp354_; ValaCCodeFunctionCall* _tmp355_; ValaCCodeConstant* _tmp356_; ValaCCodeConstant* _tmp357_; ValaProperty* _tmp358_; ValaExpression* _tmp359_; ValaExpression* _tmp360_; _tmp349_ = cspec; _tmp350_ = vala_ccode_identifier_new ("g_param_spec_uchar"); _tmp351_ = _tmp350_; vala_ccode_function_call_set_call (_tmp349_, (ValaCCodeExpression*) _tmp351_); _vala_ccode_node_unref0 (_tmp351_); _tmp352_ = cspec; _tmp353_ = vala_ccode_constant_new ("0"); _tmp354_ = _tmp353_; vala_ccode_function_call_add_argument (_tmp352_, (ValaCCodeExpression*) _tmp354_); _vala_ccode_node_unref0 (_tmp354_); _tmp355_ = cspec; _tmp356_ = vala_ccode_constant_new ("G_MAXUINT8"); _tmp357_ = _tmp356_; vala_ccode_function_call_add_argument (_tmp355_, (ValaCCodeExpression*) _tmp357_); _vala_ccode_node_unref0 (_tmp357_); _tmp358_ = prop; _tmp359_ = vala_property_get_initializer (_tmp358_); _tmp360_ = _tmp359_; if (_tmp360_ != NULL) { ValaCCodeFunctionCall* _tmp361_; ValaProperty* _tmp362_; ValaExpression* _tmp363_; ValaExpression* _tmp364_; ValaCCodeExpression* _tmp365_ = NULL; ValaCCodeExpression* _tmp366_; _tmp361_ = cspec; _tmp362_ = prop; _tmp363_ = vala_property_get_initializer (_tmp362_); _tmp364_ = _tmp363_; _tmp365_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp364_); _tmp366_ = VALA_CCODE_EXPRESSION (_tmp365_); vala_ccode_function_call_add_argument (_tmp361_, _tmp366_); _vala_ccode_node_unref0 (_tmp366_); } else { ValaCCodeFunctionCall* _tmp367_; ValaCCodeConstant* _tmp368_; ValaCCodeConstant* _tmp369_; _tmp367_ = cspec; _tmp368_ = vala_ccode_constant_new ("0"); _tmp369_ = _tmp368_; vala_ccode_function_call_add_argument (_tmp367_, (ValaCCodeExpression*) _tmp369_); _vala_ccode_node_unref0 (_tmp369_); } } else { ValaStruct* _tmp370_; gchar* _tmp371_ = NULL; gchar* _tmp372_; gboolean _tmp373_; _tmp370_ = st; _tmp371_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp370_); _tmp372_ = _tmp371_; _tmp373_ = g_strcmp0 (_tmp372_, "G_TYPE_FLOAT") == 0; _g_free0 (_tmp372_); if (_tmp373_) { ValaCCodeFunctionCall* _tmp374_; ValaCCodeIdentifier* _tmp375_; ValaCCodeIdentifier* _tmp376_; ValaCCodeFunctionCall* _tmp377_; ValaCCodeConstant* _tmp378_; ValaCCodeConstant* _tmp379_; ValaCCodeFunctionCall* _tmp380_; ValaCCodeConstant* _tmp381_; ValaCCodeConstant* _tmp382_; ValaProperty* _tmp383_; ValaExpression* _tmp384_; ValaExpression* _tmp385_; _tmp374_ = cspec; _tmp375_ = vala_ccode_identifier_new ("g_param_spec_float"); _tmp376_ = _tmp375_; vala_ccode_function_call_set_call (_tmp374_, (ValaCCodeExpression*) _tmp376_); _vala_ccode_node_unref0 (_tmp376_); _tmp377_ = cspec; _tmp378_ = vala_ccode_constant_new ("-G_MAXFLOAT"); _tmp379_ = _tmp378_; vala_ccode_function_call_add_argument (_tmp377_, (ValaCCodeExpression*) _tmp379_); _vala_ccode_node_unref0 (_tmp379_); _tmp380_ = cspec; _tmp381_ = vala_ccode_constant_new ("G_MAXFLOAT"); _tmp382_ = _tmp381_; vala_ccode_function_call_add_argument (_tmp380_, (ValaCCodeExpression*) _tmp382_); _vala_ccode_node_unref0 (_tmp382_); _tmp383_ = prop; _tmp384_ = vala_property_get_initializer (_tmp383_); _tmp385_ = _tmp384_; if (_tmp385_ != NULL) { ValaCCodeFunctionCall* _tmp386_; ValaProperty* _tmp387_; ValaExpression* _tmp388_; ValaExpression* _tmp389_; ValaCCodeExpression* _tmp390_ = NULL; ValaCCodeExpression* _tmp391_; _tmp386_ = cspec; _tmp387_ = prop; _tmp388_ = vala_property_get_initializer (_tmp387_); _tmp389_ = _tmp388_; _tmp390_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp389_); _tmp391_ = VALA_CCODE_EXPRESSION (_tmp390_); vala_ccode_function_call_add_argument (_tmp386_, _tmp391_); _vala_ccode_node_unref0 (_tmp391_); } else { ValaCCodeFunctionCall* _tmp392_; ValaCCodeConstant* _tmp393_; ValaCCodeConstant* _tmp394_; _tmp392_ = cspec; _tmp393_ = vala_ccode_constant_new ("0.0F"); _tmp394_ = _tmp393_; vala_ccode_function_call_add_argument (_tmp392_, (ValaCCodeExpression*) _tmp394_); _vala_ccode_node_unref0 (_tmp394_); } } else { ValaStruct* _tmp395_; gchar* _tmp396_ = NULL; gchar* _tmp397_; gboolean _tmp398_; _tmp395_ = st; _tmp396_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp395_); _tmp397_ = _tmp396_; _tmp398_ = g_strcmp0 (_tmp397_, "G_TYPE_DOUBLE") == 0; _g_free0 (_tmp397_); if (_tmp398_) { ValaCCodeFunctionCall* _tmp399_; ValaCCodeIdentifier* _tmp400_; ValaCCodeIdentifier* _tmp401_; ValaCCodeFunctionCall* _tmp402_; ValaCCodeConstant* _tmp403_; ValaCCodeConstant* _tmp404_; ValaCCodeFunctionCall* _tmp405_; ValaCCodeConstant* _tmp406_; ValaCCodeConstant* _tmp407_; ValaProperty* _tmp408_; ValaExpression* _tmp409_; ValaExpression* _tmp410_; _tmp399_ = cspec; _tmp400_ = vala_ccode_identifier_new ("g_param_spec_double"); _tmp401_ = _tmp400_; vala_ccode_function_call_set_call (_tmp399_, (ValaCCodeExpression*) _tmp401_); _vala_ccode_node_unref0 (_tmp401_); _tmp402_ = cspec; _tmp403_ = vala_ccode_constant_new ("-G_MAXDOUBLE"); _tmp404_ = _tmp403_; vala_ccode_function_call_add_argument (_tmp402_, (ValaCCodeExpression*) _tmp404_); _vala_ccode_node_unref0 (_tmp404_); _tmp405_ = cspec; _tmp406_ = vala_ccode_constant_new ("G_MAXDOUBLE"); _tmp407_ = _tmp406_; vala_ccode_function_call_add_argument (_tmp405_, (ValaCCodeExpression*) _tmp407_); _vala_ccode_node_unref0 (_tmp407_); _tmp408_ = prop; _tmp409_ = vala_property_get_initializer (_tmp408_); _tmp410_ = _tmp409_; if (_tmp410_ != NULL) { ValaCCodeFunctionCall* _tmp411_; ValaProperty* _tmp412_; ValaExpression* _tmp413_; ValaExpression* _tmp414_; ValaCCodeExpression* _tmp415_ = NULL; ValaCCodeExpression* _tmp416_; _tmp411_ = cspec; _tmp412_ = prop; _tmp413_ = vala_property_get_initializer (_tmp412_); _tmp414_ = _tmp413_; _tmp415_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp414_); _tmp416_ = VALA_CCODE_EXPRESSION (_tmp415_); vala_ccode_function_call_add_argument (_tmp411_, _tmp416_); _vala_ccode_node_unref0 (_tmp416_); } else { ValaCCodeFunctionCall* _tmp417_; ValaCCodeConstant* _tmp418_; ValaCCodeConstant* _tmp419_; _tmp417_ = cspec; _tmp418_ = vala_ccode_constant_new ("0.0"); _tmp419_ = _tmp418_; vala_ccode_function_call_add_argument (_tmp417_, (ValaCCodeExpression*) _tmp419_); _vala_ccode_node_unref0 (_tmp419_); } } else { ValaStruct* _tmp420_; gchar* _tmp421_ = NULL; gchar* _tmp422_; gboolean _tmp423_; _tmp420_ = st; _tmp421_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp420_); _tmp422_ = _tmp421_; _tmp423_ = g_strcmp0 (_tmp422_, "G_TYPE_GTYPE") == 0; _g_free0 (_tmp422_); if (_tmp423_) { ValaCCodeFunctionCall* _tmp424_; ValaCCodeIdentifier* _tmp425_; ValaCCodeIdentifier* _tmp426_; ValaProperty* _tmp427_; ValaExpression* _tmp428_; ValaExpression* _tmp429_; _tmp424_ = cspec; _tmp425_ = vala_ccode_identifier_new ("g_param_spec_gtype"); _tmp426_ = _tmp425_; vala_ccode_function_call_set_call (_tmp424_, (ValaCCodeExpression*) _tmp426_); _vala_ccode_node_unref0 (_tmp426_); _tmp427_ = prop; _tmp428_ = vala_property_get_initializer (_tmp427_); _tmp429_ = _tmp428_; if (_tmp429_ != NULL) { ValaCCodeFunctionCall* _tmp430_; ValaProperty* _tmp431_; ValaExpression* _tmp432_; ValaExpression* _tmp433_; ValaCCodeExpression* _tmp434_ = NULL; ValaCCodeExpression* _tmp435_; _tmp430_ = cspec; _tmp431_ = prop; _tmp432_ = vala_property_get_initializer (_tmp431_); _tmp433_ = _tmp432_; _tmp434_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp433_); _tmp435_ = VALA_CCODE_EXPRESSION (_tmp434_); vala_ccode_function_call_add_argument (_tmp430_, _tmp435_); _vala_ccode_node_unref0 (_tmp435_); } else { ValaCCodeFunctionCall* _tmp436_; ValaCCodeConstant* _tmp437_; ValaCCodeConstant* _tmp438_; _tmp436_ = cspec; _tmp437_ = vala_ccode_constant_new ("G_TYPE_NONE"); _tmp438_ = _tmp437_; vala_ccode_function_call_add_argument (_tmp436_, (ValaCCodeExpression*) _tmp438_); _vala_ccode_node_unref0 (_tmp438_); } } else { ValaCCodeFunctionCall* _tmp439_; ValaCCodeIdentifier* _tmp440_; ValaCCodeIdentifier* _tmp441_; ValaCCodeFunctionCall* _tmp442_; ValaStruct* _tmp443_; gchar* _tmp444_ = NULL; gchar* _tmp445_; ValaCCodeIdentifier* _tmp446_; ValaCCodeIdentifier* _tmp447_; _tmp439_ = cspec; _tmp440_ = vala_ccode_identifier_new ("g_param_spec_boxed"); _tmp441_ = _tmp440_; vala_ccode_function_call_set_call (_tmp439_, (ValaCCodeExpression*) _tmp441_); _vala_ccode_node_unref0 (_tmp441_); _tmp442_ = cspec; _tmp443_ = st; _tmp444_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp443_); _tmp445_ = _tmp444_; _tmp446_ = vala_ccode_identifier_new (_tmp445_); _tmp447_ = _tmp446_; vala_ccode_function_call_add_argument (_tmp442_, (ValaCCodeExpression*) _tmp447_); _vala_ccode_node_unref0 (_tmp447_); _g_free0 (_tmp445_); } } } } } } } } } } } } _vala_code_node_unref0 (st); } else { gboolean _tmp448_ = FALSE; ValaProperty* _tmp449_; ValaDataType* _tmp450_; ValaDataType* _tmp451_; gboolean _tmp462_; _tmp449_ = prop; _tmp450_ = vala_property_get_property_type (_tmp449_); _tmp451_ = _tmp450_; if (VALA_IS_ARRAY_TYPE (_tmp451_)) { ValaProperty* _tmp452_; ValaDataType* _tmp453_; ValaDataType* _tmp454_; ValaDataType* _tmp455_; ValaDataType* _tmp456_; ValaTypeSymbol* _tmp457_; ValaTypeSymbol* _tmp458_; ValaDataType* _tmp459_; ValaTypeSymbol* _tmp460_; ValaTypeSymbol* _tmp461_; _tmp452_ = prop; _tmp453_ = vala_property_get_property_type (_tmp452_); _tmp454_ = _tmp453_; _tmp455_ = vala_array_type_get_element_type (VALA_ARRAY_TYPE (_tmp454_)); _tmp456_ = _tmp455_; _tmp457_ = vala_data_type_get_data_type (_tmp456_); _tmp458_ = _tmp457_; _tmp459_ = ((ValaCCodeBaseModule*) self)->string_type; _tmp460_ = vala_data_type_get_data_type (_tmp459_); _tmp461_ = _tmp460_; _tmp448_ = _tmp458_ == _tmp461_; } else { _tmp448_ = FALSE; } _tmp462_ = _tmp448_; if (_tmp462_) { ValaCCodeFunctionCall* _tmp463_; ValaCCodeIdentifier* _tmp464_; ValaCCodeIdentifier* _tmp465_; ValaCCodeFunctionCall* _tmp466_; ValaCCodeIdentifier* _tmp467_; ValaCCodeIdentifier* _tmp468_; _tmp463_ = cspec; _tmp464_ = vala_ccode_identifier_new ("g_param_spec_boxed"); _tmp465_ = _tmp464_; vala_ccode_function_call_set_call (_tmp463_, (ValaCCodeExpression*) _tmp465_); _vala_ccode_node_unref0 (_tmp465_); _tmp466_ = cspec; _tmp467_ = vala_ccode_identifier_new ("G_TYPE_STRV"); _tmp468_ = _tmp467_; vala_ccode_function_call_add_argument (_tmp466_, (ValaCCodeExpression*) _tmp468_); _vala_ccode_node_unref0 (_tmp468_); } else { ValaCCodeFunctionCall* _tmp469_; ValaCCodeIdentifier* _tmp470_; ValaCCodeIdentifier* _tmp471_; _tmp469_ = cspec; _tmp470_ = vala_ccode_identifier_new ("g_param_spec_pointer"); _tmp471_ = _tmp470_; vala_ccode_function_call_set_call (_tmp469_, (ValaCCodeExpression*) _tmp471_); _vala_ccode_node_unref0 (_tmp471_); } } } } _tmp472_ = g_strdup ("G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB"); pflags = _tmp472_; _tmp474_ = prop; _tmp475_ = vala_property_get_get_accessor (_tmp474_); _tmp476_ = _tmp475_; if (_tmp476_ != NULL) { ValaProperty* _tmp477_; ValaPropertyAccessor* _tmp478_; ValaPropertyAccessor* _tmp479_; ValaSymbolAccessibility _tmp480_; ValaSymbolAccessibility _tmp481_; _tmp477_ = prop; _tmp478_ = vala_property_get_get_accessor (_tmp477_); _tmp479_ = _tmp478_; _tmp480_ = vala_symbol_get_access ((ValaSymbol*) _tmp479_); _tmp481_ = _tmp480_; _tmp473_ = _tmp481_ != VALA_SYMBOL_ACCESSIBILITY_PRIVATE; } else { _tmp473_ = FALSE; } _tmp482_ = _tmp473_; if (_tmp482_) { const gchar* _tmp483_; gchar* _tmp484_ = NULL; _tmp483_ = pflags; _tmp484_ = g_strdup_printf ("%s%s", _tmp483_, " | G_PARAM_READABLE"); _g_free0 (pflags); pflags = _tmp484_; } _tmp486_ = prop; _tmp487_ = vala_property_get_set_accessor (_tmp486_); _tmp488_ = _tmp487_; if (_tmp488_ != NULL) { ValaProperty* _tmp489_; ValaPropertyAccessor* _tmp490_; ValaPropertyAccessor* _tmp491_; ValaSymbolAccessibility _tmp492_; ValaSymbolAccessibility _tmp493_; _tmp489_ = prop; _tmp490_ = vala_property_get_set_accessor (_tmp489_); _tmp491_ = _tmp490_; _tmp492_ = vala_symbol_get_access ((ValaSymbol*) _tmp491_); _tmp493_ = _tmp492_; _tmp485_ = _tmp493_ != VALA_SYMBOL_ACCESSIBILITY_PRIVATE; } else { _tmp485_ = FALSE; } _tmp494_ = _tmp485_; if (_tmp494_) { const gchar* _tmp495_; gchar* _tmp496_ = NULL; ValaProperty* _tmp497_; ValaPropertyAccessor* _tmp498_; ValaPropertyAccessor* _tmp499_; gboolean _tmp500_; gboolean _tmp501_; _tmp495_ = pflags; _tmp496_ = g_strdup_printf ("%s%s", _tmp495_, " | G_PARAM_WRITABLE"); _g_free0 (pflags); pflags = _tmp496_; _tmp497_ = prop; _tmp498_ = vala_property_get_set_accessor (_tmp497_); _tmp499_ = _tmp498_; _tmp500_ = vala_property_accessor_get_construction (_tmp499_); _tmp501_ = _tmp500_; if (_tmp501_) { ValaProperty* _tmp502_; ValaPropertyAccessor* _tmp503_; ValaPropertyAccessor* _tmp504_; gboolean _tmp505_; gboolean _tmp506_; _tmp502_ = prop; _tmp503_ = vala_property_get_set_accessor (_tmp502_); _tmp504_ = _tmp503_; _tmp505_ = vala_property_accessor_get_writable (_tmp504_); _tmp506_ = _tmp505_; if (_tmp506_) { const gchar* _tmp507_; gchar* _tmp508_ = NULL; _tmp507_ = pflags; _tmp508_ = g_strdup_printf ("%s%s", _tmp507_, " | G_PARAM_CONSTRUCT"); _g_free0 (pflags); pflags = _tmp508_; } else { const gchar* _tmp509_; gchar* _tmp510_ = NULL; _tmp509_ = pflags; _tmp510_ = g_strdup_printf ("%s%s", _tmp509_, " | G_PARAM_CONSTRUCT_ONLY"); _g_free0 (pflags); pflags = _tmp510_; } } } _tmp511_ = cspec; _tmp512_ = pflags; _tmp513_ = vala_ccode_constant_new (_tmp512_); _tmp514_ = _tmp513_; vala_ccode_function_call_add_argument (_tmp511_, (ValaCCodeExpression*) _tmp514_); _vala_ccode_node_unref0 (_tmp514_); result = cspec; _g_free0 (pflags); _g_free0 (blurb); _g_free0 (nick); return result; } static void vala_gtype_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space) { ValaGTypeModule * self; ValaCCodeFile* _tmp0_; ValaInterface* _tmp1_; ValaInterface* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; gboolean _tmp5_ = FALSE; gboolean _tmp6_; ValaInterface* _tmp32_; gchar* _tmp33_ = NULL; gchar* _tmp34_; gchar* _tmp35_ = NULL; gchar* _tmp36_; ValaCCodeStruct* _tmp37_; ValaCCodeStruct* _tmp38_; ValaCCodeStruct* type_struct; ValaCCodeFile* _tmp39_; ValaCCodeNewline* _tmp40_; ValaCCodeNewline* _tmp41_; ValaInterface* _tmp42_; gchar* _tmp43_ = NULL; gchar* _tmp44_; gchar* _tmp45_ = NULL; gchar* _tmp46_; gchar* macro; ValaCCodeFile* _tmp47_; ValaInterface* _tmp48_; gchar* _tmp49_ = NULL; gchar* _tmp50_; const gchar* _tmp51_; ValaCCodeMacroReplacement* _tmp52_; ValaCCodeMacroReplacement* _tmp53_; ValaInterface* _tmp54_; gchar* _tmp55_ = NULL; gchar* _tmp56_; ValaInterface* _tmp57_; gchar* _tmp58_ = NULL; gchar* _tmp59_; gchar* _tmp60_ = NULL; ValaCCodeFile* _tmp61_; ValaInterface* _tmp62_; gchar* _tmp63_ = NULL; gchar* _tmp64_; gchar* _tmp65_ = NULL; gchar* _tmp66_; const gchar* _tmp67_; ValaCCodeMacroReplacement* _tmp68_; ValaCCodeMacroReplacement* _tmp69_; ValaInterface* _tmp70_; gchar* _tmp71_ = NULL; gchar* _tmp72_; gchar* _tmp73_ = NULL; ValaCCodeFile* _tmp74_; ValaInterface* _tmp75_; gchar* _tmp76_ = NULL; gchar* _tmp77_; gchar* _tmp78_ = NULL; gchar* _tmp79_; const gchar* _tmp80_; ValaCCodeMacroReplacement* _tmp81_; ValaCCodeMacroReplacement* _tmp82_; ValaInterface* _tmp83_; gchar* _tmp84_ = NULL; gchar* _tmp85_; ValaInterface* _tmp86_; gchar* _tmp87_ = NULL; gchar* _tmp88_; gchar* _tmp89_ = NULL; ValaCCodeFile* _tmp90_; ValaInterface* _tmp91_; gchar* _tmp92_ = NULL; gchar* _tmp93_; gchar* _tmp94_ = NULL; gchar* _tmp95_; const gchar* _tmp96_; ValaCCodeMacroReplacement* _tmp97_; ValaCCodeMacroReplacement* _tmp98_; ValaCCodeFile* _tmp99_; ValaCCodeNewline* _tmp100_; ValaCCodeNewline* _tmp101_; ValaCCodeFile* _tmp102_; ValaInterface* _tmp103_; gchar* _tmp104_ = NULL; gchar* _tmp105_; gchar* _tmp106_ = NULL; gchar* _tmp107_; ValaInterface* _tmp108_; gchar* _tmp109_ = NULL; gchar* _tmp110_; ValaCCodeVariableDeclarator* _tmp111_; ValaCCodeVariableDeclarator* _tmp112_; ValaCCodeTypeDefinition* _tmp113_; ValaCCodeTypeDefinition* _tmp114_; ValaCCodeFile* _tmp115_; ValaCCodeStruct* _tmp116_; const gchar* _tmp117_; const gchar* _tmp118_; gchar* _tmp119_ = NULL; gchar* _tmp120_; ValaInterface* _tmp121_; gchar* _tmp122_ = NULL; gchar* _tmp123_; ValaCCodeVariableDeclarator* _tmp124_; ValaCCodeVariableDeclarator* _tmp125_; ValaCCodeTypeDefinition* _tmp126_; ValaCCodeTypeDefinition* _tmp127_; ValaCCodeStruct* _tmp128_; ValaCCodeFile* _tmp317_; ValaCCodeStruct* _tmp318_; ValaInterface* _tmp319_; ValaCodeContext* _tmp320_; ValaCodeContext* _tmp321_; ValaInterfaceRegisterFunction* _tmp322_; ValaInterfaceRegisterFunction* type_fun; ValaInterfaceRegisterFunction* _tmp323_; gboolean _tmp324_; ValaCCodeFile* _tmp325_; ValaInterfaceRegisterFunction* _tmp326_; ValaCCodeFragment* _tmp327_ = NULL; ValaCCodeFragment* _tmp328_; self = (ValaGTypeModule*) base; g_return_if_fail (iface != NULL); g_return_if_fail (decl_space != NULL); _tmp0_ = decl_space; _tmp1_ = iface; _tmp2_ = iface; _tmp3_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, _tmp0_, (ValaSymbol*) _tmp1_, _tmp4_); _tmp6_ = _tmp5_; _g_free0 (_tmp4_); if (_tmp6_) { return; } { ValaInterface* _tmp7_; ValaList* _tmp8_ = NULL; ValaList* _prerequisite_list; ValaList* _tmp9_; gint _tmp10_; gint _tmp11_; gint _prerequisite_size; gint _prerequisite_index; _tmp7_ = iface; _tmp8_ = vala_interface_get_prerequisites (_tmp7_); _prerequisite_list = _tmp8_; _tmp9_ = _prerequisite_list; _tmp10_ = vala_collection_get_size ((ValaCollection*) _tmp9_); _tmp11_ = _tmp10_; _prerequisite_size = _tmp11_; _prerequisite_index = -1; while (TRUE) { gint _tmp12_; gint _tmp13_; gint _tmp14_; ValaList* _tmp15_; gint _tmp16_; gpointer _tmp17_ = NULL; ValaDataType* prerequisite; ValaDataType* _tmp18_; ValaTypeSymbol* _tmp19_; ValaTypeSymbol* _tmp20_; ValaClass* _tmp21_; ValaClass* prereq_cl; ValaDataType* _tmp22_; ValaTypeSymbol* _tmp23_; ValaTypeSymbol* _tmp24_; ValaInterface* _tmp25_; ValaInterface* prereq_iface; ValaClass* _tmp26_; _tmp12_ = _prerequisite_index; _prerequisite_index = _tmp12_ + 1; _tmp13_ = _prerequisite_index; _tmp14_ = _prerequisite_size; if (!(_tmp13_ < _tmp14_)) { break; } _tmp15_ = _prerequisite_list; _tmp16_ = _prerequisite_index; _tmp17_ = vala_list_get (_tmp15_, _tmp16_); prerequisite = (ValaDataType*) _tmp17_; _tmp18_ = prerequisite; _tmp19_ = vala_data_type_get_data_type (_tmp18_); _tmp20_ = _tmp19_; _tmp21_ = _vala_code_node_ref0 (VALA_IS_CLASS (_tmp20_) ? ((ValaClass*) _tmp20_) : NULL); prereq_cl = _tmp21_; _tmp22_ = prerequisite; _tmp23_ = vala_data_type_get_data_type (_tmp22_); _tmp24_ = _tmp23_; _tmp25_ = _vala_code_node_ref0 (VALA_IS_INTERFACE (_tmp24_) ? ((ValaInterface*) _tmp24_) : NULL); prereq_iface = _tmp25_; _tmp26_ = prereq_cl; if (_tmp26_ != NULL) { ValaClass* _tmp27_; ValaCCodeFile* _tmp28_; _tmp27_ = prereq_cl; _tmp28_ = decl_space; vala_ccode_base_module_generate_class_declaration ((ValaCCodeBaseModule*) self, _tmp27_, _tmp28_); } else { ValaInterface* _tmp29_; _tmp29_ = prereq_iface; if (_tmp29_ != NULL) { ValaInterface* _tmp30_; ValaCCodeFile* _tmp31_; _tmp30_ = prereq_iface; _tmp31_ = decl_space; vala_ccode_base_module_generate_interface_declaration ((ValaCCodeBaseModule*) self, _tmp30_, _tmp31_); } } _vala_code_node_unref0 (prereq_iface); _vala_code_node_unref0 (prereq_cl); _vala_code_node_unref0 (prerequisite); } _vala_iterable_unref0 (_prerequisite_list); } _tmp32_ = iface; _tmp33_ = vala_ccode_base_module_get_ccode_type_name (_tmp32_); _tmp34_ = _tmp33_; _tmp35_ = g_strdup_printf ("_%s", _tmp34_); _tmp36_ = _tmp35_; _tmp37_ = vala_ccode_struct_new (_tmp36_); _tmp38_ = _tmp37_; _g_free0 (_tmp36_); _g_free0 (_tmp34_); type_struct = _tmp38_; _tmp39_ = decl_space; _tmp40_ = vala_ccode_newline_new (); _tmp41_ = _tmp40_; vala_ccode_file_add_type_declaration (_tmp39_, (ValaCCodeNode*) _tmp41_); _vala_ccode_node_unref0 (_tmp41_); _tmp42_ = iface; _tmp43_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp42_, NULL); _tmp44_ = _tmp43_; _tmp45_ = g_strdup_printf ("(%s_get_type ())", _tmp44_); _tmp46_ = _tmp45_; _g_free0 (_tmp44_); macro = _tmp46_; _tmp47_ = decl_space; _tmp48_ = iface; _tmp49_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp48_); _tmp50_ = _tmp49_; _tmp51_ = macro; _tmp52_ = vala_ccode_macro_replacement_new (_tmp50_, _tmp51_); _tmp53_ = _tmp52_; vala_ccode_file_add_type_declaration (_tmp47_, (ValaCCodeNode*) _tmp53_); _vala_ccode_node_unref0 (_tmp53_); _g_free0 (_tmp50_); _tmp54_ = iface; _tmp55_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp54_); _tmp56_ = _tmp55_; _tmp57_ = iface; _tmp58_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp57_); _tmp59_ = _tmp58_; _tmp60_ = g_strdup_printf ("(G_TYPE_CHECK_INSTANCE_CAST ((obj), %s, %s))", _tmp56_, _tmp59_); _g_free0 (macro); macro = _tmp60_; _g_free0 (_tmp59_); _g_free0 (_tmp56_); _tmp61_ = decl_space; _tmp62_ = iface; _tmp63_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp62_, NULL); _tmp64_ = _tmp63_; _tmp65_ = g_strdup_printf ("%s(obj)", _tmp64_); _tmp66_ = _tmp65_; _tmp67_ = macro; _tmp68_ = vala_ccode_macro_replacement_new (_tmp66_, _tmp67_); _tmp69_ = _tmp68_; vala_ccode_file_add_type_declaration (_tmp61_, (ValaCCodeNode*) _tmp69_); _vala_ccode_node_unref0 (_tmp69_); _g_free0 (_tmp66_); _g_free0 (_tmp64_); _tmp70_ = iface; _tmp71_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp70_); _tmp72_ = _tmp71_; _tmp73_ = g_strdup_printf ("(G_TYPE_CHECK_INSTANCE_TYPE ((obj), %s))", _tmp72_); _g_free0 (macro); macro = _tmp73_; _g_free0 (_tmp72_); _tmp74_ = decl_space; _tmp75_ = iface; _tmp76_ = vala_ccode_base_module_get_ccode_type_check_function ((ValaTypeSymbol*) _tmp75_); _tmp77_ = _tmp76_; _tmp78_ = g_strdup_printf ("%s(obj)", _tmp77_); _tmp79_ = _tmp78_; _tmp80_ = macro; _tmp81_ = vala_ccode_macro_replacement_new (_tmp79_, _tmp80_); _tmp82_ = _tmp81_; vala_ccode_file_add_type_declaration (_tmp74_, (ValaCCodeNode*) _tmp82_); _vala_ccode_node_unref0 (_tmp82_); _g_free0 (_tmp79_); _g_free0 (_tmp77_); _tmp83_ = iface; _tmp84_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp83_); _tmp85_ = _tmp84_; _tmp86_ = iface; _tmp87_ = vala_ccode_base_module_get_ccode_type_name (_tmp86_); _tmp88_ = _tmp87_; _tmp89_ = g_strdup_printf ("(G_TYPE_INSTANCE_GET_INTERFACE ((obj), %s, %s))", _tmp85_, _tmp88_); _g_free0 (macro); macro = _tmp89_; _g_free0 (_tmp88_); _g_free0 (_tmp85_); _tmp90_ = decl_space; _tmp91_ = iface; _tmp92_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp91_, NULL); _tmp93_ = _tmp92_; _tmp94_ = g_strdup_printf ("%s_GET_INTERFACE(obj)", _tmp93_); _tmp95_ = _tmp94_; _tmp96_ = macro; _tmp97_ = vala_ccode_macro_replacement_new (_tmp95_, _tmp96_); _tmp98_ = _tmp97_; vala_ccode_file_add_type_declaration (_tmp90_, (ValaCCodeNode*) _tmp98_); _vala_ccode_node_unref0 (_tmp98_); _g_free0 (_tmp95_); _g_free0 (_tmp93_); _tmp99_ = decl_space; _tmp100_ = vala_ccode_newline_new (); _tmp101_ = _tmp100_; vala_ccode_file_add_type_declaration (_tmp99_, (ValaCCodeNode*) _tmp101_); _vala_ccode_node_unref0 (_tmp101_); _tmp102_ = decl_space; _tmp103_ = iface; _tmp104_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp103_); _tmp105_ = _tmp104_; _tmp106_ = g_strdup_printf ("struct _%s", _tmp105_); _tmp107_ = _tmp106_; _tmp108_ = iface; _tmp109_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp108_); _tmp110_ = _tmp109_; _tmp111_ = vala_ccode_variable_declarator_new (_tmp110_, NULL, NULL); _tmp112_ = _tmp111_; _tmp113_ = vala_ccode_type_definition_new (_tmp107_, (ValaCCodeDeclarator*) _tmp112_); _tmp114_ = _tmp113_; vala_ccode_file_add_type_declaration (_tmp102_, (ValaCCodeNode*) _tmp114_); _vala_ccode_node_unref0 (_tmp114_); _vala_ccode_node_unref0 (_tmp112_); _g_free0 (_tmp110_); _g_free0 (_tmp107_); _g_free0 (_tmp105_); _tmp115_ = decl_space; _tmp116_ = type_struct; _tmp117_ = vala_ccode_struct_get_name (_tmp116_); _tmp118_ = _tmp117_; _tmp119_ = g_strdup_printf ("struct %s", _tmp118_); _tmp120_ = _tmp119_; _tmp121_ = iface; _tmp122_ = vala_ccode_base_module_get_ccode_type_name (_tmp121_); _tmp123_ = _tmp122_; _tmp124_ = vala_ccode_variable_declarator_new (_tmp123_, NULL, NULL); _tmp125_ = _tmp124_; _tmp126_ = vala_ccode_type_definition_new (_tmp120_, (ValaCCodeDeclarator*) _tmp125_); _tmp127_ = _tmp126_; vala_ccode_file_add_type_declaration (_tmp115_, (ValaCCodeNode*) _tmp127_); _vala_ccode_node_unref0 (_tmp127_); _vala_ccode_node_unref0 (_tmp125_); _g_free0 (_tmp123_); _g_free0 (_tmp120_); _tmp128_ = type_struct; vala_ccode_struct_add_field (_tmp128_, "GTypeInterface", "parent_iface", NULL); { ValaInterface* _tmp129_; ValaList* _tmp130_ = NULL; ValaList* _m_list; ValaList* _tmp131_; gint _tmp132_; gint _tmp133_; gint _m_size; gint _m_index; _tmp129_ = iface; _tmp130_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp129_); _m_list = _tmp130_; _tmp131_ = _m_list; _tmp132_ = vala_collection_get_size ((ValaCollection*) _tmp131_); _tmp133_ = _tmp132_; _m_size = _tmp133_; _m_index = -1; while (TRUE) { gint _tmp134_; gint _tmp135_; gint _tmp136_; ValaList* _tmp137_; gint _tmp138_; gpointer _tmp139_ = NULL; ValaMethod* m; ValaMethod* _tmp140_; ValaCCodeFile* _tmp141_; ValaCCodeStruct* _tmp142_; _tmp134_ = _m_index; _m_index = _tmp134_ + 1; _tmp135_ = _m_index; _tmp136_ = _m_size; if (!(_tmp135_ < _tmp136_)) { break; } _tmp137_ = _m_list; _tmp138_ = _m_index; _tmp139_ = vala_list_get (_tmp137_, _tmp138_); m = (ValaMethod*) _tmp139_; _tmp140_ = m; _tmp141_ = decl_space; _tmp142_ = type_struct; vala_gtype_module_generate_virtual_method_declaration (self, _tmp140_, _tmp141_, _tmp142_); _vala_code_node_unref0 (m); } _vala_iterable_unref0 (_m_list); } { ValaInterface* _tmp143_; ValaList* _tmp144_ = NULL; ValaList* _sig_list; ValaList* _tmp145_; gint _tmp146_; gint _tmp147_; gint _sig_size; gint _sig_index; _tmp143_ = iface; _tmp144_ = vala_object_type_symbol_get_signals ((ValaObjectTypeSymbol*) _tmp143_); _sig_list = _tmp144_; _tmp145_ = _sig_list; _tmp146_ = vala_collection_get_size ((ValaCollection*) _tmp145_); _tmp147_ = _tmp146_; _sig_size = _tmp147_; _sig_index = -1; while (TRUE) { gint _tmp148_; gint _tmp149_; gint _tmp150_; ValaList* _tmp151_; gint _tmp152_; gpointer _tmp153_ = NULL; ValaSignal* sig; ValaSignal* _tmp154_; ValaMethod* _tmp155_; ValaMethod* _tmp156_; _tmp148_ = _sig_index; _sig_index = _tmp148_ + 1; _tmp149_ = _sig_index; _tmp150_ = _sig_size; if (!(_tmp149_ < _tmp150_)) { break; } _tmp151_ = _sig_list; _tmp152_ = _sig_index; _tmp153_ = vala_list_get (_tmp151_, _tmp152_); sig = (ValaSignal*) _tmp153_; _tmp154_ = sig; _tmp155_ = vala_signal_get_default_handler (_tmp154_); _tmp156_ = _tmp155_; if (_tmp156_ != NULL) { ValaSignal* _tmp157_; ValaMethod* _tmp158_; ValaMethod* _tmp159_; ValaCCodeFile* _tmp160_; ValaCCodeStruct* _tmp161_; _tmp157_ = sig; _tmp158_ = vala_signal_get_default_handler (_tmp157_); _tmp159_ = _tmp158_; _tmp160_ = decl_space; _tmp161_ = type_struct; vala_gtype_module_generate_virtual_method_declaration (self, _tmp159_, _tmp160_, _tmp161_); } _vala_code_node_unref0 (sig); } _vala_iterable_unref0 (_sig_list); } { ValaInterface* _tmp162_; ValaList* _tmp163_ = NULL; ValaList* _prop_list; ValaList* _tmp164_; gint _tmp165_; gint _tmp166_; gint _prop_size; gint _prop_index; _tmp162_ = iface; _tmp163_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) _tmp162_); _prop_list = _tmp163_; _tmp164_ = _prop_list; _tmp165_ = vala_collection_get_size ((ValaCollection*) _tmp164_); _tmp166_ = _tmp165_; _prop_size = _tmp166_; _prop_index = -1; while (TRUE) { gint _tmp167_; gint _tmp168_; gint _tmp169_; ValaList* _tmp170_; gint _tmp171_; gpointer _tmp172_ = NULL; ValaProperty* prop; gboolean _tmp173_ = FALSE; ValaProperty* _tmp174_; gboolean _tmp175_; gboolean _tmp176_; gboolean _tmp180_; ValaProperty* _tmp181_; ValaDataType* _tmp182_; ValaDataType* _tmp183_; ValaCCodeFile* _tmp184_; ValaProperty* _tmp185_; ValaSymbol* _tmp186_; ValaSymbol* _tmp187_; ValaObjectTypeSymbol* _tmp188_; ValaObjectTypeSymbol* t; ValaProperty* _tmp189_; ValaDataType* _tmp190_; ValaDataType* _tmp191_; gboolean _tmp192_ = FALSE; gboolean returns_real_struct; ValaObjectTypeSymbol* _tmp193_; ValaObjectType* _tmp194_; ValaObjectType* this_type; ValaObjectType* _tmp195_; gchar* _tmp196_ = NULL; gchar* _tmp197_; ValaCCodeParameter* _tmp198_; ValaCCodeParameter* _tmp199_; ValaCCodeParameter* cselfparam; ValaProperty* _tmp200_; ValaPropertyAccessor* _tmp201_; ValaPropertyAccessor* _tmp202_; ValaProperty* _tmp257_; ValaPropertyAccessor* _tmp258_; ValaPropertyAccessor* _tmp259_; _tmp167_ = _prop_index; _prop_index = _tmp167_ + 1; _tmp168_ = _prop_index; _tmp169_ = _prop_size; if (!(_tmp168_ < _tmp169_)) { break; } _tmp170_ = _prop_list; _tmp171_ = _prop_index; _tmp172_ = vala_list_get (_tmp170_, _tmp171_); prop = (ValaProperty*) _tmp172_; _tmp174_ = prop; _tmp175_ = vala_property_get_is_abstract (_tmp174_); _tmp176_ = _tmp175_; if (!_tmp176_) { ValaProperty* _tmp177_; gboolean _tmp178_; gboolean _tmp179_; _tmp177_ = prop; _tmp178_ = vala_property_get_is_virtual (_tmp177_); _tmp179_ = _tmp178_; _tmp173_ = !_tmp179_; } else { _tmp173_ = FALSE; } _tmp180_ = _tmp173_; if (_tmp180_) { _vala_code_node_unref0 (prop); continue; } _tmp181_ = prop; _tmp182_ = vala_property_get_property_type (_tmp181_); _tmp183_ = _tmp182_; _tmp184_ = decl_space; vala_ccode_base_module_generate_type_declaration ((ValaCCodeBaseModule*) self, _tmp183_, _tmp184_); _tmp185_ = prop; _tmp186_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp185_); _tmp187_ = _tmp186_; _tmp188_ = _vala_code_node_ref0 (VALA_OBJECT_TYPE_SYMBOL (_tmp187_)); t = _tmp188_; _tmp189_ = prop; _tmp190_ = vala_property_get_property_type (_tmp189_); _tmp191_ = _tmp190_; _tmp192_ = vala_data_type_is_real_non_null_struct_type (_tmp191_); returns_real_struct = _tmp192_; _tmp193_ = t; _tmp194_ = vala_object_type_new (_tmp193_); this_type = _tmp194_; _tmp195_ = this_type; _tmp196_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp195_); _tmp197_ = _tmp196_; _tmp198_ = vala_ccode_parameter_new ("self", _tmp197_); _tmp199_ = _tmp198_; _g_free0 (_tmp197_); cselfparam = _tmp199_; _tmp200_ = prop; _tmp201_ = vala_property_get_get_accessor (_tmp200_); _tmp202_ = _tmp201_; if (_tmp202_ != NULL) { ValaProperty* _tmp203_; const gchar* _tmp204_; const gchar* _tmp205_; gchar* _tmp206_ = NULL; gchar* _tmp207_; ValaCCodeFunctionDeclarator* _tmp208_; ValaCCodeFunctionDeclarator* _tmp209_; ValaCCodeFunctionDeclarator* vdeclarator; ValaCCodeFunctionDeclarator* _tmp210_; ValaCCodeParameter* _tmp211_; gchar* creturn_type = NULL; gboolean _tmp212_; ValaProperty* _tmp233_; ValaDataType* _tmp234_; ValaDataType* _tmp235_; ValaArrayType* _tmp236_; ValaArrayType* array_type; ValaArrayType* _tmp237_; const gchar* _tmp251_; ValaCCodeDeclaration* _tmp252_; ValaCCodeDeclaration* vdecl; ValaCCodeDeclaration* _tmp253_; ValaCCodeFunctionDeclarator* _tmp254_; ValaCCodeStruct* _tmp255_; ValaCCodeDeclaration* _tmp256_; _tmp203_ = prop; _tmp204_ = vala_symbol_get_name ((ValaSymbol*) _tmp203_); _tmp205_ = _tmp204_; _tmp206_ = g_strdup_printf ("get_%s", _tmp205_); _tmp207_ = _tmp206_; _tmp208_ = vala_ccode_function_declarator_new (_tmp207_); _tmp209_ = _tmp208_; _g_free0 (_tmp207_); vdeclarator = _tmp209_; _tmp210_ = vdeclarator; _tmp211_ = cselfparam; vala_ccode_function_declarator_add_parameter (_tmp210_, _tmp211_); _tmp212_ = returns_real_struct; if (_tmp212_) { ValaProperty* _tmp213_; ValaPropertyAccessor* _tmp214_; ValaPropertyAccessor* _tmp215_; ValaDataType* _tmp216_; ValaDataType* _tmp217_; gchar* _tmp218_ = NULL; gchar* _tmp219_; gchar* _tmp220_; gchar* _tmp221_; ValaCCodeParameter* _tmp222_; ValaCCodeParameter* _tmp223_; ValaCCodeParameter* cvalueparam; ValaCCodeFunctionDeclarator* _tmp224_; ValaCCodeParameter* _tmp225_; gchar* _tmp226_; _tmp213_ = prop; _tmp214_ = vala_property_get_get_accessor (_tmp213_); _tmp215_ = _tmp214_; _tmp216_ = vala_property_accessor_get_value_type (_tmp215_); _tmp217_ = _tmp216_; _tmp218_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp217_); _tmp219_ = _tmp218_; _tmp220_ = g_strconcat (_tmp219_, "*", NULL); _tmp221_ = _tmp220_; _tmp222_ = vala_ccode_parameter_new ("value", _tmp221_); _tmp223_ = _tmp222_; _g_free0 (_tmp221_); _g_free0 (_tmp219_); cvalueparam = _tmp223_; _tmp224_ = vdeclarator; _tmp225_ = cvalueparam; vala_ccode_function_declarator_add_parameter (_tmp224_, _tmp225_); _tmp226_ = g_strdup ("void"); _g_free0 (creturn_type); creturn_type = _tmp226_; _vala_ccode_node_unref0 (cvalueparam); } else { ValaProperty* _tmp227_; ValaPropertyAccessor* _tmp228_; ValaPropertyAccessor* _tmp229_; ValaDataType* _tmp230_; ValaDataType* _tmp231_; gchar* _tmp232_ = NULL; _tmp227_ = prop; _tmp228_ = vala_property_get_get_accessor (_tmp227_); _tmp229_ = _tmp228_; _tmp230_ = vala_property_accessor_get_value_type (_tmp229_); _tmp231_ = _tmp230_; _tmp232_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp231_); _g_free0 (creturn_type); creturn_type = _tmp232_; } _tmp233_ = prop; _tmp234_ = vala_property_get_property_type (_tmp233_); _tmp235_ = _tmp234_; _tmp236_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp235_) ? ((ValaArrayType*) _tmp235_) : NULL); array_type = _tmp236_; _tmp237_ = array_type; if (_tmp237_ != NULL) { { gint dim; dim = 1; { gboolean _tmp238_; _tmp238_ = TRUE; while (TRUE) { gboolean _tmp239_; gint _tmp241_; ValaArrayType* _tmp242_; gint _tmp243_; gint _tmp244_; ValaCCodeFunctionDeclarator* _tmp245_; gint _tmp246_; gchar* _tmp247_ = NULL; gchar* _tmp248_; ValaCCodeParameter* _tmp249_; ValaCCodeParameter* _tmp250_; _tmp239_ = _tmp238_; if (!_tmp239_) { gint _tmp240_; _tmp240_ = dim; dim = _tmp240_ + 1; } _tmp238_ = FALSE; _tmp241_ = dim; _tmp242_ = array_type; _tmp243_ = vala_array_type_get_rank (_tmp242_); _tmp244_ = _tmp243_; if (!(_tmp241_ <= _tmp244_)) { break; } _tmp245_ = vdeclarator; _tmp246_ = dim; _tmp247_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", _tmp246_); _tmp248_ = _tmp247_; _tmp249_ = vala_ccode_parameter_new (_tmp248_, "int*"); _tmp250_ = _tmp249_; vala_ccode_function_declarator_add_parameter (_tmp245_, _tmp250_); _vala_ccode_node_unref0 (_tmp250_); _g_free0 (_tmp248_); } } } } _tmp251_ = creturn_type; _tmp252_ = vala_ccode_declaration_new (_tmp251_); vdecl = _tmp252_; _tmp253_ = vdecl; _tmp254_ = vdeclarator; vala_ccode_declaration_add_declarator (_tmp253_, (ValaCCodeDeclarator*) _tmp254_); _tmp255_ = type_struct; _tmp256_ = vdecl; vala_ccode_struct_add_declaration (_tmp255_, _tmp256_); _vala_ccode_node_unref0 (vdecl); _vala_code_node_unref0 (array_type); _g_free0 (creturn_type); _vala_ccode_node_unref0 (vdeclarator); } _tmp257_ = prop; _tmp258_ = vala_property_get_set_accessor (_tmp257_); _tmp259_ = _tmp258_; if (_tmp259_ != NULL) { ValaProperty* _tmp260_; const gchar* _tmp261_; const gchar* _tmp262_; gchar* _tmp263_ = NULL; gchar* _tmp264_; ValaCCodeFunctionDeclarator* _tmp265_; ValaCCodeFunctionDeclarator* _tmp266_; ValaCCodeFunctionDeclarator* vdeclarator; ValaCCodeFunctionDeclarator* _tmp267_; ValaCCodeParameter* _tmp268_; gboolean _tmp269_; ValaProperty* _tmp294_; ValaDataType* _tmp295_; ValaDataType* _tmp296_; ValaArrayType* _tmp297_; ValaArrayType* array_type; ValaArrayType* _tmp298_; ValaCCodeDeclaration* _tmp312_; ValaCCodeDeclaration* vdecl; ValaCCodeDeclaration* _tmp313_; ValaCCodeFunctionDeclarator* _tmp314_; ValaCCodeStruct* _tmp315_; ValaCCodeDeclaration* _tmp316_; _tmp260_ = prop; _tmp261_ = vala_symbol_get_name ((ValaSymbol*) _tmp260_); _tmp262_ = _tmp261_; _tmp263_ = g_strdup_printf ("set_%s", _tmp262_); _tmp264_ = _tmp263_; _tmp265_ = vala_ccode_function_declarator_new (_tmp264_); _tmp266_ = _tmp265_; _g_free0 (_tmp264_); vdeclarator = _tmp266_; _tmp267_ = vdeclarator; _tmp268_ = cselfparam; vala_ccode_function_declarator_add_parameter (_tmp267_, _tmp268_); _tmp269_ = returns_real_struct; if (_tmp269_) { ValaProperty* _tmp270_; ValaPropertyAccessor* _tmp271_; ValaPropertyAccessor* _tmp272_; ValaDataType* _tmp273_; ValaDataType* _tmp274_; gchar* _tmp275_ = NULL; gchar* _tmp276_; gchar* _tmp277_; gchar* _tmp278_; ValaCCodeParameter* _tmp279_; ValaCCodeParameter* _tmp280_; ValaCCodeParameter* cvalueparam; ValaCCodeFunctionDeclarator* _tmp281_; ValaCCodeParameter* _tmp282_; _tmp270_ = prop; _tmp271_ = vala_property_get_set_accessor (_tmp270_); _tmp272_ = _tmp271_; _tmp273_ = vala_property_accessor_get_value_type (_tmp272_); _tmp274_ = _tmp273_; _tmp275_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp274_); _tmp276_ = _tmp275_; _tmp277_ = g_strconcat (_tmp276_, "*", NULL); _tmp278_ = _tmp277_; _tmp279_ = vala_ccode_parameter_new ("value", _tmp278_); _tmp280_ = _tmp279_; _g_free0 (_tmp278_); _g_free0 (_tmp276_); cvalueparam = _tmp280_; _tmp281_ = vdeclarator; _tmp282_ = cvalueparam; vala_ccode_function_declarator_add_parameter (_tmp281_, _tmp282_); _vala_ccode_node_unref0 (cvalueparam); } else { ValaProperty* _tmp283_; ValaPropertyAccessor* _tmp284_; ValaPropertyAccessor* _tmp285_; ValaDataType* _tmp286_; ValaDataType* _tmp287_; gchar* _tmp288_ = NULL; gchar* _tmp289_; ValaCCodeParameter* _tmp290_; ValaCCodeParameter* _tmp291_; ValaCCodeParameter* cvalueparam; ValaCCodeFunctionDeclarator* _tmp292_; ValaCCodeParameter* _tmp293_; _tmp283_ = prop; _tmp284_ = vala_property_get_set_accessor (_tmp283_); _tmp285_ = _tmp284_; _tmp286_ = vala_property_accessor_get_value_type (_tmp285_); _tmp287_ = _tmp286_; _tmp288_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp287_); _tmp289_ = _tmp288_; _tmp290_ = vala_ccode_parameter_new ("value", _tmp289_); _tmp291_ = _tmp290_; _g_free0 (_tmp289_); cvalueparam = _tmp291_; _tmp292_ = vdeclarator; _tmp293_ = cvalueparam; vala_ccode_function_declarator_add_parameter (_tmp292_, _tmp293_); _vala_ccode_node_unref0 (cvalueparam); } _tmp294_ = prop; _tmp295_ = vala_property_get_property_type (_tmp294_); _tmp296_ = _tmp295_; _tmp297_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp296_) ? ((ValaArrayType*) _tmp296_) : NULL); array_type = _tmp297_; _tmp298_ = array_type; if (_tmp298_ != NULL) { { gint dim; dim = 1; { gboolean _tmp299_; _tmp299_ = TRUE; while (TRUE) { gboolean _tmp300_; gint _tmp302_; ValaArrayType* _tmp303_; gint _tmp304_; gint _tmp305_; ValaCCodeFunctionDeclarator* _tmp306_; gint _tmp307_; gchar* _tmp308_ = NULL; gchar* _tmp309_; ValaCCodeParameter* _tmp310_; ValaCCodeParameter* _tmp311_; _tmp300_ = _tmp299_; if (!_tmp300_) { gint _tmp301_; _tmp301_ = dim; dim = _tmp301_ + 1; } _tmp299_ = FALSE; _tmp302_ = dim; _tmp303_ = array_type; _tmp304_ = vala_array_type_get_rank (_tmp303_); _tmp305_ = _tmp304_; if (!(_tmp302_ <= _tmp305_)) { break; } _tmp306_ = vdeclarator; _tmp307_ = dim; _tmp308_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", _tmp307_); _tmp309_ = _tmp308_; _tmp310_ = vala_ccode_parameter_new (_tmp309_, "int"); _tmp311_ = _tmp310_; vala_ccode_function_declarator_add_parameter (_tmp306_, _tmp311_); _vala_ccode_node_unref0 (_tmp311_); _g_free0 (_tmp309_); } } } } _tmp312_ = vala_ccode_declaration_new ("void"); vdecl = _tmp312_; _tmp313_ = vdecl; _tmp314_ = vdeclarator; vala_ccode_declaration_add_declarator (_tmp313_, (ValaCCodeDeclarator*) _tmp314_); _tmp315_ = type_struct; _tmp316_ = vdecl; vala_ccode_struct_add_declaration (_tmp315_, _tmp316_); _vala_ccode_node_unref0 (vdecl); _vala_code_node_unref0 (array_type); _vala_ccode_node_unref0 (vdeclarator); } _vala_ccode_node_unref0 (cselfparam); _vala_code_node_unref0 (this_type); _vala_code_node_unref0 (t); _vala_code_node_unref0 (prop); } _vala_iterable_unref0 (_prop_list); } _tmp317_ = decl_space; _tmp318_ = type_struct; vala_ccode_file_add_type_definition (_tmp317_, (ValaCCodeNode*) _tmp318_); _tmp319_ = iface; _tmp320_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp321_ = _tmp320_; _tmp322_ = vala_interface_register_function_new (_tmp319_, _tmp321_); type_fun = _tmp322_; _tmp323_ = type_fun; _tmp324_ = ((ValaCCodeBaseModule*) self)->in_plugin; vala_typeregister_function_init_from_type ((ValaTypeRegisterFunction*) _tmp323_, _tmp324_, TRUE); _tmp325_ = decl_space; _tmp326_ = type_fun; _tmp327_ = vala_typeregister_function_get_declaration ((ValaTypeRegisterFunction*) _tmp326_); _tmp328_ = _tmp327_; vala_ccode_file_add_type_member_declaration (_tmp325_, (ValaCCodeNode*) _tmp328_); _vala_ccode_node_unref0 (_tmp328_); _vala_typeregister_function_unref0 (type_fun); _g_free0 (macro); _vala_ccode_node_unref0 (type_struct); } static void vala_gtype_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface) { ValaGTypeModule * self; ValaInterface* _tmp0_; ValaCCodeBaseModuleEmitContext* _tmp1_; ValaCCodeBaseModuleEmitContext* _tmp2_; ValaInterface* _tmp3_; ValaSourceReference* _tmp4_; ValaSourceReference* _tmp5_; ValaInterface* _tmp6_; gchar* _tmp7_ = NULL; gchar* _tmp8_; gint _tmp9_; gint _tmp10_; gboolean _tmp11_; ValaInterface* _tmp21_; ValaCCodeFile* _tmp22_; ValaInterface* _tmp23_; gboolean _tmp24_ = FALSE; ValaInterface* _tmp27_; gboolean _tmp28_ = FALSE; ValaInterface* _tmp31_; ValaInterface* _tmp32_; ValaInterface* _tmp33_; ValaComment* _tmp34_; ValaComment* _tmp35_; ValaInterface* _tmp44_; ValaCodeContext* _tmp45_; ValaCodeContext* _tmp46_; ValaInterfaceRegisterFunction* _tmp47_; ValaInterfaceRegisterFunction* type_fun; ValaInterfaceRegisterFunction* _tmp48_; gboolean _tmp49_; ValaCCodeFile* _tmp50_; ValaInterfaceRegisterFunction* _tmp51_; ValaCCodeFragment* _tmp52_ = NULL; ValaCCodeFragment* _tmp53_; ValaCCodeFile* _tmp54_; ValaInterfaceRegisterFunction* _tmp55_; ValaCCodeFragment* _tmp56_ = NULL; ValaCCodeFragment* _tmp57_; self = (ValaGTypeModule*) base; g_return_if_fail (iface != NULL); _tmp0_ = iface; _tmp1_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) _tmp0_); _tmp2_ = _tmp1_; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp2_); _vala_ccode_base_module_emit_context_unref0 (_tmp2_); _tmp3_ = iface; _tmp4_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp3_); _tmp5_ = _tmp4_; vala_ccode_base_module_push_line ((ValaCCodeBaseModule*) self, _tmp5_); _tmp6_ = iface; _tmp7_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp6_); _tmp8_ = _tmp7_; _tmp9_ = strlen (_tmp8_); _tmp10_ = _tmp9_; _tmp11_ = _tmp10_ < 3; _g_free0 (_tmp8_); if (_tmp11_) { ValaInterface* _tmp12_; ValaInterface* _tmp13_; ValaSourceReference* _tmp14_; ValaSourceReference* _tmp15_; ValaInterface* _tmp16_; gchar* _tmp17_ = NULL; gchar* _tmp18_; gchar* _tmp19_ = NULL; gchar* _tmp20_; _tmp12_ = iface; vala_code_node_set_error ((ValaCodeNode*) _tmp12_, TRUE); _tmp13_ = iface; _tmp14_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp13_); _tmp15_ = _tmp14_; _tmp16_ = iface; _tmp17_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp16_); _tmp18_ = _tmp17_; _tmp19_ = g_strdup_printf ("Interface name `%s' is too short", _tmp18_); _tmp20_ = _tmp19_; vala_report_error (_tmp15_, _tmp20_); _g_free0 (_tmp20_); _g_free0 (_tmp18_); return; } _tmp21_ = iface; _tmp22_ = ((ValaCCodeBaseModule*) self)->cfile; vala_ccode_base_module_generate_interface_declaration ((ValaCCodeBaseModule*) self, _tmp21_, _tmp22_); _tmp23_ = iface; _tmp24_ = vala_symbol_is_internal_symbol ((ValaSymbol*) _tmp23_); if (!_tmp24_) { ValaInterface* _tmp25_; ValaCCodeFile* _tmp26_; _tmp25_ = iface; _tmp26_ = ((ValaCCodeBaseModule*) self)->header_file; vala_ccode_base_module_generate_interface_declaration ((ValaCCodeBaseModule*) self, _tmp25_, _tmp26_); } _tmp27_ = iface; _tmp28_ = vala_symbol_is_private_symbol ((ValaSymbol*) _tmp27_); if (!_tmp28_) { ValaInterface* _tmp29_; ValaCCodeFile* _tmp30_; _tmp29_ = iface; _tmp30_ = ((ValaCCodeBaseModule*) self)->internal_header_file; vala_ccode_base_module_generate_interface_declaration ((ValaCCodeBaseModule*) self, _tmp29_, _tmp30_); } _tmp31_ = iface; vala_code_node_accept_children ((ValaCodeNode*) _tmp31_, (ValaCodeVisitor*) self); _tmp32_ = iface; vala_gtype_module_add_interface_base_init_function (self, _tmp32_); _tmp33_ = iface; _tmp34_ = vala_symbol_get_comment ((ValaSymbol*) _tmp33_); _tmp35_ = _tmp34_; if (_tmp35_ != NULL) { ValaCCodeFile* _tmp36_; ValaInterface* _tmp37_; ValaComment* _tmp38_; ValaComment* _tmp39_; const gchar* _tmp40_; const gchar* _tmp41_; ValaCCodeComment* _tmp42_; ValaCCodeComment* _tmp43_; _tmp36_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp37_ = iface; _tmp38_ = vala_symbol_get_comment ((ValaSymbol*) _tmp37_); _tmp39_ = _tmp38_; _tmp40_ = vala_comment_get_content (_tmp39_); _tmp41_ = _tmp40_; _tmp42_ = vala_ccode_comment_new (_tmp41_); _tmp43_ = _tmp42_; vala_ccode_file_add_type_member_definition (_tmp36_, (ValaCCodeNode*) _tmp43_); _vala_ccode_node_unref0 (_tmp43_); } _tmp44_ = iface; _tmp45_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp46_ = _tmp45_; _tmp47_ = vala_interface_register_function_new (_tmp44_, _tmp46_); type_fun = _tmp47_; _tmp48_ = type_fun; _tmp49_ = ((ValaCCodeBaseModule*) self)->in_plugin; vala_typeregister_function_init_from_type ((ValaTypeRegisterFunction*) _tmp48_, _tmp49_, FALSE); _tmp50_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp51_ = type_fun; _tmp52_ = vala_typeregister_function_get_source_declaration ((ValaTypeRegisterFunction*) _tmp51_); _tmp53_ = _tmp52_; vala_ccode_file_add_type_member_declaration (_tmp50_, (ValaCCodeNode*) _tmp53_); _vala_ccode_node_unref0 (_tmp53_); _tmp54_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp55_ = type_fun; _tmp56_ = vala_typeregister_function_get_definition ((ValaTypeRegisterFunction*) _tmp55_); _tmp57_ = _tmp56_; vala_ccode_file_add_type_member_definition (_tmp54_, (ValaCCodeNode*) _tmp57_); _vala_ccode_node_unref0 (_tmp57_); vala_ccode_base_module_pop_line ((ValaCCodeBaseModule*) self); vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _vala_typeregister_function_unref0 (type_fun); } static gpointer _vala_iterable_ref0 (gpointer self) { return self ? vala_iterable_ref (self) : NULL; } static void vala_gtype_module_add_interface_base_init_function (ValaGTypeModule* self, ValaInterface* iface) { ValaInterface* _tmp0_; ValaCCodeBaseModuleEmitContext* _tmp1_; ValaCCodeBaseModuleEmitContext* _tmp2_; ValaInterface* _tmp3_; gchar* _tmp4_ = NULL; gchar* _tmp5_; gchar* _tmp6_ = NULL; gchar* _tmp7_; ValaCCodeFunction* _tmp8_; ValaCCodeFunction* _tmp9_; ValaCCodeFunction* base_init; ValaCCodeFunction* _tmp10_; ValaInterface* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; gchar* _tmp14_ = NULL; gchar* _tmp15_; ValaCCodeParameter* _tmp16_; ValaCCodeParameter* _tmp17_; ValaCCodeFunction* _tmp18_; ValaCCodeFunction* _tmp19_; ValaCCodeFunction* _tmp20_; ValaCCodeFunction* _tmp21_; ValaDataType* _tmp22_; gchar* _tmp23_ = NULL; gchar* _tmp24_; ValaCCodeConstant* _tmp25_; ValaCCodeConstant* _tmp26_; ValaCCodeVariableDeclarator* _tmp27_; ValaCCodeVariableDeclarator* _tmp28_; ValaCCodeFunction* _tmp29_; ValaCCodeFunction* _tmp30_; ValaCCodeIdentifier* _tmp31_; ValaCCodeIdentifier* _tmp32_; ValaCCodeUnaryExpression* _tmp33_; ValaCCodeUnaryExpression* _tmp34_; ValaCCodeFunction* _tmp35_; ValaCCodeFunction* _tmp36_; ValaCCodeIdentifier* _tmp37_; ValaCCodeIdentifier* _tmp38_; ValaCCodeConstant* _tmp39_; ValaCCodeConstant* _tmp40_; ValaInterface* _tmp41_; ValaTypeSymbol* _tmp42_; gboolean _tmp43_ = FALSE; ValaCCodeIdentifier* _tmp88_; ValaCCodeIdentifier* ciface; ValaCCodeFunction* _tmp192_; ValaCCodeFunction* _tmp193_; ValaCCodeFile* _tmp194_; ValaCCodeFunction* _tmp195_; g_return_if_fail (self != NULL); g_return_if_fail (iface != NULL); _tmp0_ = iface; _tmp1_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) _tmp0_); _tmp2_ = _tmp1_; vala_ccode_base_module_push_context ((ValaCCodeBaseModule*) self, _tmp2_); _vala_ccode_base_module_emit_context_unref0 (_tmp2_); _tmp3_ = iface; _tmp4_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp3_, NULL); _tmp5_ = _tmp4_; _tmp6_ = g_strdup_printf ("%s_base_init", _tmp5_); _tmp7_ = _tmp6_; _tmp8_ = vala_ccode_function_new (_tmp7_, "void"); _tmp9_ = _tmp8_; _g_free0 (_tmp7_); _g_free0 (_tmp5_); base_init = _tmp9_; _tmp10_ = base_init; _tmp11_ = iface; _tmp12_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = g_strdup_printf ("%sIface *", _tmp13_); _tmp15_ = _tmp14_; _tmp16_ = vala_ccode_parameter_new ("iface", _tmp15_); _tmp17_ = _tmp16_; vala_ccode_function_add_parameter (_tmp10_, _tmp17_); _vala_ccode_node_unref0 (_tmp17_); _g_free0 (_tmp15_); _g_free0 (_tmp13_); _tmp18_ = base_init; vala_ccode_function_set_modifiers (_tmp18_, VALA_CCODE_MODIFIERS_STATIC); _tmp19_ = base_init; vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp19_); _tmp20_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp21_ = _tmp20_; _tmp22_ = ((ValaCCodeBaseModule*) self)->bool_type; _tmp23_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp22_); _tmp24_ = _tmp23_; _tmp25_ = vala_ccode_constant_new ("FALSE"); _tmp26_ = _tmp25_; _tmp27_ = vala_ccode_variable_declarator_new ("initialized", (ValaCCodeExpression*) _tmp26_, NULL); _tmp28_ = _tmp27_; vala_ccode_function_add_declaration (_tmp21_, _tmp24_, (ValaCCodeDeclarator*) _tmp28_, VALA_CCODE_MODIFIERS_STATIC); _vala_ccode_node_unref0 (_tmp28_); _vala_ccode_node_unref0 (_tmp26_); _g_free0 (_tmp24_); _tmp29_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp30_ = _tmp29_; _tmp31_ = vala_ccode_identifier_new ("initialized"); _tmp32_ = _tmp31_; _tmp33_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp32_); _tmp34_ = _tmp33_; vala_ccode_function_open_if (_tmp30_, (ValaCCodeExpression*) _tmp34_); _vala_ccode_node_unref0 (_tmp34_); _vala_ccode_node_unref0 (_tmp32_); _tmp35_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp36_ = _tmp35_; _tmp37_ = vala_ccode_identifier_new ("initialized"); _tmp38_ = _tmp37_; _tmp39_ = vala_ccode_constant_new ("TRUE"); _tmp40_ = _tmp39_; vala_ccode_function_add_assignment (_tmp36_, (ValaCCodeExpression*) _tmp38_, (ValaCCodeExpression*) _tmp40_); _vala_ccode_node_unref0 (_tmp40_); _vala_ccode_node_unref0 (_tmp38_); _tmp41_ = iface; _tmp42_ = ((ValaCCodeBaseModule*) self)->gobject_type; _tmp43_ = vala_typesymbol_is_subtype_of ((ValaTypeSymbol*) _tmp41_, _tmp42_); if (_tmp43_) { ValaInterface* _tmp44_; ValaList* _tmp45_ = NULL; ValaList* props; _tmp44_ = iface; _tmp45_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) _tmp44_); props = _tmp45_; { ValaList* _tmp46_; ValaList* _tmp47_; ValaList* _prop_list; ValaList* _tmp48_; gint _tmp49_; gint _tmp50_; gint _prop_size; gint _prop_index; _tmp46_ = props; _tmp47_ = _vala_iterable_ref0 (_tmp46_); _prop_list = _tmp47_; _tmp48_ = _prop_list; _tmp49_ = vala_collection_get_size ((ValaCollection*) _tmp48_); _tmp50_ = _tmp49_; _prop_size = _tmp50_; _prop_index = -1; while (TRUE) { gint _tmp51_; gint _tmp52_; gint _tmp53_; ValaList* _tmp54_; gint _tmp55_; gpointer _tmp56_ = NULL; ValaProperty* prop; ValaProperty* _tmp57_; gboolean _tmp58_; gboolean _tmp59_; _tmp51_ = _prop_index; _prop_index = _tmp51_ + 1; _tmp52_ = _prop_index; _tmp53_ = _prop_size; if (!(_tmp52_ < _tmp53_)) { break; } _tmp54_ = _prop_list; _tmp55_ = _prop_index; _tmp56_ = vala_list_get (_tmp54_, _tmp55_); prop = (ValaProperty*) _tmp56_; _tmp57_ = prop; _tmp58_ = vala_property_get_is_abstract (_tmp57_); _tmp59_ = _tmp58_; if (_tmp59_) { ValaProperty* _tmp60_; gboolean _tmp61_ = FALSE; ValaProperty* _tmp62_; ValaComment* _tmp63_; ValaComment* _tmp64_; ValaCCodeIdentifier* _tmp74_; ValaCCodeIdentifier* _tmp75_; ValaCCodeFunctionCall* _tmp76_; ValaCCodeFunctionCall* _tmp77_; ValaCCodeFunctionCall* cinst; ValaCCodeFunctionCall* _tmp78_; ValaCCodeIdentifier* _tmp79_; ValaCCodeIdentifier* _tmp80_; ValaCCodeFunctionCall* _tmp81_; ValaProperty* _tmp82_; ValaCCodeFunctionCall* _tmp83_ = NULL; ValaCCodeFunctionCall* _tmp84_; ValaCCodeFunction* _tmp85_; ValaCCodeFunction* _tmp86_; ValaCCodeFunctionCall* _tmp87_; _tmp60_ = prop; _tmp61_ = vala_ccode_base_module_is_gobject_property ((ValaCCodeBaseModule*) self, _tmp60_); if (!_tmp61_) { _vala_code_node_unref0 (prop); continue; } _tmp62_ = prop; _tmp63_ = vala_symbol_get_comment ((ValaSymbol*) _tmp62_); _tmp64_ = _tmp63_; if (_tmp64_ != NULL) { ValaCCodeFunction* _tmp65_; ValaCCodeFunction* _tmp66_; ValaProperty* _tmp67_; ValaComment* _tmp68_; ValaComment* _tmp69_; const gchar* _tmp70_; const gchar* _tmp71_; ValaCCodeComment* _tmp72_; ValaCCodeComment* _tmp73_; _tmp65_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp66_ = _tmp65_; _tmp67_ = prop; _tmp68_ = vala_symbol_get_comment ((ValaSymbol*) _tmp67_); _tmp69_ = _tmp68_; _tmp70_ = vala_comment_get_content (_tmp69_); _tmp71_ = _tmp70_; _tmp72_ = vala_ccode_comment_new (_tmp71_); _tmp73_ = _tmp72_; vala_ccode_function_add_statement (_tmp66_, (ValaCCodeNode*) _tmp73_); _vala_ccode_node_unref0 (_tmp73_); } _tmp74_ = vala_ccode_identifier_new ("g_object_interface_install_property"); _tmp75_ = _tmp74_; _tmp76_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp75_); _tmp77_ = _tmp76_; _vala_ccode_node_unref0 (_tmp75_); cinst = _tmp77_; _tmp78_ = cinst; _tmp79_ = vala_ccode_identifier_new ("iface"); _tmp80_ = _tmp79_; vala_ccode_function_call_add_argument (_tmp78_, (ValaCCodeExpression*) _tmp80_); _vala_ccode_node_unref0 (_tmp80_); _tmp81_ = cinst; _tmp82_ = prop; _tmp83_ = vala_ccode_base_module_get_param_spec ((ValaCCodeBaseModule*) self, _tmp82_); _tmp84_ = _tmp83_; vala_ccode_function_call_add_argument (_tmp81_, (ValaCCodeExpression*) _tmp84_); _vala_ccode_node_unref0 (_tmp84_); _tmp85_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp86_ = _tmp85_; _tmp87_ = cinst; vala_ccode_function_add_expression (_tmp86_, (ValaCCodeExpression*) _tmp87_); _vala_ccode_node_unref0 (cinst); } _vala_code_node_unref0 (prop); } _vala_iterable_unref0 (_prop_list); } _vala_iterable_unref0 (props); } _tmp88_ = vala_ccode_identifier_new ("iface"); ciface = _tmp88_; { ValaInterface* _tmp89_; ValaList* _tmp90_ = NULL; ValaList* _sig_list; ValaList* _tmp91_; gint _tmp92_; gint _tmp93_; gint _sig_size; gint _sig_index; _tmp89_ = iface; _tmp90_ = vala_object_type_symbol_get_signals ((ValaObjectTypeSymbol*) _tmp89_); _sig_list = _tmp90_; _tmp91_ = _sig_list; _tmp92_ = vala_collection_get_size ((ValaCollection*) _tmp91_); _tmp93_ = _tmp92_; _sig_size = _tmp93_; _sig_index = -1; while (TRUE) { gint _tmp94_; gint _tmp95_; gint _tmp96_; ValaList* _tmp97_; gint _tmp98_; gpointer _tmp99_ = NULL; ValaSignal* sig; ValaSignal* _tmp100_; ValaMethod* _tmp101_; ValaMethod* _tmp102_; ValaSignal* _tmp103_; ValaMethod* _tmp104_; ValaMethod* _tmp105_; gchar* _tmp106_ = NULL; gchar* cname; ValaCCodeFunction* _tmp107_; ValaCCodeFunction* _tmp108_; ValaCCodeIdentifier* _tmp109_; ValaSignal* _tmp110_; ValaMethod* _tmp111_; ValaMethod* _tmp112_; gchar* _tmp113_ = NULL; gchar* _tmp114_; ValaCCodeMemberAccess* _tmp115_; ValaCCodeMemberAccess* _tmp116_; const gchar* _tmp117_; ValaCCodeIdentifier* _tmp118_; ValaCCodeIdentifier* _tmp119_; _tmp94_ = _sig_index; _sig_index = _tmp94_ + 1; _tmp95_ = _sig_index; _tmp96_ = _sig_size; if (!(_tmp95_ < _tmp96_)) { break; } _tmp97_ = _sig_list; _tmp98_ = _sig_index; _tmp99_ = vala_list_get (_tmp97_, _tmp98_); sig = (ValaSignal*) _tmp99_; _tmp100_ = sig; _tmp101_ = vala_signal_get_default_handler (_tmp100_); _tmp102_ = _tmp101_; if (_tmp102_ == NULL) { _vala_code_node_unref0 (sig); continue; } _tmp103_ = sig; _tmp104_ = vala_signal_get_default_handler (_tmp103_); _tmp105_ = _tmp104_; _tmp106_ = vala_ccode_base_module_get_ccode_real_name ((ValaSymbol*) _tmp105_); cname = _tmp106_; _tmp107_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp108_ = _tmp107_; _tmp109_ = ciface; _tmp110_ = sig; _tmp111_ = vala_signal_get_default_handler (_tmp110_); _tmp112_ = _tmp111_; _tmp113_ = vala_ccode_base_module_get_ccode_vfunc_name (_tmp112_); _tmp114_ = _tmp113_; _tmp115_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp109_, _tmp114_); _tmp116_ = _tmp115_; _tmp117_ = cname; _tmp118_ = vala_ccode_identifier_new (_tmp117_); _tmp119_ = _tmp118_; vala_ccode_function_add_assignment (_tmp108_, (ValaCCodeExpression*) _tmp116_, (ValaCCodeExpression*) _tmp119_); _vala_ccode_node_unref0 (_tmp119_); _vala_ccode_node_unref0 (_tmp116_); _g_free0 (_tmp114_); _g_free0 (cname); _vala_code_node_unref0 (sig); } _vala_iterable_unref0 (_sig_list); } { ValaInterface* _tmp120_; ValaList* _tmp121_ = NULL; ValaList* _sig_list; ValaList* _tmp122_; gint _tmp123_; gint _tmp124_; gint _sig_size; gint _sig_index; _tmp120_ = iface; _tmp121_ = vala_object_type_symbol_get_signals ((ValaObjectTypeSymbol*) _tmp120_); _sig_list = _tmp121_; _tmp122_ = _sig_list; _tmp123_ = vala_collection_get_size ((ValaCollection*) _tmp122_); _tmp124_ = _tmp123_; _sig_size = _tmp124_; _sig_index = -1; while (TRUE) { gint _tmp125_; gint _tmp126_; gint _tmp127_; ValaList* _tmp128_; gint _tmp129_; gpointer _tmp130_ = NULL; ValaSignal* sig; ValaSignal* _tmp131_; ValaComment* _tmp132_; ValaComment* _tmp133_; ValaCCodeFunction* _tmp143_; ValaCCodeFunction* _tmp144_; ValaSignal* _tmp145_; ValaInterface* _tmp146_; ValaCCodeFunctionCall* _tmp147_ = NULL; ValaCCodeFunctionCall* _tmp148_; _tmp125_ = _sig_index; _sig_index = _tmp125_ + 1; _tmp126_ = _sig_index; _tmp127_ = _sig_size; if (!(_tmp126_ < _tmp127_)) { break; } _tmp128_ = _sig_list; _tmp129_ = _sig_index; _tmp130_ = vala_list_get (_tmp128_, _tmp129_); sig = (ValaSignal*) _tmp130_; _tmp131_ = sig; _tmp132_ = vala_symbol_get_comment ((ValaSymbol*) _tmp131_); _tmp133_ = _tmp132_; if (_tmp133_ != NULL) { ValaCCodeFunction* _tmp134_; ValaCCodeFunction* _tmp135_; ValaSignal* _tmp136_; ValaComment* _tmp137_; ValaComment* _tmp138_; const gchar* _tmp139_; const gchar* _tmp140_; ValaCCodeComment* _tmp141_; ValaCCodeComment* _tmp142_; _tmp134_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp135_ = _tmp134_; _tmp136_ = sig; _tmp137_ = vala_symbol_get_comment ((ValaSymbol*) _tmp136_); _tmp138_ = _tmp137_; _tmp139_ = vala_comment_get_content (_tmp138_); _tmp140_ = _tmp139_; _tmp141_ = vala_ccode_comment_new (_tmp140_); _tmp142_ = _tmp141_; vala_ccode_function_add_statement (_tmp135_, (ValaCCodeNode*) _tmp142_); _vala_ccode_node_unref0 (_tmp142_); } _tmp143_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp144_ = _tmp143_; _tmp145_ = sig; _tmp146_ = iface; _tmp147_ = vala_ccode_base_module_get_signal_creation ((ValaCCodeBaseModule*) self, _tmp145_, (ValaTypeSymbol*) _tmp146_); _tmp148_ = _tmp147_; vala_ccode_function_add_expression (_tmp144_, (ValaCCodeExpression*) _tmp148_); _vala_ccode_node_unref0 (_tmp148_); _vala_code_node_unref0 (sig); } _vala_iterable_unref0 (_sig_list); } { ValaInterface* _tmp149_; ValaList* _tmp150_ = NULL; ValaList* _m_list; ValaList* _tmp151_; gint _tmp152_; gint _tmp153_; gint _m_size; gint _m_index; _tmp149_ = iface; _tmp150_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp149_); _m_list = _tmp150_; _tmp151_ = _m_list; _tmp152_ = vala_collection_get_size ((ValaCollection*) _tmp151_); _tmp153_ = _tmp152_; _m_size = _tmp153_; _m_index = -1; while (TRUE) { gint _tmp154_; gint _tmp155_; gint _tmp156_; ValaList* _tmp157_; gint _tmp158_; gpointer _tmp159_ = NULL; ValaMethod* m; ValaMethod* _tmp160_; gboolean _tmp161_; gboolean _tmp162_; _tmp154_ = _m_index; _m_index = _tmp154_ + 1; _tmp155_ = _m_index; _tmp156_ = _m_size; if (!(_tmp155_ < _tmp156_)) { break; } _tmp157_ = _m_list; _tmp158_ = _m_index; _tmp159_ = vala_list_get (_tmp157_, _tmp158_); m = (ValaMethod*) _tmp159_; _tmp160_ = m; _tmp161_ = vala_method_get_is_virtual (_tmp160_); _tmp162_ = _tmp161_; if (_tmp162_) { ValaMethod* _tmp163_; gchar* _tmp164_ = NULL; gchar* cname; ValaCCodeFunction* _tmp165_; ValaCCodeFunction* _tmp166_; ValaCCodeIdentifier* _tmp167_; ValaMethod* _tmp168_; gchar* _tmp169_ = NULL; gchar* _tmp170_; ValaCCodeMemberAccess* _tmp171_; ValaCCodeMemberAccess* _tmp172_; const gchar* _tmp173_; ValaCCodeIdentifier* _tmp174_; ValaCCodeIdentifier* _tmp175_; ValaMethod* _tmp176_; gboolean _tmp177_; gboolean _tmp178_; _tmp163_ = m; _tmp164_ = vala_ccode_base_module_get_ccode_real_name ((ValaSymbol*) _tmp163_); cname = _tmp164_; _tmp165_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp166_ = _tmp165_; _tmp167_ = ciface; _tmp168_ = m; _tmp169_ = vala_ccode_base_module_get_ccode_vfunc_name (_tmp168_); _tmp170_ = _tmp169_; _tmp171_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp167_, _tmp170_); _tmp172_ = _tmp171_; _tmp173_ = cname; _tmp174_ = vala_ccode_identifier_new (_tmp173_); _tmp175_ = _tmp174_; vala_ccode_function_add_assignment (_tmp166_, (ValaCCodeExpression*) _tmp172_, (ValaCCodeExpression*) _tmp175_); _vala_ccode_node_unref0 (_tmp175_); _vala_ccode_node_unref0 (_tmp172_); _g_free0 (_tmp170_); _tmp176_ = m; _tmp177_ = vala_method_get_coroutine (_tmp176_); _tmp178_ = _tmp177_; if (_tmp178_) { ValaCCodeFunction* _tmp179_; ValaCCodeFunction* _tmp180_; ValaCCodeIdentifier* _tmp181_; ValaMethod* _tmp182_; gchar* _tmp183_ = NULL; gchar* _tmp184_; ValaCCodeMemberAccess* _tmp185_; ValaCCodeMemberAccess* _tmp186_; ValaMethod* _tmp187_; gchar* _tmp188_ = NULL; gchar* _tmp189_; ValaCCodeIdentifier* _tmp190_; ValaCCodeIdentifier* _tmp191_; _tmp179_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp180_ = _tmp179_; _tmp181_ = ciface; _tmp182_ = m; _tmp183_ = vala_ccode_base_module_get_ccode_finish_vfunc_name (_tmp182_); _tmp184_ = _tmp183_; _tmp185_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp181_, _tmp184_); _tmp186_ = _tmp185_; _tmp187_ = m; _tmp188_ = vala_ccode_base_module_get_ccode_finish_real_name (_tmp187_); _tmp189_ = _tmp188_; _tmp190_ = vala_ccode_identifier_new (_tmp189_); _tmp191_ = _tmp190_; vala_ccode_function_add_assignment (_tmp180_, (ValaCCodeExpression*) _tmp186_, (ValaCCodeExpression*) _tmp191_); _vala_ccode_node_unref0 (_tmp191_); _g_free0 (_tmp189_); _vala_ccode_node_unref0 (_tmp186_); _g_free0 (_tmp184_); } _g_free0 (cname); } _vala_code_node_unref0 (m); } _vala_iterable_unref0 (_m_list); } _tmp192_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp193_ = _tmp192_; vala_ccode_function_close (_tmp193_); vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self); _tmp194_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp195_ = base_init; vala_ccode_file_add_function (_tmp194_, _tmp195_); _vala_ccode_node_unref0 (ciface); _vala_ccode_node_unref0 (base_init); } static void vala_gtype_module_real_visit_struct (ValaCodeVisitor* base, ValaStruct* st) { ValaGTypeModule * self; ValaStruct* _tmp0_; ValaStruct* _tmp1_; gboolean _tmp2_ = FALSE; self = (ValaGTypeModule*) base; g_return_if_fail (st != NULL); _tmp0_ = st; VALA_CODE_VISITOR_CLASS (vala_gtype_module_parent_class)->visit_struct ((ValaCodeVisitor*) VALA_GERROR_MODULE (self), _tmp0_); _tmp1_ = st; _tmp2_ = vala_ccode_base_module_get_ccode_has_type_id ((ValaTypeSymbol*) _tmp1_); if (_tmp2_) { ValaStruct* _tmp3_; ValaSourceReference* _tmp4_; ValaSourceReference* _tmp5_; ValaStruct* _tmp6_; ValaCodeContext* _tmp7_; ValaCodeContext* _tmp8_; ValaStructRegisterFunction* _tmp9_; ValaStructRegisterFunction* type_fun; ValaStructRegisterFunction* _tmp10_; ValaCCodeFile* _tmp11_; ValaStructRegisterFunction* _tmp12_; ValaCCodeFragment* _tmp13_ = NULL; ValaCCodeFragment* _tmp14_; _tmp3_ = st; _tmp4_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp3_); _tmp5_ = _tmp4_; vala_ccode_base_module_push_line ((ValaCCodeBaseModule*) self, _tmp5_); _tmp6_ = st; _tmp7_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp8_ = _tmp7_; _tmp9_ = vala_struct_register_function_new (_tmp6_, _tmp8_); type_fun = _tmp9_; _tmp10_ = type_fun; vala_typeregister_function_init_from_type ((ValaTypeRegisterFunction*) _tmp10_, FALSE, FALSE); _tmp11_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp12_ = type_fun; _tmp13_ = vala_typeregister_function_get_definition ((ValaTypeRegisterFunction*) _tmp12_); _tmp14_ = _tmp13_; vala_ccode_file_add_type_member_definition (_tmp11_, (ValaCCodeNode*) _tmp14_); _vala_ccode_node_unref0 (_tmp14_); vala_ccode_base_module_pop_line ((ValaCCodeBaseModule*) self); _vala_typeregister_function_unref0 (type_fun); } } static void vala_gtype_module_real_visit_enum (ValaCodeVisitor* base, ValaEnum* en) { ValaGTypeModule * self; ValaEnum* _tmp0_; ValaEnum* _tmp1_; gboolean _tmp2_ = FALSE; self = (ValaGTypeModule*) base; g_return_if_fail (en != NULL); _tmp0_ = en; VALA_CODE_VISITOR_CLASS (vala_gtype_module_parent_class)->visit_enum ((ValaCodeVisitor*) VALA_GERROR_MODULE (self), _tmp0_); _tmp1_ = en; _tmp2_ = vala_ccode_base_module_get_ccode_has_type_id ((ValaTypeSymbol*) _tmp1_); if (_tmp2_) { ValaEnum* _tmp3_; ValaSourceReference* _tmp4_; ValaSourceReference* _tmp5_; ValaEnum* _tmp6_; ValaCodeContext* _tmp7_; ValaCodeContext* _tmp8_; ValaEnumRegisterFunction* _tmp9_; ValaEnumRegisterFunction* type_fun; ValaEnumRegisterFunction* _tmp10_; ValaCCodeFile* _tmp11_; ValaEnumRegisterFunction* _tmp12_; ValaCCodeFragment* _tmp13_ = NULL; ValaCCodeFragment* _tmp14_; _tmp3_ = en; _tmp4_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp3_); _tmp5_ = _tmp4_; vala_ccode_base_module_push_line ((ValaCCodeBaseModule*) self, _tmp5_); _tmp6_ = en; _tmp7_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp8_ = _tmp7_; _tmp9_ = vala_enum_register_function_new (_tmp6_, _tmp8_); type_fun = _tmp9_; _tmp10_ = type_fun; vala_typeregister_function_init_from_type ((ValaTypeRegisterFunction*) _tmp10_, FALSE, FALSE); _tmp11_ = ((ValaCCodeBaseModule*) self)->cfile; _tmp12_ = type_fun; _tmp13_ = vala_typeregister_function_get_definition ((ValaTypeRegisterFunction*) _tmp12_); _tmp14_ = _tmp13_; vala_ccode_file_add_type_member_definition (_tmp11_, (ValaCCodeNode*) _tmp14_); _vala_ccode_node_unref0 (_tmp14_); vala_ccode_base_module_pop_line ((ValaCCodeBaseModule*) self); _vala_typeregister_function_unref0 (type_fun); } } static void vala_gtype_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr) { ValaGTypeModule * self; ValaMethodCall* _tmp0_; ValaExpression* _tmp1_; ValaExpression* _tmp2_; ValaMemberAccess* _tmp3_; ValaMemberAccess* ma; ValaMethodCall* _tmp4_; ValaExpression* _tmp5_; ValaExpression* _tmp6_; ValaDataType* _tmp7_; ValaDataType* _tmp8_; ValaMethodType* _tmp9_; ValaMethodType* mtype; gboolean _tmp10_ = FALSE; gboolean _tmp11_ = FALSE; gboolean _tmp12_ = FALSE; gboolean _tmp13_ = FALSE; gboolean _tmp14_ = FALSE; ValaMethodType* _tmp15_; gboolean _tmp17_; gboolean _tmp21_; gboolean _tmp27_; gboolean _tmp36_; gboolean _tmp47_; ValaMethodCall* _tmp49_; ValaSourceReference* _tmp50_; ValaSourceReference* _tmp51_; ValaCType* _tmp52_; ValaCType* _tmp53_; ValaMethodCall* _tmp54_; ValaLocalVariable* _tmp55_ = NULL; ValaLocalVariable* _tmp56_; ValaLocalVariable* temp_var; ValaLocalVariable* _tmp57_; ValaCCodeIdentifier* _tmp58_; ValaCCodeIdentifier* _tmp59_; ValaCCodeFunctionCall* _tmp60_; ValaCCodeFunctionCall* _tmp61_; ValaCCodeFunctionCall* class_ref; ValaCCodeFunctionCall* _tmp62_; ValaMemberAccess* _tmp63_; ValaExpression* _tmp64_; ValaExpression* _tmp65_; ValaDataType* _tmp66_; ValaDataType* _tmp67_; gchar* _tmp68_ = NULL; gchar* _tmp69_; ValaCCodeIdentifier* _tmp70_; ValaCCodeIdentifier* _tmp71_; ValaCCodeIdentifier* _tmp72_; ValaCCodeIdentifier* _tmp73_; ValaCCodeFunctionCall* _tmp74_; ValaCCodeFunctionCall* _tmp75_; ValaCCodeFunctionCall* get_value; ValaCCodeFunctionCall* _tmp76_; ValaCCodeFunctionCall* _tmp77_; ValaCCodeFunctionCall* _tmp78_; ValaMethodCall* _tmp79_; ValaExpression* _tmp80_; ValaExpression* _tmp81_; ValaExpression* _tmp82_; ValaExpression* _tmp83_; ValaCCodeExpression* _tmp84_ = NULL; ValaCCodeExpression* _tmp85_; ValaCCodeFunction* _tmp86_; ValaCCodeFunction* _tmp87_; ValaLocalVariable* _tmp88_; const gchar* _tmp89_; const gchar* _tmp90_; ValaCCodeExpression* _tmp91_ = NULL; ValaCCodeExpression* _tmp92_; ValaCCodeFunctionCall* _tmp93_; ValaLocalVariable* _tmp94_; const gchar* _tmp95_; const gchar* _tmp96_; ValaCCodeExpression* _tmp97_ = NULL; ValaCCodeExpression* _tmp98_; ValaCCodeIdentifier* _tmp99_; ValaCCodeIdentifier* _tmp100_; ValaCCodeBinaryExpression* _tmp101_; ValaCCodeBinaryExpression* _tmp102_; ValaCCodeBinaryExpression* is_null_value; ValaMethodCall* _tmp103_; ValaCCodeBinaryExpression* _tmp104_; ValaLocalVariable* _tmp105_; const gchar* _tmp106_; const gchar* _tmp107_; ValaCCodeExpression* _tmp108_ = NULL; ValaCCodeExpression* _tmp109_; ValaCCodeMemberAccess* _tmp110_; ValaCCodeMemberAccess* _tmp111_; ValaCCodeIdentifier* _tmp112_; ValaCCodeIdentifier* _tmp113_; ValaCCodeConditionalExpression* _tmp114_; ValaCCodeConditionalExpression* _tmp115_; self = (ValaGTypeModule*) base; g_return_if_fail (expr != NULL); _tmp0_ = expr; _tmp1_ = vala_method_call_get_call (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = _vala_code_node_ref0 (VALA_IS_MEMBER_ACCESS (_tmp2_) ? ((ValaMemberAccess*) _tmp2_) : NULL); ma = _tmp3_; _tmp4_ = expr; _tmp5_ = vala_method_call_get_call (_tmp4_); _tmp6_ = _tmp5_; _tmp7_ = vala_expression_get_value_type (_tmp6_); _tmp8_ = _tmp7_; _tmp9_ = _vala_code_node_ref0 (VALA_IS_METHOD_TYPE (_tmp8_) ? ((ValaMethodType*) _tmp8_) : NULL); mtype = _tmp9_; _tmp15_ = mtype; if (_tmp15_ == NULL) { _tmp14_ = TRUE; } else { ValaMemberAccess* _tmp16_; _tmp16_ = ma; _tmp14_ = _tmp16_ == NULL; } _tmp17_ = _tmp14_; if (_tmp17_) { _tmp13_ = TRUE; } else { ValaMemberAccess* _tmp18_; ValaExpression* _tmp19_; ValaExpression* _tmp20_; _tmp18_ = ma; _tmp19_ = vala_member_access_get_inner (_tmp18_); _tmp20_ = _tmp19_; _tmp13_ = _tmp20_ == NULL; } _tmp21_ = _tmp13_; if (_tmp21_) { _tmp12_ = TRUE; } else { ValaMemberAccess* _tmp22_; ValaExpression* _tmp23_; ValaExpression* _tmp24_; ValaDataType* _tmp25_; ValaDataType* _tmp26_; _tmp22_ = ma; _tmp23_ = vala_member_access_get_inner (_tmp22_); _tmp24_ = _tmp23_; _tmp25_ = vala_expression_get_value_type (_tmp24_); _tmp26_ = _tmp25_; _tmp12_ = !VALA_IS_ENUM_VALUE_TYPE (_tmp26_); } _tmp27_ = _tmp12_; if (_tmp27_) { _tmp11_ = TRUE; } else { ValaMemberAccess* _tmp28_; ValaExpression* _tmp29_; ValaExpression* _tmp30_; ValaDataType* _tmp31_; ValaDataType* _tmp32_; ValaTypeSymbol* _tmp33_; ValaTypeSymbol* _tmp34_; gboolean _tmp35_ = FALSE; _tmp28_ = ma; _tmp29_ = vala_member_access_get_inner (_tmp28_); _tmp30_ = _tmp29_; _tmp31_ = vala_expression_get_value_type (_tmp30_); _tmp32_ = _tmp31_; _tmp33_ = vala_data_type_get_data_type (_tmp32_); _tmp34_ = _tmp33_; _tmp35_ = vala_ccode_base_module_get_ccode_has_type_id (_tmp34_); _tmp11_ = !_tmp35_; } _tmp36_ = _tmp11_; if (_tmp36_) { _tmp10_ = TRUE; } else { ValaMethodType* _tmp37_; ValaMethod* _tmp38_; ValaMethod* _tmp39_; ValaMemberAccess* _tmp40_; ValaExpression* _tmp41_; ValaExpression* _tmp42_; ValaDataType* _tmp43_; ValaDataType* _tmp44_; ValaMethod* _tmp45_ = NULL; ValaMethod* _tmp46_; _tmp37_ = mtype; _tmp38_ = vala_method_type_get_method_symbol (_tmp37_); _tmp39_ = _tmp38_; _tmp40_ = ma; _tmp41_ = vala_member_access_get_inner (_tmp40_); _tmp42_ = _tmp41_; _tmp43_ = vala_expression_get_value_type (_tmp42_); _tmp44_ = _tmp43_; _tmp45_ = vala_enum_value_type_get_to_string_method (VALA_ENUM_VALUE_TYPE (_tmp44_)); _tmp46_ = _tmp45_; _tmp10_ = _tmp39_ != _tmp46_; _vala_code_node_unref0 (_tmp46_); } _tmp47_ = _tmp10_; if (_tmp47_) { ValaMethodCall* _tmp48_; _tmp48_ = expr; VALA_CODE_VISITOR_CLASS (vala_gtype_module_parent_class)->visit_method_call ((ValaCodeVisitor*) VALA_GERROR_MODULE (self), _tmp48_); _vala_code_node_unref0 (mtype); _vala_code_node_unref0 (ma); return; } _tmp49_ = expr; _tmp50_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp49_); _tmp51_ = _tmp50_; vala_ccode_base_module_push_line ((ValaCCodeBaseModule*) self, _tmp51_); _tmp52_ = vala_ctype_new ("GEnumValue*"); _tmp53_ = _tmp52_; _tmp54_ = expr; _tmp55_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, (ValaDataType*) _tmp53_, FALSE, (ValaCodeNode*) _tmp54_, FALSE); _tmp56_ = _tmp55_; _vala_code_node_unref0 (_tmp53_); temp_var = _tmp56_; _tmp57_ = temp_var; vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp57_); _tmp58_ = vala_ccode_identifier_new ("g_type_class_ref"); _tmp59_ = _tmp58_; _tmp60_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp59_); _tmp61_ = _tmp60_; _vala_ccode_node_unref0 (_tmp59_); class_ref = _tmp61_; _tmp62_ = class_ref; _tmp63_ = ma; _tmp64_ = vala_member_access_get_inner (_tmp63_); _tmp65_ = _tmp64_; _tmp66_ = vala_expression_get_value_type (_tmp65_); _tmp67_ = _tmp66_; _tmp68_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp67_); _tmp69_ = _tmp68_; _tmp70_ = vala_ccode_identifier_new (_tmp69_); _tmp71_ = _tmp70_; vala_ccode_function_call_add_argument (_tmp62_, (ValaCCodeExpression*) _tmp71_); _vala_ccode_node_unref0 (_tmp71_); _g_free0 (_tmp69_); _tmp72_ = vala_ccode_identifier_new ("g_enum_get_value"); _tmp73_ = _tmp72_; _tmp74_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp73_); _tmp75_ = _tmp74_; _vala_ccode_node_unref0 (_tmp73_); get_value = _tmp75_; _tmp76_ = get_value; _tmp77_ = class_ref; vala_ccode_function_call_add_argument (_tmp76_, (ValaCCodeExpression*) _tmp77_); _tmp78_ = get_value; _tmp79_ = expr; _tmp80_ = vala_method_call_get_call (_tmp79_); _tmp81_ = _tmp80_; _tmp82_ = vala_member_access_get_inner (VALA_MEMBER_ACCESS (_tmp81_)); _tmp83_ = _tmp82_; _tmp84_ = vala_ccode_base_module_get_ccodenode ((ValaCCodeBaseModule*) self, _tmp83_); _tmp85_ = VALA_CCODE_EXPRESSION (_tmp84_); vala_ccode_function_call_add_argument (_tmp78_, _tmp85_); _vala_ccode_node_unref0 (_tmp85_); _tmp86_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp87_ = _tmp86_; _tmp88_ = temp_var; _tmp89_ = vala_symbol_get_name ((ValaSymbol*) _tmp88_); _tmp90_ = _tmp89_; _tmp91_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp90_); _tmp92_ = _tmp91_; _tmp93_ = get_value; vala_ccode_function_add_assignment (_tmp87_, _tmp92_, (ValaCCodeExpression*) _tmp93_); _vala_ccode_node_unref0 (_tmp92_); _tmp94_ = temp_var; _tmp95_ = vala_symbol_get_name ((ValaSymbol*) _tmp94_); _tmp96_ = _tmp95_; _tmp97_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp96_); _tmp98_ = _tmp97_; _tmp99_ = vala_ccode_identifier_new ("NULL"); _tmp100_ = _tmp99_; _tmp101_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_INEQUALITY, _tmp98_, (ValaCCodeExpression*) _tmp100_); _tmp102_ = _tmp101_; _vala_ccode_node_unref0 (_tmp100_); _vala_ccode_node_unref0 (_tmp98_); is_null_value = _tmp102_; _tmp103_ = expr; _tmp104_ = is_null_value; _tmp105_ = temp_var; _tmp106_ = vala_symbol_get_name ((ValaSymbol*) _tmp105_); _tmp107_ = _tmp106_; _tmp108_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp107_); _tmp109_ = _tmp108_; _tmp110_ = vala_ccode_member_access_new_pointer (_tmp109_, "value_name"); _tmp111_ = _tmp110_; _tmp112_ = vala_ccode_identifier_new ("NULL"); _tmp113_ = _tmp112_; _tmp114_ = vala_ccode_conditional_expression_new ((ValaCCodeExpression*) _tmp104_, (ValaCCodeExpression*) _tmp111_, (ValaCCodeExpression*) _tmp113_); _tmp115_ = _tmp114_; vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) _tmp103_, (ValaCCodeExpression*) _tmp115_); _vala_ccode_node_unref0 (_tmp115_); _vala_ccode_node_unref0 (_tmp113_); _vala_ccode_node_unref0 (_tmp111_); _vala_ccode_node_unref0 (_tmp109_); vala_ccode_base_module_pop_line ((ValaCCodeBaseModule*) self); _vala_ccode_node_unref0 (is_null_value); _vala_ccode_node_unref0 (get_value); _vala_ccode_node_unref0 (class_ref); _vala_code_node_unref0 (temp_var); _vala_code_node_unref0 (mtype); _vala_code_node_unref0 (ma); } static void vala_gtype_module_real_visit_property (ValaCodeVisitor* base, ValaProperty* prop) { ValaGTypeModule * self; ValaTypeSymbol* _tmp0_; ValaTypeSymbol* _tmp1_; ValaClass* _tmp2_; ValaClass* cl; ValaTypeSymbol* _tmp3_; ValaTypeSymbol* _tmp4_; ValaStruct* _tmp5_; ValaStruct* st; gboolean _tmp6_ = FALSE; ValaProperty* _tmp7_; const gchar* _tmp8_; const gchar* _tmp9_; gboolean _tmp23_; ValaProperty* _tmp27_; self = (ValaGTypeModule*) base; g_return_if_fail (prop != NULL); _tmp0_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self); _tmp1_ = _tmp0_; _tmp2_ = _vala_code_node_ref0 (VALA_IS_CLASS (_tmp1_) ? ((ValaClass*) _tmp1_) : NULL); cl = _tmp2_; _tmp3_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self); _tmp4_ = _tmp3_; _tmp5_ = _vala_code_node_ref0 (VALA_IS_STRUCT (_tmp4_) ? ((ValaStruct*) _tmp4_) : NULL); st = _tmp5_; _tmp7_ = prop; _tmp8_ = vala_symbol_get_name ((ValaSymbol*) _tmp7_); _tmp9_ = _tmp8_; if (g_strcmp0 (_tmp9_, "type") == 0) { gboolean _tmp10_ = FALSE; gboolean _tmp11_ = FALSE; ValaClass* _tmp12_; gboolean _tmp16_; gboolean _tmp22_; _tmp12_ = cl; if (_tmp12_ != NULL) { ValaClass* _tmp13_; gboolean _tmp14_; gboolean _tmp15_; _tmp13_ = cl; _tmp14_ = vala_class_get_is_compact (_tmp13_); _tmp15_ = _tmp14_; _tmp11_ = !_tmp15_; } else { _tmp11_ = FALSE; } _tmp16_ = _tmp11_; if (_tmp16_) { _tmp10_ = TRUE; } else { gboolean _tmp17_ = FALSE; ValaStruct* _tmp18_; gboolean _tmp21_; _tmp18_ = st; if (_tmp18_ != NULL) { ValaStruct* _tmp19_; gboolean _tmp20_ = FALSE; _tmp19_ = st; _tmp20_ = vala_ccode_base_module_get_ccode_has_type_id ((ValaTypeSymbol*) _tmp19_); _tmp17_ = _tmp20_; } else { _tmp17_ = FALSE; } _tmp21_ = _tmp17_; _tmp10_ = _tmp21_; } _tmp22_ = _tmp10_; _tmp6_ = _tmp22_; } else { _tmp6_ = FALSE; } _tmp23_ = _tmp6_; if (_tmp23_) { ValaProperty* _tmp24_; ValaSourceReference* _tmp25_; ValaSourceReference* _tmp26_; _tmp24_ = prop; _tmp25_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp24_); _tmp26_ = _tmp25_; vala_report_error (_tmp26_, "Property 'type' not allowed"); _vala_code_node_unref0 (st); _vala_code_node_unref0 (cl); return; } _tmp27_ = prop; VALA_CODE_VISITOR_CLASS (vala_gtype_module_parent_class)->visit_property ((ValaCodeVisitor*) VALA_GERROR_MODULE (self), _tmp27_); _vala_code_node_unref0 (st); _vala_code_node_unref0 (cl); } static void vala_gtype_module_real_create_type_check_statement (ValaCCodeBaseModule* base, ValaCodeNode* method_node, ValaDataType* ret_type, ValaTypeSymbol* t, gboolean non_null, const gchar* var_name) { ValaGTypeModule * self; ValaCCodeFunctionCall* _tmp0_; ValaCCodeFunctionCall* ccheck; ValaCodeContext* _tmp1_; ValaCodeContext* _tmp2_; gboolean _tmp3_; gboolean _tmp4_; ValaCodeNode* _tmp69_; ValaCreationMethod* _tmp70_; ValaCreationMethod* cm; gboolean _tmp71_ = FALSE; ValaCreationMethod* _tmp72_; gboolean _tmp76_; ValaCCodeFunction* _tmp107_; ValaCCodeFunction* _tmp108_; ValaCCodeFunctionCall* _tmp109_; self = (ValaGTypeModule*) base; g_return_if_fail (method_node != NULL); g_return_if_fail (ret_type != NULL); g_return_if_fail (t != NULL); g_return_if_fail (var_name != NULL); _tmp0_ = vala_ccode_function_call_new (NULL); ccheck = _tmp0_; _tmp1_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp2_ = _tmp1_; _tmp3_ = vala_code_context_get_assert (_tmp2_); _tmp4_ = _tmp3_; if (!_tmp4_) { _vala_ccode_node_unref0 (ccheck); return; } else { gboolean _tmp5_ = FALSE; ValaCodeContext* _tmp6_; ValaCodeContext* _tmp7_; gboolean _tmp8_; gboolean _tmp9_; gboolean _tmp19_; _tmp6_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self); _tmp7_ = _tmp6_; _tmp8_ = vala_code_context_get_checking (_tmp7_); _tmp9_ = _tmp8_; if (_tmp9_) { gboolean _tmp10_ = FALSE; gboolean _tmp11_ = FALSE; ValaTypeSymbol* _tmp12_; gboolean _tmp16_; gboolean _tmp18_; _tmp12_ = t; if (VALA_IS_CLASS (_tmp12_)) { ValaTypeSymbol* _tmp13_; gboolean _tmp14_; gboolean _tmp15_; _tmp13_ = t; _tmp14_ = vala_class_get_is_compact (VALA_CLASS (_tmp13_)); _tmp15_ = _tmp14_; _tmp11_ = !_tmp15_; } else { _tmp11_ = FALSE; } _tmp16_ = _tmp11_; if (_tmp16_) { _tmp10_ = TRUE; } else { ValaTypeSymbol* _tmp17_; _tmp17_ = t; _tmp10_ = VALA_IS_INTERFACE (_tmp17_); } _tmp18_ = _tmp10_; _tmp5_ = _tmp18_; } else { _tmp5_ = FALSE; } _tmp19_ = _tmp5_; if (_tmp19_) { ValaTypeSymbol* _tmp20_; gchar* _tmp21_ = NULL; gchar* _tmp22_; ValaCCodeIdentifier* _tmp23_; ValaCCodeIdentifier* _tmp24_; ValaCCodeFunctionCall* _tmp25_; ValaCCodeFunctionCall* _tmp26_; ValaCCodeFunctionCall* ctype_check; ValaCCodeFunctionCall* _tmp27_; const gchar* _tmp28_; ValaCCodeIdentifier* _tmp29_; ValaCCodeIdentifier* _tmp30_; ValaCCodeFunctionCall* _tmp31_; ValaCCodeExpression* _tmp32_; ValaCCodeExpression* cexpr; gboolean _tmp33_; ValaCCodeFunctionCall* _tmp44_; ValaCCodeExpression* _tmp45_; _tmp20_ = t; _tmp21_ = vala_ccode_base_module_get_ccode_type_check_function (_tmp20_); _tmp22_ = _tmp21_; _tmp23_ = vala_ccode_identifier_new (_tmp22_); _tmp24_ = _tmp23_; _tmp25_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp24_); _tmp26_ = _tmp25_; _vala_ccode_node_unref0 (_tmp24_); _g_free0 (_tmp22_); ctype_check = _tmp26_; _tmp27_ = ctype_check; _tmp28_ = var_name; _tmp29_ = vala_ccode_identifier_new (_tmp28_); _tmp30_ = _tmp29_; vala_ccode_function_call_add_argument (_tmp27_, (ValaCCodeExpression*) _tmp30_); _vala_ccode_node_unref0 (_tmp30_); _tmp31_ = ctype_check; _tmp32_ = _vala_ccode_node_ref0 ((ValaCCodeExpression*) _tmp31_); cexpr = _tmp32_; _tmp33_ = non_null; if (!_tmp33_) { const gchar* _tmp34_; ValaCCodeIdentifier* _tmp35_; ValaCCodeIdentifier* _tmp36_; ValaCCodeConstant* _tmp37_; ValaCCodeConstant* _tmp38_; ValaCCodeBinaryExpression* _tmp39_; ValaCCodeBinaryExpression* _tmp40_; ValaCCodeBinaryExpression* cnull; ValaCCodeBinaryExpression* _tmp41_; ValaCCodeFunctionCall* _tmp42_; ValaCCodeBinaryExpression* _tmp43_; _tmp34_ = var_name; _tmp35_ = vala_ccode_identifier_new (_tmp34_); _tmp36_ = _tmp35_; _tmp37_ = vala_ccode_constant_new ("NULL"); _tmp38_ = _tmp37_; _tmp39_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp36_, (ValaCCodeExpression*) _tmp38_); _tmp40_ = _tmp39_; _vala_ccode_node_unref0 (_tmp38_); _vala_ccode_node_unref0 (_tmp36_); cnull = _tmp40_; _tmp41_ = cnull; _tmp42_ = ctype_check; _tmp43_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_OR, (ValaCCodeExpression*) _tmp41_, (ValaCCodeExpression*) _tmp42_); _vala_ccode_node_unref0 (cexpr); cexpr = (ValaCCodeExpression*) _tmp43_; _vala_ccode_node_unref0 (cnull); } _tmp44_ = ccheck; _tmp45_ = cexpr; vala_ccode_function_call_add_argument (_tmp44_, _tmp45_); _vala_ccode_node_unref0 (cexpr); _vala_ccode_node_unref0 (ctype_check); } else { gboolean _tmp46_ = FALSE; gboolean _tmp47_; gboolean _tmp53_; _tmp47_ = non_null; if (!_tmp47_) { _tmp46_ = TRUE; } else { gboolean _tmp48_ = FALSE; ValaTypeSymbol* _tmp49_; gboolean _tmp52_; _tmp49_ = t; if (VALA_IS_STRUCT (_tmp49_)) { ValaTypeSymbol* _tmp50_; gboolean _tmp51_ = FALSE; _tmp50_ = t; _tmp51_ = vala_struct_is_simple_type (VALA_STRUCT (_tmp50_)); _tmp48_ = _tmp51_; } else { _tmp48_ = FALSE; } _tmp52_ = _tmp48_; _tmp46_ = _tmp52_; } _tmp53_ = _tmp46_; if (_tmp53_) { _vala_ccode_node_unref0 (ccheck); return; } else { gboolean _tmp54_ = FALSE; ValaTypeSymbol* _tmp55_; ValaClass* _tmp56_; gboolean _tmp59_; _tmp55_ = t; _tmp56_ = ((ValaCCodeBaseModule*) self)->glist_type; if (_tmp55_ == VALA_TYPESYMBOL (_tmp56_)) { _tmp54_ = TRUE; } else { ValaTypeSymbol* _tmp57_; ValaClass* _tmp58_; _tmp57_ = t; _tmp58_ = ((ValaCCodeBaseModule*) self)->gslist_type; _tmp54_ = _tmp57_ == VALA_TYPESYMBOL (_tmp58_); } _tmp59_ = _tmp54_; if (_tmp59_) { _vala_ccode_node_unref0 (ccheck); return; } else { const gchar* _tmp60_; ValaCCodeIdentifier* _tmp61_; ValaCCodeIdentifier* _tmp62_; ValaCCodeConstant* _tmp63_; ValaCCodeConstant* _tmp64_; ValaCCodeBinaryExpression* _tmp65_; ValaCCodeBinaryExpression* _tmp66_; ValaCCodeBinaryExpression* cnonnull; ValaCCodeFunctionCall* _tmp67_; ValaCCodeBinaryExpression* _tmp68_; _tmp60_ = var_name; _tmp61_ = vala_ccode_identifier_new (_tmp60_); _tmp62_ = _tmp61_; _tmp63_ = vala_ccode_constant_new ("NULL"); _tmp64_ = _tmp63_; _tmp65_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_INEQUALITY, (ValaCCodeExpression*) _tmp62_, (ValaCCodeExpression*) _tmp64_); _tmp66_ = _tmp65_; _vala_ccode_node_unref0 (_tmp64_); _vala_ccode_node_unref0 (_tmp62_); cnonnull = _tmp66_; _tmp67_ = ccheck; _tmp68_ = cnonnull; vala_ccode_function_call_add_argument (_tmp67_, (ValaCCodeExpression*) _tmp68_); _vala_ccode_node_unref0 (cnonnull); } } } } _tmp69_ = method_node; _tmp70_ = _vala_code_node_ref0 (VALA_IS_CREATION_METHOD (_tmp69_) ? ((ValaCreationMethod*) _tmp69_) : NULL); cm = _tmp70_; _tmp72_ = cm; if (_tmp72_ != NULL) { ValaCreationMethod* _tmp73_; ValaSymbol* _tmp74_; ValaSymbol* _tmp75_; _tmp73_ = cm; _tmp74_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp73_); _tmp75_ = _tmp74_; _tmp71_ = VALA_IS_OBJECT_TYPE_SYMBOL (_tmp75_); } else { _tmp71_ = FALSE; } _tmp76_ = _tmp71_; if (_tmp76_) { ValaCCodeFunctionCall* _tmp77_; ValaCCodeIdentifier* _tmp78_; ValaCCodeIdentifier* _tmp79_; ValaCCodeFunctionCall* _tmp80_; ValaCCodeConstant* _tmp81_; ValaCCodeConstant* _tmp82_; _tmp77_ = ccheck; _tmp78_ = vala_ccode_identifier_new ("g_return_val_if_fail"); _tmp79_ = _tmp78_; vala_ccode_function_call_set_call (_tmp77_, (ValaCCodeExpression*) _tmp79_); _vala_ccode_node_unref0 (_tmp79_); _tmp80_ = ccheck; _tmp81_ = vala_ccode_constant_new ("NULL"); _tmp82_ = _tmp81_; vala_ccode_function_call_add_argument (_tmp80_, (ValaCCodeExpression*) _tmp82_); _vala_ccode_node_unref0 (_tmp82_); } else { ValaDataType* _tmp83_; _tmp83_ = ret_type; if (VALA_IS_VOID_TYPE (_tmp83_)) { ValaCCodeFunctionCall* _tmp84_; ValaCCodeIdentifier* _tmp85_; ValaCCodeIdentifier* _tmp86_; _tmp84_ = ccheck; _tmp85_ = vala_ccode_identifier_new ("g_return_if_fail"); _tmp86_ = _tmp85_; vala_ccode_function_call_set_call (_tmp84_, (ValaCCodeExpression*) _tmp86_); _vala_ccode_node_unref0 (_tmp86_); } else { ValaCCodeFunctionCall* _tmp87_; ValaCCodeIdentifier* _tmp88_; ValaCCodeIdentifier* _tmp89_; ValaDataType* _tmp90_; ValaCCodeExpression* _tmp91_ = NULL; ValaCCodeExpression* cdefault; ValaCCodeExpression* _tmp92_; _tmp87_ = ccheck; _tmp88_ = vala_ccode_identifier_new ("g_return_val_if_fail"); _tmp89_ = _tmp88_; vala_ccode_function_call_set_call (_tmp87_, (ValaCCodeExpression*) _tmp89_); _vala_ccode_node_unref0 (_tmp89_); _tmp90_ = ret_type; _tmp91_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp90_, FALSE); cdefault = _tmp91_; _tmp92_ = cdefault; if (_tmp92_ != NULL) { ValaCCodeFunctionCall* _tmp93_; ValaCCodeExpression* _tmp94_; _tmp93_ = ccheck; _tmp94_ = cdefault; vala_ccode_function_call_add_argument (_tmp93_, _tmp94_); } else { gboolean _tmp95_ = FALSE; ValaDataType* _tmp96_; ValaTypeSymbol* _tmp97_; ValaTypeSymbol* _tmp98_; gboolean _tmp103_; _tmp96_ = ret_type; _tmp97_ = vala_data_type_get_data_type (_tmp96_); _tmp98_ = _tmp97_; if (VALA_IS_STRUCT (_tmp98_)) { ValaDataType* _tmp99_; ValaTypeSymbol* _tmp100_; ValaTypeSymbol* _tmp101_; gboolean _tmp102_ = FALSE; _tmp99_ = ret_type; _tmp100_ = vala_data_type_get_data_type (_tmp99_); _tmp101_ = _tmp100_; _tmp102_ = vala_struct_is_simple_type (VALA_STRUCT (_tmp101_)); _tmp95_ = _tmp102_; } else { _tmp95_ = FALSE; } _tmp103_ = _tmp95_; if (_tmp103_) { ValaCCodeFunctionCall* _tmp104_; ValaCCodeIdentifier* _tmp105_; ValaCCodeIdentifier* _tmp106_; _tmp104_ = ccheck; _tmp105_ = vala_ccode_identifier_new ("result"); _tmp106_ = _tmp105_; vala_ccode_function_call_add_argument (_tmp104_, (ValaCCodeExpression*) _tmp106_); _vala_ccode_node_unref0 (_tmp106_); } else { _vala_ccode_node_unref0 (cdefault); _vala_code_node_unref0 (cm); _vala_ccode_node_unref0 (ccheck); return; } } _vala_ccode_node_unref0 (cdefault); } } _tmp107_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp108_ = _tmp107_; _tmp109_ = ccheck; vala_ccode_function_add_expression (_tmp108_, (ValaCCodeExpression*) _tmp109_); _vala_code_node_unref0 (cm); _vala_ccode_node_unref0 (ccheck); } ValaGTypeModule* vala_gtype_module_construct (GType object_type) { ValaGTypeModule* self = NULL; self = (ValaGTypeModule*) vala_gerror_module_construct (object_type); return self; } ValaGTypeModule* vala_gtype_module_new (void) { return vala_gtype_module_construct (VALA_TYPE_GTYPE_MODULE); } static void vala_gtype_module_class_init (ValaGTypeModuleClass * klass) { vala_gtype_module_parent_class = g_type_class_peek_parent (klass); VALA_CCODE_METHOD_MODULE_CLASS (klass)->generate_parameter = vala_gtype_module_real_generate_parameter; VALA_CCODE_BASE_MODULE_CLASS (klass)->generate_class_declaration = vala_gtype_module_real_generate_class_declaration; VALA_CCODE_BASE_MODULE_CLASS (klass)->generate_class_struct_declaration = vala_gtype_module_real_generate_class_struct_declaration; VALA_GTYPE_MODULE_CLASS (klass)->generate_virtual_method_declaration = vala_gtype_module_real_generate_virtual_method_declaration; VALA_CODE_VISITOR_CLASS (klass)->visit_class = vala_gtype_module_real_visit_class; VALA_GTYPE_MODULE_CLASS (klass)->generate_class_init = vala_gtype_module_real_generate_class_init; VALA_CCODE_BASE_MODULE_CLASS (klass)->get_param_spec = vala_gtype_module_real_get_param_spec; VALA_CCODE_BASE_MODULE_CLASS (klass)->generate_interface_declaration = vala_gtype_module_real_generate_interface_declaration; VALA_CODE_VISITOR_CLASS (klass)->visit_interface = vala_gtype_module_real_visit_interface; VALA_CODE_VISITOR_CLASS (klass)->visit_struct = vala_gtype_module_real_visit_struct; VALA_CODE_VISITOR_CLASS (klass)->visit_enum = vala_gtype_module_real_visit_enum; VALA_CODE_VISITOR_CLASS (klass)->visit_method_call = vala_gtype_module_real_visit_method_call; VALA_CODE_VISITOR_CLASS (klass)->visit_property = vala_gtype_module_real_visit_property; VALA_CCODE_BASE_MODULE_CLASS (klass)->create_type_check_statement = vala_gtype_module_real_create_type_check_statement; } static void vala_gtype_module_instance_init (ValaGTypeModule * self) { } GType vala_gtype_module_get_type (void) { static volatile gsize vala_gtype_module_type_id__volatile = 0; if (g_once_init_enter (&vala_gtype_module_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (ValaGTypeModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_gtype_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaGTypeModule), 0, (GInstanceInitFunc) vala_gtype_module_instance_init, NULL }; GType vala_gtype_module_type_id; vala_gtype_module_type_id = g_type_register_static (VALA_TYPE_GERROR_MODULE, "ValaGTypeModule", &g_define_type_info, 0); g_once_init_leave (&vala_gtype_module_type_id__volatile, vala_gtype_module_type_id); } return vala_gtype_module_type_id__volatile; }