~ubuntu-branches/ubuntu/natty/vala/natty

« back to all changes in this revision

Viewing changes to codegen/valaccodemethodmodule.c

  • Committer: Bazaar Package Importer
  • Author(s): Robert Ancell
  • Date: 2011-01-06 10:31:36 UTC
  • mfrom: (1.5.13 upstream)
  • Revision ID: james.westby@ubuntu.com-20110106103136-e08fwvpxpqhz3rv0
Tags: 0.11.3-0ubuntu1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
207
207
        ValaCCodeExpression* (*get_array_length_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value, gint dim);
208
208
        gchar* (*get_array_size_cname) (ValaCCodeBaseModule* self, const gchar* array_cname);
209
209
        void (*add_simple_check) (ValaCCodeBaseModule* self, ValaCodeNode* node, gboolean always_fails);
 
210
        gchar* (*generate_ready_function) (ValaCCodeBaseModule* self, ValaMethod* m);
210
211
};
211
212
 
212
213
struct _ValaCCodeStructModule {
1266
1267
        ValaHashMap* cparam_map;
1267
1268
        gboolean _tmp40_ = FALSE;
1268
1269
        gboolean _tmp41_;
1269
 
        gboolean _tmp52_ = FALSE;
1270
 
        gboolean _tmp53_;
1271
 
        ValaComment* _tmp72_ = NULL;
1272
 
        gboolean _tmp77_ = FALSE;
1273
 
        gboolean _tmp78_;
1274
 
        ValaBlock* _tmp504_ = NULL;
1275
 
        gboolean _tmp506_ = FALSE;
1276
 
        gboolean _tmp507_;
1277
 
        gboolean _tmp599_;
1278
 
        gboolean _tmp623_ = FALSE;
1279
 
        gboolean _tmp624_ = FALSE;
1280
 
        gboolean _tmp625_ = FALSE;
1281
 
        gboolean _tmp626_;
1282
 
        gboolean _tmp633_;
 
1270
        ValaComment* _tmp66_ = NULL;
 
1271
        gboolean _tmp71_ = FALSE;
 
1272
        gboolean _tmp72_;
 
1273
        ValaBlock* _tmp498_ = NULL;
 
1274
        gboolean _tmp500_ = FALSE;
 
1275
        gboolean _tmp501_;
 
1276
        gboolean _tmp593_ = FALSE;
 
1277
        gboolean _tmp594_;
 
1278
        gboolean _tmp619_ = FALSE;
 
1279
        gboolean _tmp620_ = FALSE;
 
1280
        gboolean _tmp621_ = FALSE;
 
1281
        gboolean _tmp622_;
 
1282
        gboolean _tmp629_;
1283
1283
        self = (ValaCCodeMethodModule*) base;
1284
1284
        g_return_if_fail (m != NULL);
1285
1285
        _tmp0_ = vala_ccode_base_module_emit_context_new ((ValaSymbol*) m);
1477
1477
                                        vala_ccode_function_set_modifiers (function, _tmp51_ | VALA_CCODE_MODIFIERS_STATIC);
1478
1478
                                }
1479
1479
                        }
1480
 
                }
1481
 
        }
1482
 
        _tmp53_ = vala_method_get_is_abstract (m);
1483
 
        if (!_tmp53_) {
1484
 
                _tmp52_ = TRUE;
1485
 
        } else {
1486
 
                gboolean _tmp54_ = FALSE;
1487
 
                gboolean _tmp55_;
1488
 
                _tmp55_ = vala_method_get_is_abstract (m);
1489
 
                if (_tmp55_) {
1490
 
                        ValaTypeSymbol* _tmp56_ = NULL;
1491
 
                        _tmp56_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
1492
 
                        _tmp54_ = VALA_IS_CLASS (_tmp56_);
1493
1480
                } else {
1494
 
                        _tmp54_ = FALSE;
1495
 
                }
1496
 
                _tmp52_ = _tmp54_;
1497
 
        }
1498
 
        if (_tmp52_) {
1499
 
                ValaBlock* _tmp57_ = NULL;
1500
 
                _tmp57_ = vala_subroutine_get_body ((ValaSubroutine*) m);
1501
 
                if (_tmp57_ != NULL) {
1502
 
                        gboolean _tmp58_;
1503
 
                        _tmp58_ = vala_method_get_coroutine (m);
1504
 
                        if (_tmp58_) {
1505
 
                                gchar* _tmp59_ = NULL;
1506
 
                                gchar* _tmp60_;
 
1481
                        ValaBlock* _tmp52_ = NULL;
 
1482
                        _tmp52_ = vala_subroutine_get_body ((ValaSubroutine*) m);
 
1483
                        if (_tmp52_ != NULL) {
 
1484
                                gchar* _tmp53_ = NULL;
 
1485
                                gchar* _tmp54_;
 
1486
                                gchar* _tmp55_;
 
1487
                                ValaCCodeFunction* _tmp56_ = NULL;
 
1488
                                ValaCCodeFunction* _tmp57_;
 
1489
                                gchar* _tmp58_ = NULL;
 
1490
                                gchar* _tmp59_;
 
1491
                                gchar* _tmp60_ = NULL;
1507
1492
                                gchar* _tmp61_;
1508
 
                                ValaCCodeFunction* _tmp62_ = NULL;
1509
 
                                ValaCCodeFunction* _tmp63_;
1510
 
                                gchar* _tmp64_ = NULL;
1511
 
                                gchar* _tmp65_;
1512
 
                                gchar* _tmp66_ = NULL;
1513
 
                                gchar* _tmp67_;
1514
 
                                gchar* _tmp68_;
1515
 
                                ValaCCodeParameter* _tmp69_ = NULL;
1516
 
                                ValaCCodeParameter* _tmp70_;
1517
 
                                ValaCCodeModifiers _tmp71_;
1518
 
                                _tmp59_ = vala_method_get_real_cname (m);
1519
 
                                _tmp60_ = _tmp59_;
1520
 
                                _tmp61_ = g_strconcat (_tmp60_, "_co", NULL);
1521
 
                                _tmp62_ = vala_ccode_function_new (_tmp61_, "gboolean");
1522
 
                                _tmp63_ = _tmp62_;
 
1493
                                gchar* _tmp62_;
 
1494
                                ValaCCodeParameter* _tmp63_ = NULL;
 
1495
                                ValaCCodeParameter* _tmp64_;
 
1496
                                ValaCCodeModifiers _tmp65_;
 
1497
                                _tmp53_ = vala_method_get_real_cname (m);
 
1498
                                _tmp54_ = _tmp53_;
 
1499
                                _tmp55_ = g_strconcat (_tmp54_, "_co", NULL);
 
1500
                                _tmp56_ = vala_ccode_function_new (_tmp55_, "gboolean");
 
1501
                                _tmp57_ = _tmp56_;
1523
1502
                                _vala_ccode_node_unref0 (function);
1524
 
                                function = _tmp63_;
 
1503
                                function = _tmp57_;
 
1504
                                _g_free0 (_tmp55_);
 
1505
                                _g_free0 (_tmp54_);
 
1506
                                _tmp58_ = vala_method_get_cname (m);
 
1507
                                _tmp59_ = _tmp58_;
 
1508
                                _tmp60_ = vala_symbol_lower_case_to_camel_case (_tmp59_);
 
1509
                                _tmp61_ = _tmp60_;
 
1510
                                _tmp62_ = g_strconcat (_tmp61_, "Data*", NULL);
 
1511
                                _tmp63_ = vala_ccode_parameter_new ("data", _tmp62_);
 
1512
                                _tmp64_ = _tmp63_;
 
1513
                                vala_ccode_function_add_parameter (function, _tmp64_);
 
1514
                                _vala_ccode_node_unref0 (_tmp64_);
 
1515
                                _g_free0 (_tmp62_);
1525
1516
                                _g_free0 (_tmp61_);
1526
 
                                _g_free0 (_tmp60_);
1527
 
                                _tmp64_ = vala_method_get_cname (m);
1528
 
                                _tmp65_ = _tmp64_;
1529
 
                                _tmp66_ = vala_symbol_lower_case_to_camel_case (_tmp65_);
1530
 
                                _tmp67_ = _tmp66_;
1531
 
                                _tmp68_ = g_strconcat (_tmp67_, "Data*", NULL);
1532
 
                                _tmp69_ = vala_ccode_parameter_new ("data", _tmp68_);
1533
 
                                _tmp70_ = _tmp69_;
1534
 
                                vala_ccode_function_add_parameter (function, _tmp70_);
1535
 
                                _vala_ccode_node_unref0 (_tmp70_);
1536
 
                                _g_free0 (_tmp68_);
1537
 
                                _g_free0 (_tmp67_);
1538
 
                                _g_free0 (_tmp65_);
1539
 
                                _tmp71_ = vala_ccode_function_get_modifiers (function);
1540
 
                                vala_ccode_function_set_modifiers (function, _tmp71_ | VALA_CCODE_MODIFIERS_STATIC);
 
1517
                                _g_free0 (_tmp59_);
 
1518
                                _tmp65_ = vala_ccode_function_get_modifiers (function);
 
1519
                                vala_ccode_function_set_modifiers (function, _tmp65_ | VALA_CCODE_MODIFIERS_STATIC);
1541
1520
                                vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
1542
1521
                        }
1543
1522
                }
1544
1523
        }
1545
 
        _tmp72_ = vala_symbol_get_comment ((ValaSymbol*) m);
1546
 
        if (_tmp72_ != NULL) {
1547
 
                ValaComment* _tmp73_ = NULL;
1548
 
                const gchar* _tmp74_ = NULL;
1549
 
                ValaCCodeComment* _tmp75_ = NULL;
1550
 
                ValaCCodeComment* _tmp76_;
1551
 
                _tmp73_ = vala_symbol_get_comment ((ValaSymbol*) m);
1552
 
                _tmp74_ = vala_comment_get_content (_tmp73_);
1553
 
                _tmp75_ = vala_ccode_comment_new (_tmp74_);
1554
 
                _tmp76_ = _tmp75_;
1555
 
                vala_ccode_file_add_type_member_definition (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _tmp76_);
1556
 
                _vala_ccode_node_unref0 (_tmp76_);
 
1524
        _tmp66_ = vala_symbol_get_comment ((ValaSymbol*) m);
 
1525
        if (_tmp66_ != NULL) {
 
1526
                ValaComment* _tmp67_ = NULL;
 
1527
                const gchar* _tmp68_ = NULL;
 
1528
                ValaCCodeComment* _tmp69_ = NULL;
 
1529
                ValaCCodeComment* _tmp70_;
 
1530
                _tmp67_ = vala_symbol_get_comment ((ValaSymbol*) m);
 
1531
                _tmp68_ = vala_comment_get_content (_tmp67_);
 
1532
                _tmp69_ = vala_ccode_comment_new (_tmp68_);
 
1533
                _tmp70_ = _tmp69_;
 
1534
                vala_ccode_file_add_type_member_definition (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _tmp70_);
 
1535
                _vala_ccode_node_unref0 (_tmp70_);
1557
1536
        }
1558
1537
        vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
1559
 
        _tmp78_ = vala_method_get_is_abstract (m);
1560
 
        if (!_tmp78_) {
1561
 
                _tmp77_ = TRUE;
 
1538
        _tmp72_ = vala_method_get_is_abstract (m);
 
1539
        if (!_tmp72_) {
 
1540
                _tmp71_ = TRUE;
1562
1541
        } else {
1563
 
                gboolean _tmp79_ = FALSE;
1564
 
                gboolean _tmp80_;
1565
 
                _tmp80_ = vala_method_get_is_abstract (m);
1566
 
                if (_tmp80_) {
1567
 
                        ValaTypeSymbol* _tmp81_ = NULL;
1568
 
                        _tmp81_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
1569
 
                        _tmp79_ = VALA_IS_CLASS (_tmp81_);
 
1542
                gboolean _tmp73_ = FALSE;
 
1543
                gboolean _tmp74_;
 
1544
                _tmp74_ = vala_method_get_is_abstract (m);
 
1545
                if (_tmp74_) {
 
1546
                        ValaTypeSymbol* _tmp75_ = NULL;
 
1547
                        _tmp75_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
 
1548
                        _tmp73_ = VALA_IS_CLASS (_tmp75_);
1570
1549
                } else {
1571
 
                        _tmp79_ = FALSE;
 
1550
                        _tmp73_ = FALSE;
1572
1551
                }
1573
 
                _tmp77_ = _tmp79_;
 
1552
                _tmp71_ = _tmp73_;
1574
1553
        }
1575
 
        if (_tmp77_) {
1576
 
                ValaBlock* _tmp82_ = NULL;
1577
 
                _tmp82_ = vala_subroutine_get_body ((ValaSubroutine*) m);
1578
 
                if (_tmp82_ != NULL) {
1579
 
                        gboolean _tmp83_;
1580
 
                        gboolean _tmp111_;
1581
 
                        gboolean _tmp342_ = FALSE;
1582
 
                        gboolean _tmp343_ = FALSE;
1583
 
                        ValaDataType* _tmp344_ = NULL;
1584
 
                        gboolean _tmp494_ = FALSE;
1585
 
                        ValaCodeContext* _tmp495_ = NULL;
1586
 
                        ValaMethod* _tmp496_ = NULL;
1587
 
                        _tmp83_ = vala_method_get_coroutine (m);
1588
 
                        if (_tmp83_) {
1589
 
                                ValaCCodeFunction* _tmp84_ = NULL;
1590
 
                                ValaCCodeIdentifier* _tmp85_ = NULL;
1591
 
                                ValaCCodeIdentifier* _tmp86_;
1592
 
                                ValaCCodeMemberAccess* _tmp87_ = NULL;
1593
 
                                ValaCCodeMemberAccess* _tmp88_;
1594
 
                                ValaCCodeFunction* _tmp89_ = NULL;
1595
 
                                ValaCCodeConstant* _tmp90_ = NULL;
1596
 
                                ValaCCodeConstant* _tmp91_;
1597
 
                                ValaCCodeFunction* _tmp92_ = NULL;
 
1554
        if (_tmp71_) {
 
1555
                ValaBlock* _tmp76_ = NULL;
 
1556
                _tmp76_ = vala_subroutine_get_body ((ValaSubroutine*) m);
 
1557
                if (_tmp76_ != NULL) {
 
1558
                        gboolean _tmp77_;
 
1559
                        gboolean _tmp105_;
 
1560
                        gboolean _tmp336_ = FALSE;
 
1561
                        gboolean _tmp337_ = FALSE;
 
1562
                        ValaDataType* _tmp338_ = NULL;
 
1563
                        gboolean _tmp488_ = FALSE;
 
1564
                        ValaCodeContext* _tmp489_ = NULL;
 
1565
                        ValaMethod* _tmp490_ = NULL;
 
1566
                        _tmp77_ = vala_method_get_coroutine (m);
 
1567
                        if (_tmp77_) {
 
1568
                                ValaCCodeFunction* _tmp78_ = NULL;
 
1569
                                ValaCCodeIdentifier* _tmp79_ = NULL;
 
1570
                                ValaCCodeIdentifier* _tmp80_;
 
1571
                                ValaCCodeMemberAccess* _tmp81_ = NULL;
 
1572
                                ValaCCodeMemberAccess* _tmp82_;
 
1573
                                ValaCCodeFunction* _tmp83_ = NULL;
 
1574
                                ValaCCodeConstant* _tmp84_ = NULL;
 
1575
                                ValaCCodeConstant* _tmp85_;
 
1576
                                ValaCCodeFunction* _tmp86_ = NULL;
 
1577
                                ValaCCodeFunction* _tmp97_ = NULL;
 
1578
                                ValaCCodeFunction* _tmp98_ = NULL;
 
1579
                                ValaCCodeIdentifier* _tmp99_ = NULL;
 
1580
                                ValaCCodeIdentifier* _tmp100_;
 
1581
                                ValaCCodeFunctionCall* _tmp101_ = NULL;
 
1582
                                ValaCCodeFunctionCall* _tmp102_;
1598
1583
                                ValaCCodeFunction* _tmp103_ = NULL;
1599
1584
                                ValaCCodeFunction* _tmp104_ = NULL;
1600
 
                                ValaCCodeIdentifier* _tmp105_ = NULL;
1601
 
                                ValaCCodeIdentifier* _tmp106_;
1602
 
                                ValaCCodeFunctionCall* _tmp107_ = NULL;
1603
 
                                ValaCCodeFunctionCall* _tmp108_;
1604
 
                                ValaCCodeFunction* _tmp109_ = NULL;
1605
 
                                ValaCCodeFunction* _tmp110_ = NULL;
1606
 
                                _tmp84_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1607
 
                                _tmp85_ = vala_ccode_identifier_new ("data");
1608
 
                                _tmp86_ = _tmp85_;
1609
 
                                _tmp87_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp86_, "_state_");
1610
 
                                _tmp88_ = _tmp87_;
1611
 
                                vala_ccode_function_open_switch (_tmp84_, (ValaCCodeExpression*) _tmp88_);
1612
 
                                _vala_ccode_node_unref0 (_tmp88_);
1613
 
                                _vala_ccode_node_unref0 (_tmp86_);
1614
 
                                _tmp89_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1615
 
                                _tmp90_ = vala_ccode_constant_new ("0");
1616
 
                                _tmp91_ = _tmp90_;
1617
 
                                vala_ccode_function_add_case (_tmp89_, (ValaCCodeExpression*) _tmp91_);
1618
 
                                _vala_ccode_node_unref0 (_tmp91_);
1619
 
                                _tmp92_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1620
 
                                vala_ccode_function_add_goto (_tmp92_, "_state_0");
 
1585
                                _tmp78_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1586
                                _tmp79_ = vala_ccode_identifier_new ("data");
 
1587
                                _tmp80_ = _tmp79_;
 
1588
                                _tmp81_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp80_, "_state_");
 
1589
                                _tmp82_ = _tmp81_;
 
1590
                                vala_ccode_function_open_switch (_tmp78_, (ValaCCodeExpression*) _tmp82_);
 
1591
                                _vala_ccode_node_unref0 (_tmp82_);
 
1592
                                _vala_ccode_node_unref0 (_tmp80_);
 
1593
                                _tmp83_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1594
                                _tmp84_ = vala_ccode_constant_new ("0");
 
1595
                                _tmp85_ = _tmp84_;
 
1596
                                vala_ccode_function_add_case (_tmp83_, (ValaCCodeExpression*) _tmp85_);
 
1597
                                _vala_ccode_node_unref0 (_tmp85_);
 
1598
                                _tmp86_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1599
                                vala_ccode_function_add_goto (_tmp86_, "_state_0");
1621
1600
                                {
1622
1601
                                        gint state;
1623
1602
                                        state = 1;
1624
1603
                                        {
1625
 
                                                gboolean _tmp93_;
1626
 
                                                _tmp93_ = TRUE;
 
1604
                                                gboolean _tmp87_;
 
1605
                                                _tmp87_ = TRUE;
1627
1606
                                                while (TRUE) {
1628
 
                                                        gint _tmp94_;
1629
 
                                                        ValaCCodeFunction* _tmp95_ = NULL;
1630
 
                                                        gchar* _tmp96_ = NULL;
1631
 
                                                        gchar* _tmp97_;
1632
 
                                                        ValaCCodeConstant* _tmp98_ = NULL;
1633
 
                                                        ValaCCodeConstant* _tmp99_;
1634
 
                                                        ValaCCodeFunction* _tmp100_ = NULL;
1635
 
                                                        gchar* _tmp101_ = NULL;
1636
 
                                                        gchar* _tmp102_;
1637
 
                                                        if (!_tmp93_) {
 
1607
                                                        gint _tmp88_;
 
1608
                                                        ValaCCodeFunction* _tmp89_ = NULL;
 
1609
                                                        gchar* _tmp90_ = NULL;
 
1610
                                                        gchar* _tmp91_;
 
1611
                                                        ValaCCodeConstant* _tmp92_ = NULL;
 
1612
                                                        ValaCCodeConstant* _tmp93_;
 
1613
                                                        ValaCCodeFunction* _tmp94_ = NULL;
 
1614
                                                        gchar* _tmp95_ = NULL;
 
1615
                                                        gchar* _tmp96_;
 
1616
                                                        if (!_tmp87_) {
1638
1617
                                                                state++;
1639
1618
                                                        }
1640
 
                                                        _tmp93_ = FALSE;
1641
 
                                                        _tmp94_ = vala_method_get_yield_count (m);
1642
 
                                                        if (!(state <= _tmp94_)) {
 
1619
                                                        _tmp87_ = FALSE;
 
1620
                                                        _tmp88_ = vala_method_get_yield_count (m);
 
1621
                                                        if (!(state <= _tmp88_)) {
1643
1622
                                                                break;
1644
1623
                                                        }
1645
 
                                                        _tmp95_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1646
 
                                                        _tmp96_ = g_strdup_printf ("%i", state);
1647
 
                                                        _tmp97_ = _tmp96_;
1648
 
                                                        _tmp98_ = vala_ccode_constant_new (_tmp97_);
1649
 
                                                        _tmp99_ = _tmp98_;
1650
 
                                                        vala_ccode_function_add_case (_tmp95_, (ValaCCodeExpression*) _tmp99_);
1651
 
                                                        _vala_ccode_node_unref0 (_tmp99_);
1652
 
                                                        _g_free0 (_tmp97_);
1653
 
                                                        _tmp100_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1654
 
                                                        _tmp101_ = g_strdup_printf ("_state_%d", state);
1655
 
                                                        _tmp102_ = _tmp101_;
1656
 
                                                        vala_ccode_function_add_goto (_tmp100_, _tmp102_);
1657
 
                                                        _g_free0 (_tmp102_);
 
1624
                                                        _tmp89_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1625
                                                        _tmp90_ = g_strdup_printf ("%i", state);
 
1626
                                                        _tmp91_ = _tmp90_;
 
1627
                                                        _tmp92_ = vala_ccode_constant_new (_tmp91_);
 
1628
                                                        _tmp93_ = _tmp92_;
 
1629
                                                        vala_ccode_function_add_case (_tmp89_, (ValaCCodeExpression*) _tmp93_);
 
1630
                                                        _vala_ccode_node_unref0 (_tmp93_);
 
1631
                                                        _g_free0 (_tmp91_);
 
1632
                                                        _tmp94_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1633
                                                        _tmp95_ = g_strdup_printf ("_state_%d", state);
 
1634
                                                        _tmp96_ = _tmp95_;
 
1635
                                                        vala_ccode_function_add_goto (_tmp94_, _tmp96_);
 
1636
                                                        _g_free0 (_tmp96_);
1658
1637
                                                }
1659
1638
                                        }
1660
1639
                                }
 
1640
                                _tmp97_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1641
                                vala_ccode_function_add_default (_tmp97_);
 
1642
                                _tmp98_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1643
                                _tmp99_ = vala_ccode_identifier_new ("g_assert_not_reached");
 
1644
                                _tmp100_ = _tmp99_;
 
1645
                                _tmp101_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp100_);
 
1646
                                _tmp102_ = _tmp101_;
 
1647
                                vala_ccode_function_add_expression (_tmp98_, (ValaCCodeExpression*) _tmp102_);
 
1648
                                _vala_ccode_node_unref0 (_tmp102_);
 
1649
                                _vala_ccode_node_unref0 (_tmp100_);
1661
1650
                                _tmp103_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1662
 
                                vala_ccode_function_add_default (_tmp103_);
 
1651
                                vala_ccode_function_close (_tmp103_);
1663
1652
                                _tmp104_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1664
 
                                _tmp105_ = vala_ccode_identifier_new ("g_assert_not_reached");
1665
 
                                _tmp106_ = _tmp105_;
1666
 
                                _tmp107_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp106_);
1667
 
                                _tmp108_ = _tmp107_;
1668
 
                                vala_ccode_function_add_expression (_tmp104_, (ValaCCodeExpression*) _tmp108_);
1669
 
                                _vala_ccode_node_unref0 (_tmp108_);
1670
 
                                _vala_ccode_node_unref0 (_tmp106_);
1671
 
                                _tmp109_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1672
 
                                vala_ccode_function_close (_tmp109_);
1673
 
                                _tmp110_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1674
 
                                vala_ccode_function_add_label (_tmp110_, "_state_0");
 
1653
                                vala_ccode_function_add_label (_tmp104_, "_state_0");
1675
1654
                        }
1676
 
                        _tmp111_ = vala_method_get_closure (m);
1677
 
                        if (_tmp111_) {
1678
 
                                ValaBlock* _tmp112_ = NULL;
1679
 
                                ValaBlock* _tmp113_;
 
1655
                        _tmp105_ = vala_method_get_closure (m);
 
1656
                        if (_tmp105_) {
 
1657
                                ValaBlock* _tmp106_ = NULL;
 
1658
                                ValaBlock* _tmp107_;
1680
1659
                                ValaBlock* closure_block;
1681
 
                                gint _tmp114_;
 
1660
                                gint _tmp108_;
1682
1661
                                gint block_id;
1683
 
                                ValaMemberBinding _tmp143_;
1684
 
                                _tmp112_ = vala_ccode_base_module_get_current_closure_block ((ValaCCodeBaseModule*) self);
1685
 
                                _tmp113_ = _vala_code_node_ref0 (_tmp112_);
1686
 
                                closure_block = _tmp113_;
1687
 
                                _tmp114_ = vala_ccode_base_module_get_block_id ((ValaCCodeBaseModule*) self, closure_block);
1688
 
                                block_id = _tmp114_;
 
1662
                                ValaMemberBinding _tmp137_;
 
1663
                                _tmp106_ = vala_ccode_base_module_get_current_closure_block ((ValaCCodeBaseModule*) self);
 
1664
                                _tmp107_ = _vala_code_node_ref0 (_tmp106_);
 
1665
                                closure_block = _tmp107_;
 
1666
                                _tmp108_ = vala_ccode_base_module_get_block_id ((ValaCCodeBaseModule*) self, closure_block);
 
1667
                                block_id = _tmp108_;
1689
1668
                                while (TRUE) {
1690
 
                                        ValaSymbol* _tmp115_ = NULL;
1691
 
                                        ValaBlock* _tmp116_ = NULL;
1692
 
                                        ValaBlock* _tmp117_;
 
1669
                                        ValaSymbol* _tmp109_ = NULL;
 
1670
                                        ValaBlock* _tmp110_ = NULL;
 
1671
                                        ValaBlock* _tmp111_;
1693
1672
                                        ValaBlock* parent_closure_block;
1694
 
                                        gint _tmp118_;
 
1673
                                        gint _tmp112_;
1695
1674
                                        gint parent_block_id;
1696
 
                                        gchar* _tmp119_ = NULL;
1697
 
                                        gchar* _tmp120_;
1698
 
                                        ValaCCodeIdentifier* _tmp121_ = NULL;
1699
 
                                        ValaCCodeIdentifier* _tmp122_;
1700
 
                                        gchar* _tmp123_ = NULL;
1701
 
                                        gchar* _tmp124_;
1702
 
                                        ValaCCodeMemberAccess* _tmp125_ = NULL;
1703
 
                                        ValaCCodeMemberAccess* _tmp126_;
 
1675
                                        gchar* _tmp113_ = NULL;
 
1676
                                        gchar* _tmp114_;
 
1677
                                        ValaCCodeIdentifier* _tmp115_ = NULL;
 
1678
                                        ValaCCodeIdentifier* _tmp116_;
 
1679
                                        gchar* _tmp117_ = NULL;
 
1680
                                        gchar* _tmp118_;
 
1681
                                        ValaCCodeMemberAccess* _tmp119_ = NULL;
 
1682
                                        ValaCCodeMemberAccess* _tmp120_;
1704
1683
                                        ValaCCodeMemberAccess* parent_data;
1705
 
                                        ValaCCodeFunction* _tmp127_ = NULL;
1706
 
                                        gchar* _tmp128_ = NULL;
1707
 
                                        gchar* _tmp129_;
1708
 
                                        gchar* _tmp130_ = NULL;
1709
 
                                        gchar* _tmp131_;
1710
 
                                        ValaCCodeVariableDeclarator* _tmp132_ = NULL;
1711
 
                                        ValaCCodeVariableDeclarator* _tmp133_;
1712
 
                                        ValaCCodeFunction* _tmp134_ = NULL;
1713
 
                                        gchar* _tmp135_ = NULL;
1714
 
                                        gchar* _tmp136_;
1715
 
                                        ValaCCodeIdentifier* _tmp137_ = NULL;
1716
 
                                        ValaCCodeIdentifier* _tmp138_;
1717
 
                                        ValaCCodeAssignment* _tmp139_ = NULL;
1718
 
                                        ValaCCodeAssignment* _tmp140_;
1719
 
                                        ValaBlock* _tmp141_;
1720
 
                                        ValaBlock* _tmp142_;
1721
 
                                        _tmp115_ = vala_symbol_get_parent_symbol ((ValaSymbol*) closure_block);
1722
 
                                        _tmp116_ = vala_ccode_base_module_next_closure_block ((ValaCCodeBaseModule*) self, _tmp115_);
1723
 
                                        _tmp117_ = _vala_code_node_ref0 (_tmp116_);
1724
 
                                        parent_closure_block = _tmp117_;
 
1684
                                        ValaCCodeFunction* _tmp121_ = NULL;
 
1685
                                        gchar* _tmp122_ = NULL;
 
1686
                                        gchar* _tmp123_;
 
1687
                                        gchar* _tmp124_ = NULL;
 
1688
                                        gchar* _tmp125_;
 
1689
                                        ValaCCodeVariableDeclarator* _tmp126_ = NULL;
 
1690
                                        ValaCCodeVariableDeclarator* _tmp127_;
 
1691
                                        ValaCCodeFunction* _tmp128_ = NULL;
 
1692
                                        gchar* _tmp129_ = NULL;
 
1693
                                        gchar* _tmp130_;
 
1694
                                        ValaCCodeIdentifier* _tmp131_ = NULL;
 
1695
                                        ValaCCodeIdentifier* _tmp132_;
 
1696
                                        ValaCCodeAssignment* _tmp133_ = NULL;
 
1697
                                        ValaCCodeAssignment* _tmp134_;
 
1698
                                        ValaBlock* _tmp135_;
 
1699
                                        ValaBlock* _tmp136_;
 
1700
                                        _tmp109_ = vala_symbol_get_parent_symbol ((ValaSymbol*) closure_block);
 
1701
                                        _tmp110_ = vala_ccode_base_module_next_closure_block ((ValaCCodeBaseModule*) self, _tmp109_);
 
1702
                                        _tmp111_ = _vala_code_node_ref0 (_tmp110_);
 
1703
                                        parent_closure_block = _tmp111_;
1725
1704
                                        if (parent_closure_block == NULL) {
1726
1705
                                                _vala_code_node_unref0 (parent_closure_block);
1727
1706
                                                break;
1728
1707
                                        }
1729
 
                                        _tmp118_ = vala_ccode_base_module_get_block_id ((ValaCCodeBaseModule*) self, parent_closure_block);
1730
 
                                        parent_block_id = _tmp118_;
1731
 
                                        _tmp119_ = g_strdup_printf ("_data%d_", block_id);
1732
 
                                        _tmp120_ = _tmp119_;
1733
 
                                        _tmp121_ = vala_ccode_identifier_new (_tmp120_);
1734
 
                                        _tmp122_ = _tmp121_;
1735
 
                                        _tmp123_ = g_strdup_printf ("_data%d_", parent_block_id);
1736
 
                                        _tmp124_ = _tmp123_;
1737
 
                                        _tmp125_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp122_, _tmp124_);
1738
 
                                        parent_data = (_tmp126_ = _tmp125_, _g_free0 (_tmp124_), _vala_ccode_node_unref0 (_tmp122_), _g_free0 (_tmp120_), _tmp126_);
1739
 
                                        _tmp127_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1740
 
                                        _tmp128_ = g_strdup_printf ("Block%dData*", parent_block_id);
1741
 
                                        _tmp129_ = _tmp128_;
1742
 
                                        _tmp130_ = g_strdup_printf ("_data%d_", parent_block_id);
1743
 
                                        _tmp131_ = _tmp130_;
1744
 
                                        _tmp132_ = vala_ccode_variable_declarator_new (_tmp131_, NULL, NULL);
1745
 
                                        _tmp133_ = _tmp132_;
1746
 
                                        vala_ccode_function_add_declaration (_tmp127_, _tmp129_, (ValaCCodeDeclarator*) _tmp133_, 0);
1747
 
                                        _vala_ccode_node_unref0 (_tmp133_);
1748
 
                                        _g_free0 (_tmp131_);
1749
 
                                        _g_free0 (_tmp129_);
1750
 
                                        _tmp134_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1751
 
                                        _tmp135_ = g_strdup_printf ("_data%d_", parent_block_id);
 
1708
                                        _tmp112_ = vala_ccode_base_module_get_block_id ((ValaCCodeBaseModule*) self, parent_closure_block);
 
1709
                                        parent_block_id = _tmp112_;
 
1710
                                        _tmp113_ = g_strdup_printf ("_data%d_", block_id);
 
1711
                                        _tmp114_ = _tmp113_;
 
1712
                                        _tmp115_ = vala_ccode_identifier_new (_tmp114_);
 
1713
                                        _tmp116_ = _tmp115_;
 
1714
                                        _tmp117_ = g_strdup_printf ("_data%d_", parent_block_id);
 
1715
                                        _tmp118_ = _tmp117_;
 
1716
                                        _tmp119_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp116_, _tmp118_);
 
1717
                                        parent_data = (_tmp120_ = _tmp119_, _g_free0 (_tmp118_), _vala_ccode_node_unref0 (_tmp116_), _g_free0 (_tmp114_), _tmp120_);
 
1718
                                        _tmp121_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1719
                                        _tmp122_ = g_strdup_printf ("Block%dData*", parent_block_id);
 
1720
                                        _tmp123_ = _tmp122_;
 
1721
                                        _tmp124_ = g_strdup_printf ("_data%d_", parent_block_id);
 
1722
                                        _tmp125_ = _tmp124_;
 
1723
                                        _tmp126_ = vala_ccode_variable_declarator_new (_tmp125_, NULL, NULL);
 
1724
                                        _tmp127_ = _tmp126_;
 
1725
                                        vala_ccode_function_add_declaration (_tmp121_, _tmp123_, (ValaCCodeDeclarator*) _tmp127_, 0);
 
1726
                                        _vala_ccode_node_unref0 (_tmp127_);
 
1727
                                        _g_free0 (_tmp125_);
 
1728
                                        _g_free0 (_tmp123_);
 
1729
                                        _tmp128_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1730
                                        _tmp129_ = g_strdup_printf ("_data%d_", parent_block_id);
 
1731
                                        _tmp130_ = _tmp129_;
 
1732
                                        _tmp131_ = vala_ccode_identifier_new (_tmp130_);
 
1733
                                        _tmp132_ = _tmp131_;
 
1734
                                        _tmp133_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp132_, (ValaCCodeExpression*) parent_data, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
1735
                                        _tmp134_ = _tmp133_;
 
1736
                                        vala_ccode_function_add_expression (_tmp128_, (ValaCCodeExpression*) _tmp134_);
 
1737
                                        _vala_ccode_node_unref0 (_tmp134_);
 
1738
                                        _vala_ccode_node_unref0 (_tmp132_);
 
1739
                                        _g_free0 (_tmp130_);
 
1740
                                        _tmp135_ = _vala_code_node_ref0 (parent_closure_block);
1752
1741
                                        _tmp136_ = _tmp135_;
1753
 
                                        _tmp137_ = vala_ccode_identifier_new (_tmp136_);
1754
 
                                        _tmp138_ = _tmp137_;
1755
 
                                        _tmp139_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp138_, (ValaCCodeExpression*) parent_data, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
1756
 
                                        _tmp140_ = _tmp139_;
1757
 
                                        vala_ccode_function_add_expression (_tmp134_, (ValaCCodeExpression*) _tmp140_);
1758
 
                                        _vala_ccode_node_unref0 (_tmp140_);
1759
 
                                        _vala_ccode_node_unref0 (_tmp138_);
1760
 
                                        _g_free0 (_tmp136_);
1761
 
                                        _tmp141_ = _vala_code_node_ref0 (parent_closure_block);
1762
 
                                        _tmp142_ = _tmp141_;
1763
1742
                                        _vala_code_node_unref0 (closure_block);
1764
 
                                        closure_block = _tmp142_;
 
1743
                                        closure_block = _tmp136_;
1765
1744
                                        block_id = parent_block_id;
1766
1745
                                        _vala_ccode_node_unref0 (parent_data);
1767
1746
                                        _vala_code_node_unref0 (parent_closure_block);
1768
1747
                                }
1769
 
                                _tmp143_ = vala_method_get_binding (m);
1770
 
                                if (_tmp143_ == VALA_MEMBER_BINDING_INSTANCE) {
1771
 
                                        gchar* _tmp144_ = NULL;
1772
 
                                        gchar* _tmp145_;
1773
 
                                        ValaCCodeIdentifier* _tmp146_ = NULL;
1774
 
                                        ValaCCodeIdentifier* _tmp147_;
1775
 
                                        ValaCCodeMemberAccess* _tmp148_ = NULL;
1776
 
                                        ValaCCodeMemberAccess* _tmp149_;
 
1748
                                _tmp137_ = vala_method_get_binding (m);
 
1749
                                if (_tmp137_ == VALA_MEMBER_BINDING_INSTANCE) {
 
1750
                                        gchar* _tmp138_ = NULL;
 
1751
                                        gchar* _tmp139_;
 
1752
                                        ValaCCodeIdentifier* _tmp140_ = NULL;
 
1753
                                        ValaCCodeIdentifier* _tmp141_;
 
1754
                                        ValaCCodeMemberAccess* _tmp142_ = NULL;
 
1755
                                        ValaCCodeMemberAccess* _tmp143_;
1777
1756
                                        ValaCCodeMemberAccess* cself;
1778
 
                                        ValaCCodeFunction* _tmp150_ = NULL;
1779
 
                                        ValaClass* _tmp151_ = NULL;
1780
 
                                        gchar* _tmp152_ = NULL;
1781
 
                                        gchar* _tmp153_;
1782
 
                                        gchar* _tmp154_ = NULL;
1783
 
                                        gchar* _tmp155_;
1784
 
                                        ValaCCodeVariableDeclarator* _tmp156_ = NULL;
1785
 
                                        ValaCCodeVariableDeclarator* _tmp157_;
1786
 
                                        ValaCCodeFunction* _tmp158_ = NULL;
1787
 
                                        ValaCCodeIdentifier* _tmp159_ = NULL;
1788
 
                                        ValaCCodeIdentifier* _tmp160_;
1789
 
                                        ValaCCodeAssignment* _tmp161_ = NULL;
1790
 
                                        ValaCCodeAssignment* _tmp162_;
1791
 
                                        _tmp144_ = g_strdup_printf ("_data%d_", block_id);
1792
 
                                        _tmp145_ = _tmp144_;
1793
 
                                        _tmp146_ = vala_ccode_identifier_new (_tmp145_);
 
1757
                                        ValaCCodeFunction* _tmp144_ = NULL;
 
1758
                                        ValaClass* _tmp145_ = NULL;
 
1759
                                        gchar* _tmp146_ = NULL;
 
1760
                                        gchar* _tmp147_;
 
1761
                                        gchar* _tmp148_ = NULL;
 
1762
                                        gchar* _tmp149_;
 
1763
                                        ValaCCodeVariableDeclarator* _tmp150_ = NULL;
 
1764
                                        ValaCCodeVariableDeclarator* _tmp151_;
 
1765
                                        ValaCCodeFunction* _tmp152_ = NULL;
 
1766
                                        ValaCCodeIdentifier* _tmp153_ = NULL;
 
1767
                                        ValaCCodeIdentifier* _tmp154_;
 
1768
                                        ValaCCodeAssignment* _tmp155_ = NULL;
 
1769
                                        ValaCCodeAssignment* _tmp156_;
 
1770
                                        _tmp138_ = g_strdup_printf ("_data%d_", block_id);
 
1771
                                        _tmp139_ = _tmp138_;
 
1772
                                        _tmp140_ = vala_ccode_identifier_new (_tmp139_);
 
1773
                                        _tmp141_ = _tmp140_;
 
1774
                                        _tmp142_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp141_, "self");
 
1775
                                        cself = (_tmp143_ = _tmp142_, _vala_ccode_node_unref0 (_tmp141_), _g_free0 (_tmp139_), _tmp143_);
 
1776
                                        _tmp144_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1777
                                        _tmp145_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
 
1778
                                        _tmp146_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) _tmp145_, FALSE);
1794
1779
                                        _tmp147_ = _tmp146_;
1795
 
                                        _tmp148_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp147_, "self");
1796
 
                                        cself = (_tmp149_ = _tmp148_, _vala_ccode_node_unref0 (_tmp147_), _g_free0 (_tmp145_), _tmp149_);
1797
 
                                        _tmp150_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1798
 
                                        _tmp151_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
1799
 
                                        _tmp152_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) _tmp151_, FALSE);
1800
 
                                        _tmp153_ = _tmp152_;
1801
 
                                        _tmp154_ = g_strdup_printf ("%s *", _tmp153_);
1802
 
                                        _tmp155_ = _tmp154_;
1803
 
                                        _tmp156_ = vala_ccode_variable_declarator_new ("self", NULL, NULL);
1804
 
                                        _tmp157_ = _tmp156_;
1805
 
                                        vala_ccode_function_add_declaration (_tmp150_, _tmp155_, (ValaCCodeDeclarator*) _tmp157_, 0);
1806
 
                                        _vala_ccode_node_unref0 (_tmp157_);
1807
 
                                        _g_free0 (_tmp155_);
1808
 
                                        _g_free0 (_tmp153_);
1809
 
                                        _tmp158_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1810
 
                                        _tmp159_ = vala_ccode_identifier_new ("self");
1811
 
                                        _tmp160_ = _tmp159_;
1812
 
                                        _tmp161_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp160_, (ValaCCodeExpression*) cself, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
1813
 
                                        _tmp162_ = _tmp161_;
1814
 
                                        vala_ccode_function_add_expression (_tmp158_, (ValaCCodeExpression*) _tmp162_);
1815
 
                                        _vala_ccode_node_unref0 (_tmp162_);
1816
 
                                        _vala_ccode_node_unref0 (_tmp160_);
 
1780
                                        _tmp148_ = g_strdup_printf ("%s *", _tmp147_);
 
1781
                                        _tmp149_ = _tmp148_;
 
1782
                                        _tmp150_ = vala_ccode_variable_declarator_new ("self", NULL, NULL);
 
1783
                                        _tmp151_ = _tmp150_;
 
1784
                                        vala_ccode_function_add_declaration (_tmp144_, _tmp149_, (ValaCCodeDeclarator*) _tmp151_, 0);
 
1785
                                        _vala_ccode_node_unref0 (_tmp151_);
 
1786
                                        _g_free0 (_tmp149_);
 
1787
                                        _g_free0 (_tmp147_);
 
1788
                                        _tmp152_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1789
                                        _tmp153_ = vala_ccode_identifier_new ("self");
 
1790
                                        _tmp154_ = _tmp153_;
 
1791
                                        _tmp155_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp154_, (ValaCCodeExpression*) cself, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
1792
                                        _tmp156_ = _tmp155_;
 
1793
                                        vala_ccode_function_add_expression (_tmp152_, (ValaCCodeExpression*) _tmp156_);
 
1794
                                        _vala_ccode_node_unref0 (_tmp156_);
 
1795
                                        _vala_ccode_node_unref0 (_tmp154_);
1817
1796
                                        _vala_ccode_node_unref0 (cself);
1818
1797
                                }
1819
1798
                                {
1820
 
                                        ValaList* _tmp163_ = NULL;
 
1799
                                        ValaList* _tmp157_ = NULL;
1821
1800
                                        ValaList* _type_param_list;
1822
 
                                        gint _tmp164_;
 
1801
                                        gint _tmp158_;
1823
1802
                                        gint _type_param_size;
1824
1803
                                        gint _type_param_index;
1825
 
                                        _tmp163_ = vala_method_get_type_parameters (m);
1826
 
                                        _type_param_list = _tmp163_;
1827
 
                                        _tmp164_ = vala_collection_get_size ((ValaCollection*) _type_param_list);
1828
 
                                        _type_param_size = _tmp164_;
 
1804
                                        _tmp157_ = vala_method_get_type_parameters (m);
 
1805
                                        _type_param_list = _tmp157_;
 
1806
                                        _tmp158_ = vala_collection_get_size ((ValaCollection*) _type_param_list);
 
1807
                                        _type_param_size = _tmp158_;
1829
1808
                                        _type_param_index = -1;
1830
1809
                                        while (TRUE) {
1831
 
                                                gpointer _tmp165_ = NULL;
 
1810
                                                gpointer _tmp159_ = NULL;
1832
1811
                                                ValaTypeParameter* type_param;
1833
1812
                                                gchar* func_name;
1834
 
                                                const gchar* _tmp166_ = NULL;
1835
 
                                                gchar* _tmp167_ = NULL;
1836
 
                                                gchar* _tmp168_;
1837
 
                                                gchar* _tmp169_ = NULL;
1838
 
                                                gchar* _tmp170_;
1839
 
                                                ValaCCodeFunction* _tmp171_ = NULL;
1840
 
                                                ValaCCodeVariableDeclarator* _tmp172_ = NULL;
1841
 
                                                ValaCCodeVariableDeclarator* _tmp173_;
1842
 
                                                ValaCCodeFunction* _tmp174_ = NULL;
1843
 
                                                ValaCCodeIdentifier* _tmp175_ = NULL;
1844
 
                                                ValaCCodeIdentifier* _tmp176_;
1845
 
                                                gchar* _tmp177_ = NULL;
1846
 
                                                gchar* _tmp178_;
1847
 
                                                ValaCCodeExpression* _tmp179_ = NULL;
1848
 
                                                ValaCCodeExpression* _tmp180_;
1849
 
                                                ValaCCodeMemberAccess* _tmp181_ = NULL;
1850
 
                                                ValaCCodeMemberAccess* _tmp182_;
1851
 
                                                ValaCCodeAssignment* _tmp183_ = NULL;
1852
 
                                                ValaCCodeAssignment* _tmp184_;
1853
 
                                                const gchar* _tmp185_ = NULL;
1854
 
                                                gchar* _tmp186_ = NULL;
1855
 
                                                gchar* _tmp187_;
1856
 
                                                gchar* _tmp188_ = NULL;
1857
 
                                                gchar* _tmp189_;
1858
 
                                                ValaCCodeFunction* _tmp190_ = NULL;
1859
 
                                                ValaCCodeVariableDeclarator* _tmp191_ = NULL;
1860
 
                                                ValaCCodeVariableDeclarator* _tmp192_;
1861
 
                                                ValaCCodeFunction* _tmp193_ = NULL;
1862
 
                                                ValaCCodeIdentifier* _tmp194_ = NULL;
1863
 
                                                ValaCCodeIdentifier* _tmp195_;
1864
 
                                                gchar* _tmp196_ = NULL;
1865
 
                                                gchar* _tmp197_;
1866
 
                                                ValaCCodeExpression* _tmp198_ = NULL;
1867
 
                                                ValaCCodeExpression* _tmp199_;
1868
 
                                                ValaCCodeMemberAccess* _tmp200_ = NULL;
1869
 
                                                ValaCCodeMemberAccess* _tmp201_;
1870
 
                                                ValaCCodeAssignment* _tmp202_ = NULL;
1871
 
                                                ValaCCodeAssignment* _tmp203_;
1872
 
                                                const gchar* _tmp204_ = NULL;
1873
 
                                                gchar* _tmp205_ = NULL;
1874
 
                                                gchar* _tmp206_;
1875
 
                                                gchar* _tmp207_ = NULL;
1876
 
                                                gchar* _tmp208_;
1877
 
                                                ValaCCodeFunction* _tmp209_ = NULL;
1878
 
                                                ValaCCodeVariableDeclarator* _tmp210_ = NULL;
1879
 
                                                ValaCCodeVariableDeclarator* _tmp211_;
1880
 
                                                ValaCCodeFunction* _tmp212_ = NULL;
1881
 
                                                ValaCCodeIdentifier* _tmp213_ = NULL;
1882
 
                                                ValaCCodeIdentifier* _tmp214_;
1883
 
                                                gchar* _tmp215_ = NULL;
1884
 
                                                gchar* _tmp216_;
1885
 
                                                ValaCCodeExpression* _tmp217_ = NULL;
1886
 
                                                ValaCCodeExpression* _tmp218_;
1887
 
                                                ValaCCodeMemberAccess* _tmp219_ = NULL;
1888
 
                                                ValaCCodeMemberAccess* _tmp220_;
1889
 
                                                ValaCCodeAssignment* _tmp221_ = NULL;
1890
 
                                                ValaCCodeAssignment* _tmp222_;
 
1813
                                                const gchar* _tmp160_ = NULL;
 
1814
                                                gchar* _tmp161_ = NULL;
 
1815
                                                gchar* _tmp162_;
 
1816
                                                gchar* _tmp163_ = NULL;
 
1817
                                                gchar* _tmp164_;
 
1818
                                                ValaCCodeFunction* _tmp165_ = NULL;
 
1819
                                                ValaCCodeVariableDeclarator* _tmp166_ = NULL;
 
1820
                                                ValaCCodeVariableDeclarator* _tmp167_;
 
1821
                                                ValaCCodeFunction* _tmp168_ = NULL;
 
1822
                                                ValaCCodeIdentifier* _tmp169_ = NULL;
 
1823
                                                ValaCCodeIdentifier* _tmp170_;
 
1824
                                                gchar* _tmp171_ = NULL;
 
1825
                                                gchar* _tmp172_;
 
1826
                                                ValaCCodeExpression* _tmp173_ = NULL;
 
1827
                                                ValaCCodeExpression* _tmp174_;
 
1828
                                                ValaCCodeMemberAccess* _tmp175_ = NULL;
 
1829
                                                ValaCCodeMemberAccess* _tmp176_;
 
1830
                                                ValaCCodeAssignment* _tmp177_ = NULL;
 
1831
                                                ValaCCodeAssignment* _tmp178_;
 
1832
                                                const gchar* _tmp179_ = NULL;
 
1833
                                                gchar* _tmp180_ = NULL;
 
1834
                                                gchar* _tmp181_;
 
1835
                                                gchar* _tmp182_ = NULL;
 
1836
                                                gchar* _tmp183_;
 
1837
                                                ValaCCodeFunction* _tmp184_ = NULL;
 
1838
                                                ValaCCodeVariableDeclarator* _tmp185_ = NULL;
 
1839
                                                ValaCCodeVariableDeclarator* _tmp186_;
 
1840
                                                ValaCCodeFunction* _tmp187_ = NULL;
 
1841
                                                ValaCCodeIdentifier* _tmp188_ = NULL;
 
1842
                                                ValaCCodeIdentifier* _tmp189_;
 
1843
                                                gchar* _tmp190_ = NULL;
 
1844
                                                gchar* _tmp191_;
 
1845
                                                ValaCCodeExpression* _tmp192_ = NULL;
 
1846
                                                ValaCCodeExpression* _tmp193_;
 
1847
                                                ValaCCodeMemberAccess* _tmp194_ = NULL;
 
1848
                                                ValaCCodeMemberAccess* _tmp195_;
 
1849
                                                ValaCCodeAssignment* _tmp196_ = NULL;
 
1850
                                                ValaCCodeAssignment* _tmp197_;
 
1851
                                                const gchar* _tmp198_ = NULL;
 
1852
                                                gchar* _tmp199_ = NULL;
 
1853
                                                gchar* _tmp200_;
 
1854
                                                gchar* _tmp201_ = NULL;
 
1855
                                                gchar* _tmp202_;
 
1856
                                                ValaCCodeFunction* _tmp203_ = NULL;
 
1857
                                                ValaCCodeVariableDeclarator* _tmp204_ = NULL;
 
1858
                                                ValaCCodeVariableDeclarator* _tmp205_;
 
1859
                                                ValaCCodeFunction* _tmp206_ = NULL;
 
1860
                                                ValaCCodeIdentifier* _tmp207_ = NULL;
 
1861
                                                ValaCCodeIdentifier* _tmp208_;
 
1862
                                                gchar* _tmp209_ = NULL;
 
1863
                                                gchar* _tmp210_;
 
1864
                                                ValaCCodeExpression* _tmp211_ = NULL;
 
1865
                                                ValaCCodeExpression* _tmp212_;
 
1866
                                                ValaCCodeMemberAccess* _tmp213_ = NULL;
 
1867
                                                ValaCCodeMemberAccess* _tmp214_;
 
1868
                                                ValaCCodeAssignment* _tmp215_ = NULL;
 
1869
                                                ValaCCodeAssignment* _tmp216_;
1891
1870
                                                _type_param_index = _type_param_index + 1;
1892
1871
                                                if (!(_type_param_index < _type_param_size)) {
1893
1872
                                                        break;
1894
1873
                                                }
1895
 
                                                _tmp165_ = vala_list_get (_type_param_list, _type_param_index);
1896
 
                                                type_param = (ValaTypeParameter*) _tmp165_;
 
1874
                                                _tmp159_ = vala_list_get (_type_param_list, _type_param_index);
 
1875
                                                type_param = (ValaTypeParameter*) _tmp159_;
1897
1876
                                                func_name = NULL;
1898
 
                                                _tmp166_ = vala_symbol_get_name ((ValaSymbol*) type_param);
1899
 
                                                _tmp167_ = g_utf8_strdown (_tmp166_, (gssize) (-1));
1900
 
                                                _tmp168_ = _tmp167_;
1901
 
                                                _tmp169_ = g_strdup_printf ("%s_type", _tmp168_);
 
1877
                                                _tmp160_ = vala_symbol_get_name ((ValaSymbol*) type_param);
 
1878
                                                _tmp161_ = g_utf8_strdown (_tmp160_, (gssize) (-1));
 
1879
                                                _tmp162_ = _tmp161_;
 
1880
                                                _tmp163_ = g_strdup_printf ("%s_type", _tmp162_);
 
1881
                                                _tmp164_ = _tmp163_;
 
1882
                                                _g_free0 (func_name);
 
1883
                                                func_name = _tmp164_;
 
1884
                                                _g_free0 (_tmp162_);
 
1885
                                                _tmp165_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1886
                                                _tmp166_ = vala_ccode_variable_declarator_new (func_name, NULL, NULL);
 
1887
                                                _tmp167_ = _tmp166_;
 
1888
                                                vala_ccode_function_add_declaration (_tmp165_, "GType", (ValaCCodeDeclarator*) _tmp167_, 0);
 
1889
                                                _vala_ccode_node_unref0 (_tmp167_);
 
1890
                                                _tmp168_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1891
                                                _tmp169_ = vala_ccode_identifier_new (func_name);
1902
1892
                                                _tmp170_ = _tmp169_;
1903
 
                                                _g_free0 (func_name);
1904
 
                                                func_name = _tmp170_;
1905
 
                                                _g_free0 (_tmp168_);
1906
 
                                                _tmp171_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1907
 
                                                _tmp172_ = vala_ccode_variable_declarator_new (func_name, NULL, NULL);
1908
 
                                                _tmp173_ = _tmp172_;
1909
 
                                                vala_ccode_function_add_declaration (_tmp171_, "GType", (ValaCCodeDeclarator*) _tmp173_, 0);
1910
 
                                                _vala_ccode_node_unref0 (_tmp173_);
1911
 
                                                _tmp174_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1912
 
                                                _tmp175_ = vala_ccode_identifier_new (func_name);
 
1893
                                                _tmp171_ = g_strdup_printf ("_data%d_", block_id);
 
1894
                                                _tmp172_ = _tmp171_;
 
1895
                                                _tmp173_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp172_);
 
1896
                                                _tmp174_ = _tmp173_;
 
1897
                                                _tmp175_ = vala_ccode_member_access_new_pointer (_tmp174_, func_name);
1913
1898
                                                _tmp176_ = _tmp175_;
1914
 
                                                _tmp177_ = g_strdup_printf ("_data%d_", block_id);
 
1899
                                                _tmp177_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp170_, (ValaCCodeExpression*) _tmp176_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
1915
1900
                                                _tmp178_ = _tmp177_;
1916
 
                                                _tmp179_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp178_);
1917
 
                                                _tmp180_ = _tmp179_;
1918
 
                                                _tmp181_ = vala_ccode_member_access_new_pointer (_tmp180_, func_name);
1919
 
                                                _tmp182_ = _tmp181_;
1920
 
                                                _tmp183_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp176_, (ValaCCodeExpression*) _tmp182_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
1921
 
                                                _tmp184_ = _tmp183_;
1922
 
                                                vala_ccode_function_add_expression (_tmp174_, (ValaCCodeExpression*) _tmp184_);
1923
 
                                                _vala_ccode_node_unref0 (_tmp184_);
1924
 
                                                _vala_ccode_node_unref0 (_tmp182_);
1925
 
                                                _vala_ccode_node_unref0 (_tmp180_);
1926
 
                                                _g_free0 (_tmp178_);
 
1901
                                                vala_ccode_function_add_expression (_tmp168_, (ValaCCodeExpression*) _tmp178_);
 
1902
                                                _vala_ccode_node_unref0 (_tmp178_);
1927
1903
                                                _vala_ccode_node_unref0 (_tmp176_);
1928
 
                                                _tmp185_ = vala_symbol_get_name ((ValaSymbol*) type_param);
1929
 
                                                _tmp186_ = g_utf8_strdown (_tmp185_, (gssize) (-1));
1930
 
                                                _tmp187_ = _tmp186_;
1931
 
                                                _tmp188_ = g_strdup_printf ("%s_dup_func", _tmp187_);
 
1904
                                                _vala_ccode_node_unref0 (_tmp174_);
 
1905
                                                _g_free0 (_tmp172_);
 
1906
                                                _vala_ccode_node_unref0 (_tmp170_);
 
1907
                                                _tmp179_ = vala_symbol_get_name ((ValaSymbol*) type_param);
 
1908
                                                _tmp180_ = g_utf8_strdown (_tmp179_, (gssize) (-1));
 
1909
                                                _tmp181_ = _tmp180_;
 
1910
                                                _tmp182_ = g_strdup_printf ("%s_dup_func", _tmp181_);
 
1911
                                                _tmp183_ = _tmp182_;
 
1912
                                                _g_free0 (func_name);
 
1913
                                                func_name = _tmp183_;
 
1914
                                                _g_free0 (_tmp181_);
 
1915
                                                _tmp184_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1916
                                                _tmp185_ = vala_ccode_variable_declarator_new (func_name, NULL, NULL);
 
1917
                                                _tmp186_ = _tmp185_;
 
1918
                                                vala_ccode_function_add_declaration (_tmp184_, "GBoxedCopyFunc", (ValaCCodeDeclarator*) _tmp186_, 0);
 
1919
                                                _vala_ccode_node_unref0 (_tmp186_);
 
1920
                                                _tmp187_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1921
                                                _tmp188_ = vala_ccode_identifier_new (func_name);
1932
1922
                                                _tmp189_ = _tmp188_;
1933
 
                                                _g_free0 (func_name);
1934
 
                                                func_name = _tmp189_;
1935
 
                                                _g_free0 (_tmp187_);
1936
 
                                                _tmp190_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1937
 
                                                _tmp191_ = vala_ccode_variable_declarator_new (func_name, NULL, NULL);
1938
 
                                                _tmp192_ = _tmp191_;
1939
 
                                                vala_ccode_function_add_declaration (_tmp190_, "GBoxedCopyFunc", (ValaCCodeDeclarator*) _tmp192_, 0);
1940
 
                                                _vala_ccode_node_unref0 (_tmp192_);
1941
 
                                                _tmp193_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1942
 
                                                _tmp194_ = vala_ccode_identifier_new (func_name);
 
1923
                                                _tmp190_ = g_strdup_printf ("_data%d_", block_id);
 
1924
                                                _tmp191_ = _tmp190_;
 
1925
                                                _tmp192_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp191_);
 
1926
                                                _tmp193_ = _tmp192_;
 
1927
                                                _tmp194_ = vala_ccode_member_access_new_pointer (_tmp193_, func_name);
1943
1928
                                                _tmp195_ = _tmp194_;
1944
 
                                                _tmp196_ = g_strdup_printf ("_data%d_", block_id);
 
1929
                                                _tmp196_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp189_, (ValaCCodeExpression*) _tmp195_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
1945
1930
                                                _tmp197_ = _tmp196_;
1946
 
                                                _tmp198_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp197_);
1947
 
                                                _tmp199_ = _tmp198_;
1948
 
                                                _tmp200_ = vala_ccode_member_access_new_pointer (_tmp199_, func_name);
1949
 
                                                _tmp201_ = _tmp200_;
1950
 
                                                _tmp202_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp195_, (ValaCCodeExpression*) _tmp201_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
1951
 
                                                _tmp203_ = _tmp202_;
1952
 
                                                vala_ccode_function_add_expression (_tmp193_, (ValaCCodeExpression*) _tmp203_);
1953
 
                                                _vala_ccode_node_unref0 (_tmp203_);
1954
 
                                                _vala_ccode_node_unref0 (_tmp201_);
1955
 
                                                _vala_ccode_node_unref0 (_tmp199_);
1956
 
                                                _g_free0 (_tmp197_);
 
1931
                                                vala_ccode_function_add_expression (_tmp187_, (ValaCCodeExpression*) _tmp197_);
 
1932
                                                _vala_ccode_node_unref0 (_tmp197_);
1957
1933
                                                _vala_ccode_node_unref0 (_tmp195_);
1958
 
                                                _tmp204_ = vala_symbol_get_name ((ValaSymbol*) type_param);
1959
 
                                                _tmp205_ = g_utf8_strdown (_tmp204_, (gssize) (-1));
1960
 
                                                _tmp206_ = _tmp205_;
1961
 
                                                _tmp207_ = g_strdup_printf ("%s_destroy_func", _tmp206_);
 
1934
                                                _vala_ccode_node_unref0 (_tmp193_);
 
1935
                                                _g_free0 (_tmp191_);
 
1936
                                                _vala_ccode_node_unref0 (_tmp189_);
 
1937
                                                _tmp198_ = vala_symbol_get_name ((ValaSymbol*) type_param);
 
1938
                                                _tmp199_ = g_utf8_strdown (_tmp198_, (gssize) (-1));
 
1939
                                                _tmp200_ = _tmp199_;
 
1940
                                                _tmp201_ = g_strdup_printf ("%s_destroy_func", _tmp200_);
 
1941
                                                _tmp202_ = _tmp201_;
 
1942
                                                _g_free0 (func_name);
 
1943
                                                func_name = _tmp202_;
 
1944
                                                _g_free0 (_tmp200_);
 
1945
                                                _tmp203_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1946
                                                _tmp204_ = vala_ccode_variable_declarator_new (func_name, NULL, NULL);
 
1947
                                                _tmp205_ = _tmp204_;
 
1948
                                                vala_ccode_function_add_declaration (_tmp203_, "GDestroyNotify", (ValaCCodeDeclarator*) _tmp205_, 0);
 
1949
                                                _vala_ccode_node_unref0 (_tmp205_);
 
1950
                                                _tmp206_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
1951
                                                _tmp207_ = vala_ccode_identifier_new (func_name);
1962
1952
                                                _tmp208_ = _tmp207_;
1963
 
                                                _g_free0 (func_name);
1964
 
                                                func_name = _tmp208_;
1965
 
                                                _g_free0 (_tmp206_);
1966
 
                                                _tmp209_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1967
 
                                                _tmp210_ = vala_ccode_variable_declarator_new (func_name, NULL, NULL);
1968
 
                                                _tmp211_ = _tmp210_;
1969
 
                                                vala_ccode_function_add_declaration (_tmp209_, "GDestroyNotify", (ValaCCodeDeclarator*) _tmp211_, 0);
1970
 
                                                _vala_ccode_node_unref0 (_tmp211_);
1971
 
                                                _tmp212_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1972
 
                                                _tmp213_ = vala_ccode_identifier_new (func_name);
 
1953
                                                _tmp209_ = g_strdup_printf ("_data%d_", block_id);
 
1954
                                                _tmp210_ = _tmp209_;
 
1955
                                                _tmp211_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp210_);
 
1956
                                                _tmp212_ = _tmp211_;
 
1957
                                                _tmp213_ = vala_ccode_member_access_new_pointer (_tmp212_, func_name);
1973
1958
                                                _tmp214_ = _tmp213_;
1974
 
                                                _tmp215_ = g_strdup_printf ("_data%d_", block_id);
 
1959
                                                _tmp215_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp208_, (ValaCCodeExpression*) _tmp214_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
1975
1960
                                                _tmp216_ = _tmp215_;
1976
 
                                                _tmp217_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp216_);
1977
 
                                                _tmp218_ = _tmp217_;
1978
 
                                                _tmp219_ = vala_ccode_member_access_new_pointer (_tmp218_, func_name);
1979
 
                                                _tmp220_ = _tmp219_;
1980
 
                                                _tmp221_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp214_, (ValaCCodeExpression*) _tmp220_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
1981
 
                                                _tmp222_ = _tmp221_;
1982
 
                                                vala_ccode_function_add_expression (_tmp212_, (ValaCCodeExpression*) _tmp222_);
1983
 
                                                _vala_ccode_node_unref0 (_tmp222_);
1984
 
                                                _vala_ccode_node_unref0 (_tmp220_);
1985
 
                                                _vala_ccode_node_unref0 (_tmp218_);
1986
 
                                                _g_free0 (_tmp216_);
 
1961
                                                vala_ccode_function_add_expression (_tmp206_, (ValaCCodeExpression*) _tmp216_);
 
1962
                                                _vala_ccode_node_unref0 (_tmp216_);
1987
1963
                                                _vala_ccode_node_unref0 (_tmp214_);
 
1964
                                                _vala_ccode_node_unref0 (_tmp212_);
 
1965
                                                _g_free0 (_tmp210_);
 
1966
                                                _vala_ccode_node_unref0 (_tmp208_);
1988
1967
                                                _g_free0 (func_name);
1989
1968
                                                _vala_code_node_unref0 (type_param);
1990
1969
                                        }
1992
1971
                                }
1993
1972
                                _vala_code_node_unref0 (closure_block);
1994
1973
                        } else {
1995
 
                                gboolean _tmp223_ = FALSE;
1996
 
                                ValaSymbol* _tmp224_ = NULL;
1997
 
                                _tmp224_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
1998
 
                                if (VALA_IS_CLASS (_tmp224_)) {
1999
 
                                        gboolean _tmp225_;
2000
 
                                        _tmp225_ = vala_method_get_coroutine (m);
2001
 
                                        _tmp223_ = !_tmp225_;
 
1974
                                gboolean _tmp217_ = FALSE;
 
1975
                                ValaSymbol* _tmp218_ = NULL;
 
1976
                                _tmp218_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
 
1977
                                if (VALA_IS_CLASS (_tmp218_)) {
 
1978
                                        gboolean _tmp219_;
 
1979
                                        _tmp219_ = vala_method_get_coroutine (m);
 
1980
                                        _tmp217_ = !_tmp219_;
2002
1981
                                } else {
2003
 
                                        _tmp223_ = FALSE;
 
1982
                                        _tmp217_ = FALSE;
2004
1983
                                }
2005
 
                                if (_tmp223_) {
2006
 
                                        ValaSymbol* _tmp226_ = NULL;
2007
 
                                        ValaClass* _tmp227_;
 
1984
                                if (_tmp217_) {
 
1985
                                        ValaSymbol* _tmp220_ = NULL;
 
1986
                                        ValaClass* _tmp221_;
2008
1987
                                        ValaClass* cl;
2009
 
                                        gboolean _tmp228_ = FALSE;
2010
 
                                        gboolean _tmp229_;
2011
 
                                        _tmp226_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
2012
 
                                        _tmp227_ = _vala_code_node_ref0 (VALA_CLASS (_tmp226_));
2013
 
                                        cl = _tmp227_;
2014
 
                                        _tmp229_ = vala_method_get_overrides (m);
2015
 
                                        if (_tmp229_) {
2016
 
                                                _tmp228_ = TRUE;
 
1988
                                        gboolean _tmp222_ = FALSE;
 
1989
                                        gboolean _tmp223_;
 
1990
                                        _tmp220_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
 
1991
                                        _tmp221_ = _vala_code_node_ref0 (VALA_CLASS (_tmp220_));
 
1992
                                        cl = _tmp221_;
 
1993
                                        _tmp223_ = vala_method_get_overrides (m);
 
1994
                                        if (_tmp223_) {
 
1995
                                                _tmp222_ = TRUE;
2017
1996
                                        } else {
2018
 
                                                gboolean _tmp230_ = FALSE;
2019
 
                                                gboolean _tmp231_ = FALSE;
2020
 
                                                ValaMethod* _tmp232_ = NULL;
2021
 
                                                _tmp232_ = vala_method_get_base_interface_method (m);
2022
 
                                                if (_tmp232_ != NULL) {
2023
 
                                                        gboolean _tmp233_;
2024
 
                                                        _tmp233_ = vala_method_get_is_abstract (m);
2025
 
                                                        _tmp231_ = !_tmp233_;
2026
 
                                                } else {
2027
 
                                                        _tmp231_ = FALSE;
2028
 
                                                }
2029
 
                                                if (_tmp231_) {
2030
 
                                                        gboolean _tmp234_;
2031
 
                                                        _tmp234_ = vala_method_get_is_virtual (m);
2032
 
                                                        _tmp230_ = !_tmp234_;
2033
 
                                                } else {
2034
 
                                                        _tmp230_ = FALSE;
2035
 
                                                }
2036
 
                                                _tmp228_ = _tmp230_;
 
1997
                                                gboolean _tmp224_ = FALSE;
 
1998
                                                gboolean _tmp225_ = FALSE;
 
1999
                                                ValaMethod* _tmp226_ = NULL;
 
2000
                                                _tmp226_ = vala_method_get_base_interface_method (m);
 
2001
                                                if (_tmp226_ != NULL) {
 
2002
                                                        gboolean _tmp227_;
 
2003
                                                        _tmp227_ = vala_method_get_is_abstract (m);
 
2004
                                                        _tmp225_ = !_tmp227_;
 
2005
                                                } else {
 
2006
                                                        _tmp225_ = FALSE;
 
2007
                                                }
 
2008
                                                if (_tmp225_) {
 
2009
                                                        gboolean _tmp228_;
 
2010
                                                        _tmp228_ = vala_method_get_is_virtual (m);
 
2011
                                                        _tmp224_ = !_tmp228_;
 
2012
                                                } else {
 
2013
                                                        _tmp224_ = FALSE;
 
2014
                                                }
 
2015
                                                _tmp222_ = _tmp224_;
2037
2016
                                        }
2038
 
                                        if (_tmp228_) {
 
2017
                                        if (_tmp222_) {
2039
2018
                                                ValaMethod* base_method;
2040
2019
                                                ValaReferenceType* base_expression_type;
2041
 
                                                gboolean _tmp235_;
2042
 
                                                ValaObjectType* _tmp248_ = NULL;
 
2020
                                                gboolean _tmp229_;
 
2021
                                                ValaObjectType* _tmp242_ = NULL;
2043
2022
                                                ValaObjectType* self_target_type;
2044
 
                                                ValaCCodeIdentifier* _tmp249_ = NULL;
2045
 
                                                ValaCCodeIdentifier* _tmp250_;
2046
 
                                                ValaCCodeExpression* _tmp251_ = NULL;
2047
 
                                                ValaCCodeExpression* _tmp252_;
 
2023
                                                ValaCCodeIdentifier* _tmp243_ = NULL;
 
2024
                                                ValaCCodeIdentifier* _tmp244_;
 
2025
                                                ValaCCodeExpression* _tmp245_ = NULL;
 
2026
                                                ValaCCodeExpression* _tmp246_;
2048
2027
                                                ValaCCodeExpression* cself;
2049
 
                                                ValaCCodeFunction* _tmp253_ = NULL;
2050
 
                                                gchar* _tmp254_ = NULL;
2051
 
                                                gchar* _tmp255_;
2052
 
                                                gchar* _tmp256_ = NULL;
2053
 
                                                gchar* _tmp257_;
2054
 
                                                ValaCCodeVariableDeclarator* _tmp258_ = NULL;
2055
 
                                                ValaCCodeVariableDeclarator* _tmp259_;
2056
 
                                                ValaCCodeFunction* _tmp260_ = NULL;
2057
 
                                                ValaCCodeIdentifier* _tmp261_ = NULL;
2058
 
                                                ValaCCodeIdentifier* _tmp262_;
2059
 
                                                ValaCCodeAssignment* _tmp263_ = NULL;
2060
 
                                                ValaCCodeAssignment* _tmp264_;
 
2028
                                                ValaCCodeFunction* _tmp247_ = NULL;
 
2029
                                                gchar* _tmp248_ = NULL;
 
2030
                                                gchar* _tmp249_;
 
2031
                                                gchar* _tmp250_ = NULL;
 
2032
                                                gchar* _tmp251_;
 
2033
                                                ValaCCodeVariableDeclarator* _tmp252_ = NULL;
 
2034
                                                ValaCCodeVariableDeclarator* _tmp253_;
 
2035
                                                ValaCCodeFunction* _tmp254_ = NULL;
 
2036
                                                ValaCCodeIdentifier* _tmp255_ = NULL;
 
2037
                                                ValaCCodeIdentifier* _tmp256_;
 
2038
                                                ValaCCodeAssignment* _tmp257_ = NULL;
 
2039
                                                ValaCCodeAssignment* _tmp258_;
2061
2040
                                                base_method = NULL;
2062
2041
                                                base_expression_type = NULL;
2063
 
                                                _tmp235_ = vala_method_get_overrides (m);
2064
 
                                                if (_tmp235_) {
 
2042
                                                _tmp229_ = vala_method_get_overrides (m);
 
2043
                                                if (_tmp229_) {
 
2044
                                                        ValaMethod* _tmp230_ = NULL;
 
2045
                                                        ValaMethod* _tmp231_;
 
2046
                                                        ValaMethod* _tmp232_;
 
2047
                                                        ValaSymbol* _tmp233_ = NULL;
 
2048
                                                        ValaObjectType* _tmp234_ = NULL;
 
2049
                                                        ValaReferenceType* _tmp235_;
 
2050
                                                        _tmp230_ = vala_method_get_base_method (m);
 
2051
                                                        _tmp231_ = _vala_code_node_ref0 (_tmp230_);
 
2052
                                                        _tmp232_ = _tmp231_;
 
2053
                                                        _vala_code_node_unref0 (base_method);
 
2054
                                                        base_method = _tmp232_;
 
2055
                                                        _tmp233_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_method);
 
2056
                                                        _tmp234_ = vala_object_type_new ((ValaObjectTypeSymbol*) VALA_CLASS (_tmp233_));
 
2057
                                                        _tmp235_ = (ValaReferenceType*) _tmp234_;
 
2058
                                                        _vala_code_node_unref0 (base_expression_type);
 
2059
                                                        base_expression_type = _tmp235_;
 
2060
                                                } else {
2065
2061
                                                        ValaMethod* _tmp236_ = NULL;
2066
2062
                                                        ValaMethod* _tmp237_;
2067
2063
                                                        ValaMethod* _tmp238_;
2068
2064
                                                        ValaSymbol* _tmp239_ = NULL;
2069
2065
                                                        ValaObjectType* _tmp240_ = NULL;
2070
2066
                                                        ValaReferenceType* _tmp241_;
2071
 
                                                        _tmp236_ = vala_method_get_base_method (m);
 
2067
                                                        _tmp236_ = vala_method_get_base_interface_method (m);
2072
2068
                                                        _tmp237_ = _vala_code_node_ref0 (_tmp236_);
2073
2069
                                                        _tmp238_ = _tmp237_;
2074
2070
                                                        _vala_code_node_unref0 (base_method);
2075
2071
                                                        base_method = _tmp238_;
2076
2072
                                                        _tmp239_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_method);
2077
 
                                                        _tmp240_ = vala_object_type_new ((ValaObjectTypeSymbol*) VALA_CLASS (_tmp239_));
 
2073
                                                        _tmp240_ = vala_object_type_new ((ValaObjectTypeSymbol*) VALA_INTERFACE (_tmp239_));
2078
2074
                                                        _tmp241_ = (ValaReferenceType*) _tmp240_;
2079
2075
                                                        _vala_code_node_unref0 (base_expression_type);
2080
2076
                                                        base_expression_type = _tmp241_;
2081
 
                                                } else {
2082
 
                                                        ValaMethod* _tmp242_ = NULL;
2083
 
                                                        ValaMethod* _tmp243_;
2084
 
                                                        ValaMethod* _tmp244_;
2085
 
                                                        ValaSymbol* _tmp245_ = NULL;
2086
 
                                                        ValaObjectType* _tmp246_ = NULL;
2087
 
                                                        ValaReferenceType* _tmp247_;
2088
 
                                                        _tmp242_ = vala_method_get_base_interface_method (m);
2089
 
                                                        _tmp243_ = _vala_code_node_ref0 (_tmp242_);
2090
 
                                                        _tmp244_ = _tmp243_;
2091
 
                                                        _vala_code_node_unref0 (base_method);
2092
 
                                                        base_method = _tmp244_;
2093
 
                                                        _tmp245_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_method);
2094
 
                                                        _tmp246_ = vala_object_type_new ((ValaObjectTypeSymbol*) VALA_INTERFACE (_tmp245_));
2095
 
                                                        _tmp247_ = (ValaReferenceType*) _tmp246_;
2096
 
                                                        _vala_code_node_unref0 (base_expression_type);
2097
 
                                                        base_expression_type = _tmp247_;
2098
2077
                                                }
2099
 
                                                _tmp248_ = vala_object_type_new ((ValaObjectTypeSymbol*) cl);
2100
 
                                                self_target_type = _tmp248_;
2101
 
                                                _tmp249_ = vala_ccode_identifier_new ("base");
2102
 
                                                _tmp250_ = _tmp249_;
2103
 
                                                _tmp251_ = vala_ccode_base_module_transform_expression ((ValaCCodeBaseModule*) self, (ValaCCodeExpression*) _tmp250_, (ValaDataType*) base_expression_type, (ValaDataType*) self_target_type, NULL);
2104
 
                                                cself = (_tmp252_ = _tmp251_, _vala_ccode_node_unref0 (_tmp250_), _tmp252_);
2105
 
                                                _tmp253_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2106
 
                                                _tmp254_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
2107
 
                                                _tmp255_ = _tmp254_;
2108
 
                                                _tmp256_ = g_strdup_printf ("%s *", _tmp255_);
2109
 
                                                _tmp257_ = _tmp256_;
2110
 
                                                _tmp258_ = vala_ccode_variable_declarator_new ("self", NULL, NULL);
2111
 
                                                _tmp259_ = _tmp258_;
2112
 
                                                vala_ccode_function_add_declaration (_tmp253_, _tmp257_, (ValaCCodeDeclarator*) _tmp259_, 0);
2113
 
                                                _vala_ccode_node_unref0 (_tmp259_);
2114
 
                                                _g_free0 (_tmp257_);
2115
 
                                                _g_free0 (_tmp255_);
2116
 
                                                _tmp260_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2117
 
                                                _tmp261_ = vala_ccode_identifier_new ("self");
2118
 
                                                _tmp262_ = _tmp261_;
2119
 
                                                _tmp263_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp262_, cself, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
2120
 
                                                _tmp264_ = _tmp263_;
2121
 
                                                vala_ccode_function_add_expression (_tmp260_, (ValaCCodeExpression*) _tmp264_);
2122
 
                                                _vala_ccode_node_unref0 (_tmp264_);
2123
 
                                                _vala_ccode_node_unref0 (_tmp262_);
 
2078
                                                _tmp242_ = vala_object_type_new ((ValaObjectTypeSymbol*) cl);
 
2079
                                                self_target_type = _tmp242_;
 
2080
                                                _tmp243_ = vala_ccode_identifier_new ("base");
 
2081
                                                _tmp244_ = _tmp243_;
 
2082
                                                _tmp245_ = vala_ccode_base_module_transform_expression ((ValaCCodeBaseModule*) self, (ValaCCodeExpression*) _tmp244_, (ValaDataType*) base_expression_type, (ValaDataType*) self_target_type, NULL);
 
2083
                                                cself = (_tmp246_ = _tmp245_, _vala_ccode_node_unref0 (_tmp244_), _tmp246_);
 
2084
                                                _tmp247_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2085
                                                _tmp248_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
 
2086
                                                _tmp249_ = _tmp248_;
 
2087
                                                _tmp250_ = g_strdup_printf ("%s *", _tmp249_);
 
2088
                                                _tmp251_ = _tmp250_;
 
2089
                                                _tmp252_ = vala_ccode_variable_declarator_new ("self", NULL, NULL);
 
2090
                                                _tmp253_ = _tmp252_;
 
2091
                                                vala_ccode_function_add_declaration (_tmp247_, _tmp251_, (ValaCCodeDeclarator*) _tmp253_, 0);
 
2092
                                                _vala_ccode_node_unref0 (_tmp253_);
 
2093
                                                _g_free0 (_tmp251_);
 
2094
                                                _g_free0 (_tmp249_);
 
2095
                                                _tmp254_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2096
                                                _tmp255_ = vala_ccode_identifier_new ("self");
 
2097
                                                _tmp256_ = _tmp255_;
 
2098
                                                _tmp257_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp256_, cself, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
2099
                                                _tmp258_ = _tmp257_;
 
2100
                                                vala_ccode_function_add_expression (_tmp254_, (ValaCCodeExpression*) _tmp258_);
 
2101
                                                _vala_ccode_node_unref0 (_tmp258_);
 
2102
                                                _vala_ccode_node_unref0 (_tmp256_);
2124
2103
                                                _vala_ccode_node_unref0 (cself);
2125
2104
                                                _vala_code_node_unref0 (self_target_type);
2126
2105
                                                _vala_code_node_unref0 (base_expression_type);
2127
2106
                                                _vala_code_node_unref0 (base_method);
2128
2107
                                        } else {
2129
 
                                                gboolean _tmp265_ = FALSE;
2130
 
                                                ValaMemberBinding _tmp266_;
2131
 
                                                _tmp266_ = vala_method_get_binding (m);
2132
 
                                                if (_tmp266_ == VALA_MEMBER_BINDING_INSTANCE) {
2133
 
                                                        _tmp265_ = !VALA_IS_CREATION_METHOD (m);
 
2108
                                                gboolean _tmp259_ = FALSE;
 
2109
                                                ValaMemberBinding _tmp260_;
 
2110
                                                _tmp260_ = vala_method_get_binding (m);
 
2111
                                                if (_tmp260_ == VALA_MEMBER_BINDING_INSTANCE) {
 
2112
                                                        _tmp259_ = !VALA_IS_CREATION_METHOD (m);
2134
2113
                                                } else {
2135
 
                                                        _tmp265_ = FALSE;
 
2114
                                                        _tmp259_ = FALSE;
2136
2115
                                                }
2137
 
                                                if (_tmp265_) {
 
2116
                                                if (_tmp259_) {
2138
2117
                                                        vala_ccode_method_module_create_method_type_check_statement (self, m, creturn_type, (ValaTypeSymbol*) cl, TRUE, "self");
2139
2118
                                                }
2140
2119
                                        }
2142
2121
                                }
2143
2122
                        }
2144
2123
                        {
2145
 
                                ValaList* _tmp267_ = NULL;
 
2124
                                ValaList* _tmp261_ = NULL;
2146
2125
                                ValaList* _param_list;
2147
 
                                gint _tmp268_;
 
2126
                                gint _tmp262_;
2148
2127
                                gint _param_size;
2149
2128
                                gint _param_index;
2150
 
                                _tmp267_ = vala_method_get_parameters (m);
2151
 
                                _param_list = _tmp267_;
2152
 
                                _tmp268_ = vala_collection_get_size ((ValaCollection*) _param_list);
2153
 
                                _param_size = _tmp268_;
 
2129
                                _tmp261_ = vala_method_get_parameters (m);
 
2130
                                _param_list = _tmp261_;
 
2131
                                _tmp262_ = vala_collection_get_size ((ValaCollection*) _param_list);
 
2132
                                _param_size = _tmp262_;
2154
2133
                                _param_index = -1;
2155
2134
                                while (TRUE) {
2156
 
                                        gpointer _tmp269_ = NULL;
 
2135
                                        gpointer _tmp263_ = NULL;
2157
2136
                                        ValaParameter* param;
2158
 
                                        gboolean _tmp270_;
2159
 
                                        ValaParameterDirection _tmp271_;
 
2137
                                        gboolean _tmp264_;
 
2138
                                        ValaParameterDirection _tmp265_;
2160
2139
                                        _param_index = _param_index + 1;
2161
2140
                                        if (!(_param_index < _param_size)) {
2162
2141
                                                break;
2163
2142
                                        }
2164
 
                                        _tmp269_ = vala_list_get (_param_list, _param_index);
2165
 
                                        param = (ValaParameter*) _tmp269_;
2166
 
                                        _tmp270_ = vala_parameter_get_ellipsis (param);
2167
 
                                        if (_tmp270_) {
 
2143
                                        _tmp263_ = vala_list_get (_param_list, _param_index);
 
2144
                                        param = (ValaParameter*) _tmp263_;
 
2145
                                        _tmp264_ = vala_parameter_get_ellipsis (param);
 
2146
                                        if (_tmp264_) {
2168
2147
                                                _vala_code_node_unref0 (param);
2169
2148
                                                break;
2170
2149
                                        }
2171
 
                                        _tmp271_ = vala_parameter_get_direction (param);
2172
 
                                        if (_tmp271_ != VALA_PARAMETER_DIRECTION_OUT) {
2173
 
                                                ValaDataType* _tmp272_ = NULL;
2174
 
                                                ValaTypeSymbol* _tmp273_ = NULL;
2175
 
                                                ValaTypeSymbol* _tmp274_;
 
2150
                                        _tmp265_ = vala_parameter_get_direction (param);
 
2151
                                        if (_tmp265_ != VALA_PARAMETER_DIRECTION_OUT) {
 
2152
                                                ValaDataType* _tmp266_ = NULL;
 
2153
                                                ValaTypeSymbol* _tmp267_ = NULL;
 
2154
                                                ValaTypeSymbol* _tmp268_;
2176
2155
                                                ValaTypeSymbol* t;
2177
 
                                                gboolean _tmp275_ = FALSE;
2178
 
                                                _tmp272_ = vala_variable_get_variable_type ((ValaVariable*) param);
2179
 
                                                _tmp273_ = vala_data_type_get_data_type (_tmp272_);
2180
 
                                                _tmp274_ = _vala_code_node_ref0 (_tmp273_);
2181
 
                                                t = _tmp274_;
 
2156
                                                gboolean _tmp269_ = FALSE;
 
2157
                                                _tmp266_ = vala_variable_get_variable_type ((ValaVariable*) param);
 
2158
                                                _tmp267_ = vala_data_type_get_data_type (_tmp266_);
 
2159
                                                _tmp268_ = _vala_code_node_ref0 (_tmp267_);
 
2160
                                                t = _tmp268_;
2182
2161
                                                if (t != NULL) {
2183
 
                                                        gboolean _tmp276_;
2184
 
                                                        _tmp276_ = vala_typesymbol_is_reference_type (t);
2185
 
                                                        _tmp275_ = _tmp276_;
 
2162
                                                        gboolean _tmp270_;
 
2163
                                                        _tmp270_ = vala_typesymbol_is_reference_type (t);
 
2164
                                                        _tmp269_ = _tmp270_;
2186
2165
                                                } else {
2187
 
                                                        _tmp275_ = FALSE;
 
2166
                                                        _tmp269_ = FALSE;
2188
2167
                                                }
2189
 
                                                if (_tmp275_) {
2190
 
                                                        ValaDataType* _tmp277_ = NULL;
2191
 
                                                        gboolean _tmp278_;
2192
 
                                                        const gchar* _tmp279_ = NULL;
2193
 
                                                        gchar* _tmp280_ = NULL;
2194
 
                                                        gchar* _tmp281_;
2195
 
                                                        _tmp277_ = vala_variable_get_variable_type ((ValaVariable*) param);
2196
 
                                                        _tmp278_ = vala_data_type_get_nullable (_tmp277_);
2197
 
                                                        _tmp279_ = vala_symbol_get_name ((ValaSymbol*) param);
2198
 
                                                        _tmp280_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp279_);
2199
 
                                                        _tmp281_ = _tmp280_;
2200
 
                                                        vala_ccode_method_module_create_method_type_check_statement (self, m, creturn_type, t, !_tmp278_, _tmp281_);
2201
 
                                                        _g_free0 (_tmp281_);
 
2168
                                                if (_tmp269_) {
 
2169
                                                        ValaDataType* _tmp271_ = NULL;
 
2170
                                                        gboolean _tmp272_;
 
2171
                                                        const gchar* _tmp273_ = NULL;
 
2172
                                                        gchar* _tmp274_ = NULL;
 
2173
                                                        gchar* _tmp275_;
 
2174
                                                        _tmp271_ = vala_variable_get_variable_type ((ValaVariable*) param);
 
2175
                                                        _tmp272_ = vala_data_type_get_nullable (_tmp271_);
 
2176
                                                        _tmp273_ = vala_symbol_get_name ((ValaSymbol*) param);
 
2177
                                                        _tmp274_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp273_);
 
2178
                                                        _tmp275_ = _tmp274_;
 
2179
                                                        vala_ccode_method_module_create_method_type_check_statement (self, m, creturn_type, t, !_tmp272_, _tmp275_);
 
2180
                                                        _g_free0 (_tmp275_);
2202
2181
                                                }
2203
2182
                                                _vala_code_node_unref0 (t);
2204
2183
                                        } else {
2205
 
                                                gboolean _tmp282_;
2206
 
                                                _tmp282_ = vala_method_get_coroutine (m);
2207
 
                                                if (!_tmp282_) {
2208
 
                                                        const gchar* _tmp283_ = NULL;
2209
 
                                                        gchar* _tmp284_;
2210
 
                                                        gchar* _tmp285_ = NULL;
2211
 
                                                        gchar* _tmp286_;
 
2184
                                                gboolean _tmp276_;
 
2185
                                                _tmp276_ = vala_method_get_coroutine (m);
 
2186
                                                if (!_tmp276_) {
 
2187
                                                        const gchar* _tmp277_ = NULL;
 
2188
                                                        gchar* _tmp278_;
 
2189
                                                        gchar* _tmp279_ = NULL;
 
2190
                                                        gchar* _tmp280_;
 
2191
                                                        ValaDataType* _tmp281_ = NULL;
 
2192
                                                        ValaCCodeExpression* _tmp282_ = NULL;
 
2193
                                                        ValaCCodeExpression* _tmp283_;
 
2194
                                                        ValaCCodeVariableDeclarator* _tmp284_ = NULL;
 
2195
                                                        ValaCCodeVariableDeclarator* _tmp285_;
 
2196
                                                        ValaCCodeVariableDeclarator* vardecl;
 
2197
                                                        ValaCCodeFunction* _tmp286_ = NULL;
2212
2198
                                                        ValaDataType* _tmp287_ = NULL;
2213
 
                                                        ValaCCodeExpression* _tmp288_ = NULL;
2214
 
                                                        ValaCCodeExpression* _tmp289_;
2215
 
                                                        ValaCCodeVariableDeclarator* _tmp290_ = NULL;
2216
 
                                                        ValaCCodeVariableDeclarator* _tmp291_;
2217
 
                                                        ValaCCodeVariableDeclarator* vardecl;
2218
 
                                                        ValaCCodeFunction* _tmp292_ = NULL;
2219
 
                                                        ValaDataType* _tmp293_ = NULL;
2220
 
                                                        gchar* _tmp294_ = NULL;
2221
 
                                                        gchar* _tmp295_;
2222
 
                                                        ValaDataType* _tmp296_ = NULL;
2223
 
                                                        _tmp283_ = vala_symbol_get_name ((ValaSymbol*) param);
2224
 
                                                        _tmp284_ = g_strconcat ("_", _tmp283_, NULL);
2225
 
                                                        _tmp285_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp284_);
2226
 
                                                        _tmp286_ = _tmp285_;
 
2199
                                                        gchar* _tmp288_ = NULL;
 
2200
                                                        gchar* _tmp289_;
 
2201
                                                        ValaDataType* _tmp290_ = NULL;
 
2202
                                                        _tmp277_ = vala_symbol_get_name ((ValaSymbol*) param);
 
2203
                                                        _tmp278_ = g_strconcat ("_", _tmp277_, NULL);
 
2204
                                                        _tmp279_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp278_);
 
2205
                                                        _tmp280_ = _tmp279_;
 
2206
                                                        _tmp281_ = vala_variable_get_variable_type ((ValaVariable*) param);
 
2207
                                                        _tmp282_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp281_, TRUE);
 
2208
                                                        _tmp283_ = _tmp282_;
 
2209
                                                        _tmp284_ = vala_ccode_variable_declarator_new_zero (_tmp280_, _tmp283_, NULL);
 
2210
                                                        vardecl = (_tmp285_ = _tmp284_, _vala_ccode_node_unref0 (_tmp283_), _g_free0 (_tmp280_), _g_free0 (_tmp278_), _tmp285_);
 
2211
                                                        _tmp286_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2227
2212
                                                        _tmp287_ = vala_variable_get_variable_type ((ValaVariable*) param);
2228
 
                                                        _tmp288_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp287_, TRUE);
 
2213
                                                        _tmp288_ = vala_data_type_get_cname (_tmp287_);
2229
2214
                                                        _tmp289_ = _tmp288_;
2230
 
                                                        _tmp290_ = vala_ccode_variable_declarator_new_zero (_tmp286_, _tmp289_, NULL);
2231
 
                                                        vardecl = (_tmp291_ = _tmp290_, _vala_ccode_node_unref0 (_tmp289_), _g_free0 (_tmp286_), _g_free0 (_tmp284_), _tmp291_);
2232
 
                                                        _tmp292_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2233
 
                                                        _tmp293_ = vala_variable_get_variable_type ((ValaVariable*) param);
2234
 
                                                        _tmp294_ = vala_data_type_get_cname (_tmp293_);
2235
 
                                                        _tmp295_ = _tmp294_;
2236
 
                                                        vala_ccode_function_add_declaration (_tmp292_, _tmp295_, (ValaCCodeDeclarator*) vardecl, 0);
2237
 
                                                        _g_free0 (_tmp295_);
2238
 
                                                        _tmp296_ = vala_variable_get_variable_type ((ValaVariable*) param);
2239
 
                                                        if (VALA_IS_ARRAY_TYPE (_tmp296_)) {
2240
 
                                                                ValaDataType* _tmp297_ = NULL;
2241
 
                                                                ValaArrayType* _tmp298_;
 
2215
                                                        vala_ccode_function_add_declaration (_tmp286_, _tmp289_, (ValaCCodeDeclarator*) vardecl, 0);
 
2216
                                                        _g_free0 (_tmp289_);
 
2217
                                                        _tmp290_ = vala_variable_get_variable_type ((ValaVariable*) param);
 
2218
                                                        if (VALA_IS_ARRAY_TYPE (_tmp290_)) {
 
2219
                                                                ValaDataType* _tmp291_ = NULL;
 
2220
                                                                ValaArrayType* _tmp292_;
2242
2221
                                                                ValaArrayType* array_type;
2243
 
                                                                gboolean _tmp299_;
2244
 
                                                                _tmp297_ = vala_variable_get_variable_type ((ValaVariable*) param);
2245
 
                                                                _tmp298_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp297_));
2246
 
                                                                array_type = _tmp298_;
2247
 
                                                                _tmp299_ = vala_array_type_get_fixed_length (array_type);
2248
 
                                                                if (!_tmp299_) {
 
2222
                                                                gboolean _tmp293_;
 
2223
                                                                _tmp291_ = vala_variable_get_variable_type ((ValaVariable*) param);
 
2224
                                                                _tmp292_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp291_));
 
2225
                                                                array_type = _tmp292_;
 
2226
                                                                _tmp293_ = vala_array_type_get_fixed_length (array_type);
 
2227
                                                                if (!_tmp293_) {
2249
2228
                                                                        {
2250
2229
                                                                                gint dim;
2251
2230
                                                                                dim = 1;
2252
2231
                                                                                {
2253
 
                                                                                        gboolean _tmp300_;
2254
 
                                                                                        _tmp300_ = TRUE;
 
2232
                                                                                        gboolean _tmp294_;
 
2233
                                                                                        _tmp294_ = TRUE;
2255
2234
                                                                                        while (TRUE) {
2256
 
                                                                                                gint _tmp301_;
2257
 
                                                                                                const gchar* _tmp302_ = NULL;
2258
 
                                                                                                gchar* _tmp303_;
2259
 
                                                                                                gchar* _tmp304_ = NULL;
2260
 
                                                                                                gchar* _tmp305_;
2261
 
                                                                                                gchar* _tmp306_ = NULL;
2262
 
                                                                                                gchar* _tmp307_;
2263
 
                                                                                                ValaCCodeConstant* _tmp308_ = NULL;
2264
 
                                                                                                ValaCCodeConstant* _tmp309_;
2265
 
                                                                                                ValaCCodeVariableDeclarator* _tmp310_ = NULL;
2266
 
                                                                                                ValaCCodeVariableDeclarator* _tmp311_;
2267
 
                                                                                                ValaCCodeFunction* _tmp312_ = NULL;
2268
 
                                                                                                if (!_tmp300_) {
 
2235
                                                                                                gint _tmp295_;
 
2236
                                                                                                const gchar* _tmp296_ = NULL;
 
2237
                                                                                                gchar* _tmp297_;
 
2238
                                                                                                gchar* _tmp298_ = NULL;
 
2239
                                                                                                gchar* _tmp299_;
 
2240
                                                                                                gchar* _tmp300_ = NULL;
 
2241
                                                                                                gchar* _tmp301_;
 
2242
                                                                                                ValaCCodeConstant* _tmp302_ = NULL;
 
2243
                                                                                                ValaCCodeConstant* _tmp303_;
 
2244
                                                                                                ValaCCodeVariableDeclarator* _tmp304_ = NULL;
 
2245
                                                                                                ValaCCodeVariableDeclarator* _tmp305_;
 
2246
                                                                                                ValaCCodeFunction* _tmp306_ = NULL;
 
2247
                                                                                                if (!_tmp294_) {
2269
2248
                                                                                                        dim++;
2270
2249
                                                                                                }
2271
 
                                                                                                _tmp300_ = FALSE;
2272
 
                                                                                                _tmp301_ = vala_array_type_get_rank (array_type);
2273
 
                                                                                                if (!(dim <= _tmp301_)) {
 
2250
                                                                                                _tmp294_ = FALSE;
 
2251
                                                                                                _tmp295_ = vala_array_type_get_rank (array_type);
 
2252
                                                                                                if (!(dim <= _tmp295_)) {
2274
2253
                                                                                                        break;
2275
2254
                                                                                                }
2276
 
                                                                                                _tmp302_ = vala_symbol_get_name ((ValaSymbol*) param);
2277
 
                                                                                                _tmp303_ = g_strconcat ("_", _tmp302_, NULL);
2278
 
                                                                                                _tmp304_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp303_);
 
2255
                                                                                                _tmp296_ = vala_symbol_get_name ((ValaSymbol*) param);
 
2256
                                                                                                _tmp297_ = g_strconcat ("_", _tmp296_, NULL);
 
2257
                                                                                                _tmp298_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp297_);
 
2258
                                                                                                _tmp299_ = _tmp298_;
 
2259
                                                                                                _tmp300_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, _tmp299_, dim);
 
2260
                                                                                                _tmp301_ = _tmp300_;
 
2261
                                                                                                _tmp302_ = vala_ccode_constant_new ("0");
 
2262
                                                                                                _tmp303_ = _tmp302_;
 
2263
                                                                                                _tmp304_ = vala_ccode_variable_declarator_new_zero (_tmp301_, (ValaCCodeExpression*) _tmp303_, NULL);
2279
2264
                                                                                                _tmp305_ = _tmp304_;
2280
 
                                                                                                _tmp306_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, _tmp305_, dim);
2281
 
                                                                                                _tmp307_ = _tmp306_;
2282
 
                                                                                                _tmp308_ = vala_ccode_constant_new ("0");
2283
 
                                                                                                _tmp309_ = _tmp308_;
2284
 
                                                                                                _tmp310_ = vala_ccode_variable_declarator_new_zero (_tmp307_, (ValaCCodeExpression*) _tmp309_, NULL);
2285
 
                                                                                                _tmp311_ = _tmp310_;
2286
2265
                                                                                                _vala_ccode_node_unref0 (vardecl);
2287
 
                                                                                                vardecl = _tmp311_;
2288
 
                                                                                                _vala_ccode_node_unref0 (_tmp309_);
2289
 
                                                                                                _g_free0 (_tmp307_);
2290
 
                                                                                                _g_free0 (_tmp305_);
2291
 
                                                                                                _g_free0 (_tmp303_);
2292
 
                                                                                                _tmp312_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2293
 
                                                                                                vala_ccode_function_add_declaration (_tmp312_, "int", (ValaCCodeDeclarator*) vardecl, 0);
 
2266
                                                                                                vardecl = _tmp305_;
 
2267
                                                                                                _vala_ccode_node_unref0 (_tmp303_);
 
2268
                                                                                                _g_free0 (_tmp301_);
 
2269
                                                                                                _g_free0 (_tmp299_);
 
2270
                                                                                                _g_free0 (_tmp297_);
 
2271
                                                                                                _tmp306_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2272
                                                                                                vala_ccode_function_add_declaration (_tmp306_, "int", (ValaCCodeDeclarator*) vardecl, 0);
2294
2273
                                                                                        }
2295
2274
                                                                                }
2296
2275
                                                                        }
2297
2276
                                                                }
2298
2277
                                                                _vala_code_node_unref0 (array_type);
2299
2278
                                                        } else {
2300
 
                                                                ValaDataType* _tmp313_ = NULL;
2301
 
                                                                _tmp313_ = vala_variable_get_variable_type ((ValaVariable*) param);
2302
 
                                                                if (VALA_IS_DELEGATE_TYPE (_tmp313_)) {
2303
 
                                                                        ValaDataType* _tmp314_ = NULL;
2304
 
                                                                        ValaDelegateType* _tmp315_;
 
2279
                                                                ValaDataType* _tmp307_ = NULL;
 
2280
                                                                _tmp307_ = vala_variable_get_variable_type ((ValaVariable*) param);
 
2281
                                                                if (VALA_IS_DELEGATE_TYPE (_tmp307_)) {
 
2282
                                                                        ValaDataType* _tmp308_ = NULL;
 
2283
                                                                        ValaDelegateType* _tmp309_;
2305
2284
                                                                        ValaDelegateType* deleg_type;
2306
 
                                                                        ValaDelegate* _tmp316_ = NULL;
2307
 
                                                                        ValaDelegate* _tmp317_;
 
2285
                                                                        ValaDelegate* _tmp310_ = NULL;
 
2286
                                                                        ValaDelegate* _tmp311_;
2308
2287
                                                                        ValaDelegate* d;
2309
 
                                                                        gboolean _tmp318_;
2310
 
                                                                        _tmp314_ = vala_variable_get_variable_type ((ValaVariable*) param);
2311
 
                                                                        _tmp315_ = _vala_code_node_ref0 (VALA_DELEGATE_TYPE (_tmp314_));
2312
 
                                                                        deleg_type = _tmp315_;
2313
 
                                                                        _tmp316_ = vala_delegate_type_get_delegate_symbol (deleg_type);
2314
 
                                                                        _tmp317_ = _vala_code_node_ref0 (_tmp316_);
2315
 
                                                                        d = _tmp317_;
2316
 
                                                                        _tmp318_ = vala_delegate_get_has_target (d);
2317
 
                                                                        if (_tmp318_) {
2318
 
                                                                                const gchar* _tmp319_ = NULL;
2319
 
                                                                                gchar* _tmp320_;
2320
 
                                                                                gchar* _tmp321_ = NULL;
2321
 
                                                                                gchar* _tmp322_;
2322
 
                                                                                gchar* _tmp323_ = NULL;
2323
 
                                                                                gchar* _tmp324_;
2324
 
                                                                                ValaCCodeConstant* _tmp325_ = NULL;
2325
 
                                                                                ValaCCodeConstant* _tmp326_;
2326
 
                                                                                ValaCCodeVariableDeclarator* _tmp327_ = NULL;
2327
 
                                                                                ValaCCodeVariableDeclarator* _tmp328_;
2328
 
                                                                                ValaCCodeFunction* _tmp329_ = NULL;
2329
 
                                                                                gboolean _tmp330_;
2330
 
                                                                                _tmp319_ = vala_symbol_get_name ((ValaSymbol*) param);
2331
 
                                                                                _tmp320_ = g_strconcat ("_", _tmp319_, NULL);
2332
 
                                                                                _tmp321_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp320_);
 
2288
                                                                        gboolean _tmp312_;
 
2289
                                                                        _tmp308_ = vala_variable_get_variable_type ((ValaVariable*) param);
 
2290
                                                                        _tmp309_ = _vala_code_node_ref0 (VALA_DELEGATE_TYPE (_tmp308_));
 
2291
                                                                        deleg_type = _tmp309_;
 
2292
                                                                        _tmp310_ = vala_delegate_type_get_delegate_symbol (deleg_type);
 
2293
                                                                        _tmp311_ = _vala_code_node_ref0 (_tmp310_);
 
2294
                                                                        d = _tmp311_;
 
2295
                                                                        _tmp312_ = vala_delegate_get_has_target (d);
 
2296
                                                                        if (_tmp312_) {
 
2297
                                                                                const gchar* _tmp313_ = NULL;
 
2298
                                                                                gchar* _tmp314_;
 
2299
                                                                                gchar* _tmp315_ = NULL;
 
2300
                                                                                gchar* _tmp316_;
 
2301
                                                                                gchar* _tmp317_ = NULL;
 
2302
                                                                                gchar* _tmp318_;
 
2303
                                                                                ValaCCodeConstant* _tmp319_ = NULL;
 
2304
                                                                                ValaCCodeConstant* _tmp320_;
 
2305
                                                                                ValaCCodeVariableDeclarator* _tmp321_ = NULL;
 
2306
                                                                                ValaCCodeVariableDeclarator* _tmp322_;
 
2307
                                                                                ValaCCodeFunction* _tmp323_ = NULL;
 
2308
                                                                                gboolean _tmp324_;
 
2309
                                                                                _tmp313_ = vala_symbol_get_name ((ValaSymbol*) param);
 
2310
                                                                                _tmp314_ = g_strconcat ("_", _tmp313_, NULL);
 
2311
                                                                                _tmp315_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp314_);
 
2312
                                                                                _tmp316_ = _tmp315_;
 
2313
                                                                                _tmp317_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, _tmp316_);
 
2314
                                                                                _tmp318_ = _tmp317_;
 
2315
                                                                                _tmp319_ = vala_ccode_constant_new ("NULL");
 
2316
                                                                                _tmp320_ = _tmp319_;
 
2317
                                                                                _tmp321_ = vala_ccode_variable_declarator_new_zero (_tmp318_, (ValaCCodeExpression*) _tmp320_, NULL);
2333
2318
                                                                                _tmp322_ = _tmp321_;
2334
 
                                                                                _tmp323_ = vala_ccode_base_module_get_delegate_target_cname ((ValaCCodeBaseModule*) self, _tmp322_);
2335
 
                                                                                _tmp324_ = _tmp323_;
2336
 
                                                                                _tmp325_ = vala_ccode_constant_new ("NULL");
2337
 
                                                                                _tmp326_ = _tmp325_;
2338
 
                                                                                _tmp327_ = vala_ccode_variable_declarator_new_zero (_tmp324_, (ValaCCodeExpression*) _tmp326_, NULL);
2339
 
                                                                                _tmp328_ = _tmp327_;
2340
2319
                                                                                _vala_ccode_node_unref0 (vardecl);
2341
 
                                                                                vardecl = _tmp328_;
2342
 
                                                                                _vala_ccode_node_unref0 (_tmp326_);
2343
 
                                                                                _g_free0 (_tmp324_);
2344
 
                                                                                _g_free0 (_tmp322_);
2345
 
                                                                                _g_free0 (_tmp320_);
2346
 
                                                                                _tmp329_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2347
 
                                                                                vala_ccode_function_add_declaration (_tmp329_, "void *", (ValaCCodeDeclarator*) vardecl, 0);
2348
 
                                                                                _tmp330_ = vala_data_type_get_value_owned ((ValaDataType*) deleg_type);
2349
 
                                                                                if (_tmp330_) {
2350
 
                                                                                        const gchar* _tmp331_ = NULL;
2351
 
                                                                                        gchar* _tmp332_;
2352
 
                                                                                        gchar* _tmp333_ = NULL;
2353
 
                                                                                        gchar* _tmp334_;
2354
 
                                                                                        gchar* _tmp335_ = NULL;
2355
 
                                                                                        gchar* _tmp336_;
2356
 
                                                                                        ValaCCodeConstant* _tmp337_ = NULL;
2357
 
                                                                                        ValaCCodeConstant* _tmp338_;
2358
 
                                                                                        ValaCCodeVariableDeclarator* _tmp339_ = NULL;
2359
 
                                                                                        ValaCCodeVariableDeclarator* _tmp340_;
2360
 
                                                                                        ValaCCodeFunction* _tmp341_ = NULL;
2361
 
                                                                                        _tmp331_ = vala_symbol_get_name ((ValaSymbol*) param);
2362
 
                                                                                        _tmp332_ = g_strconcat ("_", _tmp331_, NULL);
2363
 
                                                                                        _tmp333_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp332_);
 
2320
                                                                                vardecl = _tmp322_;
 
2321
                                                                                _vala_ccode_node_unref0 (_tmp320_);
 
2322
                                                                                _g_free0 (_tmp318_);
 
2323
                                                                                _g_free0 (_tmp316_);
 
2324
                                                                                _g_free0 (_tmp314_);
 
2325
                                                                                _tmp323_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2326
                                                                                vala_ccode_function_add_declaration (_tmp323_, "void *", (ValaCCodeDeclarator*) vardecl, 0);
 
2327
                                                                                _tmp324_ = vala_data_type_get_value_owned ((ValaDataType*) deleg_type);
 
2328
                                                                                if (_tmp324_) {
 
2329
                                                                                        const gchar* _tmp325_ = NULL;
 
2330
                                                                                        gchar* _tmp326_;
 
2331
                                                                                        gchar* _tmp327_ = NULL;
 
2332
                                                                                        gchar* _tmp328_;
 
2333
                                                                                        gchar* _tmp329_ = NULL;
 
2334
                                                                                        gchar* _tmp330_;
 
2335
                                                                                        ValaCCodeConstant* _tmp331_ = NULL;
 
2336
                                                                                        ValaCCodeConstant* _tmp332_;
 
2337
                                                                                        ValaCCodeVariableDeclarator* _tmp333_ = NULL;
 
2338
                                                                                        ValaCCodeVariableDeclarator* _tmp334_;
 
2339
                                                                                        ValaCCodeFunction* _tmp335_ = NULL;
 
2340
                                                                                        _tmp325_ = vala_symbol_get_name ((ValaSymbol*) param);
 
2341
                                                                                        _tmp326_ = g_strconcat ("_", _tmp325_, NULL);
 
2342
                                                                                        _tmp327_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp326_);
 
2343
                                                                                        _tmp328_ = _tmp327_;
 
2344
                                                                                        _tmp329_ = vala_ccode_base_module_get_delegate_target_destroy_notify_cname ((ValaCCodeBaseModule*) self, _tmp328_);
 
2345
                                                                                        _tmp330_ = _tmp329_;
 
2346
                                                                                        _tmp331_ = vala_ccode_constant_new ("NULL");
 
2347
                                                                                        _tmp332_ = _tmp331_;
 
2348
                                                                                        _tmp333_ = vala_ccode_variable_declarator_new_zero (_tmp330_, (ValaCCodeExpression*) _tmp332_, NULL);
2364
2349
                                                                                        _tmp334_ = _tmp333_;
2365
 
                                                                                        _tmp335_ = vala_ccode_base_module_get_delegate_target_destroy_notify_cname ((ValaCCodeBaseModule*) self, _tmp334_);
2366
 
                                                                                        _tmp336_ = _tmp335_;
2367
 
                                                                                        _tmp337_ = vala_ccode_constant_new ("NULL");
2368
 
                                                                                        _tmp338_ = _tmp337_;
2369
 
                                                                                        _tmp339_ = vala_ccode_variable_declarator_new_zero (_tmp336_, (ValaCCodeExpression*) _tmp338_, NULL);
2370
 
                                                                                        _tmp340_ = _tmp339_;
2371
2350
                                                                                        _vala_ccode_node_unref0 (vardecl);
2372
 
                                                                                        vardecl = _tmp340_;
2373
 
                                                                                        _vala_ccode_node_unref0 (_tmp338_);
2374
 
                                                                                        _g_free0 (_tmp336_);
2375
 
                                                                                        _g_free0 (_tmp334_);
2376
 
                                                                                        _g_free0 (_tmp332_);
2377
 
                                                                                        _tmp341_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2378
 
                                                                                        vala_ccode_function_add_declaration (_tmp341_, "GDestroyNotify", (ValaCCodeDeclarator*) vardecl, 0);
 
2351
                                                                                        vardecl = _tmp334_;
 
2352
                                                                                        _vala_ccode_node_unref0 (_tmp332_);
 
2353
                                                                                        _g_free0 (_tmp330_);
 
2354
                                                                                        _g_free0 (_tmp328_);
 
2355
                                                                                        _g_free0 (_tmp326_);
 
2356
                                                                                        _tmp335_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2357
                                                                                        vala_ccode_function_add_declaration (_tmp335_, "GDestroyNotify", (ValaCCodeDeclarator*) vardecl, 0);
2379
2358
                                                                                }
2380
2359
                                                                        }
2381
2360
                                                                        _vala_code_node_unref0 (d);
2389
2368
                                }
2390
2369
                                _vala_iterable_unref0 (_param_list);
2391
2370
                        }
2392
 
                        _tmp344_ = vala_method_get_return_type (m);
2393
 
                        if (!VALA_IS_VOID_TYPE (_tmp344_)) {
2394
 
                                ValaDataType* _tmp345_ = NULL;
2395
 
                                gboolean _tmp346_;
2396
 
                                _tmp345_ = vala_method_get_return_type (m);
2397
 
                                _tmp346_ = vala_data_type_is_real_non_null_struct_type (_tmp345_);
2398
 
                                _tmp343_ = !_tmp346_;
2399
 
                        } else {
2400
 
                                _tmp343_ = FALSE;
2401
 
                        }
2402
 
                        if (_tmp343_) {
2403
 
                                gboolean _tmp347_;
2404
 
                                _tmp347_ = vala_method_get_coroutine (m);
2405
 
                                _tmp342_ = !_tmp347_;
2406
 
                        } else {
2407
 
                                _tmp342_ = FALSE;
2408
 
                        }
2409
 
                        if (_tmp342_) {
 
2371
                        _tmp338_ = vala_method_get_return_type (m);
 
2372
                        if (!VALA_IS_VOID_TYPE (_tmp338_)) {
 
2373
                                ValaDataType* _tmp339_ = NULL;
 
2374
                                gboolean _tmp340_;
 
2375
                                _tmp339_ = vala_method_get_return_type (m);
 
2376
                                _tmp340_ = vala_data_type_is_real_non_null_struct_type (_tmp339_);
 
2377
                                _tmp337_ = !_tmp340_;
 
2378
                        } else {
 
2379
                                _tmp337_ = FALSE;
 
2380
                        }
 
2381
                        if (_tmp337_) {
 
2382
                                gboolean _tmp341_;
 
2383
                                _tmp341_ = vala_method_get_coroutine (m);
 
2384
                                _tmp336_ = !_tmp341_;
 
2385
                        } else {
 
2386
                                _tmp336_ = FALSE;
 
2387
                        }
 
2388
                        if (_tmp336_) {
 
2389
                                ValaDataType* _tmp342_ = NULL;
 
2390
                                ValaCCodeExpression* _tmp343_ = NULL;
 
2391
                                ValaCCodeExpression* _tmp344_;
 
2392
                                ValaCCodeVariableDeclarator* _tmp345_ = NULL;
 
2393
                                ValaCCodeVariableDeclarator* _tmp346_;
 
2394
                                ValaCCodeVariableDeclarator* vardecl;
 
2395
                                ValaCCodeFunction* _tmp347_ = NULL;
2410
2396
                                ValaDataType* _tmp348_ = NULL;
2411
 
                                ValaCCodeExpression* _tmp349_ = NULL;
2412
 
                                ValaCCodeExpression* _tmp350_;
2413
 
                                ValaCCodeVariableDeclarator* _tmp351_ = NULL;
2414
 
                                ValaCCodeVariableDeclarator* _tmp352_;
2415
 
                                ValaCCodeVariableDeclarator* vardecl;
2416
 
                                ValaCCodeFunction* _tmp353_ = NULL;
2417
 
                                ValaDataType* _tmp354_ = NULL;
2418
 
                                gchar* _tmp355_ = NULL;
2419
 
                                gchar* _tmp356_;
 
2397
                                gchar* _tmp349_ = NULL;
 
2398
                                gchar* _tmp350_;
 
2399
                                _tmp342_ = vala_method_get_return_type (m);
 
2400
                                _tmp343_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp342_, TRUE);
 
2401
                                _tmp344_ = _tmp343_;
 
2402
                                _tmp345_ = vala_ccode_variable_declarator_new ("result", _tmp344_, NULL);
 
2403
                                vardecl = (_tmp346_ = _tmp345_, _vala_ccode_node_unref0 (_tmp344_), _tmp346_);
 
2404
                                vala_ccode_variable_declarator_set_init0 (vardecl, TRUE);
 
2405
                                _tmp347_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2420
2406
                                _tmp348_ = vala_method_get_return_type (m);
2421
 
                                _tmp349_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp348_, TRUE);
 
2407
                                _tmp349_ = vala_data_type_get_cname (_tmp348_);
2422
2408
                                _tmp350_ = _tmp349_;
2423
 
                                _tmp351_ = vala_ccode_variable_declarator_new ("result", _tmp350_, NULL);
2424
 
                                vardecl = (_tmp352_ = _tmp351_, _vala_ccode_node_unref0 (_tmp350_), _tmp352_);
2425
 
                                vala_ccode_variable_declarator_set_init0 (vardecl, TRUE);
2426
 
                                _tmp353_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2427
 
                                _tmp354_ = vala_method_get_return_type (m);
2428
 
                                _tmp355_ = vala_data_type_get_cname (_tmp354_);
2429
 
                                _tmp356_ = _tmp355_;
2430
 
                                vala_ccode_function_add_declaration (_tmp353_, _tmp356_, (ValaCCodeDeclarator*) vardecl, 0);
2431
 
                                _g_free0 (_tmp356_);
 
2409
                                vala_ccode_function_add_declaration (_tmp347_, _tmp350_, (ValaCCodeDeclarator*) vardecl, 0);
 
2410
                                _g_free0 (_tmp350_);
2432
2411
                                _vala_ccode_node_unref0 (vardecl);
2433
2412
                        }
2434
2413
                        if (VALA_IS_CREATION_METHOD (m)) {
2435
2414
                                if (in_gobject_creation_method) {
2436
 
                                        ValaCCodeFunction* _tmp357_ = NULL;
2437
 
                                        ValaTypeSymbol* _tmp358_ = NULL;
2438
 
                                        gchar* _tmp359_ = NULL;
2439
 
                                        gchar* _tmp360_;
2440
 
                                        gchar* _tmp361_ = NULL;
2441
 
                                        gchar* _tmp362_;
2442
 
                                        ValaCCodeConstant* _tmp363_ = NULL;
2443
 
                                        ValaCCodeConstant* _tmp364_;
2444
 
                                        ValaCCodeVariableDeclarator* _tmp365_ = NULL;
2445
 
                                        ValaCCodeVariableDeclarator* _tmp366_;
2446
 
                                        _tmp357_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2447
 
                                        _tmp358_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
2448
 
                                        _tmp359_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) VALA_CLASS (_tmp358_), FALSE);
 
2415
                                        ValaCCodeFunction* _tmp351_ = NULL;
 
2416
                                        ValaTypeSymbol* _tmp352_ = NULL;
 
2417
                                        gchar* _tmp353_ = NULL;
 
2418
                                        gchar* _tmp354_;
 
2419
                                        gchar* _tmp355_ = NULL;
 
2420
                                        gchar* _tmp356_;
 
2421
                                        ValaCCodeConstant* _tmp357_ = NULL;
 
2422
                                        ValaCCodeConstant* _tmp358_;
 
2423
                                        ValaCCodeVariableDeclarator* _tmp359_ = NULL;
 
2424
                                        ValaCCodeVariableDeclarator* _tmp360_;
 
2425
                                        _tmp351_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2426
                                        _tmp352_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
 
2427
                                        _tmp353_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) VALA_CLASS (_tmp352_), FALSE);
 
2428
                                        _tmp354_ = _tmp353_;
 
2429
                                        _tmp355_ = g_strdup_printf ("%s *", _tmp354_);
 
2430
                                        _tmp356_ = _tmp355_;
 
2431
                                        _tmp357_ = vala_ccode_constant_new ("NULL");
 
2432
                                        _tmp358_ = _tmp357_;
 
2433
                                        _tmp359_ = vala_ccode_variable_declarator_new_zero ("self", (ValaCCodeExpression*) _tmp358_, NULL);
2449
2434
                                        _tmp360_ = _tmp359_;
2450
 
                                        _tmp361_ = g_strdup_printf ("%s *", _tmp360_);
2451
 
                                        _tmp362_ = _tmp361_;
2452
 
                                        _tmp363_ = vala_ccode_constant_new ("NULL");
2453
 
                                        _tmp364_ = _tmp363_;
2454
 
                                        _tmp365_ = vala_ccode_variable_declarator_new_zero ("self", (ValaCCodeExpression*) _tmp364_, NULL);
2455
 
                                        _tmp366_ = _tmp365_;
2456
 
                                        vala_ccode_function_add_declaration (_tmp357_, _tmp362_, (ValaCCodeDeclarator*) _tmp366_, 0);
2457
 
                                        _vala_ccode_node_unref0 (_tmp366_);
2458
 
                                        _vala_ccode_node_unref0 (_tmp364_);
2459
 
                                        _g_free0 (_tmp362_);
2460
 
                                        _g_free0 (_tmp360_);
 
2435
                                        vala_ccode_function_add_declaration (_tmp351_, _tmp356_, (ValaCCodeDeclarator*) _tmp360_, 0);
 
2436
                                        _vala_ccode_node_unref0 (_tmp360_);
 
2437
                                        _vala_ccode_node_unref0 (_tmp358_);
 
2438
                                        _g_free0 (_tmp356_);
 
2439
                                        _g_free0 (_tmp354_);
2461
2440
                                } else {
2462
 
                                        gboolean _tmp367_;
2463
 
                                        _tmp367_ = vala_ccode_method_module_is_gtypeinstance_creation_method (self, m);
2464
 
                                        if (_tmp367_) {
2465
 
                                                ValaSymbol* _tmp368_ = NULL;
2466
 
                                                ValaClass* _tmp369_;
 
2441
                                        gboolean _tmp361_;
 
2442
                                        _tmp361_ = vala_ccode_method_module_is_gtypeinstance_creation_method (self, m);
 
2443
                                        if (_tmp361_) {
 
2444
                                                ValaSymbol* _tmp362_ = NULL;
 
2445
                                                ValaClass* _tmp363_;
2467
2446
                                                ValaClass* cl;
2468
 
                                                ValaCCodeFunction* _tmp370_ = NULL;
2469
 
                                                gchar* _tmp371_ = NULL;
2470
 
                                                gchar* _tmp372_;
2471
 
                                                gchar* _tmp373_;
2472
 
                                                ValaCCodeConstant* _tmp374_ = NULL;
2473
 
                                                ValaCCodeConstant* _tmp375_;
2474
 
                                                ValaCCodeVariableDeclarator* _tmp376_ = NULL;
2475
 
                                                ValaCCodeVariableDeclarator* _tmp377_;
2476
 
                                                gboolean _tmp378_;
2477
 
                                                _tmp368_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
2478
 
                                                _tmp369_ = _vala_code_node_ref0 (VALA_CLASS (_tmp368_));
2479
 
                                                cl = _tmp369_;
2480
 
                                                _tmp370_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2481
 
                                                _tmp371_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
2482
 
                                                _tmp372_ = _tmp371_;
2483
 
                                                _tmp373_ = g_strconcat (_tmp372_, "*", NULL);
2484
 
                                                _tmp374_ = vala_ccode_constant_new ("NULL");
2485
 
                                                _tmp375_ = _tmp374_;
2486
 
                                                _tmp376_ = vala_ccode_variable_declarator_new_zero ("self", (ValaCCodeExpression*) _tmp375_, NULL);
2487
 
                                                _tmp377_ = _tmp376_;
2488
 
                                                vala_ccode_function_add_declaration (_tmp370_, _tmp373_, (ValaCCodeDeclarator*) _tmp377_, 0);
2489
 
                                                _vala_ccode_node_unref0 (_tmp377_);
2490
 
                                                _vala_ccode_node_unref0 (_tmp375_);
2491
 
                                                _g_free0 (_tmp373_);
2492
 
                                                _g_free0 (_tmp372_);
2493
 
                                                _tmp378_ = vala_class_is_fundamental (cl);
2494
 
                                                if (_tmp378_) {
2495
 
                                                        ValaCCodeIdentifier* _tmp379_ = NULL;
2496
 
                                                        ValaCCodeIdentifier* _tmp380_;
2497
 
                                                        ValaCCodeFunctionCall* _tmp381_ = NULL;
2498
 
                                                        ValaCCodeFunctionCall* _tmp382_;
 
2447
                                                ValaCCodeFunction* _tmp364_ = NULL;
 
2448
                                                gchar* _tmp365_ = NULL;
 
2449
                                                gchar* _tmp366_;
 
2450
                                                gchar* _tmp367_;
 
2451
                                                ValaCCodeConstant* _tmp368_ = NULL;
 
2452
                                                ValaCCodeConstant* _tmp369_;
 
2453
                                                ValaCCodeVariableDeclarator* _tmp370_ = NULL;
 
2454
                                                ValaCCodeVariableDeclarator* _tmp371_;
 
2455
                                                gboolean _tmp372_;
 
2456
                                                _tmp362_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
 
2457
                                                _tmp363_ = _vala_code_node_ref0 (VALA_CLASS (_tmp362_));
 
2458
                                                cl = _tmp363_;
 
2459
                                                _tmp364_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2460
                                                _tmp365_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
 
2461
                                                _tmp366_ = _tmp365_;
 
2462
                                                _tmp367_ = g_strconcat (_tmp366_, "*", NULL);
 
2463
                                                _tmp368_ = vala_ccode_constant_new ("NULL");
 
2464
                                                _tmp369_ = _tmp368_;
 
2465
                                                _tmp370_ = vala_ccode_variable_declarator_new_zero ("self", (ValaCCodeExpression*) _tmp369_, NULL);
 
2466
                                                _tmp371_ = _tmp370_;
 
2467
                                                vala_ccode_function_add_declaration (_tmp364_, _tmp367_, (ValaCCodeDeclarator*) _tmp371_, 0);
 
2468
                                                _vala_ccode_node_unref0 (_tmp371_);
 
2469
                                                _vala_ccode_node_unref0 (_tmp369_);
 
2470
                                                _g_free0 (_tmp367_);
 
2471
                                                _g_free0 (_tmp366_);
 
2472
                                                _tmp372_ = vala_class_is_fundamental (cl);
 
2473
                                                if (_tmp372_) {
 
2474
                                                        ValaCCodeIdentifier* _tmp373_ = NULL;
 
2475
                                                        ValaCCodeIdentifier* _tmp374_;
 
2476
                                                        ValaCCodeFunctionCall* _tmp375_ = NULL;
 
2477
                                                        ValaCCodeFunctionCall* _tmp376_;
2499
2478
                                                        ValaCCodeFunctionCall* ccall;
2500
 
                                                        ValaCCodeIdentifier* _tmp383_ = NULL;
2501
 
                                                        ValaCCodeIdentifier* _tmp384_;
2502
 
                                                        ValaCCodeFunction* _tmp385_ = NULL;
2503
 
                                                        ValaCCodeIdentifier* _tmp386_ = NULL;
2504
 
                                                        ValaCCodeIdentifier* _tmp387_;
2505
 
                                                        gchar* _tmp388_ = NULL;
2506
 
                                                        gchar* _tmp389_;
2507
 
                                                        gchar* _tmp390_;
2508
 
                                                        ValaCCodeCastExpression* _tmp391_ = NULL;
2509
 
                                                        ValaCCodeCastExpression* _tmp392_;
2510
 
                                                        ValaCCodeAssignment* _tmp393_ = NULL;
2511
 
                                                        ValaCCodeAssignment* _tmp394_;
2512
 
                                                        _tmp379_ = vala_ccode_identifier_new ("g_type_create_instance");
2513
 
                                                        _tmp380_ = _tmp379_;
2514
 
                                                        _tmp381_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp380_);
2515
 
                                                        ccall = (_tmp382_ = _tmp381_, _vala_ccode_node_unref0 (_tmp380_), _tmp382_);
2516
 
                                                        _tmp383_ = vala_ccode_identifier_new ("object_type");
2517
 
                                                        _tmp384_ = _tmp383_;
2518
 
                                                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp384_);
2519
 
                                                        _vala_ccode_node_unref0 (_tmp384_);
2520
 
                                                        _tmp385_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2521
 
                                                        _tmp386_ = vala_ccode_identifier_new ("self");
2522
 
                                                        _tmp387_ = _tmp386_;
2523
 
                                                        _tmp388_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
2524
 
                                                        _tmp389_ = _tmp388_;
2525
 
                                                        _tmp390_ = g_strconcat (_tmp389_, "*", NULL);
2526
 
                                                        _tmp391_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) ccall, _tmp390_);
2527
 
                                                        _tmp392_ = _tmp391_;
2528
 
                                                        _tmp393_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp387_, (ValaCCodeExpression*) _tmp392_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
2529
 
                                                        _tmp394_ = _tmp393_;
2530
 
                                                        vala_ccode_function_add_expression (_tmp385_, (ValaCCodeExpression*) _tmp394_);
2531
 
                                                        _vala_ccode_node_unref0 (_tmp394_);
2532
 
                                                        _vala_ccode_node_unref0 (_tmp392_);
2533
 
                                                        _g_free0 (_tmp390_);
2534
 
                                                        _g_free0 (_tmp389_);
2535
 
                                                        _vala_ccode_node_unref0 (_tmp387_);
 
2479
                                                        ValaCCodeIdentifier* _tmp377_ = NULL;
 
2480
                                                        ValaCCodeIdentifier* _tmp378_;
 
2481
                                                        ValaCCodeFunction* _tmp379_ = NULL;
 
2482
                                                        ValaCCodeIdentifier* _tmp380_ = NULL;
 
2483
                                                        ValaCCodeIdentifier* _tmp381_;
 
2484
                                                        gchar* _tmp382_ = NULL;
 
2485
                                                        gchar* _tmp383_;
 
2486
                                                        gchar* _tmp384_;
 
2487
                                                        ValaCCodeCastExpression* _tmp385_ = NULL;
 
2488
                                                        ValaCCodeCastExpression* _tmp386_;
 
2489
                                                        ValaCCodeAssignment* _tmp387_ = NULL;
 
2490
                                                        ValaCCodeAssignment* _tmp388_;
 
2491
                                                        _tmp373_ = vala_ccode_identifier_new ("g_type_create_instance");
 
2492
                                                        _tmp374_ = _tmp373_;
 
2493
                                                        _tmp375_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp374_);
 
2494
                                                        ccall = (_tmp376_ = _tmp375_, _vala_ccode_node_unref0 (_tmp374_), _tmp376_);
 
2495
                                                        _tmp377_ = vala_ccode_identifier_new ("object_type");
 
2496
                                                        _tmp378_ = _tmp377_;
 
2497
                                                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp378_);
 
2498
                                                        _vala_ccode_node_unref0 (_tmp378_);
 
2499
                                                        _tmp379_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2500
                                                        _tmp380_ = vala_ccode_identifier_new ("self");
 
2501
                                                        _tmp381_ = _tmp380_;
 
2502
                                                        _tmp382_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
 
2503
                                                        _tmp383_ = _tmp382_;
 
2504
                                                        _tmp384_ = g_strconcat (_tmp383_, "*", NULL);
 
2505
                                                        _tmp385_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) ccall, _tmp384_);
 
2506
                                                        _tmp386_ = _tmp385_;
 
2507
                                                        _tmp387_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp381_, (ValaCCodeExpression*) _tmp386_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
2508
                                                        _tmp388_ = _tmp387_;
 
2509
                                                        vala_ccode_function_add_expression (_tmp379_, (ValaCCodeExpression*) _tmp388_);
 
2510
                                                        _vala_ccode_node_unref0 (_tmp388_);
 
2511
                                                        _vala_ccode_node_unref0 (_tmp386_);
 
2512
                                                        _g_free0 (_tmp384_);
 
2513
                                                        _g_free0 (_tmp383_);
 
2514
                                                        _vala_ccode_node_unref0 (_tmp381_);
2536
2515
                                                        {
2537
 
                                                                ValaClass* _tmp395_ = NULL;
2538
 
                                                                ValaList* _tmp396_ = NULL;
 
2516
                                                                ValaClass* _tmp389_ = NULL;
 
2517
                                                                ValaList* _tmp390_ = NULL;
2539
2518
                                                                ValaList* _type_param_list;
2540
 
                                                                gint _tmp397_;
 
2519
                                                                gint _tmp391_;
2541
2520
                                                                gint _type_param_size;
2542
2521
                                                                gint _type_param_index;
2543
 
                                                                _tmp395_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
2544
 
                                                                _tmp396_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) _tmp395_);
2545
 
                                                                _type_param_list = _tmp396_;
2546
 
                                                                _tmp397_ = vala_collection_get_size ((ValaCollection*) _type_param_list);
2547
 
                                                                _type_param_size = _tmp397_;
 
2522
                                                                _tmp389_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
 
2523
                                                                _tmp390_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) _tmp389_);
 
2524
                                                                _type_param_list = _tmp390_;
 
2525
                                                                _tmp391_ = vala_collection_get_size ((ValaCollection*) _type_param_list);
 
2526
                                                                _type_param_size = _tmp391_;
2548
2527
                                                                _type_param_index = -1;
2549
2528
                                                                while (TRUE) {
2550
 
                                                                        gpointer _tmp398_ = NULL;
 
2529
                                                                        gpointer _tmp392_ = NULL;
2551
2530
                                                                        ValaTypeParameter* type_param;
2552
2531
                                                                        ValaCCodeIdentifier* param_name;
2553
2532
                                                                        ValaCCodeAssignment* assign;
2554
 
                                                                        ValaCCodeIdentifier* _tmp399_ = NULL;
2555
 
                                                                        ValaCCodeIdentifier* _tmp400_;
2556
 
                                                                        ValaCCodeMemberAccess* _tmp401_ = NULL;
2557
 
                                                                        ValaCCodeMemberAccess* _tmp402_;
 
2533
                                                                        ValaCCodeIdentifier* _tmp393_ = NULL;
 
2534
                                                                        ValaCCodeIdentifier* _tmp394_;
 
2535
                                                                        ValaCCodeMemberAccess* _tmp395_ = NULL;
 
2536
                                                                        ValaCCodeMemberAccess* _tmp396_;
2558
2537
                                                                        ValaCCodeMemberAccess* priv_access;
2559
 
                                                                        const gchar* _tmp403_ = NULL;
2560
 
                                                                        gchar* _tmp404_ = NULL;
2561
 
                                                                        gchar* _tmp405_;
2562
 
                                                                        gchar* _tmp406_ = NULL;
2563
 
                                                                        gchar* _tmp407_;
2564
 
                                                                        ValaCCodeIdentifier* _tmp408_ = NULL;
2565
 
                                                                        ValaCCodeIdentifier* _tmp409_;
 
2538
                                                                        const gchar* _tmp397_ = NULL;
 
2539
                                                                        gchar* _tmp398_ = NULL;
 
2540
                                                                        gchar* _tmp399_;
 
2541
                                                                        gchar* _tmp400_ = NULL;
 
2542
                                                                        gchar* _tmp401_;
 
2543
                                                                        ValaCCodeIdentifier* _tmp402_ = NULL;
 
2544
                                                                        ValaCCodeIdentifier* _tmp403_;
 
2545
                                                                        const gchar* _tmp404_ = NULL;
 
2546
                                                                        ValaCCodeMemberAccess* _tmp405_ = NULL;
 
2547
                                                                        ValaCCodeMemberAccess* _tmp406_;
 
2548
                                                                        ValaCCodeAssignment* _tmp407_ = NULL;
 
2549
                                                                        ValaCCodeAssignment* _tmp408_;
 
2550
                                                                        ValaCCodeFunction* _tmp409_ = NULL;
2566
2551
                                                                        const gchar* _tmp410_ = NULL;
2567
 
                                                                        ValaCCodeMemberAccess* _tmp411_ = NULL;
2568
 
                                                                        ValaCCodeMemberAccess* _tmp412_;
2569
 
                                                                        ValaCCodeAssignment* _tmp413_ = NULL;
2570
 
                                                                        ValaCCodeAssignment* _tmp414_;
2571
 
                                                                        ValaCCodeFunction* _tmp415_ = NULL;
2572
 
                                                                        const gchar* _tmp416_ = NULL;
2573
 
                                                                        gchar* _tmp417_ = NULL;
2574
 
                                                                        gchar* _tmp418_;
2575
 
                                                                        gchar* _tmp419_ = NULL;
2576
 
                                                                        gchar* _tmp420_;
2577
 
                                                                        ValaCCodeIdentifier* _tmp421_ = NULL;
2578
 
                                                                        ValaCCodeIdentifier* _tmp422_;
 
2552
                                                                        gchar* _tmp411_ = NULL;
 
2553
                                                                        gchar* _tmp412_;
 
2554
                                                                        gchar* _tmp413_ = NULL;
 
2555
                                                                        gchar* _tmp414_;
 
2556
                                                                        ValaCCodeIdentifier* _tmp415_ = NULL;
 
2557
                                                                        ValaCCodeIdentifier* _tmp416_;
 
2558
                                                                        const gchar* _tmp417_ = NULL;
 
2559
                                                                        ValaCCodeMemberAccess* _tmp418_ = NULL;
 
2560
                                                                        ValaCCodeMemberAccess* _tmp419_;
 
2561
                                                                        ValaCCodeAssignment* _tmp420_ = NULL;
 
2562
                                                                        ValaCCodeAssignment* _tmp421_;
 
2563
                                                                        ValaCCodeFunction* _tmp422_ = NULL;
2579
2564
                                                                        const gchar* _tmp423_ = NULL;
2580
 
                                                                        ValaCCodeMemberAccess* _tmp424_ = NULL;
2581
 
                                                                        ValaCCodeMemberAccess* _tmp425_;
2582
 
                                                                        ValaCCodeAssignment* _tmp426_ = NULL;
2583
 
                                                                        ValaCCodeAssignment* _tmp427_;
2584
 
                                                                        ValaCCodeFunction* _tmp428_ = NULL;
2585
 
                                                                        const gchar* _tmp429_ = NULL;
2586
 
                                                                        gchar* _tmp430_ = NULL;
2587
 
                                                                        gchar* _tmp431_;
2588
 
                                                                        gchar* _tmp432_ = NULL;
2589
 
                                                                        gchar* _tmp433_;
2590
 
                                                                        ValaCCodeIdentifier* _tmp434_ = NULL;
2591
 
                                                                        ValaCCodeIdentifier* _tmp435_;
2592
 
                                                                        const gchar* _tmp436_ = NULL;
2593
 
                                                                        ValaCCodeMemberAccess* _tmp437_ = NULL;
2594
 
                                                                        ValaCCodeMemberAccess* _tmp438_;
2595
 
                                                                        ValaCCodeAssignment* _tmp439_ = NULL;
2596
 
                                                                        ValaCCodeAssignment* _tmp440_;
2597
 
                                                                        ValaCCodeFunction* _tmp441_ = NULL;
 
2565
                                                                        gchar* _tmp424_ = NULL;
 
2566
                                                                        gchar* _tmp425_;
 
2567
                                                                        gchar* _tmp426_ = NULL;
 
2568
                                                                        gchar* _tmp427_;
 
2569
                                                                        ValaCCodeIdentifier* _tmp428_ = NULL;
 
2570
                                                                        ValaCCodeIdentifier* _tmp429_;
 
2571
                                                                        const gchar* _tmp430_ = NULL;
 
2572
                                                                        ValaCCodeMemberAccess* _tmp431_ = NULL;
 
2573
                                                                        ValaCCodeMemberAccess* _tmp432_;
 
2574
                                                                        ValaCCodeAssignment* _tmp433_ = NULL;
 
2575
                                                                        ValaCCodeAssignment* _tmp434_;
 
2576
                                                                        ValaCCodeFunction* _tmp435_ = NULL;
2598
2577
                                                                        _type_param_index = _type_param_index + 1;
2599
2578
                                                                        if (!(_type_param_index < _type_param_size)) {
2600
2579
                                                                                break;
2601
2580
                                                                        }
2602
 
                                                                        _tmp398_ = vala_list_get (_type_param_list, _type_param_index);
2603
 
                                                                        type_param = (ValaTypeParameter*) _tmp398_;
 
2581
                                                                        _tmp392_ = vala_list_get (_type_param_list, _type_param_index);
 
2582
                                                                        type_param = (ValaTypeParameter*) _tmp392_;
2604
2583
                                                                        param_name = NULL;
2605
2584
                                                                        assign = NULL;
2606
 
                                                                        _tmp399_ = vala_ccode_identifier_new ("self");
2607
 
                                                                        _tmp400_ = _tmp399_;
2608
 
                                                                        _tmp401_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp400_, "priv");
2609
 
                                                                        priv_access = (_tmp402_ = _tmp401_, _vala_ccode_node_unref0 (_tmp400_), _tmp402_);
2610
 
                                                                        _tmp403_ = vala_symbol_get_name ((ValaSymbol*) type_param);
2611
 
                                                                        _tmp404_ = g_utf8_strdown (_tmp403_, (gssize) (-1));
2612
 
                                                                        _tmp405_ = _tmp404_;
2613
 
                                                                        _tmp406_ = g_strdup_printf ("%s_type", _tmp405_);
2614
 
                                                                        _tmp407_ = _tmp406_;
2615
 
                                                                        _tmp408_ = vala_ccode_identifier_new (_tmp407_);
2616
 
                                                                        _tmp409_ = _tmp408_;
 
2585
                                                                        _tmp393_ = vala_ccode_identifier_new ("self");
 
2586
                                                                        _tmp394_ = _tmp393_;
 
2587
                                                                        _tmp395_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp394_, "priv");
 
2588
                                                                        priv_access = (_tmp396_ = _tmp395_, _vala_ccode_node_unref0 (_tmp394_), _tmp396_);
 
2589
                                                                        _tmp397_ = vala_symbol_get_name ((ValaSymbol*) type_param);
 
2590
                                                                        _tmp398_ = g_utf8_strdown (_tmp397_, (gssize) (-1));
 
2591
                                                                        _tmp399_ = _tmp398_;
 
2592
                                                                        _tmp400_ = g_strdup_printf ("%s_type", _tmp399_);
 
2593
                                                                        _tmp401_ = _tmp400_;
 
2594
                                                                        _tmp402_ = vala_ccode_identifier_new (_tmp401_);
 
2595
                                                                        _tmp403_ = _tmp402_;
2617
2596
                                                                        _vala_ccode_node_unref0 (param_name);
2618
 
                                                                        param_name = _tmp409_;
2619
 
                                                                        _g_free0 (_tmp407_);
2620
 
                                                                        _g_free0 (_tmp405_);
2621
 
                                                                        _tmp410_ = vala_ccode_identifier_get_name (param_name);
2622
 
                                                                        _tmp411_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) priv_access, _tmp410_);
 
2597
                                                                        param_name = _tmp403_;
 
2598
                                                                        _g_free0 (_tmp401_);
 
2599
                                                                        _g_free0 (_tmp399_);
 
2600
                                                                        _tmp404_ = vala_ccode_identifier_get_name (param_name);
 
2601
                                                                        _tmp405_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) priv_access, _tmp404_);
 
2602
                                                                        _tmp406_ = _tmp405_;
 
2603
                                                                        _tmp407_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp406_, (ValaCCodeExpression*) param_name, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
2604
                                                                        _tmp408_ = _tmp407_;
 
2605
                                                                        _vala_ccode_node_unref0 (assign);
 
2606
                                                                        assign = _tmp408_;
 
2607
                                                                        _vala_ccode_node_unref0 (_tmp406_);
 
2608
                                                                        _tmp409_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2609
                                                                        vala_ccode_function_add_expression (_tmp409_, (ValaCCodeExpression*) assign);
 
2610
                                                                        _tmp410_ = vala_symbol_get_name ((ValaSymbol*) type_param);
 
2611
                                                                        _tmp411_ = g_utf8_strdown (_tmp410_, (gssize) (-1));
2623
2612
                                                                        _tmp412_ = _tmp411_;
2624
 
                                                                        _tmp413_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp412_, (ValaCCodeExpression*) param_name, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
2613
                                                                        _tmp413_ = g_strdup_printf ("%s_dup_func", _tmp412_);
2625
2614
                                                                        _tmp414_ = _tmp413_;
 
2615
                                                                        _tmp415_ = vala_ccode_identifier_new (_tmp414_);
 
2616
                                                                        _tmp416_ = _tmp415_;
 
2617
                                                                        _vala_ccode_node_unref0 (param_name);
 
2618
                                                                        param_name = _tmp416_;
 
2619
                                                                        _g_free0 (_tmp414_);
 
2620
                                                                        _g_free0 (_tmp412_);
 
2621
                                                                        _tmp417_ = vala_ccode_identifier_get_name (param_name);
 
2622
                                                                        _tmp418_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) priv_access, _tmp417_);
 
2623
                                                                        _tmp419_ = _tmp418_;
 
2624
                                                                        _tmp420_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp419_, (ValaCCodeExpression*) param_name, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
2625
                                                                        _tmp421_ = _tmp420_;
2626
2626
                                                                        _vala_ccode_node_unref0 (assign);
2627
 
                                                                        assign = _tmp414_;
2628
 
                                                                        _vala_ccode_node_unref0 (_tmp412_);
2629
 
                                                                        _tmp415_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2630
 
                                                                        vala_ccode_function_add_expression (_tmp415_, (ValaCCodeExpression*) assign);
2631
 
                                                                        _tmp416_ = vala_symbol_get_name ((ValaSymbol*) type_param);
2632
 
                                                                        _tmp417_ = g_utf8_strdown (_tmp416_, (gssize) (-1));
2633
 
                                                                        _tmp418_ = _tmp417_;
2634
 
                                                                        _tmp419_ = g_strdup_printf ("%s_dup_func", _tmp418_);
2635
 
                                                                        _tmp420_ = _tmp419_;
2636
 
                                                                        _tmp421_ = vala_ccode_identifier_new (_tmp420_);
2637
 
                                                                        _tmp422_ = _tmp421_;
2638
 
                                                                        _vala_ccode_node_unref0 (param_name);
2639
 
                                                                        param_name = _tmp422_;
2640
 
                                                                        _g_free0 (_tmp420_);
2641
 
                                                                        _g_free0 (_tmp418_);
2642
 
                                                                        _tmp423_ = vala_ccode_identifier_get_name (param_name);
2643
 
                                                                        _tmp424_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) priv_access, _tmp423_);
 
2627
                                                                        assign = _tmp421_;
 
2628
                                                                        _vala_ccode_node_unref0 (_tmp419_);
 
2629
                                                                        _tmp422_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2630
                                                                        vala_ccode_function_add_expression (_tmp422_, (ValaCCodeExpression*) assign);
 
2631
                                                                        _tmp423_ = vala_symbol_get_name ((ValaSymbol*) type_param);
 
2632
                                                                        _tmp424_ = g_utf8_strdown (_tmp423_, (gssize) (-1));
2644
2633
                                                                        _tmp425_ = _tmp424_;
2645
 
                                                                        _tmp426_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp425_, (ValaCCodeExpression*) param_name, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
2634
                                                                        _tmp426_ = g_strdup_printf ("%s_destroy_func", _tmp425_);
2646
2635
                                                                        _tmp427_ = _tmp426_;
2647
 
                                                                        _vala_ccode_node_unref0 (assign);
2648
 
                                                                        assign = _tmp427_;
2649
 
                                                                        _vala_ccode_node_unref0 (_tmp425_);
2650
 
                                                                        _tmp428_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2651
 
                                                                        vala_ccode_function_add_expression (_tmp428_, (ValaCCodeExpression*) assign);
2652
 
                                                                        _tmp429_ = vala_symbol_get_name ((ValaSymbol*) type_param);
2653
 
                                                                        _tmp430_ = g_utf8_strdown (_tmp429_, (gssize) (-1));
2654
 
                                                                        _tmp431_ = _tmp430_;
2655
 
                                                                        _tmp432_ = g_strdup_printf ("%s_destroy_func", _tmp431_);
2656
 
                                                                        _tmp433_ = _tmp432_;
2657
 
                                                                        _tmp434_ = vala_ccode_identifier_new (_tmp433_);
2658
 
                                                                        _tmp435_ = _tmp434_;
 
2636
                                                                        _tmp428_ = vala_ccode_identifier_new (_tmp427_);
 
2637
                                                                        _tmp429_ = _tmp428_;
2659
2638
                                                                        _vala_ccode_node_unref0 (param_name);
2660
 
                                                                        param_name = _tmp435_;
2661
 
                                                                        _g_free0 (_tmp433_);
2662
 
                                                                        _g_free0 (_tmp431_);
2663
 
                                                                        _tmp436_ = vala_ccode_identifier_get_name (param_name);
2664
 
                                                                        _tmp437_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) priv_access, _tmp436_);
2665
 
                                                                        _tmp438_ = _tmp437_;
2666
 
                                                                        _tmp439_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp438_, (ValaCCodeExpression*) param_name, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
2667
 
                                                                        _tmp440_ = _tmp439_;
 
2639
                                                                        param_name = _tmp429_;
 
2640
                                                                        _g_free0 (_tmp427_);
 
2641
                                                                        _g_free0 (_tmp425_);
 
2642
                                                                        _tmp430_ = vala_ccode_identifier_get_name (param_name);
 
2643
                                                                        _tmp431_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) priv_access, _tmp430_);
 
2644
                                                                        _tmp432_ = _tmp431_;
 
2645
                                                                        _tmp433_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp432_, (ValaCCodeExpression*) param_name, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
2646
                                                                        _tmp434_ = _tmp433_;
2668
2647
                                                                        _vala_ccode_node_unref0 (assign);
2669
 
                                                                        assign = _tmp440_;
2670
 
                                                                        _vala_ccode_node_unref0 (_tmp438_);
2671
 
                                                                        _tmp441_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2672
 
                                                                        vala_ccode_function_add_expression (_tmp441_, (ValaCCodeExpression*) assign);
 
2648
                                                                        assign = _tmp434_;
 
2649
                                                                        _vala_ccode_node_unref0 (_tmp432_);
 
2650
                                                                        _tmp435_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2651
                                                                        vala_ccode_function_add_expression (_tmp435_, (ValaCCodeExpression*) assign);
2673
2652
                                                                        _vala_ccode_node_unref0 (priv_access);
2674
2653
                                                                        _vala_ccode_node_unref0 (assign);
2675
2654
                                                                        _vala_ccode_node_unref0 (param_name);
2681
2660
                                                }
2682
2661
                                                _vala_code_node_unref0 (cl);
2683
2662
                                        } else {
2684
 
                                                ValaTypeSymbol* _tmp442_ = NULL;
2685
 
                                                _tmp442_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
2686
 
                                                if (VALA_IS_CLASS (_tmp442_)) {
2687
 
                                                        ValaSymbol* _tmp443_ = NULL;
2688
 
                                                        ValaClass* _tmp444_;
 
2663
                                                ValaTypeSymbol* _tmp436_ = NULL;
 
2664
                                                _tmp436_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
 
2665
                                                if (VALA_IS_CLASS (_tmp436_)) {
 
2666
                                                        ValaSymbol* _tmp437_ = NULL;
 
2667
                                                        ValaClass* _tmp438_;
2689
2668
                                                        ValaClass* cl;
2690
 
                                                        ValaCCodeFunction* _tmp445_ = NULL;
2691
 
                                                        gchar* _tmp446_ = NULL;
2692
 
                                                        gchar* _tmp447_;
2693
 
                                                        gchar* _tmp448_;
2694
 
                                                        ValaCCodeVariableDeclarator* _tmp449_ = NULL;
2695
 
                                                        ValaCCodeVariableDeclarator* _tmp450_;
2696
 
                                                        gboolean _tmp451_;
2697
 
                                                        ValaClass* _tmp465_ = NULL;
2698
 
                                                        _tmp443_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
2699
 
                                                        _tmp444_ = _vala_code_node_ref0 (VALA_CLASS (_tmp443_));
2700
 
                                                        cl = _tmp444_;
2701
 
                                                        _tmp445_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2702
 
                                                        _tmp446_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
2703
 
                                                        _tmp447_ = _tmp446_;
2704
 
                                                        _tmp448_ = g_strconcat (_tmp447_, "*", NULL);
2705
 
                                                        _tmp449_ = vala_ccode_variable_declarator_new ("self", NULL, NULL);
2706
 
                                                        _tmp450_ = _tmp449_;
2707
 
                                                        vala_ccode_function_add_declaration (_tmp445_, _tmp448_, (ValaCCodeDeclarator*) _tmp450_, 0);
2708
 
                                                        _vala_ccode_node_unref0 (_tmp450_);
2709
 
                                                        _g_free0 (_tmp448_);
2710
 
                                                        _g_free0 (_tmp447_);
2711
 
                                                        _tmp451_ = vala_creation_method_get_chain_up (VALA_CREATION_METHOD (m));
2712
 
                                                        if (!_tmp451_) {
 
2669
                                                        ValaCCodeFunction* _tmp439_ = NULL;
 
2670
                                                        gchar* _tmp440_ = NULL;
 
2671
                                                        gchar* _tmp441_;
 
2672
                                                        gchar* _tmp442_;
 
2673
                                                        ValaCCodeVariableDeclarator* _tmp443_ = NULL;
 
2674
                                                        ValaCCodeVariableDeclarator* _tmp444_;
 
2675
                                                        gboolean _tmp445_;
 
2676
                                                        ValaClass* _tmp459_ = NULL;
 
2677
                                                        _tmp437_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
 
2678
                                                        _tmp438_ = _vala_code_node_ref0 (VALA_CLASS (_tmp437_));
 
2679
                                                        cl = _tmp438_;
 
2680
                                                        _tmp439_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2681
                                                        _tmp440_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
 
2682
                                                        _tmp441_ = _tmp440_;
 
2683
                                                        _tmp442_ = g_strconcat (_tmp441_, "*", NULL);
 
2684
                                                        _tmp443_ = vala_ccode_variable_declarator_new ("self", NULL, NULL);
 
2685
                                                        _tmp444_ = _tmp443_;
 
2686
                                                        vala_ccode_function_add_declaration (_tmp439_, _tmp442_, (ValaCCodeDeclarator*) _tmp444_, 0);
 
2687
                                                        _vala_ccode_node_unref0 (_tmp444_);
 
2688
                                                        _g_free0 (_tmp442_);
 
2689
                                                        _g_free0 (_tmp441_);
 
2690
                                                        _tmp445_ = vala_creation_method_get_chain_up (VALA_CREATION_METHOD (m));
 
2691
                                                        if (!_tmp445_) {
 
2692
                                                                ValaCCodeIdentifier* _tmp446_ = NULL;
 
2693
                                                                ValaCCodeIdentifier* _tmp447_;
 
2694
                                                                ValaCCodeFunctionCall* _tmp448_ = NULL;
 
2695
                                                                ValaCCodeFunctionCall* _tmp449_;
 
2696
                                                                ValaCCodeFunctionCall* ccall;
 
2697
                                                                gchar* _tmp450_ = NULL;
 
2698
                                                                gchar* _tmp451_;
2713
2699
                                                                ValaCCodeIdentifier* _tmp452_ = NULL;
2714
2700
                                                                ValaCCodeIdentifier* _tmp453_;
2715
 
                                                                ValaCCodeFunctionCall* _tmp454_ = NULL;
2716
 
                                                                ValaCCodeFunctionCall* _tmp455_;
2717
 
                                                                ValaCCodeFunctionCall* ccall;
2718
 
                                                                gchar* _tmp456_ = NULL;
2719
 
                                                                gchar* _tmp457_;
2720
 
                                                                ValaCCodeIdentifier* _tmp458_ = NULL;
2721
 
                                                                ValaCCodeIdentifier* _tmp459_;
2722
 
                                                                ValaCCodeFunction* _tmp460_ = NULL;
2723
 
                                                                ValaCCodeIdentifier* _tmp461_ = NULL;
2724
 
                                                                ValaCCodeIdentifier* _tmp462_;
2725
 
                                                                ValaCCodeAssignment* _tmp463_ = NULL;
2726
 
                                                                ValaCCodeAssignment* _tmp464_;
2727
 
                                                                _tmp452_ = vala_ccode_identifier_new ("g_slice_new0");
 
2701
                                                                ValaCCodeFunction* _tmp454_ = NULL;
 
2702
                                                                ValaCCodeIdentifier* _tmp455_ = NULL;
 
2703
                                                                ValaCCodeIdentifier* _tmp456_;
 
2704
                                                                ValaCCodeAssignment* _tmp457_ = NULL;
 
2705
                                                                ValaCCodeAssignment* _tmp458_;
 
2706
                                                                _tmp446_ = vala_ccode_identifier_new ("g_slice_new0");
 
2707
                                                                _tmp447_ = _tmp446_;
 
2708
                                                                _tmp448_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp447_);
 
2709
                                                                ccall = (_tmp449_ = _tmp448_, _vala_ccode_node_unref0 (_tmp447_), _tmp449_);
 
2710
                                                                _tmp450_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
 
2711
                                                                _tmp451_ = _tmp450_;
 
2712
                                                                _tmp452_ = vala_ccode_identifier_new (_tmp451_);
2728
2713
                                                                _tmp453_ = _tmp452_;
2729
 
                                                                _tmp454_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp453_);
2730
 
                                                                ccall = (_tmp455_ = _tmp454_, _vala_ccode_node_unref0 (_tmp453_), _tmp455_);
2731
 
                                                                _tmp456_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) cl, FALSE);
2732
 
                                                                _tmp457_ = _tmp456_;
2733
 
                                                                _tmp458_ = vala_ccode_identifier_new (_tmp457_);
2734
 
                                                                _tmp459_ = _tmp458_;
2735
 
                                                                vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp459_);
2736
 
                                                                _vala_ccode_node_unref0 (_tmp459_);
2737
 
                                                                _g_free0 (_tmp457_);
2738
 
                                                                _tmp460_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2739
 
                                                                _tmp461_ = vala_ccode_identifier_new ("self");
2740
 
                                                                _tmp462_ = _tmp461_;
2741
 
                                                                _tmp463_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp462_, (ValaCCodeExpression*) ccall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
2742
 
                                                                _tmp464_ = _tmp463_;
2743
 
                                                                vala_ccode_function_add_expression (_tmp460_, (ValaCCodeExpression*) _tmp464_);
2744
 
                                                                _vala_ccode_node_unref0 (_tmp464_);
2745
 
                                                                _vala_ccode_node_unref0 (_tmp462_);
 
2714
                                                                vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp453_);
 
2715
                                                                _vala_ccode_node_unref0 (_tmp453_);
 
2716
                                                                _g_free0 (_tmp451_);
 
2717
                                                                _tmp454_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2718
                                                                _tmp455_ = vala_ccode_identifier_new ("self");
 
2719
                                                                _tmp456_ = _tmp455_;
 
2720
                                                                _tmp457_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp456_, (ValaCCodeExpression*) ccall, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
 
2721
                                                                _tmp458_ = _tmp457_;
 
2722
                                                                vala_ccode_function_add_expression (_tmp454_, (ValaCCodeExpression*) _tmp458_);
 
2723
                                                                _vala_ccode_node_unref0 (_tmp458_);
 
2724
                                                                _vala_ccode_node_unref0 (_tmp456_);
2746
2725
                                                                _vala_ccode_node_unref0 (ccall);
2747
2726
                                                        }
2748
 
                                                        _tmp465_ = vala_class_get_base_class (cl);
2749
 
                                                        if (_tmp465_ == NULL) {
2750
 
                                                                gchar* _tmp466_ = NULL;
2751
 
                                                                gchar* _tmp467_;
2752
 
                                                                gchar* _tmp468_ = NULL;
2753
 
                                                                gchar* _tmp469_;
2754
 
                                                                ValaCCodeIdentifier* _tmp470_ = NULL;
2755
 
                                                                ValaCCodeIdentifier* _tmp471_;
2756
 
                                                                ValaCCodeFunctionCall* _tmp472_ = NULL;
2757
 
                                                                ValaCCodeFunctionCall* _tmp473_;
 
2727
                                                        _tmp459_ = vala_class_get_base_class (cl);
 
2728
                                                        if (_tmp459_ == NULL) {
 
2729
                                                                gchar* _tmp460_ = NULL;
 
2730
                                                                gchar* _tmp461_;
 
2731
                                                                gchar* _tmp462_ = NULL;
 
2732
                                                                gchar* _tmp463_;
 
2733
                                                                ValaCCodeIdentifier* _tmp464_ = NULL;
 
2734
                                                                ValaCCodeIdentifier* _tmp465_;
 
2735
                                                                ValaCCodeFunctionCall* _tmp466_ = NULL;
 
2736
                                                                ValaCCodeFunctionCall* _tmp467_;
2758
2737
                                                                ValaCCodeFunctionCall* cinitcall;
2759
 
                                                                ValaCCodeIdentifier* _tmp474_ = NULL;
2760
 
                                                                ValaCCodeIdentifier* _tmp475_;
2761
 
                                                                ValaCCodeFunction* _tmp476_ = NULL;
2762
 
                                                                _tmp466_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) cl, NULL);
2763
 
                                                                _tmp467_ = _tmp466_;
2764
 
                                                                _tmp468_ = g_strdup_printf ("%s_instance_init", _tmp467_);
 
2738
                                                                ValaCCodeIdentifier* _tmp468_ = NULL;
 
2739
                                                                ValaCCodeIdentifier* _tmp469_;
 
2740
                                                                ValaCCodeFunction* _tmp470_ = NULL;
 
2741
                                                                _tmp460_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) cl, NULL);
 
2742
                                                                _tmp461_ = _tmp460_;
 
2743
                                                                _tmp462_ = g_strdup_printf ("%s_instance_init", _tmp461_);
 
2744
                                                                _tmp463_ = _tmp462_;
 
2745
                                                                _tmp464_ = vala_ccode_identifier_new (_tmp463_);
 
2746
                                                                _tmp465_ = _tmp464_;
 
2747
                                                                _tmp466_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp465_);
 
2748
                                                                cinitcall = (_tmp467_ = _tmp466_, _vala_ccode_node_unref0 (_tmp465_), _g_free0 (_tmp463_), _g_free0 (_tmp461_), _tmp467_);
 
2749
                                                                _tmp468_ = vala_ccode_identifier_new ("self");
2765
2750
                                                                _tmp469_ = _tmp468_;
2766
 
                                                                _tmp470_ = vala_ccode_identifier_new (_tmp469_);
2767
 
                                                                _tmp471_ = _tmp470_;
2768
 
                                                                _tmp472_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp471_);
2769
 
                                                                cinitcall = (_tmp473_ = _tmp472_, _vala_ccode_node_unref0 (_tmp471_), _g_free0 (_tmp469_), _g_free0 (_tmp467_), _tmp473_);
2770
 
                                                                _tmp474_ = vala_ccode_identifier_new ("self");
2771
 
                                                                _tmp475_ = _tmp474_;
2772
 
                                                                vala_ccode_function_call_add_argument (cinitcall, (ValaCCodeExpression*) _tmp475_);
2773
 
                                                                _vala_ccode_node_unref0 (_tmp475_);
2774
 
                                                                _tmp476_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2775
 
                                                                vala_ccode_function_add_expression (_tmp476_, (ValaCCodeExpression*) cinitcall);
 
2751
                                                                vala_ccode_function_call_add_argument (cinitcall, (ValaCCodeExpression*) _tmp469_);
 
2752
                                                                _vala_ccode_node_unref0 (_tmp469_);
 
2753
                                                                _tmp470_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2754
                                                                vala_ccode_function_add_expression (_tmp470_, (ValaCCodeExpression*) cinitcall);
2776
2755
                                                                _vala_ccode_node_unref0 (cinitcall);
2777
2756
                                                        }
2778
2757
                                                        _vala_code_node_unref0 (cl);
2779
2758
                                                } else {
2780
 
                                                        ValaSymbol* _tmp477_ = NULL;
2781
 
                                                        ValaStruct* _tmp478_;
 
2759
                                                        ValaSymbol* _tmp471_ = NULL;
 
2760
                                                        ValaStruct* _tmp472_;
2782
2761
                                                        ValaStruct* st;
2783
 
                                                        ValaCCodeIdentifier* _tmp479_ = NULL;
2784
 
                                                        ValaCCodeIdentifier* _tmp480_;
2785
 
                                                        ValaCCodeFunctionCall* _tmp481_ = NULL;
2786
 
                                                        ValaCCodeFunctionCall* _tmp482_;
 
2762
                                                        ValaCCodeIdentifier* _tmp473_ = NULL;
 
2763
                                                        ValaCCodeIdentifier* _tmp474_;
 
2764
                                                        ValaCCodeFunctionCall* _tmp475_ = NULL;
 
2765
                                                        ValaCCodeFunctionCall* _tmp476_;
2787
2766
                                                        ValaCCodeFunctionCall* czero;
2788
 
                                                        ValaCCodeIdentifier* _tmp483_ = NULL;
2789
 
                                                        ValaCCodeIdentifier* _tmp484_;
2790
 
                                                        ValaCCodeConstant* _tmp485_ = NULL;
2791
 
                                                        ValaCCodeConstant* _tmp486_;
2792
 
                                                        gchar* _tmp487_ = NULL;
2793
 
                                                        gchar* _tmp488_;
2794
 
                                                        gchar* _tmp489_ = NULL;
2795
 
                                                        gchar* _tmp490_;
2796
 
                                                        ValaCCodeIdentifier* _tmp491_ = NULL;
2797
 
                                                        ValaCCodeIdentifier* _tmp492_;
2798
 
                                                        ValaCCodeFunction* _tmp493_ = NULL;
2799
 
                                                        _tmp477_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
2800
 
                                                        _tmp478_ = _vala_code_node_ref0 (VALA_STRUCT (_tmp477_));
2801
 
                                                        st = _tmp478_;
 
2767
                                                        ValaCCodeIdentifier* _tmp477_ = NULL;
 
2768
                                                        ValaCCodeIdentifier* _tmp478_;
 
2769
                                                        ValaCCodeConstant* _tmp479_ = NULL;
 
2770
                                                        ValaCCodeConstant* _tmp480_;
 
2771
                                                        gchar* _tmp481_ = NULL;
 
2772
                                                        gchar* _tmp482_;
 
2773
                                                        gchar* _tmp483_ = NULL;
 
2774
                                                        gchar* _tmp484_;
 
2775
                                                        ValaCCodeIdentifier* _tmp485_ = NULL;
 
2776
                                                        ValaCCodeIdentifier* _tmp486_;
 
2777
                                                        ValaCCodeFunction* _tmp487_ = NULL;
 
2778
                                                        _tmp471_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m);
 
2779
                                                        _tmp472_ = _vala_code_node_ref0 (VALA_STRUCT (_tmp471_));
 
2780
                                                        st = _tmp472_;
2802
2781
                                                        vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "string.h", FALSE);
2803
 
                                                        _tmp479_ = vala_ccode_identifier_new ("memset");
 
2782
                                                        _tmp473_ = vala_ccode_identifier_new ("memset");
 
2783
                                                        _tmp474_ = _tmp473_;
 
2784
                                                        _tmp475_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp474_);
 
2785
                                                        czero = (_tmp476_ = _tmp475_, _vala_ccode_node_unref0 (_tmp474_), _tmp476_);
 
2786
                                                        _tmp477_ = vala_ccode_identifier_new ("self");
 
2787
                                                        _tmp478_ = _tmp477_;
 
2788
                                                        vala_ccode_function_call_add_argument (czero, (ValaCCodeExpression*) _tmp478_);
 
2789
                                                        _vala_ccode_node_unref0 (_tmp478_);
 
2790
                                                        _tmp479_ = vala_ccode_constant_new ("0");
2804
2791
                                                        _tmp480_ = _tmp479_;
2805
 
                                                        _tmp481_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp480_);
2806
 
                                                        czero = (_tmp482_ = _tmp481_, _vala_ccode_node_unref0 (_tmp480_), _tmp482_);
2807
 
                                                        _tmp483_ = vala_ccode_identifier_new ("self");
 
2792
                                                        vala_ccode_function_call_add_argument (czero, (ValaCCodeExpression*) _tmp480_);
 
2793
                                                        _vala_ccode_node_unref0 (_tmp480_);
 
2794
                                                        _tmp481_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) st, FALSE);
 
2795
                                                        _tmp482_ = _tmp481_;
 
2796
                                                        _tmp483_ = g_strdup_printf ("sizeof (%s)", _tmp482_);
2808
2797
                                                        _tmp484_ = _tmp483_;
2809
 
                                                        vala_ccode_function_call_add_argument (czero, (ValaCCodeExpression*) _tmp484_);
2810
 
                                                        _vala_ccode_node_unref0 (_tmp484_);
2811
 
                                                        _tmp485_ = vala_ccode_constant_new ("0");
 
2798
                                                        _tmp485_ = vala_ccode_identifier_new (_tmp484_);
2812
2799
                                                        _tmp486_ = _tmp485_;
2813
2800
                                                        vala_ccode_function_call_add_argument (czero, (ValaCCodeExpression*) _tmp486_);
2814
2801
                                                        _vala_ccode_node_unref0 (_tmp486_);
2815
 
                                                        _tmp487_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) st, FALSE);
2816
 
                                                        _tmp488_ = _tmp487_;
2817
 
                                                        _tmp489_ = g_strdup_printf ("sizeof (%s)", _tmp488_);
2818
 
                                                        _tmp490_ = _tmp489_;
2819
 
                                                        _tmp491_ = vala_ccode_identifier_new (_tmp490_);
2820
 
                                                        _tmp492_ = _tmp491_;
2821
 
                                                        vala_ccode_function_call_add_argument (czero, (ValaCCodeExpression*) _tmp492_);
2822
 
                                                        _vala_ccode_node_unref0 (_tmp492_);
2823
 
                                                        _g_free0 (_tmp490_);
2824
 
                                                        _g_free0 (_tmp488_);
2825
 
                                                        _tmp493_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2826
 
                                                        vala_ccode_function_add_expression (_tmp493_, (ValaCCodeExpression*) czero);
 
2802
                                                        _g_free0 (_tmp484_);
 
2803
                                                        _g_free0 (_tmp482_);
 
2804
                                                        _tmp487_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2805
                                                        vala_ccode_function_add_expression (_tmp487_, (ValaCCodeExpression*) czero);
2827
2806
                                                        _vala_ccode_node_unref0 (czero);
2828
2807
                                                        _vala_code_node_unref0 (st);
2829
2808
                                                }
2830
2809
                                        }
2831
2810
                                }
2832
2811
                        }
2833
 
                        _tmp495_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
2834
 
                        _tmp496_ = vala_code_context_get_module_init_method (_tmp495_);
2835
 
                        if (_tmp496_ == m) {
2836
 
                                _tmp494_ = ((ValaCCodeBaseModule*) self)->in_plugin;
 
2812
                        _tmp489_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
 
2813
                        _tmp490_ = vala_code_context_get_module_init_method (_tmp489_);
 
2814
                        if (_tmp490_ == m) {
 
2815
                                _tmp488_ = ((ValaCCodeBaseModule*) self)->in_plugin;
2837
2816
                        } else {
2838
 
                                _tmp494_ = FALSE;
 
2817
                                _tmp488_ = FALSE;
2839
2818
                        }
2840
 
                        if (_tmp494_) {
2841
 
                                ValaCodeContext* _tmp497_ = NULL;
2842
 
                                ValaNamespace* _tmp498_ = NULL;
2843
 
                                ValaHashSet* _tmp499_ = NULL;
2844
 
                                ValaHashSet* _tmp500_;
2845
 
                                _tmp497_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
2846
 
                                _tmp498_ = vala_code_context_get_root (_tmp497_);
2847
 
                                _tmp499_ = vala_hash_set_new (VALA_TYPE_SYMBOL, (GBoxedCopyFunc) vala_code_node_ref, vala_code_node_unref, g_direct_hash, g_direct_equal);
2848
 
                                _tmp500_ = _tmp499_;
2849
 
                                vala_ccode_method_module_register_plugin_types (self, (ValaSymbol*) _tmp498_, (ValaSet*) _tmp500_);
2850
 
                                _vala_iterable_unref0 (_tmp500_);
 
2819
                        if (_tmp488_) {
 
2820
                                ValaCodeContext* _tmp491_ = NULL;
 
2821
                                ValaNamespace* _tmp492_ = NULL;
 
2822
                                ValaHashSet* _tmp493_ = NULL;
 
2823
                                ValaHashSet* _tmp494_;
 
2824
                                _tmp491_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
 
2825
                                _tmp492_ = vala_code_context_get_root (_tmp491_);
 
2826
                                _tmp493_ = vala_hash_set_new (VALA_TYPE_SYMBOL, (GBoxedCopyFunc) vala_code_node_ref, vala_code_node_unref, g_direct_hash, g_direct_equal);
 
2827
                                _tmp494_ = _tmp493_;
 
2828
                                vala_ccode_method_module_register_plugin_types (self, (ValaSymbol*) _tmp492_, (ValaSet*) _tmp494_);
 
2829
                                _vala_iterable_unref0 (_tmp494_);
2851
2830
                        }
2852
2831
                        {
2853
 
                                ValaList* _tmp501_ = NULL;
 
2832
                                ValaList* _tmp495_ = NULL;
2854
2833
                                ValaList* _precondition_list;
2855
 
                                gint _tmp502_;
 
2834
                                gint _tmp496_;
2856
2835
                                gint _precondition_size;
2857
2836
                                gint _precondition_index;
2858
 
                                _tmp501_ = vala_method_get_preconditions (m);
2859
 
                                _precondition_list = _tmp501_;
2860
 
                                _tmp502_ = vala_collection_get_size ((ValaCollection*) _precondition_list);
2861
 
                                _precondition_size = _tmp502_;
 
2837
                                _tmp495_ = vala_method_get_preconditions (m);
 
2838
                                _precondition_list = _tmp495_;
 
2839
                                _tmp496_ = vala_collection_get_size ((ValaCollection*) _precondition_list);
 
2840
                                _precondition_size = _tmp496_;
2862
2841
                                _precondition_index = -1;
2863
2842
                                while (TRUE) {
2864
 
                                        gpointer _tmp503_ = NULL;
 
2843
                                        gpointer _tmp497_ = NULL;
2865
2844
                                        ValaExpression* precondition;
2866
2845
                                        _precondition_index = _precondition_index + 1;
2867
2846
                                        if (!(_precondition_index < _precondition_size)) {
2868
2847
                                                break;
2869
2848
                                        }
2870
 
                                        _tmp503_ = vala_list_get (_precondition_list, _precondition_index);
2871
 
                                        precondition = (ValaExpression*) _tmp503_;
 
2849
                                        _tmp497_ = vala_list_get (_precondition_list, _precondition_index);
 
2850
                                        precondition = (ValaExpression*) _tmp497_;
2872
2851
                                        vala_ccode_method_module_create_precondition_statement (self, (ValaCodeNode*) m, creturn_type, precondition);
2873
2852
                                        _vala_code_node_unref0 (precondition);
2874
2853
                                }
2876
2855
                        }
2877
2856
                }
2878
2857
        }
2879
 
        _tmp504_ = vala_subroutine_get_body ((ValaSubroutine*) m);
2880
 
        if (_tmp504_ != NULL) {
 
2858
        _tmp498_ = vala_subroutine_get_body ((ValaSubroutine*) m);
 
2859
        if (_tmp498_ != NULL) {
 
2860
                ValaBlock* _tmp499_ = NULL;
 
2861
                _tmp499_ = vala_subroutine_get_body ((ValaSubroutine*) m);
 
2862
                vala_code_node_emit ((ValaCodeNode*) _tmp499_, (ValaCodeGenerator*) self);
 
2863
        }
 
2864
        _tmp501_ = vala_method_get_is_abstract (m);
 
2865
        if (!_tmp501_) {
 
2866
                _tmp500_ = TRUE;
 
2867
        } else {
 
2868
                gboolean _tmp502_ = FALSE;
 
2869
                gboolean _tmp503_;
 
2870
                _tmp503_ = vala_method_get_is_abstract (m);
 
2871
                if (_tmp503_) {
 
2872
                        ValaTypeSymbol* _tmp504_ = NULL;
 
2873
                        _tmp504_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
 
2874
                        _tmp502_ = VALA_IS_CLASS (_tmp504_);
 
2875
                } else {
 
2876
                        _tmp502_ = FALSE;
 
2877
                }
 
2878
                _tmp500_ = _tmp502_;
 
2879
        }
 
2880
        if (_tmp500_) {
2881
2881
                ValaBlock* _tmp505_ = NULL;
2882
2882
                _tmp505_ = vala_subroutine_get_body ((ValaSubroutine*) m);
2883
 
                vala_code_node_emit ((ValaCodeNode*) _tmp505_, (ValaCodeGenerator*) self);
2884
 
        }
2885
 
        _tmp507_ = vala_method_get_is_abstract (m);
2886
 
        if (!_tmp507_) {
2887
 
                _tmp506_ = TRUE;
2888
 
        } else {
2889
 
                gboolean _tmp508_ = FALSE;
2890
 
                gboolean _tmp509_;
2891
 
                _tmp509_ = vala_method_get_is_abstract (m);
2892
 
                if (_tmp509_) {
2893
 
                        ValaTypeSymbol* _tmp510_ = NULL;
2894
 
                        _tmp510_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
2895
 
                        _tmp508_ = VALA_IS_CLASS (_tmp510_);
2896
 
                } else {
2897
 
                        _tmp508_ = FALSE;
2898
 
                }
2899
 
                _tmp506_ = _tmp508_;
2900
 
        }
2901
 
        if (_tmp506_) {
2902
 
                ValaBlock* _tmp511_ = NULL;
2903
 
                _tmp511_ = vala_subroutine_get_body ((ValaSubroutine*) m);
2904
 
                if (_tmp511_ != NULL) {
2905
 
                        gboolean _tmp512_;
2906
 
                        gboolean _tmp519_;
2907
 
                        gboolean _tmp520_ = FALSE;
2908
 
                        gboolean _tmp521_ = FALSE;
2909
 
                        ValaDataType* _tmp522_ = NULL;
2910
 
                        ValaCCodeFunction* _tmp598_ = NULL;
2911
 
                        _tmp512_ = vala_ccode_base_module_get_current_method_inner_error ((ValaCCodeBaseModule*) self);
2912
 
                        if (_tmp512_) {
2913
 
                                gboolean _tmp513_;
2914
 
                                _tmp513_ = vala_method_get_coroutine (m);
2915
 
                                if (_tmp513_) {
 
2883
                if (_tmp505_ != NULL) {
 
2884
                        gboolean _tmp506_;
 
2885
                        gboolean _tmp513_;
 
2886
                        gboolean _tmp514_ = FALSE;
 
2887
                        gboolean _tmp515_ = FALSE;
 
2888
                        ValaDataType* _tmp516_ = NULL;
 
2889
                        ValaCCodeFunction* _tmp592_ = NULL;
 
2890
                        _tmp506_ = vala_ccode_base_module_get_current_method_inner_error ((ValaCCodeBaseModule*) self);
 
2891
                        if (_tmp506_) {
 
2892
                                gboolean _tmp507_;
 
2893
                                _tmp507_ = vala_method_get_coroutine (m);
 
2894
                                if (_tmp507_) {
2916
2895
                                        vala_ccode_struct_add_field (((ValaCCodeBaseModule*) self)->closure_struct, "GError *", "_inner_error_", NULL);
2917
2896
                                } else {
2918
 
                                        ValaCCodeFunction* _tmp514_ = NULL;
2919
 
                                        ValaCCodeConstant* _tmp515_ = NULL;
2920
 
                                        ValaCCodeConstant* _tmp516_;
2921
 
                                        ValaCCodeVariableDeclarator* _tmp517_ = NULL;
2922
 
                                        ValaCCodeVariableDeclarator* _tmp518_;
2923
 
                                        _tmp514_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2924
 
                                        _tmp515_ = vala_ccode_constant_new ("NULL");
2925
 
                                        _tmp516_ = _tmp515_;
2926
 
                                        _tmp517_ = vala_ccode_variable_declarator_new_zero ("_inner_error_", (ValaCCodeExpression*) _tmp516_, NULL);
2927
 
                                        _tmp518_ = _tmp517_;
2928
 
                                        vala_ccode_function_add_declaration (_tmp514_, "GError *", (ValaCCodeDeclarator*) _tmp518_, 0);
2929
 
                                        _vala_ccode_node_unref0 (_tmp518_);
2930
 
                                        _vala_ccode_node_unref0 (_tmp516_);
 
2897
                                        ValaCCodeFunction* _tmp508_ = NULL;
 
2898
                                        ValaCCodeConstant* _tmp509_ = NULL;
 
2899
                                        ValaCCodeConstant* _tmp510_;
 
2900
                                        ValaCCodeVariableDeclarator* _tmp511_ = NULL;
 
2901
                                        ValaCCodeVariableDeclarator* _tmp512_;
 
2902
                                        _tmp508_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2903
                                        _tmp509_ = vala_ccode_constant_new ("NULL");
 
2904
                                        _tmp510_ = _tmp509_;
 
2905
                                        _tmp511_ = vala_ccode_variable_declarator_new_zero ("_inner_error_", (ValaCCodeExpression*) _tmp510_, NULL);
 
2906
                                        _tmp512_ = _tmp511_;
 
2907
                                        vala_ccode_function_add_declaration (_tmp508_, "GError *", (ValaCCodeDeclarator*) _tmp512_, 0);
 
2908
                                        _vala_ccode_node_unref0 (_tmp512_);
 
2909
                                        _vala_ccode_node_unref0 (_tmp510_);
2931
2910
                                }
2932
2911
                        }
2933
 
                        _tmp519_ = vala_method_get_coroutine (m);
2934
 
                        if (_tmp519_) {
 
2912
                        _tmp513_ = vala_method_get_coroutine (m);
 
2913
                        if (_tmp513_) {
2935
2914
                                vala_ccode_method_module_complete_async (self);
2936
2915
                        }
2937
 
                        _tmp522_ = vala_method_get_return_type (m);
2938
 
                        if (!VALA_IS_VOID_TYPE (_tmp522_)) {
2939
 
                                ValaDataType* _tmp523_ = NULL;
2940
 
                                gboolean _tmp524_;
2941
 
                                _tmp523_ = vala_method_get_return_type (m);
2942
 
                                _tmp524_ = vala_data_type_is_real_non_null_struct_type (_tmp523_);
2943
 
                                _tmp521_ = !_tmp524_;
2944
 
                        } else {
2945
 
                                _tmp521_ = FALSE;
2946
 
                        }
2947
 
                        if (_tmp521_) {
2948
 
                                gboolean _tmp525_;
2949
 
                                _tmp525_ = vala_method_get_coroutine (m);
2950
 
                                _tmp520_ = !_tmp525_;
2951
 
                        } else {
2952
 
                                _tmp520_ = FALSE;
2953
 
                        }
2954
 
                        if (_tmp520_) {
2955
 
                                gboolean _tmp526_ = FALSE;
2956
 
                                ValaBasicBlock* _tmp527_ = NULL;
2957
 
                                _tmp527_ = vala_subroutine_get_return_block ((ValaSubroutine*) m);
2958
 
                                if (_tmp527_ != NULL) {
2959
 
                                        ValaBasicBlock* _tmp528_ = NULL;
2960
 
                                        ValaList* _tmp529_ = NULL;
2961
 
                                        ValaList* _tmp530_;
2962
 
                                        gint _tmp531_;
2963
 
                                        _tmp528_ = vala_subroutine_get_return_block ((ValaSubroutine*) m);
2964
 
                                        _tmp529_ = vala_basic_block_get_predecessors (_tmp528_);
2965
 
                                        _tmp530_ = _tmp529_;
2966
 
                                        _tmp531_ = vala_collection_get_size ((ValaCollection*) _tmp530_);
2967
 
                                        _tmp526_ = _tmp531_ == 0;
2968
 
                                        _vala_iterable_unref0 (_tmp530_);
 
2916
                        _tmp516_ = vala_method_get_return_type (m);
 
2917
                        if (!VALA_IS_VOID_TYPE (_tmp516_)) {
 
2918
                                ValaDataType* _tmp517_ = NULL;
 
2919
                                gboolean _tmp518_;
 
2920
                                _tmp517_ = vala_method_get_return_type (m);
 
2921
                                _tmp518_ = vala_data_type_is_real_non_null_struct_type (_tmp517_);
 
2922
                                _tmp515_ = !_tmp518_;
 
2923
                        } else {
 
2924
                                _tmp515_ = FALSE;
 
2925
                        }
 
2926
                        if (_tmp515_) {
 
2927
                                gboolean _tmp519_;
 
2928
                                _tmp519_ = vala_method_get_coroutine (m);
 
2929
                                _tmp514_ = !_tmp519_;
 
2930
                        } else {
 
2931
                                _tmp514_ = FALSE;
 
2932
                        }
 
2933
                        if (_tmp514_) {
 
2934
                                gboolean _tmp520_ = FALSE;
 
2935
                                ValaBasicBlock* _tmp521_ = NULL;
 
2936
                                _tmp521_ = vala_subroutine_get_return_block ((ValaSubroutine*) m);
 
2937
                                if (_tmp521_ != NULL) {
 
2938
                                        ValaBasicBlock* _tmp522_ = NULL;
 
2939
                                        ValaList* _tmp523_ = NULL;
 
2940
                                        ValaList* _tmp524_;
 
2941
                                        gint _tmp525_;
 
2942
                                        _tmp522_ = vala_subroutine_get_return_block ((ValaSubroutine*) m);
 
2943
                                        _tmp523_ = vala_basic_block_get_predecessors (_tmp522_);
 
2944
                                        _tmp524_ = _tmp523_;
 
2945
                                        _tmp525_ = vala_collection_get_size ((ValaCollection*) _tmp524_);
 
2946
                                        _tmp520_ = _tmp525_ == 0;
 
2947
                                        _vala_iterable_unref0 (_tmp524_);
2969
2948
                                } else {
2970
 
                                        _tmp526_ = FALSE;
 
2949
                                        _tmp520_ = FALSE;
2971
2950
                                }
2972
 
                                if (_tmp526_) {
2973
 
                                        ValaCCodeFunction* _tmp532_ = NULL;
2974
 
                                        ValaCCodeIdentifier* _tmp533_ = NULL;
2975
 
                                        ValaCCodeIdentifier* _tmp534_;
2976
 
                                        _tmp532_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2977
 
                                        _tmp533_ = vala_ccode_identifier_new ("result");
2978
 
                                        _tmp534_ = _tmp533_;
2979
 
                                        vala_ccode_function_add_return (_tmp532_, (ValaCCodeExpression*) _tmp534_);
2980
 
                                        _vala_ccode_node_unref0 (_tmp534_);
 
2951
                                if (_tmp520_) {
 
2952
                                        ValaCCodeFunction* _tmp526_ = NULL;
 
2953
                                        ValaCCodeIdentifier* _tmp527_ = NULL;
 
2954
                                        ValaCCodeIdentifier* _tmp528_;
 
2955
                                        _tmp526_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
2956
                                        _tmp527_ = vala_ccode_identifier_new ("result");
 
2957
                                        _tmp528_ = _tmp527_;
 
2958
                                        vala_ccode_function_add_return (_tmp526_, (ValaCCodeExpression*) _tmp528_);
 
2959
                                        _vala_ccode_node_unref0 (_tmp528_);
2981
2960
                                }
2982
2961
                        }
2983
2962
                        if (VALA_IS_CREATION_METHOD (m)) {
2984
 
                                ValaTypeSymbol* _tmp535_ = NULL;
2985
 
                                gboolean _tmp541_ = FALSE;
2986
 
                                gboolean _tmp542_ = FALSE;
2987
 
                                gboolean _tmp543_ = FALSE;
2988
 
                                gboolean _tmp544_ = FALSE;
2989
 
                                ValaTypeSymbol* _tmp545_ = NULL;
2990
 
                                ValaTypeSymbol* _tmp588_ = NULL;
2991
 
                                _tmp535_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
2992
 
                                if (VALA_IS_CLASS (_tmp535_)) {
2993
 
                                        ValaClass* _tmp536_ = NULL;
2994
 
                                        ValaObjectType* _tmp537_ = NULL;
2995
 
                                        ValaDataType* _tmp538_;
2996
 
                                        _tmp536_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
2997
 
                                        _tmp537_ = vala_object_type_new ((ValaObjectTypeSymbol*) _tmp536_);
2998
 
                                        _tmp538_ = (ValaDataType*) _tmp537_;
2999
 
                                        _vala_code_node_unref0 (creturn_type);
3000
 
                                        creturn_type = _tmp538_;
3001
 
                                } else {
3002
 
                                        ValaVoidType* _tmp539_ = NULL;
3003
 
                                        ValaDataType* _tmp540_;
3004
 
                                        _tmp539_ = vala_void_type_new (NULL);
3005
 
                                        _tmp540_ = (ValaDataType*) _tmp539_;
3006
 
                                        _vala_code_node_unref0 (creturn_type);
3007
 
                                        creturn_type = _tmp540_;
3008
 
                                }
3009
 
                                _tmp545_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
3010
 
                                if (VALA_IS_CLASS (_tmp545_)) {
3011
 
                                        _tmp544_ = ((ValaCCodeBaseModule*) self)->gobject_type != NULL;
3012
 
                                } else {
3013
 
                                        _tmp544_ = FALSE;
3014
 
                                }
3015
 
                                if (_tmp544_) {
3016
 
                                        ValaClass* _tmp546_ = NULL;
3017
 
                                        gboolean _tmp547_;
3018
 
                                        _tmp546_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
3019
 
                                        _tmp547_ = vala_typesymbol_is_subtype_of ((ValaTypeSymbol*) _tmp546_, ((ValaCCodeBaseModule*) self)->gobject_type);
3020
 
                                        _tmp543_ = _tmp547_;
3021
 
                                } else {
3022
 
                                        _tmp543_ = FALSE;
3023
 
                                }
3024
 
                                if (_tmp543_) {
3025
 
                                        ValaClass* _tmp548_ = NULL;
3026
 
                                        ValaList* _tmp549_ = NULL;
3027
 
                                        ValaList* _tmp550_;
3028
 
                                        gint _tmp551_;
3029
 
                                        _tmp548_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
3030
 
                                        _tmp549_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) _tmp548_);
3031
 
                                        _tmp550_ = _tmp549_;
3032
 
                                        _tmp551_ = vala_collection_get_size ((ValaCollection*) _tmp550_);
3033
 
                                        _tmp542_ = _tmp551_ > 0;
3034
 
                                        _vala_iterable_unref0 (_tmp550_);
3035
 
                                } else {
3036
 
                                        _tmp542_ = FALSE;
3037
 
                                }
3038
 
                                if (_tmp542_) {
3039
 
                                        gboolean _tmp552_;
3040
 
                                        _tmp552_ = vala_creation_method_get_chain_up (VALA_CREATION_METHOD (m));
3041
 
                                        _tmp541_ = !_tmp552_;
3042
 
                                } else {
3043
 
                                        _tmp541_ = FALSE;
3044
 
                                }
3045
 
                                if (_tmp541_) {
3046
 
                                        ValaCCodeIdentifier* _tmp553_ = NULL;
3047
 
                                        ValaCCodeIdentifier* _tmp554_;
3048
 
                                        ValaCCodeIdentifier* _tmp555_ = NULL;
3049
 
                                        ValaCCodeIdentifier* _tmp556_;
3050
 
                                        ValaCCodeBinaryExpression* _tmp557_ = NULL;
3051
 
                                        ValaCCodeBinaryExpression* _tmp558_;
 
2963
                                ValaTypeSymbol* _tmp529_ = NULL;
 
2964
                                gboolean _tmp535_ = FALSE;
 
2965
                                gboolean _tmp536_ = FALSE;
 
2966
                                gboolean _tmp537_ = FALSE;
 
2967
                                gboolean _tmp538_ = FALSE;
 
2968
                                ValaTypeSymbol* _tmp539_ = NULL;
 
2969
                                ValaTypeSymbol* _tmp582_ = NULL;
 
2970
                                _tmp529_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
 
2971
                                if (VALA_IS_CLASS (_tmp529_)) {
 
2972
                                        ValaClass* _tmp530_ = NULL;
 
2973
                                        ValaObjectType* _tmp531_ = NULL;
 
2974
                                        ValaDataType* _tmp532_;
 
2975
                                        _tmp530_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
 
2976
                                        _tmp531_ = vala_object_type_new ((ValaObjectTypeSymbol*) _tmp530_);
 
2977
                                        _tmp532_ = (ValaDataType*) _tmp531_;
 
2978
                                        _vala_code_node_unref0 (creturn_type);
 
2979
                                        creturn_type = _tmp532_;
 
2980
                                } else {
 
2981
                                        ValaVoidType* _tmp533_ = NULL;
 
2982
                                        ValaDataType* _tmp534_;
 
2983
                                        _tmp533_ = vala_void_type_new (NULL);
 
2984
                                        _tmp534_ = (ValaDataType*) _tmp533_;
 
2985
                                        _vala_code_node_unref0 (creturn_type);
 
2986
                                        creturn_type = _tmp534_;
 
2987
                                }
 
2988
                                _tmp539_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
 
2989
                                if (VALA_IS_CLASS (_tmp539_)) {
 
2990
                                        _tmp538_ = ((ValaCCodeBaseModule*) self)->gobject_type != NULL;
 
2991
                                } else {
 
2992
                                        _tmp538_ = FALSE;
 
2993
                                }
 
2994
                                if (_tmp538_) {
 
2995
                                        ValaClass* _tmp540_ = NULL;
 
2996
                                        gboolean _tmp541_;
 
2997
                                        _tmp540_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
 
2998
                                        _tmp541_ = vala_typesymbol_is_subtype_of ((ValaTypeSymbol*) _tmp540_, ((ValaCCodeBaseModule*) self)->gobject_type);
 
2999
                                        _tmp537_ = _tmp541_;
 
3000
                                } else {
 
3001
                                        _tmp537_ = FALSE;
 
3002
                                }
 
3003
                                if (_tmp537_) {
 
3004
                                        ValaClass* _tmp542_ = NULL;
 
3005
                                        ValaList* _tmp543_ = NULL;
 
3006
                                        ValaList* _tmp544_;
 
3007
                                        gint _tmp545_;
 
3008
                                        _tmp542_ = vala_ccode_base_module_get_current_class ((ValaCCodeBaseModule*) self);
 
3009
                                        _tmp543_ = vala_object_type_symbol_get_type_parameters ((ValaObjectTypeSymbol*) _tmp542_);
 
3010
                                        _tmp544_ = _tmp543_;
 
3011
                                        _tmp545_ = vala_collection_get_size ((ValaCollection*) _tmp544_);
 
3012
                                        _tmp536_ = _tmp545_ > 0;
 
3013
                                        _vala_iterable_unref0 (_tmp544_);
 
3014
                                } else {
 
3015
                                        _tmp536_ = FALSE;
 
3016
                                }
 
3017
                                if (_tmp536_) {
 
3018
                                        gboolean _tmp546_;
 
3019
                                        _tmp546_ = vala_creation_method_get_chain_up (VALA_CREATION_METHOD (m));
 
3020
                                        _tmp535_ = !_tmp546_;
 
3021
                                } else {
 
3022
                                        _tmp535_ = FALSE;
 
3023
                                }
 
3024
                                if (_tmp535_) {
 
3025
                                        ValaCCodeIdentifier* _tmp547_ = NULL;
 
3026
                                        ValaCCodeIdentifier* _tmp548_;
 
3027
                                        ValaCCodeIdentifier* _tmp549_ = NULL;
 
3028
                                        ValaCCodeIdentifier* _tmp550_;
 
3029
                                        ValaCCodeBinaryExpression* _tmp551_ = NULL;
 
3030
                                        ValaCCodeBinaryExpression* _tmp552_;
3052
3031
                                        ValaCCodeBinaryExpression* ccond;
3053
 
                                        ValaCCodeBlock* _tmp559_ = NULL;
 
3032
                                        ValaCCodeBlock* _tmp553_ = NULL;
3054
3033
                                        ValaCCodeBlock* cdofreeparam;
 
3034
                                        ValaCCodeIdentifier* _tmp554_ = NULL;
 
3035
                                        ValaCCodeIdentifier* _tmp555_;
 
3036
                                        ValaCCodeUnaryExpression* _tmp556_ = NULL;
 
3037
                                        ValaCCodeUnaryExpression* _tmp557_;
 
3038
                                        ValaCCodeExpressionStatement* _tmp558_ = NULL;
 
3039
                                        ValaCCodeExpressionStatement* _tmp559_;
3055
3040
                                        ValaCCodeIdentifier* _tmp560_ = NULL;
3056
3041
                                        ValaCCodeIdentifier* _tmp561_;
3057
 
                                        ValaCCodeUnaryExpression* _tmp562_ = NULL;
3058
 
                                        ValaCCodeUnaryExpression* _tmp563_;
3059
 
                                        ValaCCodeExpressionStatement* _tmp564_ = NULL;
3060
 
                                        ValaCCodeExpressionStatement* _tmp565_;
3061
 
                                        ValaCCodeIdentifier* _tmp566_ = NULL;
3062
 
                                        ValaCCodeIdentifier* _tmp567_;
3063
 
                                        ValaCCodeFunctionCall* _tmp568_ = NULL;
3064
 
                                        ValaCCodeFunctionCall* _tmp569_;
 
3042
                                        ValaCCodeFunctionCall* _tmp562_ = NULL;
 
3043
                                        ValaCCodeFunctionCall* _tmp563_;
3065
3044
                                        ValaCCodeFunctionCall* cunsetcall;
3066
 
                                        ValaCCodeIdentifier* _tmp570_ = NULL;
3067
 
                                        ValaCCodeIdentifier* _tmp571_;
3068
 
                                        ValaCCodeMemberAccess* _tmp572_ = NULL;
3069
 
                                        ValaCCodeMemberAccess* _tmp573_;
3070
 
                                        ValaCCodeUnaryExpression* _tmp574_ = NULL;
3071
 
                                        ValaCCodeUnaryExpression* _tmp575_;
3072
 
                                        ValaCCodeExpressionStatement* _tmp576_ = NULL;
3073
 
                                        ValaCCodeExpressionStatement* _tmp577_;
3074
 
                                        ValaCCodeFunction* _tmp578_ = NULL;
3075
 
                                        ValaCCodeWhileStatement* _tmp579_ = NULL;
3076
 
                                        ValaCCodeWhileStatement* _tmp580_;
3077
 
                                        ValaCCodeIdentifier* _tmp581_ = NULL;
3078
 
                                        ValaCCodeIdentifier* _tmp582_;
3079
 
                                        ValaCCodeFunctionCall* _tmp583_ = NULL;
3080
 
                                        ValaCCodeFunctionCall* _tmp584_;
 
3045
                                        ValaCCodeIdentifier* _tmp564_ = NULL;
 
3046
                                        ValaCCodeIdentifier* _tmp565_;
 
3047
                                        ValaCCodeMemberAccess* _tmp566_ = NULL;
 
3048
                                        ValaCCodeMemberAccess* _tmp567_;
 
3049
                                        ValaCCodeUnaryExpression* _tmp568_ = NULL;
 
3050
                                        ValaCCodeUnaryExpression* _tmp569_;
 
3051
                                        ValaCCodeExpressionStatement* _tmp570_ = NULL;
 
3052
                                        ValaCCodeExpressionStatement* _tmp571_;
 
3053
                                        ValaCCodeFunction* _tmp572_ = NULL;
 
3054
                                        ValaCCodeWhileStatement* _tmp573_ = NULL;
 
3055
                                        ValaCCodeWhileStatement* _tmp574_;
 
3056
                                        ValaCCodeIdentifier* _tmp575_ = NULL;
 
3057
                                        ValaCCodeIdentifier* _tmp576_;
 
3058
                                        ValaCCodeFunctionCall* _tmp577_ = NULL;
 
3059
                                        ValaCCodeFunctionCall* _tmp578_;
3081
3060
                                        ValaCCodeFunctionCall* cfreeparams;
3082
 
                                        ValaCCodeIdentifier* _tmp585_ = NULL;
3083
 
                                        ValaCCodeIdentifier* _tmp586_;
3084
 
                                        ValaCCodeFunction* _tmp587_ = NULL;
3085
 
                                        _tmp553_ = vala_ccode_identifier_new ("__params_it");
3086
 
                                        _tmp554_ = _tmp553_;
3087
 
                                        _tmp555_ = vala_ccode_identifier_new ("__params");
3088
 
                                        _tmp556_ = _tmp555_;
3089
 
                                        _tmp557_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_GREATER_THAN, (ValaCCodeExpression*) _tmp554_, (ValaCCodeExpression*) _tmp556_);
3090
 
                                        ccond = (_tmp558_ = _tmp557_, _vala_ccode_node_unref0 (_tmp556_), _vala_ccode_node_unref0 (_tmp554_), _tmp558_);
3091
 
                                        _tmp559_ = vala_ccode_block_new ();
3092
 
                                        cdofreeparam = _tmp559_;
3093
 
                                        _tmp560_ = vala_ccode_identifier_new ("__params_it");
 
3061
                                        ValaCCodeIdentifier* _tmp579_ = NULL;
 
3062
                                        ValaCCodeIdentifier* _tmp580_;
 
3063
                                        ValaCCodeFunction* _tmp581_ = NULL;
 
3064
                                        _tmp547_ = vala_ccode_identifier_new ("__params_it");
 
3065
                                        _tmp548_ = _tmp547_;
 
3066
                                        _tmp549_ = vala_ccode_identifier_new ("__params");
 
3067
                                        _tmp550_ = _tmp549_;
 
3068
                                        _tmp551_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_GREATER_THAN, (ValaCCodeExpression*) _tmp548_, (ValaCCodeExpression*) _tmp550_);
 
3069
                                        ccond = (_tmp552_ = _tmp551_, _vala_ccode_node_unref0 (_tmp550_), _vala_ccode_node_unref0 (_tmp548_), _tmp552_);
 
3070
                                        _tmp553_ = vala_ccode_block_new ();
 
3071
                                        cdofreeparam = _tmp553_;
 
3072
                                        _tmp554_ = vala_ccode_identifier_new ("__params_it");
 
3073
                                        _tmp555_ = _tmp554_;
 
3074
                                        _tmp556_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_PREFIX_DECREMENT, (ValaCCodeExpression*) _tmp555_);
 
3075
                                        _tmp557_ = _tmp556_;
 
3076
                                        _tmp558_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp557_);
 
3077
                                        _tmp559_ = _tmp558_;
 
3078
                                        vala_ccode_block_add_statement (cdofreeparam, (ValaCCodeNode*) _tmp559_);
 
3079
                                        _vala_ccode_node_unref0 (_tmp559_);
 
3080
                                        _vala_ccode_node_unref0 (_tmp557_);
 
3081
                                        _vala_ccode_node_unref0 (_tmp555_);
 
3082
                                        _tmp560_ = vala_ccode_identifier_new ("g_value_unset");
3094
3083
                                        _tmp561_ = _tmp560_;
3095
 
                                        _tmp562_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_PREFIX_DECREMENT, (ValaCCodeExpression*) _tmp561_);
3096
 
                                        _tmp563_ = _tmp562_;
3097
 
                                        _tmp564_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp563_);
 
3084
                                        _tmp562_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp561_);
 
3085
                                        cunsetcall = (_tmp563_ = _tmp562_, _vala_ccode_node_unref0 (_tmp561_), _tmp563_);
 
3086
                                        _tmp564_ = vala_ccode_identifier_new ("__params_it");
3098
3087
                                        _tmp565_ = _tmp564_;
3099
 
                                        vala_ccode_block_add_statement (cdofreeparam, (ValaCCodeNode*) _tmp565_);
 
3088
                                        _tmp566_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp565_, "value");
 
3089
                                        _tmp567_ = _tmp566_;
 
3090
                                        _tmp568_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp567_);
 
3091
                                        _tmp569_ = _tmp568_;
 
3092
                                        vala_ccode_function_call_add_argument (cunsetcall, (ValaCCodeExpression*) _tmp569_);
 
3093
                                        _vala_ccode_node_unref0 (_tmp569_);
 
3094
                                        _vala_ccode_node_unref0 (_tmp567_);
3100
3095
                                        _vala_ccode_node_unref0 (_tmp565_);
3101
 
                                        _vala_ccode_node_unref0 (_tmp563_);
3102
 
                                        _vala_ccode_node_unref0 (_tmp561_);
3103
 
                                        _tmp566_ = vala_ccode_identifier_new ("g_value_unset");
3104
 
                                        _tmp567_ = _tmp566_;
3105
 
                                        _tmp568_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp567_);
3106
 
                                        cunsetcall = (_tmp569_ = _tmp568_, _vala_ccode_node_unref0 (_tmp567_), _tmp569_);
3107
 
                                        _tmp570_ = vala_ccode_identifier_new ("__params_it");
 
3096
                                        _tmp570_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cunsetcall);
3108
3097
                                        _tmp571_ = _tmp570_;
3109
 
                                        _tmp572_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp571_, "value");
3110
 
                                        _tmp573_ = _tmp572_;
3111
 
                                        _tmp574_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp573_);
3112
 
                                        _tmp575_ = _tmp574_;
3113
 
                                        vala_ccode_function_call_add_argument (cunsetcall, (ValaCCodeExpression*) _tmp575_);
3114
 
                                        _vala_ccode_node_unref0 (_tmp575_);
3115
 
                                        _vala_ccode_node_unref0 (_tmp573_);
 
3098
                                        vala_ccode_block_add_statement (cdofreeparam, (ValaCCodeNode*) _tmp571_);
3116
3099
                                        _vala_ccode_node_unref0 (_tmp571_);
3117
 
                                        _tmp576_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) cunsetcall);
3118
 
                                        _tmp577_ = _tmp576_;
3119
 
                                        vala_ccode_block_add_statement (cdofreeparam, (ValaCCodeNode*) _tmp577_);
3120
 
                                        _vala_ccode_node_unref0 (_tmp577_);
3121
 
                                        _tmp578_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3122
 
                                        _tmp579_ = vala_ccode_while_statement_new ((ValaCCodeExpression*) ccond, (ValaCCodeStatement*) cdofreeparam);
 
3100
                                        _tmp572_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
3101
                                        _tmp573_ = vala_ccode_while_statement_new ((ValaCCodeExpression*) ccond, (ValaCCodeStatement*) cdofreeparam);
 
3102
                                        _tmp574_ = _tmp573_;
 
3103
                                        vala_ccode_function_add_statement (_tmp572_, (ValaCCodeNode*) _tmp574_);
 
3104
                                        _vala_ccode_node_unref0 (_tmp574_);
 
3105
                                        _tmp575_ = vala_ccode_identifier_new ("g_free");
 
3106
                                        _tmp576_ = _tmp575_;
 
3107
                                        _tmp577_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp576_);
 
3108
                                        cfreeparams = (_tmp578_ = _tmp577_, _vala_ccode_node_unref0 (_tmp576_), _tmp578_);
 
3109
                                        _tmp579_ = vala_ccode_identifier_new ("__params");
3123
3110
                                        _tmp580_ = _tmp579_;
3124
 
                                        vala_ccode_function_add_statement (_tmp578_, (ValaCCodeNode*) _tmp580_);
 
3111
                                        vala_ccode_function_call_add_argument (cfreeparams, (ValaCCodeExpression*) _tmp580_);
3125
3112
                                        _vala_ccode_node_unref0 (_tmp580_);
3126
 
                                        _tmp581_ = vala_ccode_identifier_new ("g_free");
3127
 
                                        _tmp582_ = _tmp581_;
3128
 
                                        _tmp583_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp582_);
3129
 
                                        cfreeparams = (_tmp584_ = _tmp583_, _vala_ccode_node_unref0 (_tmp582_), _tmp584_);
3130
 
                                        _tmp585_ = vala_ccode_identifier_new ("__params");
3131
 
                                        _tmp586_ = _tmp585_;
3132
 
                                        vala_ccode_function_call_add_argument (cfreeparams, (ValaCCodeExpression*) _tmp586_);
3133
 
                                        _vala_ccode_node_unref0 (_tmp586_);
3134
 
                                        _tmp587_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3135
 
                                        vala_ccode_function_add_expression (_tmp587_, (ValaCCodeExpression*) cfreeparams);
 
3113
                                        _tmp581_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
3114
                                        vala_ccode_function_add_expression (_tmp581_, (ValaCCodeExpression*) cfreeparams);
3136
3115
                                        _vala_ccode_node_unref0 (cfreeparams);
3137
3116
                                        _vala_ccode_node_unref0 (cunsetcall);
3138
3117
                                        _vala_ccode_node_unref0 (cdofreeparam);
3139
3118
                                        _vala_ccode_node_unref0 (ccond);
3140
3119
                                }
3141
 
                                _tmp588_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
3142
 
                                if (VALA_IS_CLASS (_tmp588_)) {
3143
 
                                        ValaCCodeIdentifier* _tmp589_ = NULL;
 
3120
                                _tmp582_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
 
3121
                                if (VALA_IS_CLASS (_tmp582_)) {
 
3122
                                        ValaCCodeIdentifier* _tmp583_ = NULL;
3144
3123
                                        ValaCCodeExpression* cresult;
3145
 
                                        gchar* _tmp590_ = NULL;
3146
 
                                        gchar* _tmp591_;
3147
 
                                        gboolean _tmp592_;
3148
 
                                        ValaCCodeFunction* _tmp597_ = NULL;
3149
 
                                        _tmp589_ = vala_ccode_identifier_new ("self");
3150
 
                                        cresult = (ValaCCodeExpression*) _tmp589_;
3151
 
                                        _tmp590_ = vala_ccode_base_module_get_custom_creturn_type ((ValaCCodeBaseModule*) self, m);
3152
 
                                        _tmp591_ = _tmp590_;
3153
 
                                        if ((_tmp592_ = _tmp591_ != NULL, _g_free0 (_tmp591_), _tmp592_)) {
3154
 
                                                gchar* _tmp593_ = NULL;
3155
 
                                                gchar* _tmp594_;
3156
 
                                                ValaCCodeCastExpression* _tmp595_ = NULL;
3157
 
                                                ValaCCodeExpression* _tmp596_;
3158
 
                                                _tmp593_ = vala_ccode_base_module_get_custom_creturn_type ((ValaCCodeBaseModule*) self, m);
3159
 
                                                _tmp594_ = _tmp593_;
3160
 
                                                _tmp595_ = vala_ccode_cast_expression_new (cresult, _tmp594_);
3161
 
                                                _tmp596_ = (ValaCCodeExpression*) _tmp595_;
 
3124
                                        gchar* _tmp584_ = NULL;
 
3125
                                        gchar* _tmp585_;
 
3126
                                        gboolean _tmp586_;
 
3127
                                        ValaCCodeFunction* _tmp591_ = NULL;
 
3128
                                        _tmp583_ = vala_ccode_identifier_new ("self");
 
3129
                                        cresult = (ValaCCodeExpression*) _tmp583_;
 
3130
                                        _tmp584_ = vala_ccode_base_module_get_custom_creturn_type ((ValaCCodeBaseModule*) self, m);
 
3131
                                        _tmp585_ = _tmp584_;
 
3132
                                        if ((_tmp586_ = _tmp585_ != NULL, _g_free0 (_tmp585_), _tmp586_)) {
 
3133
                                                gchar* _tmp587_ = NULL;
 
3134
                                                gchar* _tmp588_;
 
3135
                                                ValaCCodeCastExpression* _tmp589_ = NULL;
 
3136
                                                ValaCCodeExpression* _tmp590_;
 
3137
                                                _tmp587_ = vala_ccode_base_module_get_custom_creturn_type ((ValaCCodeBaseModule*) self, m);
 
3138
                                                _tmp588_ = _tmp587_;
 
3139
                                                _tmp589_ = vala_ccode_cast_expression_new (cresult, _tmp588_);
 
3140
                                                _tmp590_ = (ValaCCodeExpression*) _tmp589_;
3162
3141
                                                _vala_ccode_node_unref0 (cresult);
3163
 
                                                cresult = _tmp596_;
3164
 
                                                _g_free0 (_tmp594_);
 
3142
                                                cresult = _tmp590_;
 
3143
                                                _g_free0 (_tmp588_);
3165
3144
                                        }
3166
 
                                        _tmp597_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3167
 
                                        vala_ccode_function_add_return (_tmp597_, cresult);
 
3145
                                        _tmp591_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
3146
                                        vala_ccode_function_add_return (_tmp591_, cresult);
3168
3147
                                        _vala_ccode_node_unref0 (cresult);
3169
3148
                                }
3170
3149
                        }
3171
 
                        _tmp598_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3172
 
                        vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, _tmp598_);
 
3150
                        _tmp592_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
3151
                        vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, _tmp592_);
3173
3152
                }
3174
3153
        }
3175
 
        _tmp599_ = vala_method_get_is_abstract (m);
3176
 
        if (_tmp599_) {
3177
 
                ValaTypeSymbol* _tmp600_ = NULL;
 
3154
        _tmp594_ = vala_method_get_is_abstract (m);
 
3155
        if (_tmp594_) {
 
3156
                ValaTypeSymbol* _tmp595_ = NULL;
 
3157
                _tmp595_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
 
3158
                _tmp593_ = VALA_IS_CLASS (_tmp595_);
 
3159
        } else {
 
3160
                _tmp593_ = FALSE;
 
3161
        }
 
3162
        if (_tmp593_) {
 
3163
                ValaTypeSymbol* _tmp596_ = NULL;
 
3164
                ValaCCodeIdentifier* _tmp597_ = NULL;
 
3165
                ValaCCodeIdentifier* _tmp598_;
 
3166
                ValaCCodeFunctionCall* _tmp599_ = NULL;
 
3167
                ValaCCodeFunctionCall* _tmp600_;
 
3168
                ValaCCodeFunctionCall* type_from_instance_call;
3178
3169
                ValaCCodeIdentifier* _tmp601_ = NULL;
3179
3170
                ValaCCodeIdentifier* _tmp602_;
3180
 
                ValaCCodeFunctionCall* _tmp603_ = NULL;
3181
 
                ValaCCodeFunctionCall* _tmp604_;
3182
 
                ValaCCodeFunctionCall* type_from_instance_call;
3183
 
                ValaCCodeIdentifier* _tmp605_ = NULL;
3184
 
                ValaCCodeIdentifier* _tmp606_;
3185
 
                ValaCCodeIdentifier* _tmp607_ = NULL;
3186
 
                ValaCCodeIdentifier* _tmp608_;
3187
 
                ValaCCodeFunctionCall* _tmp609_ = NULL;
3188
 
                ValaCCodeFunctionCall* _tmp610_;
 
3171
                ValaCCodeIdentifier* _tmp603_ = NULL;
 
3172
                ValaCCodeIdentifier* _tmp604_;
 
3173
                ValaCCodeFunctionCall* _tmp605_ = NULL;
 
3174
                ValaCCodeFunctionCall* _tmp606_;
3189
3175
                ValaCCodeFunctionCall* type_name_call;
3190
 
                gchar* _tmp611_ = NULL;
3191
 
                gchar* _tmp612_;
3192
 
                gchar* _tmp613_ = NULL;
3193
 
                gchar* _tmp614_;
 
3176
                gchar* _tmp607_ = NULL;
 
3177
                gchar* _tmp608_;
 
3178
                gchar* _tmp609_ = NULL;
 
3179
                gchar* _tmp610_;
3194
3180
                gchar* error_string;
3195
 
                ValaCCodeIdentifier* _tmp615_ = NULL;
3196
 
                ValaCCodeIdentifier* _tmp616_;
3197
 
                ValaCCodeFunctionCall* _tmp617_ = NULL;
3198
 
                ValaCCodeFunctionCall* _tmp618_;
 
3181
                ValaCCodeIdentifier* _tmp611_ = NULL;
 
3182
                ValaCCodeIdentifier* _tmp612_;
 
3183
                ValaCCodeFunctionCall* _tmp613_ = NULL;
 
3184
                ValaCCodeFunctionCall* _tmp614_;
3199
3185
                ValaCCodeFunctionCall* cerrorcall;
3200
 
                ValaCCodeConstant* _tmp619_ = NULL;
3201
 
                ValaCCodeConstant* _tmp620_;
3202
 
                ValaCCodeFunction* _tmp621_ = NULL;
3203
 
                ValaCCodeFunction* _tmp622_ = NULL;
3204
 
                _tmp600_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
3205
 
                vala_ccode_method_module_create_method_type_check_statement (self, m, creturn_type, _tmp600_, TRUE, "self");
3206
 
                _tmp601_ = vala_ccode_identifier_new ("G_TYPE_FROM_INSTANCE");
 
3186
                ValaCCodeConstant* _tmp615_ = NULL;
 
3187
                ValaCCodeConstant* _tmp616_;
 
3188
                ValaCCodeFunction* _tmp617_ = NULL;
 
3189
                ValaCCodeFunction* _tmp618_ = NULL;
 
3190
                _tmp596_ = vala_ccode_base_module_get_current_type_symbol ((ValaCCodeBaseModule*) self);
 
3191
                vala_ccode_method_module_create_method_type_check_statement (self, m, creturn_type, _tmp596_, TRUE, "self");
 
3192
                _tmp597_ = vala_ccode_identifier_new ("G_TYPE_FROM_INSTANCE");
 
3193
                _tmp598_ = _tmp597_;
 
3194
                _tmp599_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp598_);
 
3195
                type_from_instance_call = (_tmp600_ = _tmp599_, _vala_ccode_node_unref0 (_tmp598_), _tmp600_);
 
3196
                _tmp601_ = vala_ccode_identifier_new ("self");
3207
3197
                _tmp602_ = _tmp601_;
3208
 
                _tmp603_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp602_);
3209
 
                type_from_instance_call = (_tmp604_ = _tmp603_, _vala_ccode_node_unref0 (_tmp602_), _tmp604_);
3210
 
                _tmp605_ = vala_ccode_identifier_new ("self");
3211
 
                _tmp606_ = _tmp605_;
3212
 
                vala_ccode_function_call_add_argument (type_from_instance_call, (ValaCCodeExpression*) _tmp606_);
3213
 
                _vala_ccode_node_unref0 (_tmp606_);
3214
 
                _tmp607_ = vala_ccode_identifier_new ("g_type_name");
 
3198
                vala_ccode_function_call_add_argument (type_from_instance_call, (ValaCCodeExpression*) _tmp602_);
 
3199
                _vala_ccode_node_unref0 (_tmp602_);
 
3200
                _tmp603_ = vala_ccode_identifier_new ("g_type_name");
 
3201
                _tmp604_ = _tmp603_;
 
3202
                _tmp605_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp604_);
 
3203
                type_name_call = (_tmp606_ = _tmp605_, _vala_ccode_node_unref0 (_tmp604_), _tmp606_);
 
3204
                vala_ccode_function_call_add_argument (type_name_call, (ValaCCodeExpression*) type_from_instance_call);
 
3205
                _tmp607_ = vala_method_get_cname (m);
3215
3206
                _tmp608_ = _tmp607_;
3216
 
                _tmp609_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp608_);
3217
 
                type_name_call = (_tmp610_ = _tmp609_, _vala_ccode_node_unref0 (_tmp608_), _tmp610_);
3218
 
                vala_ccode_function_call_add_argument (type_name_call, (ValaCCodeExpression*) type_from_instance_call);
3219
 
                _tmp611_ = vala_method_get_cname (m);
 
3207
                _tmp609_ = g_strdup_printf ("\"Type `%%s' does not implement abstract method `%s'\"", _tmp608_);
 
3208
                error_string = (_tmp610_ = _tmp609_, _g_free0 (_tmp608_), _tmp610_);
 
3209
                _tmp611_ = vala_ccode_identifier_new ("g_critical");
3220
3210
                _tmp612_ = _tmp611_;
3221
 
                _tmp613_ = g_strdup_printf ("\"Type `%%s' does not implement abstract method `%s'\"", _tmp612_);
3222
 
                error_string = (_tmp614_ = _tmp613_, _g_free0 (_tmp612_), _tmp614_);
3223
 
                _tmp615_ = vala_ccode_identifier_new ("g_critical");
 
3211
                _tmp613_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp612_);
 
3212
                cerrorcall = (_tmp614_ = _tmp613_, _vala_ccode_node_unref0 (_tmp612_), _tmp614_);
 
3213
                _tmp615_ = vala_ccode_constant_new (error_string);
3224
3214
                _tmp616_ = _tmp615_;
3225
 
                _tmp617_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp616_);
3226
 
                cerrorcall = (_tmp618_ = _tmp617_, _vala_ccode_node_unref0 (_tmp616_), _tmp618_);
3227
 
                _tmp619_ = vala_ccode_constant_new (error_string);
3228
 
                _tmp620_ = _tmp619_;
3229
 
                vala_ccode_function_call_add_argument (cerrorcall, (ValaCCodeExpression*) _tmp620_);
3230
 
                _vala_ccode_node_unref0 (_tmp620_);
 
3215
                vala_ccode_function_call_add_argument (cerrorcall, (ValaCCodeExpression*) _tmp616_);
 
3216
                _vala_ccode_node_unref0 (_tmp616_);
3231
3217
                vala_ccode_function_call_add_argument (cerrorcall, (ValaCCodeExpression*) type_name_call);
3232
 
                _tmp621_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3233
 
                vala_ccode_function_add_expression (_tmp621_, (ValaCCodeExpression*) cerrorcall);
 
3218
                _tmp617_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
3219
                vala_ccode_function_add_expression (_tmp617_, (ValaCCodeExpression*) cerrorcall);
3234
3220
                vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, creturn_type);
3235
 
                _tmp622_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3236
 
                vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, _tmp622_);
 
3221
                _tmp618_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
 
3222
                vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, _tmp618_);
3237
3223
                _vala_ccode_node_unref0 (cerrorcall);
3238
3224
                _g_free0 (error_string);
3239
3225
                _vala_ccode_node_unref0 (type_name_call);
3241
3227
        }
3242
3228
        ((ValaCCodeBaseModule*) self)->in_static_or_class_context = FALSE;
3243
3229
        vala_ccode_base_module_pop_context ((ValaCCodeBaseModule*) self);
3244
 
        _tmp626_ = vala_method_get_is_abstract (m);
3245
 
        if (_tmp626_) {
3246
 
                _tmp625_ = TRUE;
3247
 
        } else {
3248
 
                gboolean _tmp627_;
3249
 
                _tmp627_ = vala_method_get_is_virtual (m);
3250
 
                _tmp625_ = _tmp627_;
3251
 
        }
3252
 
        if (_tmp625_) {
3253
 
                gboolean _tmp628_;
3254
 
                _tmp628_ = vala_method_get_coroutine (m);
3255
 
                _tmp624_ = !_tmp628_;
3256
 
        } else {
3257
 
                _tmp624_ = FALSE;
3258
 
        }
3259
 
        if (_tmp624_) {
3260
 
                ValaSignal* _tmp629_ = NULL;
3261
 
                _tmp629_ = vala_method_get_signal_reference (m);
3262
 
                _tmp623_ = _tmp629_ == NULL;
3263
 
        } else {
3264
 
                _tmp623_ = FALSE;
3265
 
        }
3266
 
        if (_tmp623_) {
3267
 
                ValaHashMap* _tmp630_ = NULL;
3268
 
                ValaHashMap* _tmp631_;
3269
 
                ValaHashMap* _tmp632_ = NULL;
 
3230
        _tmp622_ = vala_method_get_is_abstract (m);
 
3231
        if (_tmp622_) {
 
3232
                _tmp621_ = TRUE;
 
3233
        } else {
 
3234
                gboolean _tmp623_;
 
3235
                _tmp623_ = vala_method_get_is_virtual (m);
 
3236
                _tmp621_ = _tmp623_;
 
3237
        }
 
3238
        if (_tmp621_) {
 
3239
                gboolean _tmp624_;
 
3240
                _tmp624_ = vala_method_get_coroutine (m);
 
3241
                _tmp620_ = !_tmp624_;
 
3242
        } else {
 
3243
                _tmp620_ = FALSE;
 
3244
        }
 
3245
        if (_tmp620_) {
 
3246
                ValaSignal* _tmp625_ = NULL;
 
3247
                _tmp625_ = vala_method_get_signal_reference (m);
 
3248
                _tmp619_ = _tmp625_ == NULL;
 
3249
        } else {
 
3250
                _tmp619_ = FALSE;
 
3251
        }
 
3252
        if (_tmp619_) {
 
3253
                ValaHashMap* _tmp626_ = NULL;
 
3254
                ValaHashMap* _tmp627_;
 
3255
                ValaHashMap* _tmp628_ = NULL;
3270
3256
                ValaHashMap* carg_map;
3271
 
                _tmp630_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, g_direct_hash, g_direct_equal, g_direct_equal);
3272
 
                _tmp631_ = _tmp630_;
 
3257
                _tmp626_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, g_direct_hash, g_direct_equal, g_direct_equal);
 
3258
                _tmp627_ = _tmp626_;
3273
3259
                _vala_map_unref0 (cparam_map);
3274
 
                cparam_map = _tmp631_;
3275
 
                _tmp632_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_EXPRESSION, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, g_direct_hash, g_direct_equal, g_direct_equal);
3276
 
                carg_map = _tmp632_;
 
3260
                cparam_map = _tmp627_;
 
3261
                _tmp628_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_EXPRESSION, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, g_direct_hash, g_direct_equal, g_direct_equal);
 
3262
                carg_map = _tmp628_;
3277
3263
                vala_ccode_method_module_generate_vfunc (self, m, creturn_type, (ValaMap*) cparam_map, (ValaMap*) carg_map, "", 3);
3278
3264
                _vala_map_unref0 (carg_map);
3279
3265
        }
3280
 
        _tmp633_ = vala_method_get_entry_point (m);
3281
 
        if (_tmp633_) {
3282
 
                ValaCCodeFunction* _tmp634_ = NULL;
 
3266
        _tmp629_ = vala_method_get_entry_point (m);
 
3267
        if (_tmp629_) {
 
3268
                ValaCCodeFunction* _tmp630_ = NULL;
3283
3269
                ValaCCodeFunction* cmain;
3284
 
                ValaCCodeLineDirective* _tmp635_ = NULL;
3285
 
                ValaCCodeParameter* _tmp636_ = NULL;
3286
 
                ValaCCodeParameter* _tmp637_;
3287
 
                ValaCCodeParameter* _tmp638_ = NULL;
3288
 
                ValaCCodeParameter* _tmp639_;
3289
 
                ValaCCodeBlock* _tmp640_ = NULL;
 
3270
                ValaCCodeLineDirective* _tmp631_ = NULL;
 
3271
                ValaCCodeParameter* _tmp632_ = NULL;
 
3272
                ValaCCodeParameter* _tmp633_;
 
3273
                ValaCCodeParameter* _tmp634_ = NULL;
 
3274
                ValaCCodeParameter* _tmp635_;
 
3275
                ValaCCodeBlock* _tmp636_ = NULL;
3290
3276
                ValaCCodeBlock* main_block;
3291
 
                ValaCodeContext* _tmp641_ = NULL;
3292
 
                ValaProfile _tmp642_;
3293
 
                const gchar* _tmp672_ = NULL;
3294
 
                ValaCCodeIdentifier* _tmp673_ = NULL;
3295
 
                ValaCCodeIdentifier* _tmp674_;
3296
 
                ValaCCodeFunctionCall* _tmp675_ = NULL;
3297
 
                ValaCCodeFunctionCall* _tmp676_;
 
3277
                ValaCodeContext* _tmp637_ = NULL;
 
3278
                ValaProfile _tmp638_;
 
3279
                const gchar* _tmp668_ = NULL;
 
3280
                ValaCCodeIdentifier* _tmp669_ = NULL;
 
3281
                ValaCCodeIdentifier* _tmp670_;
 
3282
                ValaCCodeFunctionCall* _tmp671_ = NULL;
 
3283
                ValaCCodeFunctionCall* _tmp672_;
3298
3284
                ValaCCodeFunctionCall* main_call;
3299
 
                ValaList* _tmp677_ = NULL;
3300
 
                ValaList* _tmp678_;
3301
 
                gint _tmp679_;
3302
 
                gboolean _tmp680_;
3303
 
                ValaDataType* _tmp685_ = NULL;
3304
 
                _tmp634_ = vala_ccode_function_new ("main", "int");
3305
 
                cmain = _tmp634_;
3306
 
                _tmp635_ = vala_ccode_node_get_line ((ValaCCodeNode*) function);
3307
 
                vala_ccode_node_set_line ((ValaCCodeNode*) cmain, _tmp635_);
3308
 
                _tmp636_ = vala_ccode_parameter_new ("argc", "int");
3309
 
                _tmp637_ = _tmp636_;
3310
 
                vala_ccode_function_add_parameter (cmain, _tmp637_);
3311
 
                _vala_ccode_node_unref0 (_tmp637_);
3312
 
                _tmp638_ = vala_ccode_parameter_new ("argv", "char **");
3313
 
                _tmp639_ = _tmp638_;
3314
 
                vala_ccode_function_add_parameter (cmain, _tmp639_);
3315
 
                _vala_ccode_node_unref0 (_tmp639_);
3316
 
                _tmp640_ = vala_ccode_block_new ();
3317
 
                main_block = _tmp640_;
3318
 
                _tmp641_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
3319
 
                _tmp642_ = vala_code_context_get_profile (_tmp641_);
3320
 
                if (_tmp642_ == VALA_PROFILE_GOBJECT) {
3321
 
                        ValaCodeContext* _tmp643_ = NULL;
3322
 
                        gboolean _tmp644_;
3323
 
                        ValaCodeContext* _tmp654_ = NULL;
3324
 
                        gboolean _tmp655_;
3325
 
                        ValaCCodeIdentifier* _tmp665_ = NULL;
3326
 
                        ValaCCodeIdentifier* _tmp666_;
3327
 
                        ValaCCodeFunctionCall* _tmp667_ = NULL;
3328
 
                        ValaCCodeFunctionCall* _tmp668_;
3329
 
                        ValaCCodeExpressionStatement* _tmp669_ = NULL;
3330
 
                        ValaCCodeExpressionStatement* _tmp670_;
 
3285
                ValaList* _tmp673_ = NULL;
 
3286
                ValaList* _tmp674_;
 
3287
                gint _tmp675_;
 
3288
                gboolean _tmp676_;
 
3289
                ValaDataType* _tmp681_ = NULL;
 
3290
                _tmp630_ = vala_ccode_function_new ("main", "int");
 
3291
                cmain = _tmp630_;
 
3292
                _tmp631_ = vala_ccode_node_get_line ((ValaCCodeNode*) function);
 
3293
                vala_ccode_node_set_line ((ValaCCodeNode*) cmain, _tmp631_);
 
3294
                _tmp632_ = vala_ccode_parameter_new ("argc", "int");
 
3295
                _tmp633_ = _tmp632_;
 
3296
                vala_ccode_function_add_parameter (cmain, _tmp633_);
 
3297
                _vala_ccode_node_unref0 (_tmp633_);
 
3298
                _tmp634_ = vala_ccode_parameter_new ("argv", "char **");
 
3299
                _tmp635_ = _tmp634_;
 
3300
                vala_ccode_function_add_parameter (cmain, _tmp635_);
 
3301
                _vala_ccode_node_unref0 (_tmp635_);
 
3302
                _tmp636_ = vala_ccode_block_new ();
 
3303
                main_block = _tmp636_;
 
3304
                _tmp637_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
 
3305
                _tmp638_ = vala_code_context_get_profile (_tmp637_);
 
3306
                if (_tmp638_ == VALA_PROFILE_GOBJECT) {
 
3307
                        ValaCodeContext* _tmp639_ = NULL;
 
3308
                        gboolean _tmp640_;
 
3309
                        ValaCodeContext* _tmp650_ = NULL;
 
3310
                        gboolean _tmp651_;
 
3311
                        ValaCCodeIdentifier* _tmp661_ = NULL;
 
3312
                        ValaCCodeIdentifier* _tmp662_;
 
3313
                        ValaCCodeFunctionCall* _tmp663_ = NULL;
 
3314
                        ValaCCodeFunctionCall* _tmp664_;
 
3315
                        ValaCCodeExpressionStatement* _tmp665_ = NULL;
 
3316
                        ValaCCodeExpressionStatement* _tmp666_;
3331
3317
                        ValaCCodeExpressionStatement* type_init_call;
3332
 
                        ValaCCodeLineDirective* _tmp671_ = NULL;
3333
 
                        _tmp643_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
3334
 
                        _tmp644_ = vala_code_context_get_mem_profiler (_tmp643_);
3335
 
                        if (_tmp644_) {
3336
 
                                ValaCCodeIdentifier* _tmp645_ = NULL;
3337
 
                                ValaCCodeIdentifier* _tmp646_;
3338
 
                                ValaCCodeFunctionCall* _tmp647_ = NULL;
3339
 
                                ValaCCodeFunctionCall* _tmp648_;
 
3318
                        ValaCCodeLineDirective* _tmp667_ = NULL;
 
3319
                        _tmp639_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
 
3320
                        _tmp640_ = vala_code_context_get_mem_profiler (_tmp639_);
 
3321
                        if (_tmp640_) {
 
3322
                                ValaCCodeIdentifier* _tmp641_ = NULL;
 
3323
                                ValaCCodeIdentifier* _tmp642_;
 
3324
                                ValaCCodeFunctionCall* _tmp643_ = NULL;
 
3325
                                ValaCCodeFunctionCall* _tmp644_;
3340
3326
                                ValaCCodeFunctionCall* mem_profiler_init_call;
3341
 
                                ValaCCodeLineDirective* _tmp649_ = NULL;
3342
 
                                ValaCCodeConstant* _tmp650_ = NULL;
3343
 
                                ValaCCodeConstant* _tmp651_;
3344
 
                                ValaCCodeExpressionStatement* _tmp652_ = NULL;
3345
 
                                ValaCCodeExpressionStatement* _tmp653_;
3346
 
                                _tmp645_ = vala_ccode_identifier_new ("g_mem_set_vtable");
3347
 
                                _tmp646_ = _tmp645_;
3348
 
                                _tmp647_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp646_);
3349
 
                                mem_profiler_init_call = (_tmp648_ = _tmp647_, _vala_ccode_node_unref0 (_tmp646_), _tmp648_);
3350
 
                                _tmp649_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
3351
 
                                vala_ccode_node_set_line ((ValaCCodeNode*) mem_profiler_init_call, _tmp649_);
3352
 
                                _tmp650_ = vala_ccode_constant_new ("glib_mem_profiler_table");
3353
 
                                _tmp651_ = _tmp650_;
3354
 
                                vala_ccode_function_call_add_argument (mem_profiler_init_call, (ValaCCodeExpression*) _tmp651_);
3355
 
                                _vala_ccode_node_unref0 (_tmp651_);
3356
 
                                _tmp652_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) mem_profiler_init_call);
3357
 
                                _tmp653_ = _tmp652_;
3358
 
                                vala_ccode_block_add_statement (main_block, (ValaCCodeNode*) _tmp653_);
3359
 
                                _vala_ccode_node_unref0 (_tmp653_);
 
3327
                                ValaCCodeLineDirective* _tmp645_ = NULL;
 
3328
                                ValaCCodeConstant* _tmp646_ = NULL;
 
3329
                                ValaCCodeConstant* _tmp647_;
 
3330
                                ValaCCodeExpressionStatement* _tmp648_ = NULL;
 
3331
                                ValaCCodeExpressionStatement* _tmp649_;
 
3332
                                _tmp641_ = vala_ccode_identifier_new ("g_mem_set_vtable");
 
3333
                                _tmp642_ = _tmp641_;
 
3334
                                _tmp643_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp642_);
 
3335
                                mem_profiler_init_call = (_tmp644_ = _tmp643_, _vala_ccode_node_unref0 (_tmp642_), _tmp644_);
 
3336
                                _tmp645_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
 
3337
                                vala_ccode_node_set_line ((ValaCCodeNode*) mem_profiler_init_call, _tmp645_);
 
3338
                                _tmp646_ = vala_ccode_constant_new ("glib_mem_profiler_table");
 
3339
                                _tmp647_ = _tmp646_;
 
3340
                                vala_ccode_function_call_add_argument (mem_profiler_init_call, (ValaCCodeExpression*) _tmp647_);
 
3341
                                _vala_ccode_node_unref0 (_tmp647_);
 
3342
                                _tmp648_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) mem_profiler_init_call);
 
3343
                                _tmp649_ = _tmp648_;
 
3344
                                vala_ccode_block_add_statement (main_block, (ValaCCodeNode*) _tmp649_);
 
3345
                                _vala_ccode_node_unref0 (_tmp649_);
3360
3346
                                _vala_ccode_node_unref0 (mem_profiler_init_call);
3361
3347
                        }
3362
 
                        _tmp654_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
3363
 
                        _tmp655_ = vala_code_context_get_thread (_tmp654_);
3364
 
                        if (_tmp655_) {
3365
 
                                ValaCCodeIdentifier* _tmp656_ = NULL;
3366
 
                                ValaCCodeIdentifier* _tmp657_;
3367
 
                                ValaCCodeFunctionCall* _tmp658_ = NULL;
3368
 
                                ValaCCodeFunctionCall* _tmp659_;
 
3348
                        _tmp650_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
 
3349
                        _tmp651_ = vala_code_context_get_thread (_tmp650_);
 
3350
                        if (_tmp651_) {
 
3351
                                ValaCCodeIdentifier* _tmp652_ = NULL;
 
3352
                                ValaCCodeIdentifier* _tmp653_;
 
3353
                                ValaCCodeFunctionCall* _tmp654_ = NULL;
 
3354
                                ValaCCodeFunctionCall* _tmp655_;
3369
3355
                                ValaCCodeFunctionCall* thread_init_call;
3370
 
                                ValaCCodeLineDirective* _tmp660_ = NULL;
3371
 
                                ValaCCodeConstant* _tmp661_ = NULL;
3372
 
                                ValaCCodeConstant* _tmp662_;
3373
 
                                ValaCCodeExpressionStatement* _tmp663_ = NULL;
3374
 
                                ValaCCodeExpressionStatement* _tmp664_;
3375
 
                                _tmp656_ = vala_ccode_identifier_new ("g_thread_init");
3376
 
                                _tmp657_ = _tmp656_;
3377
 
                                _tmp658_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp657_);
3378
 
                                thread_init_call = (_tmp659_ = _tmp658_, _vala_ccode_node_unref0 (_tmp657_), _tmp659_);
3379
 
                                _tmp660_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
3380
 
                                vala_ccode_node_set_line ((ValaCCodeNode*) thread_init_call, _tmp660_);
3381
 
                                _tmp661_ = vala_ccode_constant_new ("NULL");
3382
 
                                _tmp662_ = _tmp661_;
3383
 
                                vala_ccode_function_call_add_argument (thread_init_call, (ValaCCodeExpression*) _tmp662_);
3384
 
                                _vala_ccode_node_unref0 (_tmp662_);
3385
 
                                _tmp663_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) thread_init_call);
3386
 
                                _tmp664_ = _tmp663_;
3387
 
                                vala_ccode_block_add_statement (main_block, (ValaCCodeNode*) _tmp664_);
3388
 
                                _vala_ccode_node_unref0 (_tmp664_);
 
3356
                                ValaCCodeLineDirective* _tmp656_ = NULL;
 
3357
                                ValaCCodeConstant* _tmp657_ = NULL;
 
3358
                                ValaCCodeConstant* _tmp658_;
 
3359
                                ValaCCodeExpressionStatement* _tmp659_ = NULL;
 
3360
                                ValaCCodeExpressionStatement* _tmp660_;
 
3361
                                _tmp652_ = vala_ccode_identifier_new ("g_thread_init");
 
3362
                                _tmp653_ = _tmp652_;
 
3363
                                _tmp654_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp653_);
 
3364
                                thread_init_call = (_tmp655_ = _tmp654_, _vala_ccode_node_unref0 (_tmp653_), _tmp655_);
 
3365
                                _tmp656_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
 
3366
                                vala_ccode_node_set_line ((ValaCCodeNode*) thread_init_call, _tmp656_);
 
3367
                                _tmp657_ = vala_ccode_constant_new ("NULL");
 
3368
                                _tmp658_ = _tmp657_;
 
3369
                                vala_ccode_function_call_add_argument (thread_init_call, (ValaCCodeExpression*) _tmp658_);
 
3370
                                _vala_ccode_node_unref0 (_tmp658_);
 
3371
                                _tmp659_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) thread_init_call);
 
3372
                                _tmp660_ = _tmp659_;
 
3373
                                vala_ccode_block_add_statement (main_block, (ValaCCodeNode*) _tmp660_);
 
3374
                                _vala_ccode_node_unref0 (_tmp660_);
3389
3375
                                _vala_ccode_node_unref0 (thread_init_call);
3390
3376
                        }
3391
 
                        _tmp665_ = vala_ccode_identifier_new ("g_type_init");
3392
 
                        _tmp666_ = _tmp665_;
3393
 
                        _tmp667_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp666_);
3394
 
                        _tmp668_ = _tmp667_;
3395
 
                        _tmp669_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp668_);
3396
 
                        type_init_call = (_tmp670_ = _tmp669_, _vala_ccode_node_unref0 (_tmp668_), _vala_ccode_node_unref0 (_tmp666_), _tmp670_);
3397
 
                        _tmp671_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
3398
 
                        vala_ccode_node_set_line ((ValaCCodeNode*) type_init_call, _tmp671_);
 
3377
                        _tmp661_ = vala_ccode_identifier_new ("g_type_init");
 
3378
                        _tmp662_ = _tmp661_;
 
3379
                        _tmp663_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp662_);
 
3380
                        _tmp664_ = _tmp663_;
 
3381
                        _tmp665_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp664_);
 
3382
                        type_init_call = (_tmp666_ = _tmp665_, _vala_ccode_node_unref0 (_tmp664_), _vala_ccode_node_unref0 (_tmp662_), _tmp666_);
 
3383
                        _tmp667_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
 
3384
                        vala_ccode_node_set_line ((ValaCCodeNode*) type_init_call, _tmp667_);
3399
3385
                        vala_ccode_block_add_statement (main_block, (ValaCCodeNode*) type_init_call);
3400
3386
                        _vala_ccode_node_unref0 (type_init_call);
3401
3387
                }
3402
 
                _tmp672_ = vala_ccode_function_get_name (function);
3403
 
                _tmp673_ = vala_ccode_identifier_new (_tmp672_);
 
3388
                _tmp668_ = vala_ccode_function_get_name (function);
 
3389
                _tmp669_ = vala_ccode_identifier_new (_tmp668_);
 
3390
                _tmp670_ = _tmp669_;
 
3391
                _tmp671_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp670_);
 
3392
                main_call = (_tmp672_ = _tmp671_, _vala_ccode_node_unref0 (_tmp670_), _tmp672_);
 
3393
                _tmp673_ = vala_method_get_parameters (m);
3404
3394
                _tmp674_ = _tmp673_;
3405
 
                _tmp675_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp674_);
3406
 
                main_call = (_tmp676_ = _tmp675_, _vala_ccode_node_unref0 (_tmp674_), _tmp676_);
3407
 
                _tmp677_ = vala_method_get_parameters (m);
3408
 
                _tmp678_ = _tmp677_;
3409
 
                _tmp679_ = vala_collection_get_size ((ValaCollection*) _tmp678_);
3410
 
                if ((_tmp680_ = _tmp679_ == 1, _vala_iterable_unref0 (_tmp678_), _tmp680_)) {
3411
 
                        ValaCCodeIdentifier* _tmp681_ = NULL;
3412
 
                        ValaCCodeIdentifier* _tmp682_;
3413
 
                        ValaCCodeIdentifier* _tmp683_ = NULL;
3414
 
                        ValaCCodeIdentifier* _tmp684_;
3415
 
                        _tmp681_ = vala_ccode_identifier_new ("argv");
3416
 
                        _tmp682_ = _tmp681_;
3417
 
                        vala_ccode_function_call_add_argument (main_call, (ValaCCodeExpression*) _tmp682_);
3418
 
                        _vala_ccode_node_unref0 (_tmp682_);
3419
 
                        _tmp683_ = vala_ccode_identifier_new ("argc");
3420
 
                        _tmp684_ = _tmp683_;
3421
 
                        vala_ccode_function_call_add_argument (main_call, (ValaCCodeExpression*) _tmp684_);
3422
 
                        _vala_ccode_node_unref0 (_tmp684_);
 
3395
                _tmp675_ = vala_collection_get_size ((ValaCollection*) _tmp674_);
 
3396
                if ((_tmp676_ = _tmp675_ == 1, _vala_iterable_unref0 (_tmp674_), _tmp676_)) {
 
3397
                        ValaCCodeIdentifier* _tmp677_ = NULL;
 
3398
                        ValaCCodeIdentifier* _tmp678_;
 
3399
                        ValaCCodeIdentifier* _tmp679_ = NULL;
 
3400
                        ValaCCodeIdentifier* _tmp680_;
 
3401
                        _tmp677_ = vala_ccode_identifier_new ("argv");
 
3402
                        _tmp678_ = _tmp677_;
 
3403
                        vala_ccode_function_call_add_argument (main_call, (ValaCCodeExpression*) _tmp678_);
 
3404
                        _vala_ccode_node_unref0 (_tmp678_);
 
3405
                        _tmp679_ = vala_ccode_identifier_new ("argc");
 
3406
                        _tmp680_ = _tmp679_;
 
3407
                        vala_ccode_function_call_add_argument (main_call, (ValaCCodeExpression*) _tmp680_);
 
3408
                        _vala_ccode_node_unref0 (_tmp680_);
3423
3409
                }
3424
 
                _tmp685_ = vala_method_get_return_type (m);
3425
 
                if (VALA_IS_VOID_TYPE (_tmp685_)) {
3426
 
                        ValaCCodeExpressionStatement* _tmp686_ = NULL;
 
3410
                _tmp681_ = vala_method_get_return_type (m);
 
3411
                if (VALA_IS_VOID_TYPE (_tmp681_)) {
 
3412
                        ValaCCodeExpressionStatement* _tmp682_ = NULL;
3427
3413
                        ValaCCodeExpressionStatement* main_stmt;
3428
 
                        ValaCCodeLineDirective* _tmp687_ = NULL;
3429
 
                        ValaCCodeConstant* _tmp688_ = NULL;
3430
 
                        ValaCCodeConstant* _tmp689_;
3431
 
                        ValaCCodeReturnStatement* _tmp690_ = NULL;
3432
 
                        ValaCCodeReturnStatement* _tmp691_;
 
3414
                        ValaCCodeLineDirective* _tmp683_ = NULL;
 
3415
                        ValaCCodeConstant* _tmp684_ = NULL;
 
3416
                        ValaCCodeConstant* _tmp685_;
 
3417
                        ValaCCodeReturnStatement* _tmp686_ = NULL;
 
3418
                        ValaCCodeReturnStatement* _tmp687_;
3433
3419
                        ValaCCodeReturnStatement* ret_stmt;
3434
 
                        ValaCCodeLineDirective* _tmp692_ = NULL;
3435
 
                        _tmp686_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) main_call);
3436
 
                        main_stmt = _tmp686_;
3437
 
                        _tmp687_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
3438
 
                        vala_ccode_node_set_line ((ValaCCodeNode*) main_stmt, _tmp687_);
 
3420
                        ValaCCodeLineDirective* _tmp688_ = NULL;
 
3421
                        _tmp682_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) main_call);
 
3422
                        main_stmt = _tmp682_;
 
3423
                        _tmp683_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
 
3424
                        vala_ccode_node_set_line ((ValaCCodeNode*) main_stmt, _tmp683_);
3439
3425
                        vala_ccode_block_add_statement (main_block, (ValaCCodeNode*) main_stmt);
3440
 
                        _tmp688_ = vala_ccode_constant_new ("0");
3441
 
                        _tmp689_ = _tmp688_;
3442
 
                        _tmp690_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp689_);
3443
 
                        ret_stmt = (_tmp691_ = _tmp690_, _vala_ccode_node_unref0 (_tmp689_), _tmp691_);
3444
 
                        _tmp692_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
3445
 
                        vala_ccode_node_set_line ((ValaCCodeNode*) ret_stmt, _tmp692_);
 
3426
                        _tmp684_ = vala_ccode_constant_new ("0");
 
3427
                        _tmp685_ = _tmp684_;
 
3428
                        _tmp686_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) _tmp685_);
 
3429
                        ret_stmt = (_tmp687_ = _tmp686_, _vala_ccode_node_unref0 (_tmp685_), _tmp687_);
 
3430
                        _tmp688_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
 
3431
                        vala_ccode_node_set_line ((ValaCCodeNode*) ret_stmt, _tmp688_);
3446
3432
                        vala_ccode_block_add_statement (main_block, (ValaCCodeNode*) ret_stmt);
3447
3433
                        _vala_ccode_node_unref0 (ret_stmt);
3448
3434
                        _vala_ccode_node_unref0 (main_stmt);
3449
3435
                } else {
3450
 
                        ValaCCodeReturnStatement* _tmp693_ = NULL;
 
3436
                        ValaCCodeReturnStatement* _tmp689_ = NULL;
3451
3437
                        ValaCCodeReturnStatement* main_stmt;
3452
 
                        ValaCCodeLineDirective* _tmp694_ = NULL;
3453
 
                        _tmp693_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) main_call);
3454
 
                        main_stmt = _tmp693_;
3455
 
                        _tmp694_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
3456
 
                        vala_ccode_node_set_line ((ValaCCodeNode*) main_stmt, _tmp694_);
 
3438
                        ValaCCodeLineDirective* _tmp690_ = NULL;
 
3439
                        _tmp689_ = vala_ccode_return_statement_new ((ValaCCodeExpression*) main_call);
 
3440
                        main_stmt = _tmp689_;
 
3441
                        _tmp690_ = vala_ccode_node_get_line ((ValaCCodeNode*) cmain);
 
3442
                        vala_ccode_node_set_line ((ValaCCodeNode*) main_stmt, _tmp690_);
3457
3443
                        vala_ccode_block_add_statement (main_block, (ValaCCodeNode*) main_stmt);
3458
3444
                        _vala_ccode_node_unref0 (main_stmt);
3459
3445
                }
4257
4243
                        }
4258
4244
                        _tmp189_ = vala_ccode_method_module_generate_parameter (self, param, decl_space, cparam_map, carg_map);
4259
4245
                        _tmp190_ = _tmp189_;
4260
 
                        _tmp190_;
4261
4246
                        _vala_ccode_node_unref0 (_tmp190_);
4262
4247
                        _vala_code_node_unref0 (param);
4263
4248
                }
4349
4334
 
4350
4335
static gchar* string_substring (const gchar* self, glong offset, glong len) {
4351
4336
        gchar* result = NULL;
4352
 
        glong _tmp0_;
 
4337
        gint _tmp0_;
4353
4338
        glong string_length;
4354
4339
        const gchar* _tmp1_ = NULL;
4355
4340
        const gchar* start;
4357
4342
        gchar* _tmp3_ = NULL;
4358
4343
        g_return_val_if_fail (self != NULL, NULL);
4359
4344
        _tmp0_ = strlen (self);
4360
 
        string_length = _tmp0_;
 
4345
        string_length = (glong) _tmp0_;
4361
4346
        if (offset < 0) {
4362
4347
                offset = string_length + offset;
4363
4348
                g_return_val_if_fail (offset >= 0, NULL);
4430
4415
                _tmp3_ = FALSE;
4431
4416
        }
4432
4417
        if (_tmp3_) {
4433
 
                glong _tmp5_;
4434
 
                glong _tmp6_;
 
4418
                gint _tmp5_;
 
4419
                gint _tmp6_;
4435
4420
                gchar* _tmp7_ = NULL;
4436
4421
                gchar* _tmp8_;
4437
4422
                _tmp5_ = strlen (cname);
4438
4423
                _tmp6_ = strlen ("_async");
4439
 
                _tmp7_ = string_substring (cname, (glong) 0, _tmp5_ - _tmp6_);
 
4424
                _tmp7_ = string_substring (cname, (glong) 0, (glong) (_tmp5_ - _tmp6_));
4440
4425
                _tmp8_ = _tmp7_;
4441
4426
                _g_free0 (cname);
4442
4427
                cname = _tmp8_;
4522
4507
                _tmp38_ = FALSE;
4523
4508
        }
4524
4509
        if (_tmp38_) {
4525
 
                glong _tmp40_;
4526
 
                glong _tmp41_;
 
4510
                gint _tmp40_;
 
4511
                gint _tmp41_;
4527
4512
                gchar* _tmp42_ = NULL;
4528
4513
                gchar* _tmp43_;
4529
4514
                _tmp40_ = strlen (cname);
4530
4515
                _tmp41_ = strlen ("_async");
4531
 
                _tmp42_ = string_substring (cname, (glong) 0, _tmp40_ - _tmp41_);
 
4516
                _tmp42_ = string_substring (cname, (glong) 0, (glong) (_tmp40_ - _tmp41_));
4532
4517
                _tmp43_ = _tmp42_;
4533
4518
                _g_free0 (cname);
4534
4519
                cname = _tmp43_;