1165
1179
if (vala_property_get_set_accessor (prop) != NULL) {
1166
1180
ValaCCodeFormalParameter* cvalueparam;
1168
ValaCCodeFunctionDeclarator* _tmp54_;
1182
ValaCCodeFunctionDeclarator* _tmp57_;
1169
1183
ValaCCodeFunctionDeclarator* vdeclarator;
1170
ValaDataType* _tmp55_;
1184
ValaDataType* _tmp58_;
1171
1185
ValaArrayType* array_type;
1172
1186
ValaCCodeDeclaration* vdecl;
1173
1187
cvalueparam = NULL;
1174
1188
if (vala_data_type_is_real_non_null_struct_type (vala_property_get_property_type (prop))) {
1177
ValaCCodeFormalParameter* _tmp50_;
1178
cvalueparam = (_tmp50_ = vala_ccode_formal_parameter_new ("value", _tmp49_ = g_strconcat (_tmp48_ = vala_data_type_get_cname (vala_property_accessor_get_value_type (vala_property_get_set_accessor (prop))), "*", NULL)), _vala_ccode_node_unref0 (cvalueparam), _tmp50_);
1183
ValaCCodeFormalParameter* _tmp52_;
1184
cvalueparam = (_tmp52_ = vala_ccode_formal_parameter_new ("value", _tmp51_ = vala_data_type_get_cname (vala_property_accessor_get_value_type (vala_property_get_set_accessor (prop)))), _vala_ccode_node_unref0 (cvalueparam), _tmp52_);
1191
ValaCCodeFormalParameter* _tmp53_;
1192
cvalueparam = (_tmp53_ = vala_ccode_formal_parameter_new ("value", _tmp52_ = g_strconcat (_tmp51_ = vala_data_type_get_cname (vala_property_accessor_get_value_type (vala_property_get_set_accessor (prop))), "*", NULL)), _vala_ccode_node_unref0 (cvalueparam), _tmp53_);
1185
1194
_g_free0 (_tmp51_);
1197
ValaCCodeFormalParameter* _tmp55_;
1198
cvalueparam = (_tmp55_ = vala_ccode_formal_parameter_new ("value", _tmp54_ = vala_data_type_get_cname (vala_property_accessor_get_value_type (vala_property_get_set_accessor (prop)))), _vala_ccode_node_unref0 (cvalueparam), _tmp55_);
1187
vdeclarator = (_tmp54_ = vala_ccode_function_declarator_new (_tmp53_ = g_strdup_printf ("set_%s", vala_symbol_get_name ((ValaSymbol*) prop))), _g_free0 (_tmp53_), _tmp54_);
1201
vdeclarator = (_tmp57_ = vala_ccode_function_declarator_new (_tmp56_ = g_strdup_printf ("set_%s", vala_symbol_get_name ((ValaSymbol*) prop))), _g_free0 (_tmp56_), _tmp57_);
1188
1202
vala_ccode_function_declarator_add_parameter (vdeclarator, cselfparam);
1189
1203
vala_ccode_function_declarator_add_parameter (vdeclarator, cvalueparam);
1190
array_type = _vala_code_node_ref0 ((_tmp55_ = vala_property_get_property_type (prop), VALA_IS_ARRAY_TYPE (_tmp55_) ? ((ValaArrayType*) _tmp55_) : NULL));
1204
array_type = _vala_code_node_ref0 ((_tmp58_ = vala_property_get_property_type (prop), VALA_IS_ARRAY_TYPE (_tmp58_) ? ((ValaArrayType*) _tmp58_) : NULL));
1191
1205
if (array_type != NULL) {
1200
ValaCCodeFormalParameter* _tmp58_;
1214
ValaCCodeFormalParameter* _tmp61_;
1205
1219
if (!(dim <= vala_array_type_get_rank (array_type))) {
1208
vala_ccode_function_declarator_add_parameter (vdeclarator, _tmp58_ = vala_ccode_formal_parameter_new (_tmp57_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", dim), "int"));
1209
_vala_ccode_node_unref0 (_tmp58_);
1222
vala_ccode_function_declarator_add_parameter (vdeclarator, _tmp61_ = vala_ccode_formal_parameter_new (_tmp60_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", dim), "int"));
1223
_vala_ccode_node_unref0 (_tmp61_);
1229
gboolean _tmp62_ = FALSE;
1230
if (VALA_IS_DELEGATE_TYPE (vala_property_get_property_type (prop))) {
1231
_tmp62_ = vala_delegate_get_has_target (vala_delegate_type_get_delegate_symbol (VALA_DELEGATE_TYPE (vala_property_get_property_type (prop))));
1237
ValaCCodeFormalParameter* _tmp64_;
1238
vala_ccode_function_declarator_add_parameter (vdeclarator, _tmp64_ = vala_ccode_formal_parameter_new (_tmp63_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, "value"), "gpointer"));
1239
_vala_ccode_node_unref0 (_tmp64_);
1215
1243
vdecl = vala_ccode_declaration_new ("void");
1216
1244
vala_ccode_declaration_add_declarator (vdecl, (ValaCCodeDeclarator*) vdeclarator);
1241
1269
f = (ValaField*) vala_iterator_get (_f_it);
1242
1270
field_ctype = vala_data_type_get_cname (vala_variable_get_variable_type ((ValaVariable*) f));
1243
1271
if (vala_field_get_is_volatile (f)) {
1245
field_ctype = (_tmp61_ = g_strconcat ("volatile ", field_ctype, NULL), _g_free0 (field_ctype), _tmp61_);
1273
field_ctype = (_tmp67_ = g_strconcat ("volatile ", field_ctype, NULL), _g_free0 (field_ctype), _tmp67_);
1247
1275
if (vala_symbol_get_access ((ValaSymbol*) f) != VALA_SYMBOL_ACCESSIBILITY_PRIVATE) {
1248
1276
if (vala_field_get_binding (f) == MEMBER_BINDING_INSTANCE) {
1251
gboolean _tmp64_ = FALSE;
1279
gboolean _tmp70_ = FALSE;
1252
1280
vala_ccode_base_module_generate_type_declaration ((ValaCCodeBaseModule*) self, vala_variable_get_variable_type ((ValaVariable*) f), decl_space);
1253
vala_ccode_struct_add_field (instance_struct, field_ctype, _tmp62_ = vala_field_get_cname (f), _tmp63_ = vala_data_type_get_cdeclarator_suffix (vala_variable_get_variable_type ((ValaVariable*) f)));
1281
vala_ccode_struct_add_field (instance_struct, field_ctype, _tmp68_ = vala_field_get_cname (f), _tmp69_ = vala_data_type_get_cdeclarator_suffix (vala_variable_get_variable_type ((ValaVariable*) f)));
1256
1284
if (VALA_IS_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) f))) {
1257
_tmp64_ = !vala_field_get_no_array_length (f);
1285
_tmp70_ = !vala_field_get_no_array_length (f);
1262
1290
ValaArrayType* array_type;
1263
1291
array_type = _vala_code_node_ref0 (VALA_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) f)));
1264
1292
if (!vala_array_type_get_fixed_length (array_type)) {
1265
1293
ValaDataType* len_type;
1266
gboolean _tmp68_ = FALSE;
1294
gboolean _tmp74_ = FALSE;
1267
1295
len_type = vala_data_type_copy (((ValaCCodeBaseModule*) self)->int_type);
1281
1309
if (!(dim <= vala_array_type_get_rank (array_type))) {
1284
vala_ccode_struct_add_field (instance_struct, _tmp66_ = vala_data_type_get_cname (len_type), _tmp67_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) f), dim), NULL);
1312
vala_ccode_struct_add_field (instance_struct, _tmp72_ = vala_data_type_get_cname (len_type), _tmp73_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) f), dim), NULL);
1290
1318
if (vala_array_type_get_rank (array_type) == 1) {
1291
_tmp68_ = vala_symbol_is_internal_symbol ((ValaSymbol*) f);
1319
_tmp74_ = vala_symbol_is_internal_symbol ((ValaSymbol*) f);
1298
vala_ccode_struct_add_field (instance_struct, _tmp69_ = vala_data_type_get_cname (len_type), _tmp70_ = vala_ccode_base_module_get_array_size_cname ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) f)), NULL);
1326
vala_ccode_struct_add_field (instance_struct, _tmp75_ = vala_data_type_get_cname (len_type), _tmp76_ = vala_ccode_base_module_get_array_size_cname ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) f)), NULL);
1302
1330
_vala_code_node_unref0 (len_type);
1580
1608
_vala_collection_object_unref0 (_f_it);
1612
ValaIterator* _tmp38_;
1613
ValaIterator* _prop_it;
1614
_prop_it = (_tmp38_ = vala_iterable_iterator ((ValaIterable*) (_tmp37_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) cl))), _vala_collection_object_unref0 (_tmp37_), _tmp38_);
1617
if (!vala_iterator_next (_prop_it)) {
1620
prop = (ValaProperty*) vala_iterator_get (_prop_it);
1621
if (vala_property_get_binding (prop) == MEMBER_BINDING_INSTANCE) {
1622
if (vala_lockable_get_lock_used ((ValaLockable*) prop)) {
1625
has_instance_locks = TRUE;
1626
vala_ccode_struct_add_field (instance_priv_struct, _tmp39_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) ((ValaCCodeBaseModule*) self)->mutex_type, FALSE), _tmp40_ = vala_ccode_base_module_get_symbol_lock_name ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) prop)), NULL);
1631
if (vala_property_get_binding (prop) == MEMBER_BINDING_CLASS) {
1632
if (vala_lockable_get_lock_used ((ValaLockable*) prop)) {
1635
has_class_locks = TRUE;
1636
vala_ccode_struct_add_field (type_priv_struct, _tmp41_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) ((ValaCCodeBaseModule*) self)->mutex_type, FALSE), _tmp42_ = vala_ccode_base_module_get_symbol_lock_name ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) prop)), NULL);
1642
_vala_code_node_unref0 (prop);
1644
_vala_collection_object_unref0 (_prop_it);
1582
1646
if (is_gtypeinstance) {
1583
gboolean _tmp37_ = FALSE;
1584
gboolean _tmp47_ = FALSE;
1585
gboolean _tmp48_ = FALSE;
1586
gboolean _tmp56_ = FALSE;
1647
gboolean _tmp43_ = FALSE;
1648
gboolean _tmp53_ = FALSE;
1649
gboolean _tmp54_ = FALSE;
1650
gboolean _tmp62_ = FALSE;
1587
1651
if (vala_class_get_has_class_private_fields (cl)) {
1590
_tmp37_ = has_class_locks;
1654
_tmp43_ = has_class_locks;
1596
ValaCCodeVariableDeclarator* _tmp41_;
1597
ValaCCodeTypeDefinition* _tmp42_;
1598
vala_ccode_declaration_space_add_type_declaration (decl_space, (ValaCCodeNode*) (_tmp42_ = vala_ccode_type_definition_new (_tmp38_ = g_strdup_printf ("struct %s", vala_ccode_struct_get_name (type_priv_struct)), (ValaCCodeDeclarator*) (_tmp41_ = vala_ccode_variable_declarator_new (_tmp40_ = g_strdup_printf ("%sClassPrivate", _tmp39_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE)), NULL, NULL)))));
1599
_vala_ccode_node_unref0 (_tmp42_);
1600
_vala_ccode_node_unref0 (_tmp41_);
1660
ValaCCodeVariableDeclarator* _tmp47_;
1661
ValaCCodeTypeDefinition* _tmp48_;
1662
vala_ccode_declaration_space_add_type_declaration (decl_space, (ValaCCodeNode*) (_tmp48_ = vala_ccode_type_definition_new (_tmp44_ = g_strdup_printf ("struct %s", vala_ccode_struct_get_name (type_priv_struct)), (ValaCCodeDeclarator*) (_tmp47_ = vala_ccode_variable_declarator_new (_tmp46_ = g_strdup_printf ("%sClassPrivate", _tmp45_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE)), NULL, NULL)))));
1663
_vala_ccode_node_unref0 (_tmp48_);
1664
_vala_ccode_node_unref0 (_tmp47_);
1604
1668
if (!vala_code_context_require_glib_version (vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self), 2, 24)) {
1605
1669
ValaCCodeDeclaration* _cdecl_;
1608
ValaCCodeConstant* _tmp45_;
1609
ValaCCodeVariableDeclarator* _tmp46_;
1672
ValaCCodeConstant* _tmp51_;
1673
ValaCCodeVariableDeclarator* _tmp52_;
1610
1674
_cdecl_ = vala_ccode_declaration_new ("GQuark");
1611
vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) (_tmp46_ = vala_ccode_variable_declarator_new (_tmp44_ = g_strdup_printf ("_vala_%s_class_private_quark", _tmp43_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) cl, NULL)), (ValaCCodeExpression*) (_tmp45_ = vala_ccode_constant_new ("0")), NULL)));
1612
_vala_ccode_node_unref0 (_tmp46_);
1613
_vala_ccode_node_unref0 (_tmp45_);
1675
vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) (_tmp52_ = vala_ccode_variable_declarator_new (_tmp50_ = g_strdup_printf ("_vala_%s_class_private_quark", _tmp49_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) cl, NULL)), (ValaCCodeExpression*) (_tmp51_ = vala_ccode_constant_new ("0")), NULL)));
1676
_vala_ccode_node_unref0 (_tmp52_);
1677
_vala_ccode_node_unref0 (_tmp51_);
1616
1680
vala_ccode_declaration_set_modifiers (_cdecl_, VALA_CCODE_MODIFIERS_STATIC);
1617
1681
vala_ccode_declaration_space_add_type_declaration (decl_space, (ValaCCodeNode*) _cdecl_);
1618
1682
_vala_ccode_node_unref0 (_cdecl_);
1621
1685
if (vala_class_get_has_private_fields (cl)) {
1625
_tmp48_ = vala_collection_get_size ((ValaCollection*) (_tmp49_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) cl))) > 0;
1626
_vala_collection_object_unref0 (_tmp49_);
1631
_tmp47_ = has_instance_locks;
1689
_tmp54_ = vala_collection_get_size ((ValaCollection*) (_tmp55_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) cl))) > 0;
1690
_vala_collection_object_unref0 (_tmp55_);
1695
_tmp53_ = has_instance_locks;
1640
ValaCCodeMacroReplacement* _tmp55_;
1704
ValaCCodeMacroReplacement* _tmp61_;
1641
1705
vala_ccode_declaration_space_add_type_definition (decl_space, (ValaCCodeNode*) instance_priv_struct);
1642
macro = (_tmp52_ = g_strdup_printf ("(G_TYPE_INSTANCE_GET_PRIVATE ((o), %s, %sPrivate))", _tmp50_ = vala_typesymbol_get_type_id ((ValaTypeSymbol*) cl), _tmp51_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE)), _g_free0 (_tmp51_), _g_free0 (_tmp50_), _tmp52_);
1643
vala_ccode_declaration_space_add_type_member_declaration (decl_space, (ValaCCodeNode*) (_tmp55_ = vala_ccode_macro_replacement_new (_tmp54_ = g_strdup_printf ("%s_GET_PRIVATE(o)", _tmp53_ = vala_typesymbol_get_upper_case_cname ((ValaTypeSymbol*) cl, NULL)), macro)));
1644
_vala_ccode_node_unref0 (_tmp55_);
1706
macro = (_tmp58_ = g_strdup_printf ("(G_TYPE_INSTANCE_GET_PRIVATE ((o), %s, %sPrivate))", _tmp56_ = vala_typesymbol_get_type_id ((ValaTypeSymbol*) cl), _tmp57_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE)), _g_free0 (_tmp57_), _g_free0 (_tmp56_), _tmp58_);
1707
vala_ccode_declaration_space_add_type_member_declaration (decl_space, (ValaCCodeNode*) (_tmp61_ = vala_ccode_macro_replacement_new (_tmp60_ = g_strdup_printf ("%s_GET_PRIVATE(o)", _tmp59_ = vala_typesymbol_get_upper_case_cname ((ValaTypeSymbol*) cl, NULL)), macro)));
1708
_vala_ccode_node_unref0 (_tmp61_);
1647
1711
_g_free0 (macro);
1649
1713
if (vala_class_get_has_class_private_fields (cl)) {
1652
_tmp56_ = has_class_locks;
1716
_tmp62_ = has_class_locks;
1658
ValaCCodeMacroReplacement* _tmp65_;
1722
ValaCCodeMacroReplacement* _tmp71_;
1659
1723
vala_ccode_declaration_space_add_type_member_declaration (decl_space, (ValaCCodeNode*) type_priv_struct);
1661
1725
if (vala_code_context_require_glib_version (vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self), 2, 24)) {
1665
macro = (_tmp59_ = g_strdup_printf ("(G_TYPE_CLASS_GET_PRIVATE (klass, %s, %sClassPrivate))", _tmp57_ = vala_typesymbol_get_type_id ((ValaTypeSymbol*) cl), _tmp58_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE)), _g_free0 (macro), _tmp59_);
1729
macro = (_tmp65_ = g_strdup_printf ("(G_TYPE_CLASS_GET_PRIVATE (klass, %s, %sClassPrivate))", _tmp63_ = vala_typesymbol_get_type_id ((ValaTypeSymbol*) cl), _tmp64_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE)), _g_free0 (macro), _tmp65_);
1672
macro = (_tmp62_ = g_strdup_printf ("((%sClassPrivate *) g_type_get_qdata (G_TYPE_FROM_CLASS (klass), _vala" \
1673
"_%s_class_private_quark))", _tmp60_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE), _tmp61_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) cl, NULL)), _g_free0 (macro), _tmp62_);
1736
macro = (_tmp68_ = g_strdup_printf ("((%sClassPrivate *) g_type_get_qdata (G_TYPE_FROM_CLASS (klass), _vala" \
1737
"_%s_class_private_quark))", _tmp66_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE), _tmp67_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) cl, NULL)), _g_free0 (macro), _tmp68_);
1677
vala_ccode_declaration_space_add_type_member_declaration (decl_space, (ValaCCodeNode*) (_tmp65_ = vala_ccode_macro_replacement_new (_tmp64_ = g_strdup_printf ("%s_GET_CLASS_PRIVATE(klass)", _tmp63_ = vala_typesymbol_get_upper_case_cname ((ValaTypeSymbol*) cl, NULL)), macro)));
1678
_vala_ccode_node_unref0 (_tmp65_);
1741
vala_ccode_declaration_space_add_type_member_declaration (decl_space, (ValaCCodeNode*) (_tmp71_ = vala_ccode_macro_replacement_new (_tmp70_ = g_strdup_printf ("%s_GET_CLASS_PRIVATE(klass)", _tmp69_ = vala_typesymbol_get_upper_case_cname ((ValaTypeSymbol*) cl, NULL)), macro)));
1742
_vala_ccode_node_unref0 (_tmp71_);
1681
1745
_g_free0 (macro);
1683
1747
vala_ccode_declaration_space_add_type_member_declaration (decl_space, (ValaCCodeNode*) ((ValaCCodeBaseModule*) self)->prop_enum);