~ubuntu-branches/ubuntu/vivid/vala/vivid

« back to all changes in this revision

Viewing changes to codegen/valaccodemethodcallmodule.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2010-07-28 07:58:01 UTC
  • mfrom: (1.5.5 upstream) (7.3.14 experimental)
  • Revision ID: james.westby@ubuntu.com-20100728075801-18u9cg5hv5oety6m
Tags: 0.9.4-1
New upstream development release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
175
175
        void (*visit_enum) (ValaCCodeModule* self, ValaEnum* en);
176
176
        void (*visit_error_domain) (ValaCCodeModule* self, ValaErrorDomain* edomain);
177
177
        void (*visit_delegate) (ValaCCodeModule* self, ValaDelegate* d);
178
 
        void (*visit_member) (ValaCCodeModule* self, ValaMember* m);
 
178
        void (*visit_member) (ValaCCodeModule* self, ValaSymbol* m);
179
179
        void (*visit_constant) (ValaCCodeModule* self, ValaConstant* c);
180
180
        void (*visit_field) (ValaCCodeModule* self, ValaField* f);
181
181
        void (*visit_method) (ValaCCodeModule* self, ValaMethod* m);
1379
1379
                                                carg_map = (_tmp182_ = _vala_collection_object_ref0 (out_arg_map), _vala_collection_object_unref0 (carg_map), _tmp182_);
1380
1380
                                        }
1381
1381
                                        if (!vala_formal_parameter_get_no_array_length (param)) {
1382
 
                                                _tmp183_ = VALA_IS_ARRAY_TYPE (vala_formal_parameter_get_parameter_type (param));
 
1382
                                                _tmp183_ = VALA_IS_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) param));
1383
1383
                                        } else {
1384
1384
                                                _tmp183_ = FALSE;
1385
1385
                                        }
1386
1386
                                        if (_tmp183_) {
1387
1387
                                                ValaArrayType* array_type;
1388
 
                                                array_type = _vala_code_node_ref0 (VALA_ARRAY_TYPE (vala_formal_parameter_get_parameter_type (param)));
 
1388
                                                array_type = _vala_code_node_ref0 (VALA_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) param)));
1389
1389
                                                {
1390
1390
                                                        gint dim;
1391
1391
                                                        dim = 1;
1470
1470
                                                multiple_cargs = TRUE;
1471
1471
                                                _vala_code_node_unref0 (array_type);
1472
1472
                                        } else {
1473
 
                                                if (VALA_IS_DELEGATE_TYPE (vala_formal_parameter_get_parameter_type (param))) {
 
1473
                                                if (VALA_IS_DELEGATE_TYPE (vala_variable_get_variable_type ((ValaVariable*) param))) {
1474
1474
                                                        ValaDelegateType* deleg_type;
1475
1475
                                                        ValaDelegate* d;
1476
 
                                                        deleg_type = _vala_code_node_ref0 (VALA_DELEGATE_TYPE (vala_formal_parameter_get_parameter_type (param)));
 
1476
                                                        deleg_type = _vala_code_node_ref0 (VALA_DELEGATE_TYPE (vala_variable_get_variable_type ((ValaVariable*) param)));
1477
1477
                                                        d = _vala_code_node_ref0 (vala_delegate_type_get_delegate_symbol (deleg_type));
1478
1478
                                                        if (vala_delegate_get_has_target (d)) {
1479
1479
                                                                ValaCCodeExpression* delegate_target_destroy_notify;
1509
1509
                                                        _vala_code_node_unref0 (d);
1510
1510
                                                        _vala_code_node_unref0 (deleg_type);
1511
1511
                                                } else {
1512
 
                                                        if (VALA_IS_METHOD_TYPE (vala_formal_parameter_get_parameter_type (param))) {
 
1512
                                                        if (VALA_IS_METHOD_TYPE (vala_variable_get_variable_type ((ValaVariable*) param))) {
1513
1513
                                                                ValaCCodeExpression* delegate_target_destroy_notify;
1514
1514
                                                                ValaCCodeExpression* _tmp214_;
1515
1515
                                                                ValaCCodeExpression* _tmp213_;
1521
1521
                                                                multiple_cargs = TRUE;
1522
1522
                                                                _vala_ccode_node_unref0 (delegate_target_destroy_notify);
1523
1523
                                                        } else {
1524
 
                                                                if (VALA_IS_GENERIC_TYPE (vala_formal_parameter_get_parameter_type (param))) {
 
1524
                                                                if (VALA_IS_GENERIC_TYPE (vala_variable_get_variable_type ((ValaVariable*) param))) {
1525
1525
                                                                        gboolean _tmp215_ = FALSE;
1526
1526
                                                                        if (m != NULL) {
1527
1527
                                                                                _tmp215_ = vala_method_get_simple_generics (m);
1534
1534
                                                                                ValaList* _tmp216_;
1535
1535
                                                                                ValaDataType* _tmp217_;
1536
1536
                                                                                ValaDataType* type_arg;
1537
 
                                                                                generic_type = _vala_code_node_ref0 (VALA_GENERIC_TYPE (vala_formal_parameter_get_parameter_type (param)));
 
1537
                                                                                generic_type = _vala_code_node_ref0 (VALA_GENERIC_TYPE (vala_variable_get_variable_type ((ValaVariable*) param)));
1538
1538
                                                                                type_param_index = vala_method_get_type_parameter_index (m, vala_symbol_get_name ((ValaSymbol*) vala_data_type_get_type_parameter ((ValaDataType*) generic_type)));
1539
1539
                                                                                type_arg = (_tmp217_ = (ValaDataType*) vala_list_get (_tmp216_ = vala_member_access_get_type_arguments (ma), type_param_index), _vala_collection_object_unref0 (_tmp216_), _tmp217_);
1540
1540
                                                                                if (vala_ccode_base_module_requires_copy ((ValaCCodeBaseModule*) self, type_arg)) {
1588
1588
                                                if (vala_formal_parameter_get_direction (param) == VALA_PARAMETER_DIRECTION_OUT) {
1589
1589
                                                        _tmp230_ = TRUE;
1590
1590
                                                } else {
1591
 
                                                        _tmp230_ = !vala_data_type_get_value_owned (vala_formal_parameter_get_parameter_type (param));
 
1591
                                                        _tmp230_ = !vala_data_type_get_value_owned (vala_variable_get_variable_type ((ValaVariable*) param));
1592
1592
                                                }
1593
1593
                                                _tmp228_ = _tmp230_;
1594
1594
                                        } else {
1595
1595
                                                _tmp228_ = FALSE;
1596
1596
                                        }
1597
1597
                                        if (_tmp228_) {
1598
 
                                                _tmp227_ = !VALA_IS_ARRAY_TYPE (vala_formal_parameter_get_parameter_type (param));
 
1598
                                                _tmp227_ = !VALA_IS_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) param));
1599
1599
                                        } else {
1600
1600
                                                _tmp227_ = FALSE;
1601
1601
                                        }
1602
1602
                                        if (_tmp227_) {
1603
 
                                                _tmp226_ = !VALA_IS_DELEGATE_TYPE (vala_formal_parameter_get_parameter_type (param));
 
1603
                                                _tmp226_ = !VALA_IS_DELEGATE_TYPE (vala_variable_get_variable_type ((ValaVariable*) param));
1604
1604
                                        } else {
1605
1605
                                                _tmp226_ = FALSE;
1606
1606
                                        }
1627
1627
                                                ValaCCodeExpression* _tmp255_;
1628
1628
                                                unary = _vala_code_node_ref0 (VALA_UNARY_EXPRESSION (arg));
1629
1629
                                                ccomma = vala_ccode_comma_expression_new ();
1630
 
                                                temp_var = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, vala_formal_parameter_get_parameter_type (param), vala_data_type_get_value_owned (vala_formal_parameter_get_parameter_type (param)), NULL, TRUE);
 
1630
                                                temp_var = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, vala_variable_get_variable_type ((ValaVariable*) param), vala_data_type_get_value_owned (vala_variable_get_variable_type ((ValaVariable*) param)), NULL, TRUE);
1631
1631
                                                vala_list_insert ((ValaList*) ((ValaCCodeBaseModule*) self)->temp_vars, 0, temp_var);
1632
1632
                                                cexpr = (_tmp232_ = (ValaCCodeExpression*) vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp231_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) temp_var))), _vala_ccode_node_unref0 (cexpr), _tmp232_);
1633
1633
                                                _vala_ccode_node_unref0 (_tmp231_);
1682
1682
                                                cassign_comma = vala_ccode_comma_expression_new ();
1683
1683
                                                assign_temp_var = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, vala_expression_get_value_type (vala_unary_expression_get_inner (unary)), vala_data_type_get_value_owned (vala_expression_get_value_type (vala_unary_expression_get_inner (unary))), NULL, FALSE);
1684
1684
                                                vala_list_insert ((ValaList*) ((ValaCCodeBaseModule*) self)->temp_vars, 0, assign_temp_var);
1685
 
                                                vala_ccode_comma_expression_append_expression (cassign_comma, (ValaCCodeExpression*) (_tmp250_ = vala_ccode_assignment_new (_tmp247_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) assign_temp_var)), _tmp249_ = vala_ccode_base_module_transform_expression ((ValaCCodeBaseModule*) self, _tmp248_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) temp_var)), vala_formal_parameter_get_parameter_type (param), vala_expression_get_value_type (vala_unary_expression_get_inner (unary)), arg), VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE)));
 
1685
                                                vala_ccode_comma_expression_append_expression (cassign_comma, (ValaCCodeExpression*) (_tmp250_ = vala_ccode_assignment_new (_tmp247_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) assign_temp_var)), _tmp249_ = vala_ccode_base_module_transform_expression ((ValaCCodeBaseModule*) self, _tmp248_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) temp_var)), vala_variable_get_variable_type ((ValaVariable*) param), vala_expression_get_value_type (vala_unary_expression_get_inner (unary)), arg), VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE)));
1686
1686
                                                _vala_ccode_node_unref0 (_tmp250_);
1687
1687
                                                _vala_ccode_node_unref0 (_tmp249_);
1688
1688
                                                _vala_ccode_node_unref0 (_tmp248_);