/* valatyperegisterfunction.c generated by valac, the Vala compiler * generated from valatyperegisterfunction.vala, do not modify */ /* valatyperegisterfunction.vala * * Copyright (C) 2006-2010 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * Author: * Jürg Billeter */ #include "valacodegen.h" #include #include #include #include #include #include #include #include #define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL))) #define _g_free0(var) (var = (g_free (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))) typedef struct _ValaParamSpecTypeRegisterFunction ValaParamSpecTypeRegisterFunction; struct _ValaTypeRegisterFunctionPrivate { ValaCCodeFragment* source_declaration_fragment; ValaCCodeFragment* declaration_fragment; ValaCCodeFragment* definition_fragment; }; struct _ValaParamSpecTypeRegisterFunction { GParamSpec parent_instance; }; static gint ValaTypeRegisterFunction_private_offset; static gpointer vala_typeregister_function_parent_class = NULL; static ValaTypeSymbol* vala_typeregister_function_real_get_type_declaration (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_type_struct_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_base_init_func_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_class_finalize_func_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_base_finalize_func_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_class_init_func_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_instance_struct_size (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_instance_init_func_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_parent_type_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_gtype_value_table_init_function_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_gtype_value_table_peek_pointer_function_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_gtype_value_table_free_function_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_gtype_value_table_copy_function_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_gtype_value_table_lcopy_value_function_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_gtype_value_table_collect_value_function_name (ValaTypeRegisterFunction* self); static gchar* vala_typeregister_function_real_get_type_flags (ValaTypeRegisterFunction* self); static ValaCCodeFragment* vala_typeregister_function_real_get_type_interface_init_declaration (ValaTypeRegisterFunction* self); static void vala_typeregister_function_real_get_type_interface_init_statements (ValaTypeRegisterFunction* self, ValaCodeContext* context, ValaCCodeBlock* block, gboolean plugin); static ValaSymbolAccessibility vala_typeregister_function_real_get_accessibility (ValaTypeRegisterFunction* self); static void vala_typeregister_function_finalize (ValaTypeRegisterFunction * obj); static GType vala_typeregister_function_get_type_once (void); static inline gpointer vala_typeregister_function_get_instance_private (ValaTypeRegisterFunction* self) { return G_STRUCT_MEMBER_P (self, ValaTypeRegisterFunction_private_offset); } /** * Constructs the C function from the specified type. */ static gpointer _vala_code_node_ref0 (gpointer self) { return self ? vala_code_node_ref (self) : NULL; } static gpointer _vala_iterable_ref0 (gpointer self) { return self ? vala_iterable_ref (self) : NULL; } static gpointer _vala_ccode_node_ref0 (gpointer self) { return self ? vala_ccode_node_ref (self) : NULL; } void vala_typeregister_function_init_from_type (ValaTypeRegisterFunction* self, ValaCodeContext* context, gboolean plugin, gboolean declaration_only) { ValaTypeSymbol* type_symbol = NULL; ValaTypeSymbol* _tmp0_; gboolean fundamental = FALSE; ValaClass* cl = NULL; ValaTypeSymbol* _tmp1_; gboolean _tmp2_ = FALSE; gboolean _tmp3_ = FALSE; ValaClass* _tmp4_; gchar* type_id_name = NULL; ValaTypeSymbol* _tmp11_; gchar* _tmp12_; gchar* _tmp13_; gchar* _tmp14_; gchar* _tmp15_; ValaCCodeBlock* type_block = NULL; ValaCCodeBlock* _tmp16_; ValaCCodeBlock* type_once_block = NULL; ValaCCodeBlock* _tmp17_; ValaCCodeDeclaration* _cdecl_ = NULL; ValaCCodeFunction* fun = NULL; ValaCCodeFunction* fun_once = NULL; gchar* type_value_table_decl_name = NULL; ValaCCodeBlock* type_init = NULL; ValaCCodeBlock* _tmp119_; ValaTypeSymbol* _tmp145_; ValaCCodeBlock* _tmp182_; ValaCCodeFragment* _tmp183_; ValaCCodeFragment* _tmp184_; ValaCCodeFunctionCall* reg_call = NULL; ValaTypeSymbol* _tmp185_; ValaCCodeFunctionCall* _tmp227_; ValaTypeSymbol* _tmp228_; gchar* _tmp229_; gchar* _tmp230_; gchar* _tmp231_; gchar* _tmp232_; ValaCCodeConstant* _tmp233_; ValaCCodeConstant* _tmp234_; ValaTypeSymbol* _tmp235_; ValaCCodeBlock* once_call_block = NULL; ValaCCodeBlock* _tmp330_; gboolean _tmp362_ = FALSE; ValaClass* _tmp363_; gboolean _tmp387_ = FALSE; ValaClass* _tmp388_; ValaCCodeFunction* _tmp507_; ValaCCodeBlock* _tmp508_; ValaCCodeFragment* _tmp509_; ValaCCodeFunction* _tmp510_; g_return_if_fail (self != NULL); g_return_if_fail (context != NULL); _tmp0_ = vala_typeregister_function_get_type_declaration (self); type_symbol = _tmp0_; fundamental = FALSE; _tmp1_ = type_symbol; cl = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALA_TYPE_CLASS) ? ((ValaClass*) _tmp1_) : NULL; _tmp4_ = cl; if (_tmp4_ != NULL) { ValaClass* _tmp5_; gboolean _tmp6_; gboolean _tmp7_; _tmp5_ = cl; _tmp6_ = vala_class_get_is_compact (_tmp5_); _tmp7_ = _tmp6_; _tmp3_ = !_tmp7_; } else { _tmp3_ = FALSE; } if (_tmp3_) { ValaClass* _tmp8_; ValaClass* _tmp9_; ValaClass* _tmp10_; _tmp8_ = cl; _tmp9_ = vala_class_get_base_class (_tmp8_); _tmp10_ = _tmp9_; _tmp2_ = _tmp10_ == NULL; } else { _tmp2_ = FALSE; } if (_tmp2_) { fundamental = TRUE; } _tmp11_ = type_symbol; _tmp12_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp11_, NULL); _tmp13_ = _tmp12_; _tmp14_ = g_strdup_printf ("%s_type_id", _tmp13_); _tmp15_ = _tmp14_; _g_free0 (_tmp13_); type_id_name = _tmp15_; _tmp16_ = vala_ccode_block_new (); type_block = _tmp16_; _tmp17_ = vala_ccode_block_new (); type_once_block = _tmp17_; if (!plugin) { ValaCCodeDeclaration* _tmp18_; ValaCCodeDeclaration* _tmp19_; const gchar* _tmp20_; gchar* _tmp21_; gchar* _tmp22_; ValaCCodeConstant* _tmp23_; ValaCCodeConstant* _tmp24_; ValaCCodeVariableDeclarator* _tmp25_; ValaCCodeVariableDeclarator* _tmp26_; ValaCCodeDeclaration* _tmp27_; ValaCCodeBlock* _tmp28_; ValaCCodeDeclaration* _tmp29_; _tmp18_ = vala_ccode_declaration_new ("gsize"); _vala_ccode_node_unref0 (_cdecl_); _cdecl_ = _tmp18_; _tmp19_ = _cdecl_; _tmp20_ = type_id_name; _tmp21_ = g_strconcat (_tmp20_, "__volatile", NULL); _tmp22_ = _tmp21_; _tmp23_ = vala_ccode_constant_new ("0"); _tmp24_ = _tmp23_; _tmp25_ = vala_ccode_variable_declarator_new (_tmp22_, (ValaCCodeExpression*) _tmp24_, NULL); _tmp26_ = _tmp25_; vala_ccode_declaration_add_declarator (_tmp19_, (ValaCCodeDeclarator*) _tmp26_); _vala_ccode_node_unref0 (_tmp26_); _vala_ccode_node_unref0 (_tmp24_); _g_free0 (_tmp22_); _tmp27_ = _cdecl_; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp27_, VALA_CCODE_MODIFIERS_STATIC | VALA_CCODE_MODIFIERS_VOLATILE); _tmp28_ = type_block; _tmp29_ = _cdecl_; vala_ccode_block_add_statement (_tmp28_, (ValaCCodeNode*) _tmp29_); } else { ValaCCodeDeclaration* _tmp30_; ValaCCodeDeclaration* _tmp31_; const gchar* _tmp32_; ValaCCodeConstant* _tmp33_; ValaCCodeConstant* _tmp34_; ValaCCodeVariableDeclarator* _tmp35_; ValaCCodeVariableDeclarator* _tmp36_; ValaCCodeDeclaration* _tmp37_; ValaCCodeFragment* _tmp38_; ValaCCodeDeclaration* _tmp39_; _tmp30_ = vala_ccode_declaration_new ("GType"); _vala_ccode_node_unref0 (_cdecl_); _cdecl_ = _tmp30_; _tmp31_ = _cdecl_; _tmp32_ = type_id_name; _tmp33_ = vala_ccode_constant_new ("0"); _tmp34_ = _tmp33_; _tmp35_ = vala_ccode_variable_declarator_new (_tmp32_, (ValaCCodeExpression*) _tmp34_, NULL); _tmp36_ = _tmp35_; vala_ccode_declaration_add_declarator (_tmp31_, (ValaCCodeDeclarator*) _tmp36_); _vala_ccode_node_unref0 (_tmp36_); _vala_ccode_node_unref0 (_tmp34_); _tmp37_ = _cdecl_; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp37_, VALA_CCODE_MODIFIERS_STATIC); _tmp38_ = self->priv->source_declaration_fragment; _tmp39_ = _cdecl_; vala_ccode_fragment_append (_tmp38_, (ValaCCodeNode*) _tmp39_); } fun_once = NULL; if (!plugin) { ValaTypeSymbol* _tmp40_; gchar* _tmp41_; gchar* _tmp42_; ValaCCodeFunction* _tmp43_; ValaCCodeFunction* _tmp44_; ValaCCodeFunction* _tmp56_; ValaCCodeFragment* _tmp57_; ValaCCodeFunction* _tmp58_; ValaCCodeFunction* _tmp59_; ValaCCodeFunction* _tmp60_; ValaCCodeFunction* _tmp61_; ValaCCodeFunction* _tmp62_; const gchar* _tmp63_; const gchar* _tmp64_; gchar* _tmp65_; gchar* _tmp66_; ValaCCodeFunction* _tmp67_; ValaCCodeFunction* _tmp68_; ValaCCodeFunction* _tmp73_; ValaCCodeFragment* _tmp74_; ValaCCodeFunction* _tmp75_; ValaCCodeFunction* _tmp76_; ValaCCodeFunction* _tmp77_; ValaCCodeFunction* _tmp78_; _tmp40_ = type_symbol; _tmp41_ = vala_get_ccode_type_function (_tmp40_); _tmp42_ = _tmp41_; _tmp43_ = vala_ccode_function_new (_tmp42_, "GType"); _vala_ccode_node_unref0 (fun); fun = _tmp43_; _g_free0 (_tmp42_); _tmp44_ = fun; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp44_, VALA_CCODE_MODIFIERS_CONST); if (vala_typeregister_function_get_accessibility (self) == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) { ValaCCodeFunction* _tmp45_; ValaCCodeFunction* _tmp46_; ValaCCodeModifiers _tmp47_; ValaCCodeModifiers _tmp48_; _tmp45_ = fun; _tmp46_ = fun; _tmp47_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp46_); _tmp48_ = _tmp47_; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp46_, _tmp48_ | (VALA_CCODE_MODIFIERS_STATIC | VALA_CCODE_MODIFIERS_UNUSED)); } else { gboolean _tmp49_ = FALSE; gboolean _tmp50_; gboolean _tmp51_; _tmp50_ = vala_code_context_get_hide_internal (context); _tmp51_ = _tmp50_; if (_tmp51_) { _tmp49_ = vala_typeregister_function_get_accessibility (self) == VALA_SYMBOL_ACCESSIBILITY_INTERNAL; } else { _tmp49_ = FALSE; } if (_tmp49_) { ValaCCodeFunction* _tmp52_; ValaCCodeFunction* _tmp53_; ValaCCodeModifiers _tmp54_; ValaCCodeModifiers _tmp55_; _tmp52_ = fun; _tmp53_ = fun; _tmp54_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp53_); _tmp55_ = _tmp54_; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp53_, _tmp55_ | (VALA_CCODE_MODIFIERS_INTERNAL | VALA_CCODE_MODIFIERS_UNUSED)); } } _tmp56_ = fun; vala_ccode_function_set_is_declaration (_tmp56_, TRUE); _tmp57_ = self->priv->declaration_fragment; _tmp58_ = fun; _tmp59_ = vala_ccode_function_copy (_tmp58_); _tmp60_ = _tmp59_; vala_ccode_fragment_append (_tmp57_, (ValaCCodeNode*) _tmp60_); _vala_ccode_node_unref0 (_tmp60_); _tmp61_ = fun; vala_ccode_function_set_is_declaration (_tmp61_, FALSE); _tmp62_ = fun; _tmp63_ = vala_ccode_function_get_name (_tmp62_); _tmp64_ = _tmp63_; _tmp65_ = g_strdup_printf ("%s_once", _tmp64_); _tmp66_ = _tmp65_; _tmp67_ = vala_ccode_function_new (_tmp66_, "GType"); _vala_ccode_node_unref0 (fun_once); fun_once = _tmp67_; _g_free0 (_tmp66_); _tmp68_ = fun_once; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp68_, VALA_CCODE_MODIFIERS_STATIC); if (vala_code_context_require_glib_version (context, 2, 58)) { ValaCCodeFunction* _tmp69_; ValaCCodeFunction* _tmp70_; ValaCCodeModifiers _tmp71_; ValaCCodeModifiers _tmp72_; _tmp69_ = fun_once; _tmp70_ = fun_once; _tmp71_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp70_); _tmp72_ = _tmp71_; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp70_, _tmp72_ | VALA_CCODE_MODIFIERS_NO_INLINE); } _tmp73_ = fun_once; vala_ccode_function_set_is_declaration (_tmp73_, TRUE); _tmp74_ = self->priv->source_declaration_fragment; _tmp75_ = fun_once; _tmp76_ = vala_ccode_function_copy (_tmp75_); _tmp77_ = _tmp76_; vala_ccode_fragment_append (_tmp74_, (ValaCCodeNode*) _tmp77_); _vala_ccode_node_unref0 (_tmp77_); _tmp78_ = fun_once; vala_ccode_function_set_is_declaration (_tmp78_, FALSE); } else { ValaTypeSymbol* _tmp79_; gchar* _tmp80_; gchar* _tmp81_; gchar* _tmp82_; gchar* _tmp83_; ValaCCodeFunction* _tmp84_; ValaCCodeFunction* _tmp85_; ValaCCodeParameter* _tmp86_; ValaCCodeParameter* _tmp87_; ValaCCodeFunction* _tmp88_; ValaCCodeFragment* _tmp89_; ValaCCodeFunction* _tmp90_; ValaCCodeFunction* _tmp91_; ValaCCodeFunction* _tmp92_; ValaCCodeFunction* _tmp93_; ValaCCodeFunction* get_fun = NULL; ValaTypeSymbol* _tmp94_; gchar* _tmp95_; gchar* _tmp96_; ValaCCodeFunction* _tmp97_; ValaCCodeFunction* _tmp98_; ValaCCodeFunction* _tmp99_; ValaCCodeFunction* _tmp100_; ValaCCodeFragment* _tmp101_; ValaCCodeFunction* _tmp102_; ValaCCodeFunction* _tmp103_; ValaCCodeFunction* _tmp104_; ValaCCodeFunction* _tmp105_; ValaCCodeFunction* _tmp106_; ValaCCodeBlock* _tmp107_; ValaCCodeBlock* _tmp108_; ValaCCodeFunction* _tmp109_; ValaCCodeBlock* _tmp110_; ValaCCodeBlock* _tmp111_; const gchar* _tmp112_; ValaCCodeIdentifier* _tmp113_; ValaCCodeIdentifier* _tmp114_; ValaCCodeReturnStatement* _tmp115_; ValaCCodeReturnStatement* _tmp116_; ValaCCodeFragment* _tmp117_; ValaCCodeFunction* _tmp118_; _tmp79_ = type_symbol; _tmp80_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp79_, NULL); _tmp81_ = _tmp80_; _tmp82_ = g_strdup_printf ("%s_register_type", _tmp81_); _tmp83_ = _tmp82_; _tmp84_ = vala_ccode_function_new (_tmp83_, "GType"); _vala_ccode_node_unref0 (fun); fun = _tmp84_; _g_free0 (_tmp83_); _g_free0 (_tmp81_); _tmp85_ = fun; _tmp86_ = vala_ccode_parameter_new ("module", "GTypeModule *"); _tmp87_ = _tmp86_; vala_ccode_function_add_parameter (_tmp85_, _tmp87_); _vala_ccode_node_unref0 (_tmp87_); _tmp88_ = fun; vala_ccode_function_set_is_declaration (_tmp88_, TRUE); _tmp89_ = self->priv->declaration_fragment; _tmp90_ = fun; _tmp91_ = vala_ccode_function_copy (_tmp90_); _tmp92_ = _tmp91_; vala_ccode_fragment_append (_tmp89_, (ValaCCodeNode*) _tmp92_); _vala_ccode_node_unref0 (_tmp92_); _tmp93_ = fun; vala_ccode_function_set_is_declaration (_tmp93_, FALSE); _tmp94_ = type_symbol; _tmp95_ = vala_get_ccode_type_function (_tmp94_); _tmp96_ = _tmp95_; _tmp97_ = vala_ccode_function_new (_tmp96_, "GType"); _tmp98_ = _tmp97_; _g_free0 (_tmp96_); get_fun = _tmp98_; _tmp99_ = get_fun; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp99_, VALA_CCODE_MODIFIERS_CONST); _tmp100_ = get_fun; vala_ccode_function_set_is_declaration (_tmp100_, TRUE); _tmp101_ = self->priv->declaration_fragment; _tmp102_ = get_fun; _tmp103_ = vala_ccode_function_copy (_tmp102_); _tmp104_ = _tmp103_; vala_ccode_fragment_append (_tmp101_, (ValaCCodeNode*) _tmp104_); _vala_ccode_node_unref0 (_tmp104_); _tmp105_ = get_fun; vala_ccode_function_set_is_declaration (_tmp105_, FALSE); _tmp106_ = get_fun; _tmp107_ = vala_ccode_block_new (); _tmp108_ = _tmp107_; vala_ccode_function_set_block (_tmp106_, _tmp108_); _vala_ccode_node_unref0 (_tmp108_); _tmp109_ = get_fun; _tmp110_ = vala_ccode_function_get_block (_tmp109_); _tmp111_ = _tmp110_; _tmp112_ = type_id_name; _tmp113_ = vala_ccode_identifier_new (_tmp112_); _tmp114_ = _tmp113_; _tmp115_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp114_); _tmp116_ = _tmp115_; vala_ccode_block_add_statement (_tmp111_, (ValaCCodeNode*) _tmp116_); _vala_ccode_node_unref0 (_tmp116_); _vala_ccode_node_unref0 (_tmp114_); _tmp117_ = self->priv->definition_fragment; _tmp118_ = get_fun; vala_ccode_fragment_append (_tmp117_, (ValaCCodeNode*) _tmp118_); _vala_ccode_node_unref0 (get_fun); } type_value_table_decl_name = NULL; _tmp119_ = vala_ccode_block_new (); type_init = _tmp119_; if (fundamental) { ValaCCodeDeclaration* cgtypetabledecl = NULL; ValaCCodeDeclaration* _tmp120_; ValaCCodeDeclaration* _tmp121_; ValaCCodeDeclaration* _tmp122_; gchar* _tmp123_; gchar* _tmp124_; gchar* _tmp125_; gchar* _tmp126_; gchar* _tmp127_; gchar* _tmp128_; gchar* _tmp129_; gchar* _tmp130_; gchar* _tmp131_; gchar* _tmp132_; gchar* _tmp133_; gchar* _tmp134_; gchar* _tmp135_; gchar* _tmp136_; ValaCCodeConstant* _tmp137_; ValaCCodeConstant* _tmp138_; ValaCCodeVariableDeclarator* _tmp139_; ValaCCodeVariableDeclarator* _tmp140_; gchar* _tmp141_; ValaCCodeBlock* _tmp142_; ValaCCodeDeclaration* _tmp143_; _tmp120_ = vala_ccode_declaration_new ("const GTypeValueTable"); cgtypetabledecl = _tmp120_; _tmp121_ = cgtypetabledecl; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp121_, VALA_CCODE_MODIFIERS_STATIC); _tmp122_ = cgtypetabledecl; _tmp123_ = vala_typeregister_function_get_gtype_value_table_init_function_name (self); _tmp124_ = _tmp123_; _tmp125_ = vala_typeregister_function_get_gtype_value_table_free_function_name (self); _tmp126_ = _tmp125_; _tmp127_ = vala_typeregister_function_get_gtype_value_table_copy_function_name (self); _tmp128_ = _tmp127_; _tmp129_ = vala_typeregister_function_get_gtype_value_table_peek_pointer_function_name (self); _tmp130_ = _tmp129_; _tmp131_ = vala_typeregister_function_get_gtype_value_table_collect_value_function_name (self); _tmp132_ = _tmp131_; _tmp133_ = vala_typeregister_function_get_gtype_value_table_lcopy_value_function_name (self); _tmp134_ = _tmp133_; _tmp135_ = g_strdup_printf ("{ %s, %s, %s, %s, \"p\", %s, \"p\", %s }", _tmp124_, _tmp126_, _tmp128_, _tmp130_, _tmp132_, _tmp134_); _tmp136_ = _tmp135_; _tmp137_ = vala_ccode_constant_new (_tmp136_); _tmp138_ = _tmp137_; _tmp139_ = vala_ccode_variable_declarator_new ("g_define_type_value_table", (ValaCCodeExpression*) _tmp138_, NULL); _tmp140_ = _tmp139_; vala_ccode_declaration_add_declarator (_tmp122_, (ValaCCodeDeclarator*) _tmp140_); _vala_ccode_node_unref0 (_tmp140_); _vala_ccode_node_unref0 (_tmp138_); _g_free0 (_tmp136_); _g_free0 (_tmp134_); _g_free0 (_tmp132_); _g_free0 (_tmp130_); _g_free0 (_tmp128_); _g_free0 (_tmp126_); _g_free0 (_tmp124_); _tmp141_ = g_strdup ("&g_define_type_value_table"); _g_free0 (type_value_table_decl_name); type_value_table_decl_name = _tmp141_; _tmp142_ = type_init; _tmp143_ = cgtypetabledecl; vala_ccode_block_add_statement (_tmp142_, (ValaCCodeNode*) _tmp143_); _vala_ccode_node_unref0 (cgtypetabledecl); } else { gchar* _tmp144_; _tmp144_ = g_strdup ("NULL"); _g_free0 (type_value_table_decl_name); type_value_table_decl_name = _tmp144_; } _tmp145_ = type_symbol; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp145_, VALA_TYPE_OBJECT_TYPE_SYMBOL)) { ValaCCodeDeclaration* ctypedecl = NULL; ValaCCodeDeclaration* _tmp146_; ValaCCodeDeclaration* _tmp147_; gchar* _tmp148_ = NULL; ValaCCodeDeclaration* _tmp151_; gchar* _tmp152_; gchar* _tmp153_; gchar* _tmp154_; gchar* _tmp155_; gchar* _tmp156_; gchar* _tmp157_; gchar* _tmp158_; gchar* _tmp159_; gchar* _tmp160_; gchar* _tmp161_; gchar* _tmp162_; gchar* _tmp163_; const gchar* _tmp164_; gchar* _tmp165_; gchar* _tmp166_; ValaCCodeConstant* _tmp167_; ValaCCodeConstant* _tmp168_; ValaCCodeVariableDeclarator* _tmp169_; ValaCCodeVariableDeclarator* _tmp170_; ValaCCodeBlock* _tmp171_; ValaCCodeDeclaration* _tmp172_; _tmp146_ = vala_ccode_declaration_new ("const GTypeInfo"); ctypedecl = _tmp146_; _tmp147_ = ctypedecl; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp147_, VALA_CCODE_MODIFIERS_STATIC); if (plugin) { gchar* _tmp149_; _tmp149_ = vala_typeregister_function_get_base_finalize_func_name (self); _g_free0 (_tmp148_); _tmp148_ = _tmp149_; } else { gchar* _tmp150_; _tmp150_ = g_strdup ("NULL"); _g_free0 (_tmp148_); _tmp148_ = _tmp150_; } _tmp151_ = ctypedecl; _tmp152_ = vala_typeregister_function_get_type_struct_name (self); _tmp153_ = _tmp152_; _tmp154_ = vala_typeregister_function_get_base_init_func_name (self); _tmp155_ = _tmp154_; _tmp156_ = vala_typeregister_function_get_class_init_func_name (self); _tmp157_ = _tmp156_; _tmp158_ = vala_typeregister_function_get_class_finalize_func_name (self); _tmp159_ = _tmp158_; _tmp160_ = vala_typeregister_function_get_instance_struct_size (self); _tmp161_ = _tmp160_; _tmp162_ = vala_typeregister_function_get_instance_init_func_name (self); _tmp163_ = _tmp162_; _tmp164_ = type_value_table_decl_name; _tmp165_ = g_strdup_printf ("{ sizeof (%s), (GBaseInitFunc) %s, (GBaseFinalizeFunc) %s, (GClassInit" \ "Func) %s, (GClassFinalizeFunc) %s, NULL, %s, 0, (GInstanceInitFunc) %s" \ ", %s }", _tmp153_, _tmp155_, _tmp148_, _tmp157_, _tmp159_, _tmp161_, _tmp163_, _tmp164_); _tmp166_ = _tmp165_; _tmp167_ = vala_ccode_constant_new (_tmp166_); _tmp168_ = _tmp167_; _tmp169_ = vala_ccode_variable_declarator_new ("g_define_type_info", (ValaCCodeExpression*) _tmp168_, NULL); _tmp170_ = _tmp169_; vala_ccode_declaration_add_declarator (_tmp151_, (ValaCCodeDeclarator*) _tmp170_); _vala_ccode_node_unref0 (_tmp170_); _vala_ccode_node_unref0 (_tmp168_); _g_free0 (_tmp166_); _g_free0 (_tmp163_); _g_free0 (_tmp161_); _g_free0 (_tmp159_); _g_free0 (_tmp157_); _g_free0 (_tmp155_); _g_free0 (_tmp153_); _tmp171_ = type_init; _tmp172_ = ctypedecl; vala_ccode_block_add_statement (_tmp171_, (ValaCCodeNode*) _tmp172_); if (fundamental) { ValaCCodeDeclaration* ctypefundamentaldecl = NULL; ValaCCodeDeclaration* _tmp173_; ValaCCodeDeclaration* _tmp174_; ValaCCodeDeclaration* _tmp175_; ValaCCodeConstant* _tmp176_; ValaCCodeConstant* _tmp177_; ValaCCodeVariableDeclarator* _tmp178_; ValaCCodeVariableDeclarator* _tmp179_; ValaCCodeBlock* _tmp180_; ValaCCodeDeclaration* _tmp181_; _tmp173_ = vala_ccode_declaration_new ("const GTypeFundamentalInfo"); ctypefundamentaldecl = _tmp173_; _tmp174_ = ctypefundamentaldecl; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp174_, VALA_CCODE_MODIFIERS_STATIC); _tmp175_ = ctypefundamentaldecl; _tmp176_ = vala_ccode_constant_new ("{ (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERI" \ "VABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }"); _tmp177_ = _tmp176_; _tmp178_ = vala_ccode_variable_declarator_new ("g_define_type_fundamental_info", (ValaCCodeExpression*) _tmp177_, NULL); _tmp179_ = _tmp178_; vala_ccode_declaration_add_declarator (_tmp175_, (ValaCCodeDeclarator*) _tmp179_); _vala_ccode_node_unref0 (_tmp179_); _vala_ccode_node_unref0 (_tmp177_); _tmp180_ = type_init; _tmp181_ = ctypefundamentaldecl; vala_ccode_block_add_statement (_tmp180_, (ValaCCodeNode*) _tmp181_); _vala_ccode_node_unref0 (ctypefundamentaldecl); } _g_free0 (_tmp148_); _vala_ccode_node_unref0 (ctypedecl); } _tmp182_ = type_init; _tmp183_ = vala_typeregister_function_get_type_interface_init_declaration (self); _tmp184_ = _tmp183_; vala_ccode_block_add_statement (_tmp182_, (ValaCCodeNode*) _tmp184_); _vala_ccode_node_unref0 (_tmp184_); _tmp185_ = type_symbol; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp185_, VALA_TYPE_STRUCT)) { ValaCCodeIdentifier* _tmp186_; ValaCCodeIdentifier* _tmp187_; ValaCCodeFunctionCall* _tmp188_; _tmp186_ = vala_ccode_identifier_new ("g_boxed_type_register_static"); _tmp187_ = _tmp186_; _tmp188_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp187_); _vala_ccode_node_unref0 (reg_call); reg_call = _tmp188_; _vala_ccode_node_unref0 (_tmp187_); } else { ValaTypeSymbol* _tmp189_; _tmp189_ = type_symbol; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp189_, VALA_TYPE_ENUM)) { ValaEnum* en = NULL; ValaTypeSymbol* _tmp190_; ValaEnum* _tmp191_; gboolean _tmp192_; gboolean _tmp193_; _tmp190_ = type_symbol; en = G_TYPE_CHECK_INSTANCE_CAST (_tmp190_, VALA_TYPE_ENUM, ValaEnum); _tmp191_ = en; _tmp192_ = vala_enum_get_is_flags (_tmp191_); _tmp193_ = _tmp192_; if (_tmp193_) { ValaCCodeIdentifier* _tmp194_; ValaCCodeIdentifier* _tmp195_; ValaCCodeFunctionCall* _tmp196_; _tmp194_ = vala_ccode_identifier_new ("g_flags_register_static"); _tmp195_ = _tmp194_; _tmp196_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp195_); _vala_ccode_node_unref0 (reg_call); reg_call = _tmp196_; _vala_ccode_node_unref0 (_tmp195_); } else { ValaCCodeIdentifier* _tmp197_; ValaCCodeIdentifier* _tmp198_; ValaCCodeFunctionCall* _tmp199_; _tmp197_ = vala_ccode_identifier_new ("g_enum_register_static"); _tmp198_ = _tmp197_; _tmp199_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp198_); _vala_ccode_node_unref0 (reg_call); reg_call = _tmp199_; _vala_ccode_node_unref0 (_tmp198_); } } else { if (fundamental) { ValaCCodeIdentifier* _tmp200_; ValaCCodeIdentifier* _tmp201_; ValaCCodeFunctionCall* _tmp202_; ValaCCodeFunctionCall* _tmp203_; ValaCCodeIdentifier* _tmp204_; ValaCCodeIdentifier* _tmp205_; ValaCCodeFunctionCall* _tmp206_; ValaCCodeFunctionCall* _tmp207_; _tmp200_ = vala_ccode_identifier_new ("g_type_register_fundamental"); _tmp201_ = _tmp200_; _tmp202_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp201_); _vala_ccode_node_unref0 (reg_call); reg_call = _tmp202_; _vala_ccode_node_unref0 (_tmp201_); _tmp203_ = reg_call; _tmp204_ = vala_ccode_identifier_new ("g_type_fundamental_next"); _tmp205_ = _tmp204_; _tmp206_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp205_); _tmp207_ = _tmp206_; vala_ccode_function_call_add_argument (_tmp203_, (ValaCCodeExpression*) _tmp207_); _vala_ccode_node_unref0 (_tmp207_); _vala_ccode_node_unref0 (_tmp205_); } else { if (!plugin) { ValaCCodeIdentifier* _tmp208_; ValaCCodeIdentifier* _tmp209_; ValaCCodeFunctionCall* _tmp210_; ValaCCodeFunctionCall* _tmp211_; gchar* _tmp212_; gchar* _tmp213_; ValaCCodeIdentifier* _tmp214_; ValaCCodeIdentifier* _tmp215_; _tmp208_ = vala_ccode_identifier_new ("g_type_register_static"); _tmp209_ = _tmp208_; _tmp210_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp209_); _vala_ccode_node_unref0 (reg_call); reg_call = _tmp210_; _vala_ccode_node_unref0 (_tmp209_); _tmp211_ = reg_call; _tmp212_ = vala_typeregister_function_get_parent_type_name (self); _tmp213_ = _tmp212_; _tmp214_ = vala_ccode_identifier_new (_tmp213_); _tmp215_ = _tmp214_; vala_ccode_function_call_add_argument (_tmp211_, (ValaCCodeExpression*) _tmp215_); _vala_ccode_node_unref0 (_tmp215_); _g_free0 (_tmp213_); } else { ValaCCodeIdentifier* _tmp216_; ValaCCodeIdentifier* _tmp217_; ValaCCodeFunctionCall* _tmp218_; ValaCCodeFunctionCall* _tmp219_; ValaCCodeIdentifier* _tmp220_; ValaCCodeIdentifier* _tmp221_; ValaCCodeFunctionCall* _tmp222_; gchar* _tmp223_; gchar* _tmp224_; ValaCCodeIdentifier* _tmp225_; ValaCCodeIdentifier* _tmp226_; _tmp216_ = vala_ccode_identifier_new ("g_type_module_register_type"); _tmp217_ = _tmp216_; _tmp218_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp217_); _vala_ccode_node_unref0 (reg_call); reg_call = _tmp218_; _vala_ccode_node_unref0 (_tmp217_); _tmp219_ = reg_call; _tmp220_ = vala_ccode_identifier_new ("module"); _tmp221_ = _tmp220_; vala_ccode_function_call_add_argument (_tmp219_, (ValaCCodeExpression*) _tmp221_); _vala_ccode_node_unref0 (_tmp221_); _tmp222_ = reg_call; _tmp223_ = vala_typeregister_function_get_parent_type_name (self); _tmp224_ = _tmp223_; _tmp225_ = vala_ccode_identifier_new (_tmp224_); _tmp226_ = _tmp225_; vala_ccode_function_call_add_argument (_tmp222_, (ValaCCodeExpression*) _tmp226_); _vala_ccode_node_unref0 (_tmp226_); _g_free0 (_tmp224_); } } } } _tmp227_ = reg_call; _tmp228_ = type_symbol; _tmp229_ = vala_get_ccode_name ((ValaCodeNode*) _tmp228_); _tmp230_ = _tmp229_; _tmp231_ = g_strdup_printf ("\"%s\"", _tmp230_); _tmp232_ = _tmp231_; _tmp233_ = vala_ccode_constant_new (_tmp232_); _tmp234_ = _tmp233_; vala_ccode_function_call_add_argument (_tmp227_, (ValaCCodeExpression*) _tmp234_); _vala_ccode_node_unref0 (_tmp234_); _g_free0 (_tmp232_); _g_free0 (_tmp230_); _tmp235_ = type_symbol; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp235_, VALA_TYPE_STRUCT)) { ValaStruct* st = NULL; ValaTypeSymbol* _tmp236_; ValaStruct* _tmp237_; ValaCCodeFunctionCall* _tmp238_; ValaStruct* _tmp239_; gchar* _tmp240_; gchar* _tmp241_; ValaCCodeIdentifier* _tmp242_; ValaCCodeIdentifier* _tmp243_; ValaCCodeCastExpression* _tmp244_; ValaCCodeCastExpression* _tmp245_; ValaCCodeFunctionCall* _tmp246_; ValaStruct* _tmp247_; gchar* _tmp248_; gchar* _tmp249_; ValaCCodeIdentifier* _tmp250_; ValaCCodeIdentifier* _tmp251_; ValaCCodeCastExpression* _tmp252_; ValaCCodeCastExpression* _tmp253_; _tmp236_ = type_symbol; _tmp237_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp236_, VALA_TYPE_STRUCT, ValaStruct)); st = _tmp237_; _tmp238_ = reg_call; _tmp239_ = st; _tmp240_ = vala_get_ccode_dup_function ((ValaTypeSymbol*) _tmp239_); _tmp241_ = _tmp240_; _tmp242_ = vala_ccode_identifier_new (_tmp241_); _tmp243_ = _tmp242_; _tmp244_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp243_, "GBoxedCopyFunc"); _tmp245_ = _tmp244_; vala_ccode_function_call_add_argument (_tmp238_, (ValaCCodeExpression*) _tmp245_); _vala_ccode_node_unref0 (_tmp245_); _vala_ccode_node_unref0 (_tmp243_); _g_free0 (_tmp241_); _tmp246_ = reg_call; _tmp247_ = st; _tmp248_ = vala_get_ccode_free_function ((ValaTypeSymbol*) _tmp247_); _tmp249_ = _tmp248_; _tmp250_ = vala_ccode_identifier_new (_tmp249_); _tmp251_ = _tmp250_; _tmp252_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp251_, "GBoxedFreeFunc"); _tmp253_ = _tmp252_; vala_ccode_function_call_add_argument (_tmp246_, (ValaCCodeExpression*) _tmp253_); _vala_ccode_node_unref0 (_tmp253_); _vala_ccode_node_unref0 (_tmp251_); _g_free0 (_tmp249_); _vala_code_node_unref0 (st); } else { ValaTypeSymbol* _tmp254_; _tmp254_ = type_symbol; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp254_, VALA_TYPE_ENUM)) { ValaEnum* en = NULL; ValaTypeSymbol* _tmp255_; ValaCCodeInitializerList* clist = NULL; ValaCCodeInitializerList* _tmp256_; ValaCCodeInitializerList* clist_ev = NULL; ValaCCodeInitializerList* _tmp292_; ValaCCodeInitializerList* _tmp293_; ValaCCodeConstant* _tmp294_; ValaCCodeConstant* _tmp295_; ValaCCodeInitializerList* _tmp296_; ValaCCodeConstant* _tmp297_; ValaCCodeConstant* _tmp298_; ValaCCodeInitializerList* _tmp299_; ValaCCodeConstant* _tmp300_; ValaCCodeConstant* _tmp301_; ValaCCodeInitializerList* _tmp302_; ValaCCodeInitializerList* _tmp303_; ValaCCodeVariableDeclarator* enum_decl = NULL; ValaCCodeInitializerList* _tmp304_; ValaCCodeVariableDeclarator* _tmp305_; ValaEnum* _tmp306_; gboolean _tmp307_; gboolean _tmp308_; ValaCCodeDeclaration* _tmp311_; ValaCCodeVariableDeclarator* _tmp312_; ValaCCodeDeclaration* _tmp313_; ValaCCodeBlock* _tmp314_; ValaCCodeDeclaration* _tmp315_; ValaCCodeFunctionCall* _tmp316_; ValaCCodeIdentifier* _tmp317_; ValaCCodeIdentifier* _tmp318_; _tmp255_ = type_symbol; en = G_TYPE_CHECK_INSTANCE_CAST (_tmp255_, VALA_TYPE_ENUM, ValaEnum); _tmp256_ = vala_ccode_initializer_list_new (); clist = _tmp256_; clist_ev = NULL; { ValaList* _ev_list = NULL; ValaEnum* _tmp257_; ValaList* _tmp258_; ValaList* _tmp259_; gint _ev_size = 0; ValaList* _tmp260_; gint _tmp261_; gint _tmp262_; gint _ev_index = 0; _tmp257_ = en; _tmp258_ = vala_enum_get_values (_tmp257_); _tmp259_ = _vala_iterable_ref0 (_tmp258_); _ev_list = _tmp259_; _tmp260_ = _ev_list; _tmp261_ = vala_collection_get_size ((ValaCollection*) _tmp260_); _tmp262_ = _tmp261_; _ev_size = _tmp262_; _ev_index = -1; while (TRUE) { gint _tmp263_; gint _tmp264_; ValaEnumValue* ev = NULL; ValaList* _tmp265_; gpointer _tmp266_; ValaCCodeInitializerList* _tmp267_; ValaCCodeInitializerList* _tmp268_; ValaEnumValue* _tmp269_; gchar* _tmp270_; gchar* _tmp271_; ValaCCodeConstant* _tmp272_; ValaCCodeConstant* _tmp273_; ValaCCodeInitializerList* _tmp274_; ValaEnumValue* _tmp275_; gchar* _tmp276_; gchar* _tmp277_; gchar* _tmp278_; gchar* _tmp279_; ValaCCodeConstant* _tmp280_; ValaCCodeConstant* _tmp281_; ValaCCodeInitializerList* _tmp282_; ValaEnumValue* _tmp283_; const gchar* _tmp284_; const gchar* _tmp285_; gchar* _tmp286_; gchar* _tmp287_; ValaCCodeConstant* _tmp288_; ValaCCodeConstant* _tmp289_; ValaCCodeInitializerList* _tmp290_; ValaCCodeInitializerList* _tmp291_; _ev_index = _ev_index + 1; _tmp263_ = _ev_index; _tmp264_ = _ev_size; if (!(_tmp263_ < _tmp264_)) { break; } _tmp265_ = _ev_list; _tmp266_ = vala_list_get (_tmp265_, _ev_index); ev = (ValaEnumValue*) _tmp266_; _tmp267_ = vala_ccode_initializer_list_new (); _vala_ccode_node_unref0 (clist_ev); clist_ev = _tmp267_; _tmp268_ = clist_ev; _tmp269_ = ev; _tmp270_ = vala_get_ccode_name ((ValaCodeNode*) _tmp269_); _tmp271_ = _tmp270_; _tmp272_ = vala_ccode_constant_new (_tmp271_); _tmp273_ = _tmp272_; vala_ccode_initializer_list_append (_tmp268_, (ValaCCodeExpression*) _tmp273_); _vala_ccode_node_unref0 (_tmp273_); _g_free0 (_tmp271_); _tmp274_ = clist_ev; _tmp275_ = ev; _tmp276_ = vala_get_ccode_name ((ValaCodeNode*) _tmp275_); _tmp277_ = _tmp276_; _tmp278_ = g_strdup_printf ("\"%s\"", _tmp277_); _tmp279_ = _tmp278_; _tmp280_ = vala_ccode_constant_new (_tmp279_); _tmp281_ = _tmp280_; vala_ccode_initializer_list_append (_tmp274_, (ValaCCodeExpression*) _tmp281_); _vala_ccode_node_unref0 (_tmp281_); _g_free0 (_tmp279_); _g_free0 (_tmp277_); _tmp282_ = clist_ev; _tmp283_ = ev; _tmp284_ = vala_enum_value_get_nick (_tmp283_); _tmp285_ = _tmp284_; _tmp286_ = g_strdup_printf ("\"%s\"", _tmp285_); _tmp287_ = _tmp286_; _tmp288_ = vala_ccode_constant_new (_tmp287_); _tmp289_ = _tmp288_; vala_ccode_initializer_list_append (_tmp282_, (ValaCCodeExpression*) _tmp289_); _vala_ccode_node_unref0 (_tmp289_); _g_free0 (_tmp287_); _tmp290_ = clist; _tmp291_ = clist_ev; vala_ccode_initializer_list_append (_tmp290_, (ValaCCodeExpression*) _tmp291_); _vala_code_node_unref0 (ev); } _vala_iterable_unref0 (_ev_list); } _tmp292_ = vala_ccode_initializer_list_new (); _vala_ccode_node_unref0 (clist_ev); clist_ev = _tmp292_; _tmp293_ = clist_ev; _tmp294_ = vala_ccode_constant_new ("0"); _tmp295_ = _tmp294_; vala_ccode_initializer_list_append (_tmp293_, (ValaCCodeExpression*) _tmp295_); _vala_ccode_node_unref0 (_tmp295_); _tmp296_ = clist_ev; _tmp297_ = vala_ccode_constant_new ("NULL"); _tmp298_ = _tmp297_; vala_ccode_initializer_list_append (_tmp296_, (ValaCCodeExpression*) _tmp298_); _vala_ccode_node_unref0 (_tmp298_); _tmp299_ = clist_ev; _tmp300_ = vala_ccode_constant_new ("NULL"); _tmp301_ = _tmp300_; vala_ccode_initializer_list_append (_tmp299_, (ValaCCodeExpression*) _tmp301_); _vala_ccode_node_unref0 (_tmp301_); _tmp302_ = clist; _tmp303_ = clist_ev; vala_ccode_initializer_list_append (_tmp302_, (ValaCCodeExpression*) _tmp303_); _tmp304_ = clist; _tmp305_ = vala_ccode_variable_declarator_new ("values[]", (ValaCCodeExpression*) _tmp304_, NULL); enum_decl = _tmp305_; _tmp306_ = en; _tmp307_ = vala_enum_get_is_flags (_tmp306_); _tmp308_ = _tmp307_; if (_tmp308_) { ValaCCodeDeclaration* _tmp309_; _tmp309_ = vala_ccode_declaration_new ("const GFlagsValue"); _vala_ccode_node_unref0 (_cdecl_); _cdecl_ = _tmp309_; } else { ValaCCodeDeclaration* _tmp310_; _tmp310_ = vala_ccode_declaration_new ("const GEnumValue"); _vala_ccode_node_unref0 (_cdecl_); _cdecl_ = _tmp310_; } _tmp311_ = _cdecl_; _tmp312_ = enum_decl; vala_ccode_declaration_add_declarator (_tmp311_, (ValaCCodeDeclarator*) _tmp312_); _tmp313_ = _cdecl_; vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp313_, VALA_CCODE_MODIFIERS_STATIC); _tmp314_ = type_init; _tmp315_ = _cdecl_; vala_ccode_block_add_statement (_tmp314_, (ValaCCodeNode*) _tmp315_); _tmp316_ = reg_call; _tmp317_ = vala_ccode_identifier_new ("values"); _tmp318_ = _tmp317_; vala_ccode_function_call_add_argument (_tmp316_, (ValaCCodeExpression*) _tmp318_); _vala_ccode_node_unref0 (_tmp318_); _vala_ccode_node_unref0 (enum_decl); _vala_ccode_node_unref0 (clist_ev); _vala_ccode_node_unref0 (clist); } else { ValaCCodeFunctionCall* _tmp319_; ValaCCodeIdentifier* _tmp320_; ValaCCodeIdentifier* _tmp321_; ValaCCodeFunctionCall* _tmp325_; gchar* _tmp326_; gchar* _tmp327_; ValaCCodeConstant* _tmp328_; ValaCCodeConstant* _tmp329_; _tmp319_ = reg_call; _tmp320_ = vala_ccode_identifier_new ("&g_define_type_info"); _tmp321_ = _tmp320_; vala_ccode_function_call_add_argument (_tmp319_, (ValaCCodeExpression*) _tmp321_); _vala_ccode_node_unref0 (_tmp321_); if (fundamental) { ValaCCodeFunctionCall* _tmp322_; ValaCCodeIdentifier* _tmp323_; ValaCCodeIdentifier* _tmp324_; _tmp322_ = reg_call; _tmp323_ = vala_ccode_identifier_new ("&g_define_type_fundamental_info"); _tmp324_ = _tmp323_; vala_ccode_function_call_add_argument (_tmp322_, (ValaCCodeExpression*) _tmp324_); _vala_ccode_node_unref0 (_tmp324_); } _tmp325_ = reg_call; _tmp326_ = vala_typeregister_function_get_type_flags (self); _tmp327_ = _tmp326_; _tmp328_ = vala_ccode_constant_new (_tmp327_); _tmp329_ = _tmp328_; vala_ccode_function_call_add_argument (_tmp325_, (ValaCCodeExpression*) _tmp329_); _vala_ccode_node_unref0 (_tmp329_); _g_free0 (_tmp327_); } } _tmp330_ = vala_ccode_block_new (); once_call_block = _tmp330_; if (!plugin) { ValaCCodeDeclaration* temp_decl = NULL; ValaCCodeDeclaration* _tmp331_; ValaCCodeDeclaration* _tmp332_; const gchar* _tmp333_; ValaCCodeFunctionCall* _tmp334_; ValaCCodeVariableDeclarator* _tmp335_; ValaCCodeVariableDeclarator* _tmp336_; ValaCCodeBlock* _tmp337_; ValaCCodeDeclaration* _tmp338_; ValaCCodeDeclaration* _tmp339_; ValaCCodeDeclaration* _tmp340_; const gchar* _tmp341_; ValaCCodeFunction* _tmp342_; const gchar* _tmp343_; const gchar* _tmp344_; ValaCCodeIdentifier* _tmp345_; ValaCCodeIdentifier* _tmp346_; ValaCCodeFunctionCall* _tmp347_; ValaCCodeFunctionCall* _tmp348_; ValaCCodeVariableDeclarator* _tmp349_; ValaCCodeVariableDeclarator* _tmp350_; ValaCCodeBlock* _tmp351_; ValaCCodeDeclaration* _tmp352_; _tmp331_ = vala_ccode_declaration_new ("GType"); temp_decl = _tmp331_; _tmp332_ = temp_decl; _tmp333_ = type_id_name; _tmp334_ = reg_call; _tmp335_ = vala_ccode_variable_declarator_new (_tmp333_, (ValaCCodeExpression*) _tmp334_, NULL); _tmp336_ = _tmp335_; vala_ccode_declaration_add_declarator (_tmp332_, (ValaCCodeDeclarator*) _tmp336_); _vala_ccode_node_unref0 (_tmp336_); _tmp337_ = type_init; _tmp338_ = temp_decl; vala_ccode_block_add_statement (_tmp337_, (ValaCCodeNode*) _tmp338_); _tmp339_ = vala_ccode_declaration_new ("GType"); _vala_ccode_node_unref0 (temp_decl); temp_decl = _tmp339_; _tmp340_ = temp_decl; _tmp341_ = type_id_name; _tmp342_ = fun_once; _tmp343_ = vala_ccode_function_get_name (_tmp342_); _tmp344_ = _tmp343_; _tmp345_ = vala_ccode_identifier_new (_tmp344_); _tmp346_ = _tmp345_; _tmp347_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp346_); _tmp348_ = _tmp347_; _tmp349_ = vala_ccode_variable_declarator_new (_tmp341_, (ValaCCodeExpression*) _tmp348_, NULL); _tmp350_ = _tmp349_; vala_ccode_declaration_add_declarator (_tmp340_, (ValaCCodeDeclarator*) _tmp350_); _vala_ccode_node_unref0 (_tmp350_); _vala_ccode_node_unref0 (_tmp348_); _vala_ccode_node_unref0 (_tmp346_); _tmp351_ = once_call_block; _tmp352_ = temp_decl; vala_ccode_block_add_statement (_tmp351_, (ValaCCodeNode*) _tmp352_); _vala_ccode_node_unref0 (temp_decl); } else { ValaCCodeBlock* _tmp353_; const gchar* _tmp354_; ValaCCodeIdentifier* _tmp355_; ValaCCodeIdentifier* _tmp356_; ValaCCodeFunctionCall* _tmp357_; ValaCCodeAssignment* _tmp358_; ValaCCodeAssignment* _tmp359_; ValaCCodeExpressionStatement* _tmp360_; ValaCCodeExpressionStatement* _tmp361_; _tmp353_ = type_init; _tmp354_ = type_id_name; _tmp355_ = vala_ccode_identifier_new (_tmp354_); _tmp356_ = _tmp355_; _tmp357_ = reg_call; _tmp358_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp356_, (ValaCCodeExpression*) _tmp357_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE); _tmp359_ = _tmp358_; _tmp360_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp359_); _tmp361_ = _tmp360_; vala_ccode_block_add_statement (_tmp353_, (ValaCCodeNode*) _tmp361_); _vala_ccode_node_unref0 (_tmp361_); _vala_ccode_node_unref0 (_tmp359_); _vala_ccode_node_unref0 (_tmp356_); } _tmp363_ = cl; if (_tmp363_ != NULL) { ValaClass* _tmp364_; gboolean _tmp365_; gboolean _tmp366_; _tmp364_ = cl; _tmp365_ = vala_class_get_has_class_private_fields (_tmp364_); _tmp366_ = _tmp365_; _tmp362_ = _tmp366_; } else { _tmp362_ = FALSE; } if (_tmp362_) { ValaCCodeFunctionCall* add_class_private_call = NULL; ValaCCodeIdentifier* _tmp367_; ValaCCodeIdentifier* _tmp368_; ValaCCodeFunctionCall* _tmp369_; ValaCCodeFunctionCall* _tmp370_; const gchar* _tmp371_; ValaCCodeIdentifier* _tmp372_; ValaCCodeIdentifier* _tmp373_; ValaCCodeFunctionCall* _tmp374_; ValaClass* _tmp375_; gchar* _tmp376_; gchar* _tmp377_; gchar* _tmp378_; gchar* _tmp379_; ValaCCodeIdentifier* _tmp380_; ValaCCodeIdentifier* _tmp381_; ValaCCodeBlock* _tmp382_; ValaCCodeFunctionCall* _tmp383_; ValaCCodeExpressionStatement* _tmp384_; ValaCCodeExpressionStatement* _tmp385_; _tmp367_ = vala_ccode_identifier_new ("g_type_add_class_private"); _tmp368_ = _tmp367_; _tmp369_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp368_); _vala_ccode_node_unref0 (add_class_private_call); add_class_private_call = _tmp369_; _vala_ccode_node_unref0 (_tmp368_); _tmp370_ = add_class_private_call; _tmp371_ = type_id_name; _tmp372_ = vala_ccode_identifier_new (_tmp371_); _tmp373_ = _tmp372_; vala_ccode_function_call_add_argument (_tmp370_, (ValaCCodeExpression*) _tmp373_); _vala_ccode_node_unref0 (_tmp373_); _tmp374_ = add_class_private_call; _tmp375_ = cl; _tmp376_ = vala_get_ccode_type_name ((ValaObjectTypeSymbol*) _tmp375_); _tmp377_ = _tmp376_; _tmp378_ = g_strdup_printf ("sizeof (%sPrivate)", _tmp377_); _tmp379_ = _tmp378_; _tmp380_ = vala_ccode_identifier_new (_tmp379_); _tmp381_ = _tmp380_; vala_ccode_function_call_add_argument (_tmp374_, (ValaCCodeExpression*) _tmp381_); _vala_ccode_node_unref0 (_tmp381_); _g_free0 (_tmp379_); _g_free0 (_tmp377_); _tmp382_ = type_init; _tmp383_ = add_class_private_call; _tmp384_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp383_); _tmp385_ = _tmp384_; vala_ccode_block_add_statement (_tmp382_, (ValaCCodeNode*) _tmp385_); _vala_ccode_node_unref0 (_tmp385_); _vala_ccode_node_unref0 (add_class_private_call); } if (!declaration_only) { ValaCCodeBlock* _tmp386_; _tmp386_ = type_init; vala_typeregister_function_get_type_interface_init_statements (self, context, _tmp386_, plugin); } _tmp388_ = cl; if (_tmp388_ != NULL) { gboolean _tmp389_ = FALSE; ValaClass* _tmp390_; gboolean _tmp391_; gboolean _tmp392_; _tmp390_ = cl; _tmp391_ = vala_class_get_has_private_fields (_tmp390_); _tmp392_ = _tmp391_; if (_tmp392_) { _tmp389_ = TRUE; } else { ValaClass* _tmp393_; _tmp393_ = cl; _tmp389_ = vala_object_type_symbol_has_type_parameters ((ValaObjectTypeSymbol*) _tmp393_); } _tmp387_ = _tmp389_; } else { _tmp387_ = FALSE; } if (_tmp387_) { if (!plugin) { ValaCCodeFunctionCall* ccall = NULL; ValaCCodeIdentifier* _tmp394_; ValaCCodeIdentifier* _tmp395_; ValaCCodeFunctionCall* _tmp396_; ValaCCodeFunctionCall* _tmp397_; ValaCCodeFunctionCall* _tmp398_; const gchar* _tmp399_; ValaCCodeIdentifier* _tmp400_; ValaCCodeIdentifier* _tmp401_; ValaCCodeFunctionCall* _tmp402_; ValaClass* _tmp403_; gchar* _tmp404_; gchar* _tmp405_; gchar* _tmp406_; gchar* _tmp407_; ValaCCodeIdentifier* _tmp408_; ValaCCodeIdentifier* _tmp409_; ValaCCodeBlock* _tmp410_; ValaClass* _tmp411_; gchar* _tmp412_; gchar* _tmp413_; gchar* _tmp414_; gchar* _tmp415_; ValaCCodeIdentifier* _tmp416_; ValaCCodeIdentifier* _tmp417_; ValaCCodeFunctionCall* _tmp418_; ValaCCodeAssignment* _tmp419_; ValaCCodeAssignment* _tmp420_; ValaCCodeExpressionStatement* _tmp421_; ValaCCodeExpressionStatement* _tmp422_; _tmp394_ = vala_ccode_identifier_new ("g_type_add_instance_private"); _tmp395_ = _tmp394_; _tmp396_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp395_); _tmp397_ = _tmp396_; _vala_ccode_node_unref0 (_tmp395_); ccall = _tmp397_; _tmp398_ = ccall; _tmp399_ = type_id_name; _tmp400_ = vala_ccode_identifier_new (_tmp399_); _tmp401_ = _tmp400_; vala_ccode_function_call_add_argument (_tmp398_, (ValaCCodeExpression*) _tmp401_); _vala_ccode_node_unref0 (_tmp401_); _tmp402_ = ccall; _tmp403_ = cl; _tmp404_ = vala_get_ccode_name ((ValaCodeNode*) _tmp403_); _tmp405_ = _tmp404_; _tmp406_ = g_strdup_printf ("sizeof (%sPrivate)", _tmp405_); _tmp407_ = _tmp406_; _tmp408_ = vala_ccode_identifier_new (_tmp407_); _tmp409_ = _tmp408_; vala_ccode_function_call_add_argument (_tmp402_, (ValaCCodeExpression*) _tmp409_); _vala_ccode_node_unref0 (_tmp409_); _g_free0 (_tmp407_); _g_free0 (_tmp405_); _tmp410_ = type_init; _tmp411_ = cl; _tmp412_ = vala_get_ccode_name ((ValaCodeNode*) _tmp411_); _tmp413_ = _tmp412_; _tmp414_ = g_strdup_printf ("%s_private_offset", _tmp413_); _tmp415_ = _tmp414_; _tmp416_ = vala_ccode_identifier_new (_tmp415_); _tmp417_ = _tmp416_; _tmp418_ = ccall; _tmp419_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp417_, (ValaCCodeExpression*) _tmp418_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE); _tmp420_ = _tmp419_; _tmp421_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp420_); _tmp422_ = _tmp421_; vala_ccode_block_add_statement (_tmp410_, (ValaCCodeNode*) _tmp422_); _vala_ccode_node_unref0 (_tmp422_); _vala_ccode_node_unref0 (_tmp420_); _vala_ccode_node_unref0 (_tmp417_); _g_free0 (_tmp415_); _g_free0 (_tmp413_); _vala_ccode_node_unref0 (ccall); } else { ValaCCodeBlock* _tmp423_; ValaClass* _tmp424_; gchar* _tmp425_; gchar* _tmp426_; gchar* _tmp427_; gchar* _tmp428_; ValaCCodeIdentifier* _tmp429_; ValaCCodeIdentifier* _tmp430_; ValaClass* _tmp431_; gchar* _tmp432_; gchar* _tmp433_; gchar* _tmp434_; gchar* _tmp435_; ValaCCodeIdentifier* _tmp436_; ValaCCodeIdentifier* _tmp437_; ValaCCodeAssignment* _tmp438_; ValaCCodeAssignment* _tmp439_; ValaCCodeExpressionStatement* _tmp440_; ValaCCodeExpressionStatement* _tmp441_; _tmp423_ = type_init; _tmp424_ = cl; _tmp425_ = vala_get_ccode_name ((ValaCodeNode*) _tmp424_); _tmp426_ = _tmp425_; _tmp427_ = g_strdup_printf ("%s_private_offset", _tmp426_); _tmp428_ = _tmp427_; _tmp429_ = vala_ccode_identifier_new (_tmp428_); _tmp430_ = _tmp429_; _tmp431_ = cl; _tmp432_ = vala_get_ccode_name ((ValaCodeNode*) _tmp431_); _tmp433_ = _tmp432_; _tmp434_ = g_strdup_printf ("sizeof (%sPrivate)", _tmp433_); _tmp435_ = _tmp434_; _tmp436_ = vala_ccode_identifier_new (_tmp435_); _tmp437_ = _tmp436_; _tmp438_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp430_, (ValaCCodeExpression*) _tmp437_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE); _tmp439_ = _tmp438_; _tmp440_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp439_); _tmp441_ = _tmp440_; vala_ccode_block_add_statement (_tmp423_, (ValaCCodeNode*) _tmp441_); _vala_ccode_node_unref0 (_tmp441_); _vala_ccode_node_unref0 (_tmp439_); _vala_ccode_node_unref0 (_tmp437_); _g_free0 (_tmp435_); _g_free0 (_tmp433_); _vala_ccode_node_unref0 (_tmp430_); _g_free0 (_tmp428_); _g_free0 (_tmp426_); } } if (!plugin) { ValaCCodeFunctionCall* enter = NULL; ValaCCodeIdentifier* _tmp442_; ValaCCodeIdentifier* _tmp443_; ValaCCodeFunctionCall* _tmp444_; ValaCCodeFunctionCall* _tmp445_; ValaCCodeFunctionCall* _tmp446_; const gchar* _tmp447_; gchar* _tmp448_; gchar* _tmp449_; ValaCCodeIdentifier* _tmp450_; ValaCCodeIdentifier* _tmp451_; ValaCCodeUnaryExpression* _tmp452_; ValaCCodeUnaryExpression* _tmp453_; ValaCCodeFunctionCall* leave = NULL; ValaCCodeIdentifier* _tmp454_; ValaCCodeIdentifier* _tmp455_; ValaCCodeFunctionCall* _tmp456_; ValaCCodeFunctionCall* _tmp457_; ValaCCodeFunctionCall* _tmp458_; const gchar* _tmp459_; gchar* _tmp460_; gchar* _tmp461_; ValaCCodeIdentifier* _tmp462_; ValaCCodeIdentifier* _tmp463_; ValaCCodeUnaryExpression* _tmp464_; ValaCCodeUnaryExpression* _tmp465_; ValaCCodeFunctionCall* _tmp466_; const gchar* _tmp467_; ValaCCodeIdentifier* _tmp468_; ValaCCodeIdentifier* _tmp469_; ValaCCodeBlock* _tmp470_; ValaCCodeFunctionCall* _tmp471_; ValaCCodeExpressionStatement* _tmp472_; ValaCCodeExpressionStatement* _tmp473_; ValaCCodeIfStatement* cif = NULL; ValaCCodeFunctionCall* _tmp474_; ValaCCodeBlock* _tmp475_; ValaCCodeIfStatement* _tmp476_; ValaCCodeBlock* _tmp477_; ValaCCodeIfStatement* _tmp478_; ValaCCodeBlock* _tmp479_; const gchar* _tmp480_; gchar* _tmp481_; gchar* _tmp482_; ValaCCodeIdentifier* _tmp483_; ValaCCodeIdentifier* _tmp484_; ValaCCodeReturnStatement* _tmp485_; ValaCCodeReturnStatement* _tmp486_; ValaCCodeBlock* _tmp487_; ValaCCodeBlock* _tmp488_; ValaCCodeBlock* _tmp489_; const gchar* _tmp490_; ValaCCodeIdentifier* _tmp491_; ValaCCodeIdentifier* _tmp492_; ValaCCodeReturnStatement* _tmp493_; ValaCCodeReturnStatement* _tmp494_; _tmp442_ = vala_ccode_identifier_new ("g_once_init_enter"); _tmp443_ = _tmp442_; _tmp444_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp443_); _tmp445_ = _tmp444_; _vala_ccode_node_unref0 (_tmp443_); enter = _tmp445_; _tmp446_ = enter; _tmp447_ = type_id_name; _tmp448_ = g_strconcat (_tmp447_, "__volatile", NULL); _tmp449_ = _tmp448_; _tmp450_ = vala_ccode_identifier_new (_tmp449_); _tmp451_ = _tmp450_; _tmp452_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp451_); _tmp453_ = _tmp452_; vala_ccode_function_call_add_argument (_tmp446_, (ValaCCodeExpression*) _tmp453_); _vala_ccode_node_unref0 (_tmp453_); _vala_ccode_node_unref0 (_tmp451_); _g_free0 (_tmp449_); _tmp454_ = vala_ccode_identifier_new ("g_once_init_leave"); _tmp455_ = _tmp454_; _tmp456_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp455_); _tmp457_ = _tmp456_; _vala_ccode_node_unref0 (_tmp455_); leave = _tmp457_; _tmp458_ = leave; _tmp459_ = type_id_name; _tmp460_ = g_strconcat (_tmp459_, "__volatile", NULL); _tmp461_ = _tmp460_; _tmp462_ = vala_ccode_identifier_new (_tmp461_); _tmp463_ = _tmp462_; _tmp464_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp463_); _tmp465_ = _tmp464_; vala_ccode_function_call_add_argument (_tmp458_, (ValaCCodeExpression*) _tmp465_); _vala_ccode_node_unref0 (_tmp465_); _vala_ccode_node_unref0 (_tmp463_); _g_free0 (_tmp461_); _tmp466_ = leave; _tmp467_ = type_id_name; _tmp468_ = vala_ccode_identifier_new (_tmp467_); _tmp469_ = _tmp468_; vala_ccode_function_call_add_argument (_tmp466_, (ValaCCodeExpression*) _tmp469_); _vala_ccode_node_unref0 (_tmp469_); _tmp470_ = once_call_block; _tmp471_ = leave; _tmp472_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp471_); _tmp473_ = _tmp472_; vala_ccode_block_add_statement (_tmp470_, (ValaCCodeNode*) _tmp473_); _vala_ccode_node_unref0 (_tmp473_); _tmp474_ = enter; _tmp475_ = once_call_block; _tmp476_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp474_, (ValaCCodeStatement*) _tmp475_, NULL); cif = _tmp476_; _tmp477_ = type_block; _tmp478_ = cif; vala_ccode_block_add_statement (_tmp477_, (ValaCCodeNode*) _tmp478_); _tmp479_ = type_block; _tmp480_ = type_id_name; _tmp481_ = g_strconcat (_tmp480_, "__volatile", NULL); _tmp482_ = _tmp481_; _tmp483_ = vala_ccode_identifier_new (_tmp482_); _tmp484_ = _tmp483_; _tmp485_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp484_); _tmp486_ = _tmp485_; vala_ccode_block_add_statement (_tmp479_, (ValaCCodeNode*) _tmp486_); _vala_ccode_node_unref0 (_tmp486_); _vala_ccode_node_unref0 (_tmp484_); _g_free0 (_tmp482_); _tmp487_ = type_init; _tmp488_ = _vala_ccode_node_ref0 (_tmp487_); _vala_ccode_node_unref0 (type_once_block); type_once_block = _tmp488_; _tmp489_ = type_once_block; _tmp490_ = type_id_name; _tmp491_ = vala_ccode_identifier_new (_tmp490_); _tmp492_ = _tmp491_; _tmp493_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp492_); _tmp494_ = _tmp493_; vala_ccode_block_add_statement (_tmp489_, (ValaCCodeNode*) _tmp494_); _vala_ccode_node_unref0 (_tmp494_); _vala_ccode_node_unref0 (_tmp492_); _vala_ccode_node_unref0 (cif); _vala_ccode_node_unref0 (leave); _vala_ccode_node_unref0 (enter); } else { ValaCCodeBlock* _tmp495_; ValaCCodeBlock* _tmp496_; ValaCCodeBlock* _tmp497_; const gchar* _tmp498_; ValaCCodeIdentifier* _tmp499_; ValaCCodeIdentifier* _tmp500_; ValaCCodeReturnStatement* _tmp501_; ValaCCodeReturnStatement* _tmp502_; _tmp495_ = type_init; _tmp496_ = _vala_ccode_node_ref0 (_tmp495_); _vala_ccode_node_unref0 (type_block); type_block = _tmp496_; _tmp497_ = type_block; _tmp498_ = type_id_name; _tmp499_ = vala_ccode_identifier_new (_tmp498_); _tmp500_ = _tmp499_; _tmp501_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp500_); _tmp502_ = _tmp501_; vala_ccode_block_add_statement (_tmp497_, (ValaCCodeNode*) _tmp502_); _vala_ccode_node_unref0 (_tmp502_); _vala_ccode_node_unref0 (_tmp500_); } if (!plugin) { ValaCCodeFunction* _tmp503_; ValaCCodeBlock* _tmp504_; ValaCCodeFragment* _tmp505_; ValaCCodeFunction* _tmp506_; _tmp503_ = fun_once; _tmp504_ = type_once_block; vala_ccode_function_set_block (_tmp503_, _tmp504_); _tmp505_ = self->priv->definition_fragment; _tmp506_ = fun_once; vala_ccode_fragment_append (_tmp505_, (ValaCCodeNode*) _tmp506_); } _tmp507_ = fun; _tmp508_ = type_block; vala_ccode_function_set_block (_tmp507_, _tmp508_); _tmp509_ = self->priv->definition_fragment; _tmp510_ = fun; vala_ccode_fragment_append (_tmp509_, (ValaCCodeNode*) _tmp510_); _vala_ccode_node_unref0 (once_call_block); _vala_ccode_node_unref0 (reg_call); _vala_ccode_node_unref0 (type_init); _g_free0 (type_value_table_decl_name); _vala_ccode_node_unref0 (fun_once); _vala_ccode_node_unref0 (fun); _vala_ccode_node_unref0 (_cdecl_); _vala_ccode_node_unref0 (type_once_block); _vala_ccode_node_unref0 (type_block); _g_free0 (type_id_name); _vala_code_node_unref0 (type_symbol); } /** * Returns the data type to be registered. * * @return type to be registered */ static ValaTypeSymbol* vala_typeregister_function_real_get_type_declaration (ValaTypeRegisterFunction* self) { g_critical ("Type `%s' does not implement abstract method `vala_typeregister_function_get_type_declaration'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return NULL; } ValaTypeSymbol* vala_typeregister_function_get_type_declaration (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_type_declaration (self); } /** * Returns the name of the type struct in C code. * * @return C struct name */ static gchar* vala_typeregister_function_real_get_type_struct_name (ValaTypeRegisterFunction* self) { g_assert_not_reached (); } gchar* vala_typeregister_function_get_type_struct_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_type_struct_name (self); } /** * Returns the name of the base_init function in C code. * * @return C function name */ static gchar* vala_typeregister_function_real_get_base_init_func_name (ValaTypeRegisterFunction* self) { g_assert_not_reached (); } gchar* vala_typeregister_function_get_base_init_func_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_base_init_func_name (self); } /** * Returns the name of the class_finalize function in C code. * * @return C function name */ static gchar* vala_typeregister_function_real_get_class_finalize_func_name (ValaTypeRegisterFunction* self) { g_assert_not_reached (); } gchar* vala_typeregister_function_get_class_finalize_func_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_class_finalize_func_name (self); } /** * Returns the name of the base_finalize function in C code. * * @return C function name */ static gchar* vala_typeregister_function_real_get_base_finalize_func_name (ValaTypeRegisterFunction* self) { g_assert_not_reached (); } gchar* vala_typeregister_function_get_base_finalize_func_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_base_finalize_func_name (self); } /** * Returns the name of the class_init function in C code. * * @return C function name */ static gchar* vala_typeregister_function_real_get_class_init_func_name (ValaTypeRegisterFunction* self) { g_assert_not_reached (); } gchar* vala_typeregister_function_get_class_init_func_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_class_init_func_name (self); } /** * Returns the size of the instance struct in C code. * * @return C instance struct size */ static gchar* vala_typeregister_function_real_get_instance_struct_size (ValaTypeRegisterFunction* self) { g_assert_not_reached (); } gchar* vala_typeregister_function_get_instance_struct_size (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_instance_struct_size (self); } /** * Returns the name of the instance_init function in C code. * * @return C function name */ static gchar* vala_typeregister_function_real_get_instance_init_func_name (ValaTypeRegisterFunction* self) { g_assert_not_reached (); } gchar* vala_typeregister_function_get_instance_init_func_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_instance_init_func_name (self); } /** * Returns the name of the parent type in C code. * * @return C function name */ static gchar* vala_typeregister_function_real_get_parent_type_name (ValaTypeRegisterFunction* self) { g_assert_not_reached (); } gchar* vala_typeregister_function_get_parent_type_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_parent_type_name (self); } /** * Returns the C-name of the new generated GTypeValueTable init function or null when not available. * * @return C function name */ static gchar* vala_typeregister_function_real_get_gtype_value_table_init_function_name (ValaTypeRegisterFunction* self) { gchar* result = NULL; result = NULL; return result; } gchar* vala_typeregister_function_get_gtype_value_table_init_function_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_gtype_value_table_init_function_name (self); } /** * Returns the C-name of the new generated GTypeValueTable peek pointer function or null when not available. * * @return C function name */ static gchar* vala_typeregister_function_real_get_gtype_value_table_peek_pointer_function_name (ValaTypeRegisterFunction* self) { gchar* result = NULL; result = NULL; return result; } gchar* vala_typeregister_function_get_gtype_value_table_peek_pointer_function_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_gtype_value_table_peek_pointer_function_name (self); } /** * Returns the C-name of the new generated GTypeValueTable free function or null when not available. * * @return C function name */ static gchar* vala_typeregister_function_real_get_gtype_value_table_free_function_name (ValaTypeRegisterFunction* self) { gchar* result = NULL; result = NULL; return result; } gchar* vala_typeregister_function_get_gtype_value_table_free_function_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_gtype_value_table_free_function_name (self); } /** * Returns the C-name of the new generated GTypeValueTable copy function or null when not available. * * @return C function name */ static gchar* vala_typeregister_function_real_get_gtype_value_table_copy_function_name (ValaTypeRegisterFunction* self) { gchar* result = NULL; result = NULL; return result; } gchar* vala_typeregister_function_get_gtype_value_table_copy_function_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_gtype_value_table_copy_function_name (self); } /** * Returns the C-name of the new generated GTypeValueTable lcopy function or null when not available. * * @return C function name */ static gchar* vala_typeregister_function_real_get_gtype_value_table_lcopy_value_function_name (ValaTypeRegisterFunction* self) { gchar* result = NULL; result = NULL; return result; } gchar* vala_typeregister_function_get_gtype_value_table_lcopy_value_function_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_gtype_value_table_lcopy_value_function_name (self); } /** * Returns the C-name of the new generated GTypeValueTable collect value function or null when not available. * * @return C function name */ static gchar* vala_typeregister_function_real_get_gtype_value_table_collect_value_function_name (ValaTypeRegisterFunction* self) { gchar* result = NULL; result = NULL; return result; } gchar* vala_typeregister_function_get_gtype_value_table_collect_value_function_name (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_gtype_value_table_collect_value_function_name (self); } /** * Returns the set of type flags to be applied when registering. * * @return type flags */ static gchar* vala_typeregister_function_real_get_type_flags (ValaTypeRegisterFunction* self) { gchar* _tmp0_; gchar* result = NULL; _tmp0_ = g_strdup ("0"); result = _tmp0_; return result; } gchar* vala_typeregister_function_get_type_flags (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_type_flags (self); } /** * Returns additional C declarations to setup interfaces. * * @return C declarations */ static ValaCCodeFragment* vala_typeregister_function_real_get_type_interface_init_declaration (ValaTypeRegisterFunction* self) { ValaCCodeFragment* _tmp0_; ValaCCodeFragment* result = NULL; _tmp0_ = vala_ccode_fragment_new (); result = _tmp0_; return result; } ValaCCodeFragment* vala_typeregister_function_get_type_interface_init_declaration (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, NULL); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_type_interface_init_declaration (self); } /** * Returns additional C initialization statements to setup interfaces. */ static void vala_typeregister_function_real_get_type_interface_init_statements (ValaTypeRegisterFunction* self, ValaCodeContext* context, ValaCCodeBlock* block, gboolean plugin) { g_return_if_fail (context != NULL); g_return_if_fail (block != NULL); } void vala_typeregister_function_get_type_interface_init_statements (ValaTypeRegisterFunction* self, ValaCodeContext* context, ValaCCodeBlock* block, gboolean plugin) { g_return_if_fail (self != NULL); VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_type_interface_init_statements (self, context, block, plugin); } ValaCCodeFragment* vala_typeregister_function_get_source_declaration (ValaTypeRegisterFunction* self) { ValaCCodeFragment* _tmp0_; ValaCCodeFragment* _tmp1_; ValaCCodeFragment* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->source_declaration_fragment; _tmp1_ = _vala_ccode_node_ref0 (_tmp0_); result = _tmp1_; return result; } /** * Returns the declaration for this type register function in C code. * * @return C function declaration fragment */ ValaCCodeFragment* vala_typeregister_function_get_declaration (ValaTypeRegisterFunction* self) { ValaCCodeFragment* _tmp0_; ValaCCodeFragment* _tmp1_; ValaCCodeFragment* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->declaration_fragment; _tmp1_ = _vala_ccode_node_ref0 (_tmp0_); result = _tmp1_; return result; } /** * Returns the definition for this type register function in C code. * * @return C function definition fragment */ ValaCCodeFragment* vala_typeregister_function_get_definition (ValaTypeRegisterFunction* self) { ValaCCodeFragment* _tmp0_; ValaCCodeFragment* _tmp1_; ValaCCodeFragment* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->definition_fragment; _tmp1_ = _vala_ccode_node_ref0 (_tmp0_); result = _tmp1_; return result; } /** * Returns the accessibility for this type. */ static ValaSymbolAccessibility vala_typeregister_function_real_get_accessibility (ValaTypeRegisterFunction* self) { g_critical ("Type `%s' does not implement abstract method `vala_typeregister_function_get_accessibility'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return 0; } ValaSymbolAccessibility vala_typeregister_function_get_accessibility (ValaTypeRegisterFunction* self) { g_return_val_if_fail (self != NULL, 0); return VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->get_accessibility (self); } ValaTypeRegisterFunction* vala_typeregister_function_construct (GType object_type) { ValaTypeRegisterFunction* self = NULL; self = (ValaTypeRegisterFunction*) g_type_create_instance (object_type); return self; } static void vala_value_typeregister_function_init (GValue* value) { value->data[0].v_pointer = NULL; } static void vala_value_typeregister_function_free_value (GValue* value) { if (value->data[0].v_pointer) { vala_typeregister_function_unref (value->data[0].v_pointer); } } static void vala_value_typeregister_function_copy_value (const GValue* src_value, GValue* dest_value) { if (src_value->data[0].v_pointer) { dest_value->data[0].v_pointer = vala_typeregister_function_ref (src_value->data[0].v_pointer); } else { dest_value->data[0].v_pointer = NULL; } } static gpointer vala_value_typeregister_function_peek_pointer (const GValue* value) { return value->data[0].v_pointer; } static gchar* vala_value_typeregister_function_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { if (collect_values[0].v_pointer) { ValaTypeRegisterFunction * object; object = collect_values[0].v_pointer; if (object->parent_instance.g_class == NULL) { return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); } value->data[0].v_pointer = vala_typeregister_function_ref (object); } else { value->data[0].v_pointer = NULL; } return NULL; } static gchar* vala_value_typeregister_function_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { ValaTypeRegisterFunction ** object_p; object_p = collect_values[0].v_pointer; if (!object_p) { return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); } if (!value->data[0].v_pointer) { *object_p = NULL; } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { *object_p = value->data[0].v_pointer; } else { *object_p = vala_typeregister_function_ref (value->data[0].v_pointer); } return NULL; } GParamSpec* vala_param_spec_typeregister_function (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { ValaParamSpecTypeRegisterFunction* spec; g_return_val_if_fail (g_type_is_a (object_type, VALA_TYPE_TYPEREGISTER_FUNCTION), NULL); spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); G_PARAM_SPEC (spec)->value_type = object_type; return G_PARAM_SPEC (spec); } gpointer vala_value_get_typeregister_function (const GValue* value) { g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VALA_TYPE_TYPEREGISTER_FUNCTION), NULL); return value->data[0].v_pointer; } void vala_value_set_typeregister_function (GValue* value, gpointer v_object) { ValaTypeRegisterFunction * old; g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VALA_TYPE_TYPEREGISTER_FUNCTION)); old = value->data[0].v_pointer; if (v_object) { g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, VALA_TYPE_TYPEREGISTER_FUNCTION)); g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); value->data[0].v_pointer = v_object; vala_typeregister_function_ref (value->data[0].v_pointer); } else { value->data[0].v_pointer = NULL; } if (old) { vala_typeregister_function_unref (old); } } void vala_value_take_typeregister_function (GValue* value, gpointer v_object) { ValaTypeRegisterFunction * old; g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VALA_TYPE_TYPEREGISTER_FUNCTION)); old = value->data[0].v_pointer; if (v_object) { g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, VALA_TYPE_TYPEREGISTER_FUNCTION)); g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); value->data[0].v_pointer = v_object; } else { value->data[0].v_pointer = NULL; } if (old) { vala_typeregister_function_unref (old); } } static void vala_typeregister_function_class_init (ValaTypeRegisterFunctionClass * klass, gpointer klass_data) { vala_typeregister_function_parent_class = g_type_class_peek_parent (klass); ((ValaTypeRegisterFunctionClass *) klass)->finalize = vala_typeregister_function_finalize; g_type_class_adjust_private_offset (klass, &ValaTypeRegisterFunction_private_offset); ((ValaTypeRegisterFunctionClass *) klass)->get_type_declaration = (ValaTypeSymbol* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_type_declaration; ((ValaTypeRegisterFunctionClass *) klass)->get_type_struct_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_type_struct_name; ((ValaTypeRegisterFunctionClass *) klass)->get_base_init_func_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_base_init_func_name; ((ValaTypeRegisterFunctionClass *) klass)->get_class_finalize_func_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_class_finalize_func_name; ((ValaTypeRegisterFunctionClass *) klass)->get_base_finalize_func_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_base_finalize_func_name; ((ValaTypeRegisterFunctionClass *) klass)->get_class_init_func_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_class_init_func_name; ((ValaTypeRegisterFunctionClass *) klass)->get_instance_struct_size = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_instance_struct_size; ((ValaTypeRegisterFunctionClass *) klass)->get_instance_init_func_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_instance_init_func_name; ((ValaTypeRegisterFunctionClass *) klass)->get_parent_type_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_parent_type_name; ((ValaTypeRegisterFunctionClass *) klass)->get_gtype_value_table_init_function_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_gtype_value_table_init_function_name; ((ValaTypeRegisterFunctionClass *) klass)->get_gtype_value_table_peek_pointer_function_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_gtype_value_table_peek_pointer_function_name; ((ValaTypeRegisterFunctionClass *) klass)->get_gtype_value_table_free_function_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_gtype_value_table_free_function_name; ((ValaTypeRegisterFunctionClass *) klass)->get_gtype_value_table_copy_function_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_gtype_value_table_copy_function_name; ((ValaTypeRegisterFunctionClass *) klass)->get_gtype_value_table_lcopy_value_function_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_gtype_value_table_lcopy_value_function_name; ((ValaTypeRegisterFunctionClass *) klass)->get_gtype_value_table_collect_value_function_name = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_gtype_value_table_collect_value_function_name; ((ValaTypeRegisterFunctionClass *) klass)->get_type_flags = (gchar* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_type_flags; ((ValaTypeRegisterFunctionClass *) klass)->get_type_interface_init_declaration = (ValaCCodeFragment* (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_type_interface_init_declaration; ((ValaTypeRegisterFunctionClass *) klass)->get_type_interface_init_statements = (void (*) (ValaTypeRegisterFunction*, ValaCodeContext*, ValaCCodeBlock*, gboolean)) vala_typeregister_function_real_get_type_interface_init_statements; ((ValaTypeRegisterFunctionClass *) klass)->get_accessibility = (ValaSymbolAccessibility (*) (ValaTypeRegisterFunction*)) vala_typeregister_function_real_get_accessibility; } static void vala_typeregister_function_instance_init (ValaTypeRegisterFunction * self, gpointer klass) { ValaCCodeFragment* _tmp0_; ValaCCodeFragment* _tmp1_; ValaCCodeFragment* _tmp2_; self->priv = vala_typeregister_function_get_instance_private (self); _tmp0_ = vala_ccode_fragment_new (); self->priv->source_declaration_fragment = _tmp0_; _tmp1_ = vala_ccode_fragment_new (); self->priv->declaration_fragment = _tmp1_; _tmp2_ = vala_ccode_fragment_new (); self->priv->definition_fragment = _tmp2_; self->ref_count = 1; } static void vala_typeregister_function_finalize (ValaTypeRegisterFunction * obj) { ValaTypeRegisterFunction * self; self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALA_TYPE_TYPEREGISTER_FUNCTION, ValaTypeRegisterFunction); g_signal_handlers_destroy (self); _vala_ccode_node_unref0 (self->priv->source_declaration_fragment); _vala_ccode_node_unref0 (self->priv->declaration_fragment); _vala_ccode_node_unref0 (self->priv->definition_fragment); } /** * C function to register a type at runtime. */ static GType vala_typeregister_function_get_type_once (void) { static const GTypeValueTable g_define_type_value_table = { vala_value_typeregister_function_init, vala_value_typeregister_function_free_value, vala_value_typeregister_function_copy_value, vala_value_typeregister_function_peek_pointer, "p", vala_value_typeregister_function_collect_value, "p", vala_value_typeregister_function_lcopy_value }; static const GTypeInfo g_define_type_info = { sizeof (ValaTypeRegisterFunctionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_typeregister_function_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaTypeRegisterFunction), 0, (GInstanceInitFunc) vala_typeregister_function_instance_init, &g_define_type_value_table }; static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType vala_typeregister_function_type_id; vala_typeregister_function_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ValaTypeRegisterFunction", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT); ValaTypeRegisterFunction_private_offset = g_type_add_instance_private (vala_typeregister_function_type_id, sizeof (ValaTypeRegisterFunctionPrivate)); return vala_typeregister_function_type_id; } GType vala_typeregister_function_get_type (void) { static volatile gsize vala_typeregister_function_type_id__volatile = 0; if (g_once_init_enter (&vala_typeregister_function_type_id__volatile)) { GType vala_typeregister_function_type_id; vala_typeregister_function_type_id = vala_typeregister_function_get_type_once (); g_once_init_leave (&vala_typeregister_function_type_id__volatile, vala_typeregister_function_type_id); } return vala_typeregister_function_type_id__volatile; } gpointer vala_typeregister_function_ref (gpointer instance) { ValaTypeRegisterFunction * self; self = instance; g_atomic_int_inc (&self->ref_count); return instance; } void vala_typeregister_function_unref (gpointer instance) { ValaTypeRegisterFunction * self; self = instance; if (g_atomic_int_dec_and_test (&self->ref_count)) { VALA_TYPEREGISTER_FUNCTION_GET_CLASS (self)->finalize (self); g_type_free_instance ((GTypeInstance *) self); } }