~ubuntu-branches/ubuntu/quantal/vala/quantal

« back to all changes in this revision

Viewing changes to codegen/valaccodedelegatemodule.c

  • Committer: Bazaar Package Importer
  • Author(s): Didier Roche
  • Date: 2010-09-20 19:57:26 UTC
  • mfrom: (1.5.10 upstream)
  • Revision ID: james.westby@ubuntu.com-20100920195726-cbxb3q400aj1hoqr
Tags: 0.10.0-0ubuntu1
* New upstream release
* debian/patches/90_revert_use_new_gir_version.patch:
  - don't build with new GIR

Show diffs side-by-side

added added

removed removed

Lines of Context:
281
281
        void (*generate_marshaller) (ValaCCodeBaseModule* self, ValaList* params, ValaDataType* return_type, gboolean dbus);
282
282
        char* (*get_marshaller_function) (ValaCCodeBaseModule* self, ValaList* params, ValaDataType* return_type, const char* prefix, gboolean dbus);
283
283
        char* (*get_array_length_cname) (ValaCCodeBaseModule* self, const char* array_cname, gint dim);
 
284
        char* (*get_parameter_array_length_cname) (ValaCCodeBaseModule* self, ValaFormalParameter* param, gint dim);
284
285
        ValaCCodeExpression* (*get_array_length_cexpression) (ValaCCodeBaseModule* self, ValaExpression* array_expr, gint dim);
285
286
        char* (*get_array_size_cname) (ValaCCodeBaseModule* self, const char* array_cname);
286
287
        ValaCCodeExpression* (*get_array_size_cexpression) (ValaCCodeBaseModule* self, ValaExpression* array_expr);
394
395
gboolean vala_ccode_declaration_space_add_symbol_declaration (ValaCCodeDeclarationSpace* self, ValaSymbol* sym, const char* name);
395
396
void vala_ccode_base_module_generate_type_declaration (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeDeclarationSpace* decl_space);
396
397
void vala_ccode_method_module_generate_parameter (ValaCCodeMethodModule* self, ValaFormalParameter* param, ValaCCodeDeclarationSpace* decl_space, ValaMap* cparam_map, ValaMap* carg_map);
 
398
char* vala_ccode_base_module_get_parameter_array_length_cname (ValaCCodeBaseModule* self, ValaFormalParameter* param, gint dim);
 
399
char* vala_ccode_base_module_get_delegate_target_cname (ValaCCodeBaseModule* self, const char* delegate_cname);
 
400
char* vala_ccode_base_module_get_variable_cname (ValaCCodeBaseModule* self, const char* name);
397
401
char* vala_ccode_base_module_get_array_length_cname (ValaCCodeBaseModule* self, const char* array_cname, gint dim);
398
 
char* vala_ccode_base_module_get_variable_cname (ValaCCodeBaseModule* self, const char* name);
399
 
char* vala_ccode_base_module_get_delegate_target_cname (ValaCCodeBaseModule* self, const char* delegate_cname);
400
402
void vala_ccode_declaration_space_add_type_definition (ValaCCodeDeclarationSpace* self, ValaCCodeNode* node);
401
403
static void vala_ccode_delegate_module_real_visit_delegate (ValaCodeVisitor* base, ValaDelegate* d);
402
404
void vala_ccode_base_module_generate_delegate_declaration (ValaCCodeBaseModule* self, ValaDelegate* d, ValaCCodeDeclarationSpace* decl_space);
446
448
        char* _tmp6_;
447
449
        ValaCCodeFunctionDeclarator* _tmp7_;
448
450
        ValaCCodeFunctionDeclarator* cfundecl;
449
 
        gboolean _tmp20_ = FALSE;
450
 
        ValaList* _tmp29_;
451
 
        gboolean _tmp30_;
 
451
        gboolean _tmp19_ = FALSE;
 
452
        ValaList* _tmp28_;
 
453
        gboolean _tmp29_;
452
454
        ValaCCodeTypeDefinition* ctypedef;
453
455
        self = (ValaCCodeDelegateModule*) base;
454
456
        g_return_if_fail (d != NULL);
506
508
                                                _tmp13_ = TRUE;
507
509
                                                while (TRUE) {
508
510
                                                        char* _tmp14_;
509
 
                                                        char* _tmp15_;
510
 
                                                        ValaCCodeFormalParameter* _tmp16_;
 
511
                                                        ValaCCodeFormalParameter* _tmp15_;
511
512
                                                        ValaCCodeFormalParameter* cparam;
512
513
                                                        if (!_tmp13_) {
513
514
                                                                dim++;
516
517
                                                        if (!(dim <= vala_array_type_get_rank (array_type))) {
517
518
                                                                break;
518
519
                                                        }
519
 
                                                        cparam = (_tmp16_ = vala_ccode_formal_parameter_new (_tmp15_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, _tmp14_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) param)), dim), length_ctype), _g_free0 (_tmp15_), _g_free0 (_tmp14_), _tmp16_);
 
520
                                                        cparam = (_tmp15_ = vala_ccode_formal_parameter_new (_tmp14_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, param, dim), length_ctype), _g_free0 (_tmp14_), _tmp15_);
520
521
                                                        vala_ccode_function_declarator_add_parameter (cfundecl, cparam);
521
522
                                                        _vala_ccode_node_unref0 (cparam);
522
523
                                                }
531
532
                                deleg_type = _vala_code_node_ref0 (VALA_DELEGATE_TYPE (vala_variable_get_variable_type ((ValaVariable*) param)));
532
533
                                param_d = _vala_code_node_ref0 (vala_delegate_type_get_delegate_symbol (deleg_type));
533
534
                                if (vala_delegate_get_has_target (param_d)) {
 
535
                                        char* _tmp16_;
534
536
                                        char* _tmp17_;
535
 
                                        char* _tmp18_;
536
 
                                        ValaCCodeFormalParameter* _tmp19_;
 
537
                                        ValaCCodeFormalParameter* _tmp18_;
537
538
                                        ValaCCodeFormalParameter* cparam;
538
 
                                        cparam = (_tmp19_ = vala_ccode_formal_parameter_new (_tmp18_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, _tmp17_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) param))), "void*"), _g_free0 (_tmp18_), _g_free0 (_tmp17_), _tmp19_);
 
539
                                        cparam = (_tmp18_ = vala_ccode_formal_parameter_new (_tmp17_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, _tmp16_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) param))), "void*"), _g_free0 (_tmp17_), _g_free0 (_tmp16_), _tmp18_);
539
540
                                        vala_ccode_function_declarator_add_parameter (cfundecl, cparam);
540
541
                                        _vala_ccode_node_unref0 (cparam);
541
542
                                }
547
548
                _vala_collection_object_unref0 (_param_it);
548
549
        }
549
550
        if (!vala_delegate_get_no_array_length (d)) {
550
 
                _tmp20_ = VALA_IS_ARRAY_TYPE (vala_delegate_get_return_type (d));
 
551
                _tmp19_ = VALA_IS_ARRAY_TYPE (vala_delegate_get_return_type (d));
551
552
        } else {
552
 
                _tmp20_ = FALSE;
 
553
                _tmp19_ = FALSE;
553
554
        }
554
 
        if (_tmp20_) {
 
555
        if (_tmp19_) {
555
556
                ValaArrayType* array_type;
556
557
                array_type = _vala_code_node_ref0 (VALA_ARRAY_TYPE (vala_delegate_get_return_type (d)));
557
558
                {
558
559
                        gint dim;
559
560
                        dim = 1;
560
561
                        {
561
 
                                gboolean _tmp21_;
562
 
                                _tmp21_ = TRUE;
 
562
                                gboolean _tmp20_;
 
563
                                _tmp20_ = TRUE;
563
564
                                while (TRUE) {
564
 
                                        char* _tmp22_;
565
 
                                        ValaCCodeFormalParameter* _tmp23_;
 
565
                                        char* _tmp21_;
 
566
                                        ValaCCodeFormalParameter* _tmp22_;
566
567
                                        ValaCCodeFormalParameter* cparam;
567
 
                                        if (!_tmp21_) {
 
568
                                        if (!_tmp20_) {
568
569
                                                dim++;
569
570
                                        }
570
 
                                        _tmp21_ = FALSE;
 
571
                                        _tmp20_ = FALSE;
571
572
                                        if (!(dim <= vala_array_type_get_rank (array_type))) {
572
573
                                                break;
573
574
                                        }
574
 
                                        cparam = (_tmp23_ = vala_ccode_formal_parameter_new (_tmp22_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", dim), "int*"), _g_free0 (_tmp22_), _tmp23_);
 
575
                                        cparam = (_tmp22_ = vala_ccode_formal_parameter_new (_tmp21_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", dim), "int*"), _g_free0 (_tmp21_), _tmp22_);
575
576
                                        vala_ccode_function_declarator_add_parameter (cfundecl, cparam);
576
577
                                        _vala_ccode_node_unref0 (cparam);
577
578
                                }
585
586
                        deleg_type = _vala_code_node_ref0 (VALA_DELEGATE_TYPE (vala_delegate_get_return_type (d)));
586
587
                        result_d = _vala_code_node_ref0 (vala_delegate_type_get_delegate_symbol (deleg_type));
587
588
                        if (vala_delegate_get_has_target (result_d)) {
588
 
                                char* _tmp24_;
589
 
                                ValaCCodeFormalParameter* _tmp25_;
 
589
                                char* _tmp23_;
 
590
                                ValaCCodeFormalParameter* _tmp24_;
590
591
                                ValaCCodeFormalParameter* cparam;
591
 
                                cparam = (_tmp25_ = vala_ccode_formal_parameter_new (_tmp24_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, "result"), "void**"), _g_free0 (_tmp24_), _tmp25_);
 
592
                                cparam = (_tmp24_ = vala_ccode_formal_parameter_new (_tmp23_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, "result"), "void**"), _g_free0 (_tmp23_), _tmp24_);
592
593
                                vala_ccode_function_declarator_add_parameter (cfundecl, cparam);
593
594
                                _vala_ccode_node_unref0 (cparam);
594
595
                        }
596
597
                        _vala_code_node_unref0 (deleg_type);
597
598
                } else {
598
599
                        if (vala_data_type_is_real_non_null_struct_type (vala_delegate_get_return_type (d))) {
 
600
                                char* _tmp25_;
599
601
                                char* _tmp26_;
600
 
                                char* _tmp27_;
601
 
                                ValaCCodeFormalParameter* _tmp28_;
 
602
                                ValaCCodeFormalParameter* _tmp27_;
602
603
                                ValaCCodeFormalParameter* cparam;
603
 
                                cparam = (_tmp28_ = vala_ccode_formal_parameter_new ("result", _tmp27_ = g_strdup_printf ("%s*", _tmp26_ = vala_data_type_get_cname (vala_delegate_get_return_type (d)))), _g_free0 (_tmp27_), _g_free0 (_tmp26_), _tmp28_);
 
604
                                cparam = (_tmp27_ = vala_ccode_formal_parameter_new ("result", _tmp26_ = g_strdup_printf ("%s*", _tmp25_ = vala_data_type_get_cname (vala_delegate_get_return_type (d)))), _g_free0 (_tmp26_), _g_free0 (_tmp25_), _tmp27_);
604
605
                                vala_ccode_function_declarator_add_parameter (cfundecl, cparam);
605
606
                                _vala_ccode_node_unref0 (cparam);
606
607
                        }
612
613
                vala_ccode_function_declarator_add_parameter (cfundecl, cparam);
613
614
                _vala_ccode_node_unref0 (cparam);
614
615
        }
615
 
        if ((_tmp30_ = vala_collection_get_size ((ValaCollection*) (_tmp29_ = vala_code_node_get_error_types ((ValaCodeNode*) d))) > 0, _vala_collection_object_unref0 (_tmp29_), _tmp30_)) {
 
616
        if ((_tmp29_ = vala_collection_get_size ((ValaCollection*) (_tmp28_ = vala_code_node_get_error_types ((ValaCodeNode*) d))) > 0, _vala_collection_object_unref0 (_tmp28_), _tmp29_)) {
616
617
                ValaCCodeFormalParameter* cparam;
617
618
                cparam = vala_ccode_formal_parameter_new ("error", "GError**");
618
619
                vala_ccode_function_declarator_add_parameter (cfundecl, cparam);
1577
1578
                                                                        ValaFormalParameter* _tmp58_;
1578
1579
                                                                        char* _tmp59_;
1579
1580
                                                                        ValaCCodeExpression* _tmp60_;
1580
 
                                                                        clength = (_tmp60_ = (ValaCCodeExpression*) vala_ccode_identifier_new (_tmp59_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, vala_symbol_get_name ((ValaSymbol*) (_tmp58_ = (ValaFormalParameter*) vala_list_get (d_params, i))), dim)), _vala_ccode_node_unref0 (clength), _tmp60_);
 
1581
                                                                        clength = (_tmp60_ = (ValaCCodeExpression*) vala_ccode_identifier_new (_tmp59_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, _tmp58_ = (ValaFormalParameter*) vala_list_get (d_params, i), dim)), _vala_ccode_node_unref0 (clength), _tmp60_);
1581
1582
                                                                        _g_free0 (_tmp59_);
1582
1583
                                                                        _vala_code_node_unref0 (_tmp58_);
1583
1584
                                                                }