~ubuntu-branches/ubuntu/hardy/vala/hardy

« back to all changes in this revision

Viewing changes to vala/valamethod.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge, Marc-Andre Lureau, Sebastian Dröge
  • Date: 2007-10-15 14:37:51 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20071015143751-zy7hqcyjutdyfkg3
Tags: 0.1.4-1
[ Marc-Andre Lureau ]
* New Upstream Version
* debian/patches:
  + Remove patch no longer needed in 0.1.4
* debian/rules
  + Add xsltproc build dependency for the Vala manual.
  + Add libenchant-dev build dependency for enchant test case.
* debian/control, debian/vala-doc.install:
  + Add a "vala-doc" documentation package.

[ Sebastian Dröge ]
* debian/control:
  + Let vala-doc suggest valac/devhelp and don't depend on libvala0.
* debian/libvala-dev.install:
  + Add the new vapicheck utility.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
 * This library is free software; you can redistribute it and/or
6
6
 * modify it under the terms of the GNU Lesser General Public
7
7
 * License as published by the Free Software Foundation; either
8
 
 * version 2 of the License, or (at your option) any later version.
 
8
 * version 2.1 of the License, or (at your option) any later version.
9
9
 
10
10
 * This library is distributed in the hope that it will be useful,
11
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
21
 *      Raffaele Sandrini <rasa@gmx.ch>
22
22
 */
23
23
 
24
 
#include "valamethod.h"
 
24
#include <vala/valamethod.h>
25
25
#include <gee/arraylist.h>
26
26
#include <gee/list.h>
27
27
#include <gee/readonlycollection.h>
29
29
#include <gee/iterator.h>
30
30
#include <vala/valatypereference.h>
31
31
#include <vala/valablock.h>
32
 
#include <vala/valamethod.h>
33
32
#include <vala/valaformalparameter.h>
34
33
#include <vala/valasourcereference.h>
35
34
#include <vala/valasymbol.h>
45
44
        gboolean _overrides;
46
45
        gboolean _returns_modified_pointer;
47
46
        gboolean _instance_last;
48
 
        gboolean _instance_by_reference;
49
47
        ValaMethod* _base_method;
50
48
        ValaMethod* _base_interface_method;
51
49
        ValaFormalParameter* _this_parameter;
53
51
        gboolean _instance;
54
52
        GeeList* parameters;
55
53
        char* cname;
 
54
        char* _vfunc_name;
 
55
        char* _sentinel;
56
56
        gboolean _no_array_length;
57
57
        GeeList* error_domains;
58
58
};
62
62
        VALA_METHOD_RETURN_TYPE,
63
63
        VALA_METHOD_BODY,
64
64
        VALA_METHOD_INSTANCE,
 
65
        VALA_METHOD_VFUNC_NAME,
 
66
        VALA_METHOD_SENTINEL,
65
67
        VALA_METHOD_IS_ABSTRACT,
66
68
        VALA_METHOD_IS_VIRTUAL,
67
69
        VALA_METHOD_OVERRIDES,
68
70
        VALA_METHOD_RETURNS_MODIFIED_POINTER,
69
71
        VALA_METHOD_INSTANCE_LAST,
70
 
        VALA_METHOD_INSTANCE_BY_REFERENCE,
71
72
        VALA_METHOD_BASE_METHOD,
72
73
        VALA_METHOD_BASE_INTERFACE_METHOD,
73
74
        VALA_METHOD_THIS_PARAMETER,
84
85
static gpointer vala_method_parent_class = NULL;
85
86
static ValaInvokableIface* vala_method_vala_invokable_parent_iface = NULL;
86
87
static void vala_method_dispose (GObject * obj);
 
88
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
87
89
 
88
90
 
89
91
/**
94
96
 * @param source      reference to source code
95
97
 * @return            newly created method
96
98
 */
97
 
ValaMethod* vala_method_new (const char* name, ValaTypeReference* return_type, ValaSourceReference* source_reference)
98
 
{
 
99
ValaMethod* vala_method_new (const char* name, ValaTypeReference* return_type, ValaSourceReference* source_reference) {
99
100
        ValaMethod * self;
100
101
        g_return_val_if_fail (return_type == NULL || VALA_IS_TYPE_REFERENCE (return_type), NULL);
101
102
        g_return_val_if_fail (source_reference == NULL || VALA_IS_SOURCE_REFERENCE (source_reference), NULL);
112
113
 *
113
114
 * @param param a formal parameter
114
115
 */
115
 
void vala_method_add_parameter (ValaMethod* self, ValaFormalParameter* param)
116
 
{
 
116
void vala_method_add_parameter (ValaMethod* self, ValaFormalParameter* param) {
117
117
        g_return_if_fail (VALA_IS_METHOD (self));
118
118
        g_return_if_fail (VALA_IS_FORMAL_PARAMETER (param));
119
119
        if (vala_method_get_no_array_length (self)) {
121
121
        }
122
122
        gee_collection_add (GEE_COLLECTION (self->priv->parameters), param);
123
123
        if (!vala_formal_parameter_get_ellipsis (param)) {
124
 
                vala_scope_add (vala_symbol_get_scope (((ValaSymbol*) self)), vala_symbol_get_name (((ValaSymbol*) param)), VALA_SYMBOL (param));
 
124
                vala_scope_add (vala_symbol_get_scope (VALA_SYMBOL (self)), vala_symbol_get_name (VALA_SYMBOL (param)), VALA_SYMBOL (param));
125
125
        }
126
126
}
127
127
 
128
128
 
129
 
static GeeCollection* vala_method_real_get_parameters (ValaInvokable* base)
130
 
{
 
129
static GeeCollection* vala_method_real_get_parameters (ValaInvokable* base) {
131
130
        ValaMethod * self;
132
 
        self = ((ValaMethod*) base);
 
131
        self = VALA_METHOD (base);
133
132
        return GEE_COLLECTION (gee_read_only_collection_new (g_object_ref, g_object_unref, GEE_COLLECTION (self->priv->parameters)));
134
133
}
135
134
 
136
135
 
137
 
static ValaTypeReference* vala_method_real_get_return_type (ValaInvokable* base)
138
 
{
 
136
static ValaTypeReference* vala_method_real_get_return_type (ValaInvokable* base) {
139
137
        ValaMethod * self;
140
 
        ValaTypeReference* __temp1;
141
 
        self = ((ValaMethod*) base);
142
 
        __temp1 = NULL;
143
 
        return (__temp1 = vala_method_get_return_type (self), (__temp1 == NULL ? NULL : g_object_ref (__temp1)));
 
138
        ValaTypeReference* _tmp0;
 
139
        self = VALA_METHOD (base);
 
140
        _tmp0 = NULL;
 
141
        return (_tmp0 = vala_method_get_return_type (self), (_tmp0 == NULL ? NULL : g_object_ref (_tmp0)));
144
142
}
145
143
 
146
144
 
147
 
static gboolean vala_method_real_is_invokable (ValaInvokable* base)
148
 
{
 
145
static gboolean vala_method_real_is_invokable (ValaInvokable* base) {
149
146
        ValaMethod * self;
150
 
        self = ((ValaMethod*) base);
 
147
        self = VALA_METHOD (base);
151
148
        return TRUE;
152
149
}
153
150
 
154
151
 
155
 
static void vala_method_real_accept (ValaCodeNode* base, ValaCodeVisitor* visitor)
156
 
{
 
152
static void vala_method_real_accept (ValaCodeNode* base, ValaCodeVisitor* visitor) {
157
153
        ValaMethod * self;
158
 
        self = ((ValaMethod*) base);
 
154
        self = VALA_METHOD (base);
159
155
        g_return_if_fail (VALA_IS_CODE_VISITOR (visitor));
160
156
        vala_code_visitor_visit_method (visitor, self);
161
157
}
162
158
 
163
159
 
164
 
static void vala_method_real_accept_children (ValaCodeNode* base, ValaCodeVisitor* visitor)
165
 
{
 
160
static void vala_method_real_accept_children (ValaCodeNode* base, ValaCodeVisitor* visitor) {
166
161
        ValaMethod * self;
167
 
        self = ((ValaMethod*) base);
 
162
        self = VALA_METHOD (base);
168
163
        g_return_if_fail (VALA_IS_CODE_VISITOR (visitor));
169
164
        if (vala_method_get_return_type (self) != NULL) {
170
165
                vala_code_node_accept (VALA_CODE_NODE (vala_method_get_return_type (self)), visitor);
210
205
 *
211
206
 * @return the name to be used in C code
212
207
 */
213
 
char* vala_method_get_cname (ValaMethod* self)
214
 
{
215
 
        const char* __temp5;
 
208
char* vala_method_get_cname (ValaMethod* self) {
 
209
        const char* _tmp1;
216
210
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
217
211
        if (self->priv->cname == NULL) {
218
 
                char* __temp4;
219
 
                __temp4 = NULL;
220
 
                self->priv->cname = (__temp4 = vala_method_get_default_cname (self), (self->priv->cname = (g_free (self->priv->cname), NULL)), __temp4);
 
212
                char* _tmp0;
 
213
                _tmp0 = NULL;
 
214
                self->priv->cname = (_tmp0 = vala_method_get_default_cname (self), (self->priv->cname = (g_free (self->priv->cname), NULL)), _tmp0);
221
215
        }
222
 
        __temp5 = NULL;
223
 
        return (__temp5 = self->priv->cname, (__temp5 == NULL ? NULL : g_strdup (__temp5)));
 
216
        _tmp1 = NULL;
 
217
        return (_tmp1 = self->priv->cname, (_tmp1 == NULL ? NULL : g_strdup (_tmp1)));
224
218
}
225
219
 
226
220
 
230
224
 *
231
225
 * @return the name to be used in C code by default
232
226
 */
233
 
static char* vala_method_real_get_default_cname (ValaMethod* self)
234
 
{
 
227
static char* vala_method_real_get_default_cname (ValaMethod* self) {
235
228
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
236
 
        if (g_str_has_prefix (vala_symbol_get_name (((ValaSymbol*) self)), "_")) {
237
 
                char* __temp7;
238
 
                char* __temp8;
239
 
                __temp7 = NULL;
240
 
                __temp8 = NULL;
241
 
                return (__temp8 = g_strdup_printf ("_%s%s", (__temp7 = vala_symbol_get_lower_case_cprefix (vala_symbol_get_parent_symbol (((ValaSymbol*) self)))), g_utf8_offset_to_pointer (vala_symbol_get_name (((ValaSymbol*) self)), 1)), (__temp7 = (g_free (__temp7), NULL)), __temp8);
 
229
        if (g_str_has_prefix (vala_symbol_get_name (VALA_SYMBOL (self)), "_")) {
 
230
                char* _tmp0;
 
231
                char* _tmp1;
 
232
                _tmp0 = NULL;
 
233
                _tmp1 = NULL;
 
234
                return (_tmp1 = g_strdup_printf ("_%s%s", (_tmp0 = vala_symbol_get_lower_case_cprefix (vala_symbol_get_parent_symbol (VALA_SYMBOL (self)))), g_utf8_offset_to_pointer (vala_symbol_get_name (VALA_SYMBOL (self)), 1)), (_tmp0 = (g_free (_tmp0), NULL)), _tmp1);
242
235
        } else {
243
 
                char* __temp10;
244
 
                char* __temp11;
245
 
                __temp10 = NULL;
246
 
                __temp11 = NULL;
247
 
                return (__temp11 = g_strdup_printf ("%s%s", (__temp10 = vala_symbol_get_lower_case_cprefix (vala_symbol_get_parent_symbol (((ValaSymbol*) self)))), vala_symbol_get_name (((ValaSymbol*) self))), (__temp10 = (g_free (__temp10), NULL)), __temp11);
 
236
                char* _tmp3;
 
237
                char* _tmp4;
 
238
                _tmp3 = NULL;
 
239
                _tmp4 = NULL;
 
240
                return (_tmp4 = g_strdup_printf ("%s%s", (_tmp3 = vala_symbol_get_lower_case_cprefix (vala_symbol_get_parent_symbol (VALA_SYMBOL (self)))), vala_symbol_get_name (VALA_SYMBOL (self))), (_tmp3 = (g_free (_tmp3), NULL)), _tmp4);
248
241
        }
249
242
}
250
243
 
251
244
 
252
 
char* vala_method_get_default_cname (ValaMethod* self)
253
 
{
 
245
char* vala_method_get_default_cname (ValaMethod* self) {
254
246
        return VALA_METHOD_GET_CLASS (self)->get_default_cname (self);
255
247
}
256
248
 
261
253
 *
262
254
 * @return the name to be used in C code
263
255
 */
264
 
char* vala_method_get_real_cname (ValaMethod* self)
265
 
{
 
256
char* vala_method_get_real_cname (ValaMethod* self) {
266
257
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
267
258
        if (vala_method_get_base_method (self) != NULL || vala_method_get_base_interface_method (self) != NULL) {
268
 
                char* __temp13;
269
 
                char* __temp14;
270
 
                __temp13 = NULL;
271
 
                __temp14 = NULL;
272
 
                return (__temp14 = g_strdup_printf ("%s_real_%s", (__temp13 = vala_symbol_get_lower_case_cname (vala_symbol_get_parent_symbol (((ValaSymbol*) self)), NULL)), vala_symbol_get_name (((ValaSymbol*) self))), (__temp13 = (g_free (__temp13), NULL)), __temp14);
 
259
                char* _tmp0;
 
260
                char* _tmp1;
 
261
                _tmp0 = NULL;
 
262
                _tmp1 = NULL;
 
263
                return (_tmp1 = g_strdup_printf ("%s_real_%s", (_tmp0 = vala_symbol_get_lower_case_cname (vala_symbol_get_parent_symbol (VALA_SYMBOL (self)), NULL)), vala_symbol_get_name (VALA_SYMBOL (self))), (_tmp0 = (g_free (_tmp0), NULL)), _tmp1);
273
264
        } else {
274
265
                return vala_method_get_cname (self);
275
266
        }
281
272
 *
282
273
 * @param cname the name to be used in C code
283
274
 */
284
 
void vala_method_set_cname (ValaMethod* self, const char* cname)
285
 
{
286
 
        char* __temp18;
287
 
        const char* __temp17;
 
275
void vala_method_set_cname (ValaMethod* self, const char* cname) {
 
276
        char* _tmp1;
 
277
        const char* _tmp0;
288
278
        g_return_if_fail (VALA_IS_METHOD (self));
289
 
        __temp18 = NULL;
290
 
        __temp17 = NULL;
291
 
        self->priv->cname = (__temp18 = (__temp17 = cname, (__temp17 == NULL ? NULL : g_strdup (__temp17))), (self->priv->cname = (g_free (self->priv->cname), NULL)), __temp18);
 
279
        _tmp1 = NULL;
 
280
        _tmp0 = NULL;
 
281
        self->priv->cname = (_tmp1 = (_tmp0 = cname, (_tmp0 == NULL ? NULL : g_strdup (_tmp0))), (self->priv->cname = (g_free (self->priv->cname), NULL)), _tmp1);
292
282
}
293
283
 
294
284
 
295
 
static void vala_method_process_ccode_attribute (ValaMethod* self, ValaAttribute* a)
296
 
{
 
285
static void vala_method_process_ccode_attribute (ValaMethod* self, ValaAttribute* a) {
297
286
        g_return_if_fail (VALA_IS_METHOD (self));
298
287
        g_return_if_fail (a == NULL || VALA_IS_ATTRIBUTE (a));
299
288
        if (vala_attribute_has_argument (a, "cname")) {
300
 
                char* __temp19;
301
 
                __temp19 = NULL;
302
 
                vala_method_set_cname (self, (__temp19 = vala_attribute_get_string (a, "cname")));
303
 
                (__temp19 = (g_free (__temp19), NULL));
 
289
                char* _tmp0;
 
290
                _tmp0 = NULL;
 
291
                vala_method_set_cname (self, (_tmp0 = vala_attribute_get_string (a, "cname")));
 
292
                (_tmp0 = (g_free (_tmp0), NULL));
304
293
        }
305
294
        if (vala_attribute_has_argument (a, "cheader_filename")) {
306
295
                char* val;
308
297
                {
309
298
                        char** filename_collection;
310
299
                        char** filename_it;
 
300
                        int filename_collection_length1;
311
301
                        filename_collection = g_strsplit (val, ",", 0);
 
302
                        filename_collection_length1 = -1;
312
303
                        for (filename_it = filename_collection; *filename_it != NULL; filename_it = filename_it + 1) {
313
 
                                const char* __temp20;
 
304
                                const char* _tmp1;
314
305
                                char* filename;
315
 
                                __temp20 = NULL;
316
 
                                filename = (__temp20 = *filename_it, (__temp20 == NULL ? NULL : g_strdup (__temp20)));
 
306
                                _tmp1 = NULL;
 
307
                                filename = (_tmp1 = *filename_it, (_tmp1 == NULL ? NULL : g_strdup (_tmp1)));
317
308
                                {
318
309
                                        vala_member_add_cheader_filename (VALA_MEMBER (self), filename);
319
310
                                        (filename = (g_free (filename), NULL));
320
311
                                }
321
312
                        }
322
 
                        (filename_collection = (g_strfreev (filename_collection), NULL));
 
313
                        (filename_collection = (_vala_array_free (filename_collection, filename_collection_length1, ((GDestroyNotify) g_free)), NULL));
323
314
                }
324
315
                (val = (g_free (val), NULL));
325
316
        }
 
317
        if (vala_attribute_has_argument (a, "vfunc_name")) {
 
318
                char* _tmp2;
 
319
                _tmp2 = NULL;
 
320
                vala_method_set_vfunc_name (self, (_tmp2 = vala_attribute_get_string (a, "vfunc_name")));
 
321
                (_tmp2 = (g_free (_tmp2), NULL));
 
322
        }
 
323
        if (vala_attribute_has_argument (a, "sentinel")) {
 
324
                char* _tmp3;
 
325
                _tmp3 = NULL;
 
326
                vala_method_set_sentinel (self, (_tmp3 = vala_attribute_get_string (a, "sentinel")));
 
327
                (_tmp3 = (g_free (_tmp3), NULL));
 
328
        }
326
329
}
327
330
 
328
331
 
329
332
/**
330
333
 * Process all associated attributes.
331
334
 */
332
 
void vala_method_process_attributes (ValaMethod* self)
333
 
{
 
335
void vala_method_process_attributes (ValaMethod* self) {
334
336
        g_return_if_fail (VALA_IS_METHOD (self));
335
337
        {
336
338
                GList* a_collection;
337
339
                GList* a_it;
338
 
                a_collection = ((ValaCodeNode*) self)->attributes;
 
340
                a_collection = VALA_CODE_NODE (self)->attributes;
339
341
                for (a_it = a_collection; a_it != NULL; a_it = a_it->next) {
340
 
                        ValaAttribute* __temp21;
 
342
                        ValaAttribute* _tmp0;
341
343
                        ValaAttribute* a;
342
 
                        __temp21 = NULL;
343
 
                        a = (__temp21 = a_it->data, (__temp21 == NULL ? NULL : g_object_ref (__temp21)));
 
344
                        _tmp0 = NULL;
 
345
                        a = (_tmp0 = a_it->data, (_tmp0 == NULL ? NULL : g_object_ref (_tmp0)));
344
346
                        {
345
347
                                if (g_utf8_collate (vala_attribute_get_name (a), "CCode") == 0) {
346
348
                                        vala_method_process_ccode_attribute (self, a);
351
353
                                                if (g_utf8_collate (vala_attribute_get_name (a), "InstanceLast") == 0) {
352
354
                                                        vala_method_set_instance_last (self, TRUE);
353
355
                                                } else {
354
 
                                                        if (g_utf8_collate (vala_attribute_get_name (a), "InstanceByReference") == 0) {
355
 
                                                                vala_method_set_instance_by_reference (self, TRUE);
 
356
                                                        if (g_utf8_collate (vala_attribute_get_name (a), "FloatingReference") == 0) {
 
357
                                                                vala_type_reference_set_floating_reference (vala_method_get_return_type (self), TRUE);
356
358
                                                        } else {
357
 
                                                                if (g_utf8_collate (vala_attribute_get_name (a), "FloatingReference") == 0) {
358
 
                                                                        vala_type_reference_set_floating_reference (vala_method_get_return_type (self), TRUE);
 
359
                                                                if (g_utf8_collate (vala_attribute_get_name (a), "NoArrayLength") == 0) {
 
360
                                                                        vala_method_set_no_array_length (self, TRUE);
359
361
                                                                } else {
360
 
                                                                        if (g_utf8_collate (vala_attribute_get_name (a), "NoArrayLength") == 0) {
361
 
                                                                                vala_method_set_no_array_length (self, TRUE);
 
362
                                                                        if (g_utf8_collate (vala_attribute_get_name (a), "PrintfFormat") == 0) {
 
363
                                                                                vala_method_set_printf_format (self, TRUE);
362
364
                                                                        } else {
363
 
                                                                                if (g_utf8_collate (vala_attribute_get_name (a), "PrintfFormat") == 0) {
364
 
                                                                                        vala_method_set_printf_format (self, TRUE);
 
365
                                                                                if (g_utf8_collate (vala_attribute_get_name (a), "Import") == 0) {
 
366
                                                                                        vala_symbol_set_is_imported (VALA_SYMBOL (self), TRUE);
365
367
                                                                                }
366
368
                                                                        }
367
369
                                                                }
383
385
 * @param m a method
384
386
 * @return  true if the specified method is compatible to this method
385
387
 */
386
 
gboolean vala_method_equals (ValaMethod* self, ValaMethod* m2)
387
 
{
388
 
        GeeCollection* __temp23;
389
 
        GeeIterator* __temp24;
 
388
gboolean vala_method_equals (ValaMethod* self, ValaMethod* m2) {
 
389
        GeeCollection* _tmp1;
 
390
        GeeIterator* _tmp2;
390
391
        GeeIterator* method_params_it;
391
 
        gboolean __temp30;
 
392
        GeeCollection* _tmp8;
 
393
        GeeIterator* _tmp9;
 
394
        GeeIterator* method_error_domains_it;
 
395
        gboolean _tmp14;
392
396
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
393
397
        g_return_val_if_fail (VALA_IS_METHOD (m2), FALSE);
394
398
        if (!vala_type_reference_equals (vala_method_get_return_type (m2), vala_method_get_return_type (self))) {
395
399
                return FALSE;
396
400
        }
397
 
        __temp23 = NULL;
398
 
        __temp24 = NULL;
399
 
        method_params_it = (__temp24 = gee_iterable_iterator (GEE_ITERABLE ((__temp23 = vala_invokable_get_parameters (VALA_INVOKABLE (m2))))), (__temp23 == NULL ? NULL : (__temp23 = (g_object_unref (__temp23), NULL))), __temp24);
 
401
        _tmp1 = NULL;
 
402
        _tmp2 = NULL;
 
403
        method_params_it = (_tmp2 = gee_iterable_iterator (GEE_ITERABLE ((_tmp1 = vala_invokable_get_parameters (VALA_INVOKABLE (m2))))), (_tmp1 == NULL ? NULL : (_tmp1 = (g_object_unref (_tmp1), NULL))), _tmp2);
400
404
        {
401
405
                GeeList* param_collection;
402
406
                GeeIterator* param_it;
406
410
                        ValaFormalParameter* param;
407
411
                        param = gee_iterator_get (param_it);
408
412
                        {
409
 
                                ValaFormalParameter* __temp26;
410
 
                                gboolean __temp27;
 
413
                                ValaFormalParameter* _tmp4;
 
414
                                gboolean _tmp5;
411
415
                                /* method may not expect less arguments */
412
416
                                if (!gee_iterator_next (method_params_it)) {
413
 
                                        gboolean __temp25;
414
 
                                        return (__temp25 = FALSE, (param == NULL ? NULL : (param = (g_object_unref (param), NULL))), (param_it == NULL ? NULL : (param_it = (g_object_unref (param_it), NULL))), (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), __temp25);
 
417
                                        gboolean _tmp3;
 
418
                                        return (_tmp3 = FALSE, (param == NULL ? NULL : (param = (g_object_unref (param), NULL))), (param_it == NULL ? NULL : (param_it = (g_object_unref (param_it), NULL))), (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), _tmp3);
415
419
                                }
416
 
                                __temp26 = NULL;
417
 
                                if ((__temp27 = !vala_type_reference_equals (vala_formal_parameter_get_type_reference ((__temp26 = gee_iterator_get (method_params_it))), vala_formal_parameter_get_type_reference (param)), (__temp26 == NULL ? NULL : (__temp26 = (g_object_unref (__temp26), NULL))), __temp27)) {
418
 
                                        gboolean __temp28;
419
 
                                        return (__temp28 = FALSE, (param == NULL ? NULL : (param = (g_object_unref (param), NULL))), (param_it == NULL ? NULL : (param_it = (g_object_unref (param_it), NULL))), (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), __temp28);
 
420
                                _tmp4 = NULL;
 
421
                                if ((_tmp5 = !vala_type_reference_equals (vala_formal_parameter_get_type_reference ((_tmp4 = gee_iterator_get (method_params_it))), vala_formal_parameter_get_type_reference (param)), (_tmp4 == NULL ? NULL : (_tmp4 = (g_object_unref (_tmp4), NULL))), _tmp5)) {
 
422
                                        gboolean _tmp6;
 
423
                                        return (_tmp6 = FALSE, (param == NULL ? NULL : (param = (g_object_unref (param), NULL))), (param_it == NULL ? NULL : (param_it = (g_object_unref (param_it), NULL))), (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), _tmp6);
420
424
                                }
421
425
                                (param == NULL ? NULL : (param = (g_object_unref (param), NULL)));
422
426
                        }
425
429
        }
426
430
        /* method may not expect more arguments */
427
431
        if (gee_iterator_next (method_params_it)) {
428
 
                gboolean __temp29;
429
 
                return (__temp29 = FALSE, (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), __temp29);
430
 
        }
431
 
        return (__temp30 = TRUE, (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), __temp30);
 
432
                gboolean _tmp7;
 
433
                return (_tmp7 = FALSE, (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), _tmp7);
 
434
        }
 
435
        _tmp8 = NULL;
 
436
        _tmp9 = NULL;
 
437
        method_error_domains_it = (_tmp9 = gee_iterable_iterator (GEE_ITERABLE ((_tmp8 = vala_method_get_error_domains (m2)))), (_tmp8 == NULL ? NULL : (_tmp8 = (g_object_unref (_tmp8), NULL))), _tmp9);
 
438
        {
 
439
                GeeList* error_domain_collection;
 
440
                GeeIterator* error_domain_it;
 
441
                error_domain_collection = self->priv->error_domains;
 
442
                error_domain_it = gee_iterable_iterator (GEE_ITERABLE (error_domain_collection));
 
443
                while (gee_iterator_next (error_domain_it)) {
 
444
                        ValaTypeReference* error_domain;
 
445
                        error_domain = gee_iterator_get (error_domain_it);
 
446
                        {
 
447
                                ValaTypeReference* _tmp11;
 
448
                                gboolean _tmp12;
 
449
                                /* method may not have less error domains */
 
450
                                if (!gee_iterator_next (method_error_domains_it)) {
 
451
                                        gboolean _tmp10;
 
452
                                        return (_tmp10 = FALSE, (error_domain == NULL ? NULL : (error_domain = (g_object_unref (error_domain), NULL))), (error_domain_it == NULL ? NULL : (error_domain_it = (g_object_unref (error_domain_it), NULL))), (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), (method_error_domains_it == NULL ? NULL : (method_error_domains_it = (g_object_unref (method_error_domains_it), NULL))), _tmp10);
 
453
                                }
 
454
                                _tmp11 = NULL;
 
455
                                if ((_tmp12 = !vala_type_reference_equals ((_tmp11 = gee_iterator_get (method_error_domains_it)), error_domain), (_tmp11 == NULL ? NULL : (_tmp11 = (g_object_unref (_tmp11), NULL))), _tmp12)) {
 
456
                                        gboolean _tmp13;
 
457
                                        return (_tmp13 = FALSE, (error_domain == NULL ? NULL : (error_domain = (g_object_unref (error_domain), NULL))), (error_domain_it == NULL ? NULL : (error_domain_it = (g_object_unref (error_domain_it), NULL))), (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), (method_error_domains_it == NULL ? NULL : (method_error_domains_it = (g_object_unref (method_error_domains_it), NULL))), _tmp13);
 
458
                                }
 
459
                                (error_domain == NULL ? NULL : (error_domain = (g_object_unref (error_domain), NULL)));
 
460
                        }
 
461
                }
 
462
                (error_domain_it == NULL ? NULL : (error_domain_it = (g_object_unref (error_domain_it), NULL)));
 
463
        }
 
464
        return (_tmp14 = TRUE, (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL))), (method_error_domains_it == NULL ? NULL : (method_error_domains_it = (g_object_unref (method_error_domains_it), NULL))), _tmp14);
432
465
        (method_params_it == NULL ? NULL : (method_params_it = (g_object_unref (method_params_it), NULL)));
 
466
        (method_error_domains_it == NULL ? NULL : (method_error_domains_it = (g_object_unref (method_error_domains_it), NULL)));
433
467
}
434
468
 
435
469
 
438
472
 *
439
473
 * @param error_domain an error domain
440
474
 */
441
 
void vala_method_add_error_domain (ValaMethod* self, ValaTypeReference* error_domain)
442
 
{
 
475
void vala_method_add_error_domain (ValaMethod* self, ValaTypeReference* error_domain) {
443
476
        g_return_if_fail (VALA_IS_METHOD (self));
444
477
        g_return_if_fail (VALA_IS_TYPE_REFERENCE (error_domain));
445
478
        gee_collection_add (GEE_COLLECTION (self->priv->error_domains), error_domain);
451
484
 *
452
485
 * @return list of error domains
453
486
 */
454
 
GeeCollection* vala_method_get_error_domains (ValaMethod* self)
455
 
{
 
487
GeeCollection* vala_method_get_error_domains (ValaMethod* self) {
456
488
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
457
489
        return GEE_COLLECTION (gee_read_only_collection_new (g_object_ref, g_object_unref, GEE_COLLECTION (self->priv->error_domains)));
458
490
}
459
491
 
460
492
 
461
 
ValaTypeReference* vala_method_get_return_type (ValaMethod* self)
462
 
{
 
493
ValaTypeReference* vala_method_get_return_type (ValaMethod* self) {
463
494
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
464
495
        return self->priv->_return_type;
465
496
}
466
497
 
467
498
 
468
 
void vala_method_set_return_type (ValaMethod* self, ValaTypeReference* value)
469
 
{
470
 
        ValaTypeReference* __temp34;
471
 
        ValaTypeReference* __temp33;
 
499
void vala_method_set_return_type (ValaMethod* self, ValaTypeReference* value) {
 
500
        ValaTypeReference* _tmp2;
 
501
        ValaTypeReference* _tmp1;
472
502
        g_return_if_fail (VALA_IS_METHOD (self));
473
 
        __temp34 = NULL;
474
 
        __temp33 = NULL;
475
 
        self->priv->_return_type = (__temp34 = (__temp33 = value, (__temp33 == NULL ? NULL : g_object_ref (__temp33))), (self->priv->_return_type == NULL ? NULL : (self->priv->_return_type = (g_object_unref (self->priv->_return_type), NULL))), __temp34);
 
503
        _tmp2 = NULL;
 
504
        _tmp1 = NULL;
 
505
        self->priv->_return_type = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL ? NULL : g_object_ref (_tmp1))), (self->priv->_return_type == NULL ? NULL : (self->priv->_return_type = (g_object_unref (self->priv->_return_type), NULL))), _tmp2);
476
506
}
477
507
 
478
508
 
479
 
ValaBlock* vala_method_get_body (ValaMethod* self)
480
 
{
 
509
ValaBlock* vala_method_get_body (ValaMethod* self) {
481
510
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
482
511
        return self->priv->_body;
483
512
}
484
513
 
485
514
 
486
 
void vala_method_set_body (ValaMethod* self, ValaBlock* value)
487
 
{
488
 
        ValaBlock* __temp37;
489
 
        ValaBlock* __temp36;
 
515
void vala_method_set_body (ValaMethod* self, ValaBlock* value) {
 
516
        ValaBlock* _tmp2;
 
517
        ValaBlock* _tmp1;
490
518
        g_return_if_fail (VALA_IS_METHOD (self));
491
 
        __temp37 = NULL;
492
 
        __temp36 = NULL;
493
 
        self->priv->_body = (__temp37 = (__temp36 = value, (__temp36 == NULL ? NULL : g_object_ref (__temp36))), (self->priv->_body == NULL ? NULL : (self->priv->_body = (g_object_unref (self->priv->_body), NULL))), __temp37);
 
519
        _tmp2 = NULL;
 
520
        _tmp1 = NULL;
 
521
        self->priv->_body = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL ? NULL : g_object_ref (_tmp1))), (self->priv->_body == NULL ? NULL : (self->priv->_body = (g_object_unref (self->priv->_body), NULL))), _tmp2);
494
522
}
495
523
 
496
524
 
497
 
gboolean vala_method_get_instance (ValaMethod* self)
498
 
{
 
525
gboolean vala_method_get_instance (ValaMethod* self) {
499
526
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
500
527
        return self->priv->_instance;
501
528
}
502
529
 
503
530
 
504
 
void vala_method_set_instance (ValaMethod* self, gboolean value)
505
 
{
 
531
void vala_method_set_instance (ValaMethod* self, gboolean value) {
506
532
        g_return_if_fail (VALA_IS_METHOD (self));
507
533
        self->priv->_instance = value;
508
534
}
509
535
 
510
536
 
511
 
gboolean vala_method_get_is_abstract (ValaMethod* self)
512
 
{
 
537
char* vala_method_get_vfunc_name (ValaMethod* self) {
 
538
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
 
539
        if (self->priv->_vfunc_name == NULL) {
 
540
                char* _tmp1;
 
541
                const char* _tmp0;
 
542
                _tmp1 = NULL;
 
543
                _tmp0 = NULL;
 
544
                self->priv->_vfunc_name = (_tmp1 = (_tmp0 = vala_symbol_get_name (VALA_SYMBOL (self)), (_tmp0 == NULL ? NULL : g_strdup (_tmp0))), (self->priv->_vfunc_name = (g_free (self->priv->_vfunc_name), NULL)), _tmp1);
 
545
        }
 
546
        return self->priv->_vfunc_name;
 
547
}
 
548
 
 
549
 
 
550
void vala_method_set_vfunc_name (ValaMethod* self, const char* value) {
 
551
        char* _tmp3;
 
552
        g_return_if_fail (VALA_IS_METHOD (self));
 
553
        _tmp3 = NULL;
 
554
        self->priv->_vfunc_name = (_tmp3 = g_strdup (value), (self->priv->_vfunc_name = (g_free (self->priv->_vfunc_name), NULL)), _tmp3);
 
555
}
 
556
 
 
557
 
 
558
char* vala_method_get_sentinel (ValaMethod* self) {
 
559
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
 
560
        if (self->priv->_sentinel == NULL) {
 
561
                return VALA_METHOD_DEFAULT_SENTINEL;
 
562
        }
 
563
        return self->priv->_sentinel;
 
564
}
 
565
 
 
566
 
 
567
void vala_method_set_sentinel (ValaMethod* self, const char* value) {
 
568
        char* _tmp2;
 
569
        g_return_if_fail (VALA_IS_METHOD (self));
 
570
        _tmp2 = NULL;
 
571
        self->priv->_sentinel = (_tmp2 = g_strdup (value), (self->priv->_sentinel = (g_free (self->priv->_sentinel), NULL)), _tmp2);
 
572
}
 
573
 
 
574
 
 
575
gboolean vala_method_get_is_abstract (ValaMethod* self) {
513
576
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
514
577
        return self->priv->_is_abstract;
515
578
}
516
579
 
517
580
 
518
 
void vala_method_set_is_abstract (ValaMethod* self, gboolean value)
519
 
{
 
581
void vala_method_set_is_abstract (ValaMethod* self, gboolean value) {
520
582
        g_return_if_fail (VALA_IS_METHOD (self));
521
583
        self->priv->_is_abstract = value;
522
584
}
523
585
 
524
586
 
525
 
gboolean vala_method_get_is_virtual (ValaMethod* self)
526
 
{
 
587
gboolean vala_method_get_is_virtual (ValaMethod* self) {
527
588
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
528
589
        return self->priv->_is_virtual;
529
590
}
530
591
 
531
592
 
532
 
void vala_method_set_is_virtual (ValaMethod* self, gboolean value)
533
 
{
 
593
void vala_method_set_is_virtual (ValaMethod* self, gboolean value) {
534
594
        g_return_if_fail (VALA_IS_METHOD (self));
535
595
        self->priv->_is_virtual = value;
536
596
}
537
597
 
538
598
 
539
 
gboolean vala_method_get_overrides (ValaMethod* self)
540
 
{
 
599
gboolean vala_method_get_overrides (ValaMethod* self) {
541
600
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
542
601
        return self->priv->_overrides;
543
602
}
544
603
 
545
604
 
546
 
void vala_method_set_overrides (ValaMethod* self, gboolean value)
547
 
{
 
605
void vala_method_set_overrides (ValaMethod* self, gboolean value) {
548
606
        g_return_if_fail (VALA_IS_METHOD (self));
549
607
        self->priv->_overrides = value;
550
608
}
551
609
 
552
610
 
553
 
gboolean vala_method_get_returns_modified_pointer (ValaMethod* self)
554
 
{
 
611
gboolean vala_method_get_returns_modified_pointer (ValaMethod* self) {
555
612
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
556
613
        return self->priv->_returns_modified_pointer;
557
614
}
558
615
 
559
616
 
560
 
void vala_method_set_returns_modified_pointer (ValaMethod* self, gboolean value)
561
 
{
 
617
void vala_method_set_returns_modified_pointer (ValaMethod* self, gboolean value) {
562
618
        g_return_if_fail (VALA_IS_METHOD (self));
563
619
        self->priv->_returns_modified_pointer = value;
564
620
}
565
621
 
566
622
 
567
 
gboolean vala_method_get_instance_last (ValaMethod* self)
568
 
{
 
623
gboolean vala_method_get_instance_last (ValaMethod* self) {
569
624
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
570
625
        return self->priv->_instance_last;
571
626
}
572
627
 
573
628
 
574
 
void vala_method_set_instance_last (ValaMethod* self, gboolean value)
575
 
{
 
629
void vala_method_set_instance_last (ValaMethod* self, gboolean value) {
576
630
        g_return_if_fail (VALA_IS_METHOD (self));
577
631
        self->priv->_instance_last = value;
578
632
}
579
633
 
580
634
 
581
 
gboolean vala_method_get_instance_by_reference (ValaMethod* self)
582
 
{
583
 
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
584
 
        return self->priv->_instance_by_reference;
585
 
}
586
 
 
587
 
 
588
 
void vala_method_set_instance_by_reference (ValaMethod* self, gboolean value)
589
 
{
590
 
        g_return_if_fail (VALA_IS_METHOD (self));
591
 
        self->priv->_instance_by_reference = value;
592
 
}
593
 
 
594
 
 
595
 
ValaMethod* vala_method_get_base_method (ValaMethod* self)
596
 
{
 
635
ValaMethod* vala_method_get_base_method (ValaMethod* self) {
597
636
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
598
637
        return self->priv->_base_method;
599
638
}
600
639
 
601
640
 
602
 
void vala_method_set_base_method (ValaMethod* self, ValaMethod* value)
603
 
{
 
641
void vala_method_set_base_method (ValaMethod* self, ValaMethod* value) {
604
642
        g_return_if_fail (VALA_IS_METHOD (self));
605
643
        self->priv->_base_method = value;
606
644
}
607
645
 
608
646
 
609
 
ValaMethod* vala_method_get_base_interface_method (ValaMethod* self)
610
 
{
 
647
ValaMethod* vala_method_get_base_interface_method (ValaMethod* self) {
611
648
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
612
649
        return self->priv->_base_interface_method;
613
650
}
614
651
 
615
652
 
616
 
void vala_method_set_base_interface_method (ValaMethod* self, ValaMethod* value)
617
 
{
618
 
        ValaMethod* __temp48;
619
 
        ValaMethod* __temp47;
 
653
void vala_method_set_base_interface_method (ValaMethod* self, ValaMethod* value) {
 
654
        ValaMethod* _tmp2;
 
655
        ValaMethod* _tmp1;
620
656
        g_return_if_fail (VALA_IS_METHOD (self));
621
 
        __temp48 = NULL;
622
 
        __temp47 = NULL;
623
 
        self->priv->_base_interface_method = (__temp48 = (__temp47 = value, (__temp47 == NULL ? NULL : g_object_ref (__temp47))), (self->priv->_base_interface_method == NULL ? NULL : (self->priv->_base_interface_method = (g_object_unref (self->priv->_base_interface_method), NULL))), __temp48);
 
657
        _tmp2 = NULL;
 
658
        _tmp1 = NULL;
 
659
        self->priv->_base_interface_method = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL ? NULL : g_object_ref (_tmp1))), (self->priv->_base_interface_method == NULL ? NULL : (self->priv->_base_interface_method = (g_object_unref (self->priv->_base_interface_method), NULL))), _tmp2);
624
660
}
625
661
 
626
662
 
627
 
ValaFormalParameter* vala_method_get_this_parameter (ValaMethod* self)
628
 
{
 
663
ValaFormalParameter* vala_method_get_this_parameter (ValaMethod* self) {
629
664
        g_return_val_if_fail (VALA_IS_METHOD (self), NULL);
630
665
        return self->priv->_this_parameter;
631
666
}
632
667
 
633
668
 
634
 
void vala_method_set_this_parameter (ValaMethod* self, ValaFormalParameter* value)
635
 
{
636
 
        ValaFormalParameter* __temp51;
637
 
        ValaFormalParameter* __temp50;
 
669
void vala_method_set_this_parameter (ValaMethod* self, ValaFormalParameter* value) {
 
670
        ValaFormalParameter* _tmp2;
 
671
        ValaFormalParameter* _tmp1;
638
672
        g_return_if_fail (VALA_IS_METHOD (self));
639
 
        __temp51 = NULL;
640
 
        __temp50 = NULL;
641
 
        self->priv->_this_parameter = (__temp51 = (__temp50 = value, (__temp50 == NULL ? NULL : g_object_ref (__temp50))), (self->priv->_this_parameter == NULL ? NULL : (self->priv->_this_parameter = (g_object_unref (self->priv->_this_parameter), NULL))), __temp51);
 
673
        _tmp2 = NULL;
 
674
        _tmp1 = NULL;
 
675
        self->priv->_this_parameter = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL ? NULL : g_object_ref (_tmp1))), (self->priv->_this_parameter == NULL ? NULL : (self->priv->_this_parameter = (g_object_unref (self->priv->_this_parameter), NULL))), _tmp2);
642
676
}
643
677
 
644
678
 
645
 
gboolean vala_method_get_no_array_length (ValaMethod* self)
646
 
{
 
679
gboolean vala_method_get_no_array_length (ValaMethod* self) {
647
680
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
648
681
        return self->priv->_no_array_length;
649
682
}
650
683
 
651
684
 
652
 
void vala_method_set_no_array_length (ValaMethod* self, gboolean value)
653
 
{
 
685
void vala_method_set_no_array_length (ValaMethod* self, gboolean value) {
654
686
        g_return_if_fail (VALA_IS_METHOD (self));
655
687
        self->priv->_no_array_length = value;
656
688
        {
671
703
}
672
704
 
673
705
 
674
 
gboolean vala_method_get_printf_format (ValaMethod* self)
675
 
{
 
706
gboolean vala_method_get_printf_format (ValaMethod* self) {
676
707
        g_return_val_if_fail (VALA_IS_METHOD (self), FALSE);
677
708
        return self->priv->_printf_format;
678
709
}
679
710
 
680
711
 
681
 
void vala_method_set_printf_format (ValaMethod* self, gboolean value)
682
 
{
 
712
void vala_method_set_printf_format (ValaMethod* self, gboolean value) {
683
713
        g_return_if_fail (VALA_IS_METHOD (self));
684
714
        self->priv->_printf_format = value;
685
715
}
686
716
 
687
717
 
688
 
static void vala_method_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec)
689
 
{
 
718
static void vala_method_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
690
719
        ValaMethod * self;
691
720
        self = VALA_METHOD (object);
692
721
        switch (property_id) {
699
728
                case VALA_METHOD_INSTANCE:
700
729
                g_value_set_boolean (value, vala_method_get_instance (self));
701
730
                break;
 
731
                case VALA_METHOD_VFUNC_NAME:
 
732
                g_value_set_string (value, vala_method_get_vfunc_name (self));
 
733
                break;
 
734
                case VALA_METHOD_SENTINEL:
 
735
                g_value_set_string (value, vala_method_get_sentinel (self));
 
736
                break;
702
737
                case VALA_METHOD_IS_ABSTRACT:
703
738
                g_value_set_boolean (value, vala_method_get_is_abstract (self));
704
739
                break;
714
749
                case VALA_METHOD_INSTANCE_LAST:
715
750
                g_value_set_boolean (value, vala_method_get_instance_last (self));
716
751
                break;
717
 
                case VALA_METHOD_INSTANCE_BY_REFERENCE:
718
 
                g_value_set_boolean (value, vala_method_get_instance_by_reference (self));
719
 
                break;
720
752
                case VALA_METHOD_BASE_METHOD:
721
753
                g_value_set_object (value, vala_method_get_base_method (self));
722
754
                break;
732
764
                case VALA_METHOD_PRINTF_FORMAT:
733
765
                g_value_set_boolean (value, vala_method_get_printf_format (self));
734
766
                break;
 
767
                default:
 
768
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
769
                break;
735
770
        }
736
771
}
737
772
 
738
773
 
739
 
static void vala_method_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec)
740
 
{
 
774
static void vala_method_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
741
775
        ValaMethod * self;
742
776
        self = VALA_METHOD (object);
743
777
        switch (property_id) {
750
784
                case VALA_METHOD_INSTANCE:
751
785
                vala_method_set_instance (self, g_value_get_boolean (value));
752
786
                break;
 
787
                case VALA_METHOD_VFUNC_NAME:
 
788
                vala_method_set_vfunc_name (self, g_value_get_string (value));
 
789
                break;
 
790
                case VALA_METHOD_SENTINEL:
 
791
                vala_method_set_sentinel (self, g_value_get_string (value));
 
792
                break;
753
793
                case VALA_METHOD_IS_ABSTRACT:
754
794
                vala_method_set_is_abstract (self, g_value_get_boolean (value));
755
795
                break;
765
805
                case VALA_METHOD_INSTANCE_LAST:
766
806
                vala_method_set_instance_last (self, g_value_get_boolean (value));
767
807
                break;
768
 
                case VALA_METHOD_INSTANCE_BY_REFERENCE:
769
 
                vala_method_set_instance_by_reference (self, g_value_get_boolean (value));
770
 
                break;
771
808
                case VALA_METHOD_BASE_METHOD:
772
809
                vala_method_set_base_method (self, g_value_get_object (value));
773
810
                break;
783
820
                case VALA_METHOD_PRINTF_FORMAT:
784
821
                vala_method_set_printf_format (self, g_value_get_boolean (value));
785
822
                break;
 
823
                default:
 
824
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
825
                break;
786
826
        }
787
827
}
788
828
 
789
829
 
790
 
static void vala_method_class_init (ValaMethodClass * klass)
791
 
{
 
830
static void vala_method_class_init (ValaMethodClass * klass) {
792
831
        vala_method_parent_class = g_type_class_peek_parent (klass);
793
832
        g_type_class_add_private (klass, sizeof (ValaMethodPrivate));
794
833
        G_OBJECT_CLASS (klass)->get_property = vala_method_get_property;
797
836
        VALA_CODE_NODE_CLASS (klass)->accept = vala_method_real_accept;
798
837
        VALA_CODE_NODE_CLASS (klass)->accept_children = vala_method_real_accept_children;
799
838
        VALA_METHOD_CLASS (klass)->get_default_cname = vala_method_real_get_default_cname;
800
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_RETURN_TYPE, g_param_spec_object ("return-type", "foo", "bar", VALA_TYPE_TYPE_REFERENCE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
801
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_BODY, g_param_spec_object ("body", "foo", "bar", VALA_TYPE_BLOCK, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
802
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_INSTANCE, g_param_spec_boolean ("instance", "foo", "bar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
803
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_IS_ABSTRACT, g_param_spec_boolean ("is-abstract", "foo", "bar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
804
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_IS_VIRTUAL, g_param_spec_boolean ("is-virtual", "foo", "bar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
805
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_OVERRIDES, g_param_spec_boolean ("overrides", "foo", "bar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
806
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_RETURNS_MODIFIED_POINTER, g_param_spec_boolean ("returns-modified-pointer", "foo", "bar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
807
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_INSTANCE_LAST, g_param_spec_boolean ("instance-last", "foo", "bar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
808
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_INSTANCE_BY_REFERENCE, g_param_spec_boolean ("instance-by-reference", "foo", "bar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
809
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_BASE_METHOD, g_param_spec_object ("base-method", "foo", "bar", VALA_TYPE_METHOD, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
810
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_BASE_INTERFACE_METHOD, g_param_spec_object ("base-interface-method", "foo", "bar", VALA_TYPE_METHOD, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
811
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_THIS_PARAMETER, g_param_spec_object ("this-parameter", "foo", "bar", VALA_TYPE_FORMAL_PARAMETER, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
812
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_NO_ARRAY_LENGTH, g_param_spec_boolean ("no-array-length", "foo", "bar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
813
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_PRINTF_FORMAT, g_param_spec_boolean ("printf-format", "foo", "bar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
839
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_RETURN_TYPE, g_param_spec_object ("return-type", "return-type", "return-type", VALA_TYPE_TYPE_REFERENCE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
840
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_BODY, g_param_spec_object ("body", "body", "body", VALA_TYPE_BLOCK, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
841
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_INSTANCE, g_param_spec_boolean ("instance", "instance", "instance", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
842
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_VFUNC_NAME, g_param_spec_string ("vfunc-name", "vfunc-name", "vfunc-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
843
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_SENTINEL, g_param_spec_string ("sentinel", "sentinel", "sentinel", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
844
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_IS_ABSTRACT, g_param_spec_boolean ("is-abstract", "is-abstract", "is-abstract", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
845
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_IS_VIRTUAL, g_param_spec_boolean ("is-virtual", "is-virtual", "is-virtual", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
846
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_OVERRIDES, g_param_spec_boolean ("overrides", "overrides", "overrides", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
847
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_RETURNS_MODIFIED_POINTER, g_param_spec_boolean ("returns-modified-pointer", "returns-modified-pointer", "returns-modified-pointer", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
848
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_INSTANCE_LAST, g_param_spec_boolean ("instance-last", "instance-last", "instance-last", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
849
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_BASE_METHOD, g_param_spec_object ("base-method", "base-method", "base-method", VALA_TYPE_METHOD, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
850
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_BASE_INTERFACE_METHOD, g_param_spec_object ("base-interface-method", "base-interface-method", "base-interface-method", VALA_TYPE_METHOD, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
851
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_THIS_PARAMETER, g_param_spec_object ("this-parameter", "this-parameter", "this-parameter", VALA_TYPE_FORMAL_PARAMETER, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
852
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_NO_ARRAY_LENGTH, g_param_spec_boolean ("no-array-length", "no-array-length", "no-array-length", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
853
        g_object_class_install_property (G_OBJECT_CLASS (klass), VALA_METHOD_PRINTF_FORMAT, g_param_spec_boolean ("printf-format", "printf-format", "printf-format", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
814
854
}
815
855
 
816
856
 
817
 
static void vala_method_vala_invokable_interface_init (ValaInvokableIface * iface)
818
 
{
 
857
static void vala_method_vala_invokable_interface_init (ValaInvokableIface * iface) {
819
858
        vala_method_vala_invokable_parent_iface = g_type_interface_peek_parent (iface);
820
859
        iface->get_parameters = vala_method_real_get_parameters;
821
860
        iface->get_return_type = vala_method_real_get_return_type;
823
862
}
824
863
 
825
864
 
826
 
static void vala_method_init (ValaMethod * self)
827
 
{
 
865
static void vala_method_init (ValaMethod * self) {
828
866
        self->priv = VALA_METHOD_GET_PRIVATE (self);
829
867
        self->priv->_instance = TRUE;
830
868
        self->priv->parameters = GEE_LIST (gee_array_list_new (g_object_ref, g_object_unref, g_direct_equal));
832
870
}
833
871
 
834
872
 
835
 
static void vala_method_dispose (GObject * obj)
836
 
{
 
873
static void vala_method_dispose (GObject * obj) {
837
874
        ValaMethod * self;
838
 
        ValaMethodClass * klass;
839
 
        GObjectClass * parent_class;
840
875
        self = VALA_METHOD (obj);
841
876
        (self->priv->_return_type == NULL ? NULL : (self->priv->_return_type = (g_object_unref (self->priv->_return_type), NULL)));
842
877
        (self->priv->_body == NULL ? NULL : (self->priv->_body = (g_object_unref (self->priv->_body), NULL)));
844
879
        (self->priv->_this_parameter == NULL ? NULL : (self->priv->_this_parameter = (g_object_unref (self->priv->_this_parameter), NULL)));
845
880
        (self->priv->parameters == NULL ? NULL : (self->priv->parameters = (g_object_unref (self->priv->parameters), NULL)));
846
881
        (self->priv->cname = (g_free (self->priv->cname), NULL));
 
882
        (self->priv->_vfunc_name = (g_free (self->priv->_vfunc_name), NULL));
 
883
        (self->priv->_sentinel = (g_free (self->priv->_sentinel), NULL));
847
884
        (self->priv->error_domains == NULL ? NULL : (self->priv->error_domains = (g_object_unref (self->priv->error_domains), NULL)));
848
 
        klass = VALA_METHOD_CLASS (g_type_class_peek (VALA_TYPE_METHOD));
849
 
        parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
850
 
        parent_class->dispose (obj);
 
885
        G_OBJECT_CLASS (vala_method_parent_class)->dispose (obj);
851
886
}
852
887
 
853
888
 
854
 
GType vala_method_get_type (void)
855
 
{
 
889
GType vala_method_get_type (void) {
856
890
        static GType vala_method_type_id = 0;
857
891
        if (G_UNLIKELY (vala_method_type_id == 0)) {
858
892
                static const GTypeInfo g_define_type_info = { sizeof (ValaMethodClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_method_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaMethod), 0, (GInstanceInitFunc) vala_method_init };
864
898
}
865
899
 
866
900
 
 
901
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
 
902
        if (array != NULL && destroy_func != NULL) {
 
903
                int i;
 
904
                if (array_length >= 0)
 
905
                for (i = 0; i < array_length; i = i + 1) {
 
906
                        if (((gpointer*) array)[i] != NULL)
 
907
                        destroy_func (((gpointer*) array)[i]);
 
908
                }
 
909
                else
 
910
                for (i = 0; ((gpointer*) array)[i] != NULL; i = i + 1) {
 
911
                        destroy_func (((gpointer*) array)[i]);
 
912
                }
 
913
        }
 
914
        g_free (array);
 
915
}
 
916
 
 
917
 
867
918
 
868
919