1 /* valacallabletype.c generated by valac, the Vala compiler
2  * generated from valacallabletype.vala, do not modify */
3 
4 /* valacallabletype.vala
5  *
6  * Copyright (C) 2017  Rico Tzschichholz
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12 
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17 
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
21  *
22  * Author:
23  * 	Rico Tzschichholz <ricotz@ubuntu.com>
24  */
25 
26 #include "vala.h"
27 #include <glib.h>
28 #include <valagee.h>
29 #include <glib-object.h>
30 #include <stdlib.h>
31 #include <string.h>
32 
33 #define _g_free0(var) (var = (g_free (var), NULL))
34 #define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
35 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
36 #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
37 
38 static gpointer vala_callable_type_parent_class = NULL;
39 
40 static gboolean vala_callable_type_real_is_invokable (ValaDataType* base);
41 static ValaDataType* vala_callable_type_real_get_return_type (ValaDataType* base);
42 static ValaList* vala_callable_type_real_get_parameters (ValaDataType* base);
43 static gchar* vala_callable_type_real_to_prototype_string (ValaDataType* base,
44                                                     const gchar* override_name);
45 static GType vala_callable_type_get_type_once (void);
46 
47 ValaCallable*
vala_callable_type_get_callable_symbol(ValaCallableType * self)48 vala_callable_type_get_callable_symbol (ValaCallableType* self)
49 {
50 	ValaCallable* result;
51 	ValaSymbol* _tmp0_;
52 	ValaSymbol* _tmp1_;
53 	g_return_val_if_fail (self != NULL, NULL);
54 	_tmp0_ = vala_data_type_get_symbol ((ValaDataType*) self);
55 	_tmp1_ = _tmp0_;
56 	result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, VALA_TYPE_CALLABLE, ValaCallable);
57 	return result;
58 }
59 
60 ValaCallableType*
vala_callable_type_construct(GType object_type,ValaSymbol * symbol)61 vala_callable_type_construct (GType object_type,
62                               ValaSymbol* symbol)
63 {
64 	ValaCallableType* self = NULL;
65 	g_return_val_if_fail (symbol != NULL, NULL);
66 	self = (ValaCallableType*) vala_data_type_construct_with_symbol (object_type, symbol);
67 	return self;
68 }
69 
70 static gboolean
vala_callable_type_real_is_invokable(ValaDataType * base)71 vala_callable_type_real_is_invokable (ValaDataType* base)
72 {
73 	ValaCallableType * self;
74 	gboolean result = FALSE;
75 	self = (ValaCallableType*) base;
76 	result = TRUE;
77 	return result;
78 }
79 
80 static ValaDataType*
vala_callable_type_real_get_return_type(ValaDataType * base)81 vala_callable_type_real_get_return_type (ValaDataType* base)
82 {
83 	ValaCallableType * self;
84 	ValaCallable* _tmp0_;
85 	ValaCallable* _tmp1_;
86 	ValaDataType* _tmp2_;
87 	ValaDataType* _tmp3_;
88 	ValaDataType* result = NULL;
89 	self = (ValaCallableType*) base;
90 	_tmp0_ = vala_callable_type_get_callable_symbol (self);
91 	_tmp1_ = _tmp0_;
92 	_tmp2_ = vala_callable_get_return_type (_tmp1_);
93 	_tmp3_ = _tmp2_;
94 	result = _tmp3_;
95 	return result;
96 }
97 
98 static ValaList*
vala_callable_type_real_get_parameters(ValaDataType * base)99 vala_callable_type_real_get_parameters (ValaDataType* base)
100 {
101 	ValaCallableType * self;
102 	ValaCallable* _tmp0_;
103 	ValaCallable* _tmp1_;
104 	ValaList* _tmp2_;
105 	ValaList* result = NULL;
106 	self = (ValaCallableType*) base;
107 	_tmp0_ = vala_callable_type_get_callable_symbol (self);
108 	_tmp1_ = _tmp0_;
109 	_tmp2_ = vala_callable_get_parameters (_tmp1_);
110 	result = _tmp2_;
111 	return result;
112 }
113 
114 static gpointer
_vala_iterable_ref0(gpointer self)115 _vala_iterable_ref0 (gpointer self)
116 {
117 	return self ? vala_iterable_ref (self) : NULL;
118 }
119 
120 static gchar*
vala_callable_type_real_to_prototype_string(ValaDataType * base,const gchar * override_name)121 vala_callable_type_real_to_prototype_string (ValaDataType* base,
122                                              const gchar* override_name)
123 {
124 	ValaCallableType * self;
125 	GString* builder = NULL;
126 	GString* _tmp0_;
127 	ValaDelegateType* delegate_type = NULL;
128 	ValaMethodType* method_type = NULL;
129 	ValaSignalType* signal_type = NULL;
130 	gboolean _tmp1_ = FALSE;
131 	ValaMethodType* _tmp2_;
132 	gboolean _tmp13_ = FALSE;
133 	ValaMethodType* _tmp14_;
134 	GString* _tmp22_;
135 	gchar* _tmp23_ = NULL;
136 	gchar* _tmp24_;
137 	GString* _tmp26_;
138 	GString* _tmp27_;
139 	GString* _tmp28_;
140 	gint i = 0;
141 	ValaDelegateType* _tmp29_;
142 	GString* _tmp109_;
143 	ValaArrayList* error_types = NULL;
144 	GEqualFunc _tmp110_;
145 	ValaArrayList* _tmp111_;
146 	ValaArrayList* _tmp112_;
147 	ValaArrayList* _tmp113_;
148 	gint _tmp114_;
149 	gint _tmp115_;
150 	GString* _tmp131_;
151 	const gchar* _tmp132_;
152 	gchar* _tmp133_;
153 	gchar* result = NULL;
154 	self = (ValaCallableType*) base;
155 	_tmp0_ = g_string_new ("");
156 	builder = _tmp0_;
157 	delegate_type = VALA_IS_DELEGATE_TYPE (self) ? ((ValaDelegateType*) self) : NULL;
158 	method_type = VALA_IS_METHOD_TYPE (self) ? ((ValaMethodType*) self) : NULL;
159 	signal_type = VALA_IS_SIGNAL_TYPE (self) ? ((ValaSignalType*) self) : NULL;
160 	_tmp2_ = method_type;
161 	if (_tmp2_ != NULL) {
162 		ValaMethodType* _tmp3_;
163 		ValaMethod* _tmp4_;
164 		ValaMethod* _tmp5_;
165 		gboolean _tmp6_;
166 		gboolean _tmp7_;
167 		_tmp3_ = method_type;
168 		_tmp4_ = vala_method_type_get_method_symbol (_tmp3_);
169 		_tmp5_ = _tmp4_;
170 		_tmp6_ = vala_method_get_coroutine (_tmp5_);
171 		_tmp7_ = _tmp6_;
172 		_tmp1_ = _tmp7_;
173 	} else {
174 		_tmp1_ = FALSE;
175 	}
176 	if (_tmp1_) {
177 		GString* _tmp8_;
178 		_tmp8_ = builder;
179 		g_string_append (_tmp8_, "async ");
180 	} else {
181 		ValaDelegateType* _tmp9_;
182 		_tmp9_ = delegate_type;
183 		if (_tmp9_ != NULL) {
184 			GString* _tmp10_;
185 			_tmp10_ = builder;
186 			g_string_append (_tmp10_, "delegate ");
187 		} else {
188 			ValaSignalType* _tmp11_;
189 			_tmp11_ = signal_type;
190 			if (_tmp11_ != NULL) {
191 				GString* _tmp12_;
192 				_tmp12_ = builder;
193 				g_string_append (_tmp12_, "signal ");
194 			}
195 		}
196 	}
197 	_tmp14_ = method_type;
198 	if (_tmp14_ == NULL) {
199 		_tmp13_ = TRUE;
200 	} else {
201 		ValaMethodType* _tmp15_;
202 		ValaMethod* _tmp16_;
203 		ValaMethod* _tmp17_;
204 		_tmp15_ = method_type;
205 		_tmp16_ = vala_method_type_get_method_symbol (_tmp15_);
206 		_tmp17_ = _tmp16_;
207 		_tmp13_ = !VALA_IS_CREATION_METHOD (_tmp17_);
208 	}
209 	if (_tmp13_) {
210 		GString* _tmp18_;
211 		ValaDataType* _tmp19_;
212 		gchar* _tmp20_;
213 		gchar* _tmp21_;
214 		_tmp18_ = builder;
215 		_tmp19_ = vala_data_type_get_return_type ((ValaDataType*) self);
216 		_tmp20_ = vala_data_type_to_prototype_string (_tmp19_, NULL);
217 		_tmp21_ = _tmp20_;
218 		g_string_append (_tmp18_, _tmp21_);
219 		_g_free0 (_tmp21_);
220 	}
221 	_tmp22_ = builder;
222 	g_string_append_c (_tmp22_, ' ');
223 	_tmp24_ = g_strdup (override_name);
224 	_tmp23_ = _tmp24_;
225 	if (_tmp23_ == NULL) {
226 		gchar* _tmp25_;
227 		_tmp25_ = vala_code_node_to_string ((ValaCodeNode*) self);
228 		_g_free0 (_tmp23_);
229 		_tmp23_ = _tmp25_;
230 	}
231 	_tmp26_ = builder;
232 	g_string_append (_tmp26_, _tmp23_);
233 	_tmp27_ = builder;
234 	g_string_append_c (_tmp27_, ' ');
235 	_tmp28_ = builder;
236 	g_string_append_c (_tmp28_, '(');
237 	i = 1;
238 	_tmp29_ = delegate_type;
239 	if (_tmp29_ != NULL) {
240 		ValaDelegate* delegate_symbol = NULL;
241 		ValaDelegateType* _tmp30_;
242 		ValaDelegate* _tmp31_;
243 		ValaDelegate* _tmp32_;
244 		gboolean _tmp33_ = FALSE;
245 		ValaDelegate* _tmp34_;
246 		ValaSymbol* _tmp35_;
247 		ValaSymbol* _tmp36_;
248 		_tmp30_ = delegate_type;
249 		_tmp31_ = vala_delegate_type_get_delegate_symbol (_tmp30_);
250 		_tmp32_ = _tmp31_;
251 		delegate_symbol = _tmp32_;
252 		_tmp34_ = delegate_symbol;
253 		_tmp35_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp34_);
254 		_tmp36_ = _tmp35_;
255 		if (VALA_IS_SIGNAL (_tmp36_)) {
256 			ValaDelegate* _tmp37_;
257 			ValaDataType* _tmp38_;
258 			ValaDataType* _tmp39_;
259 			_tmp37_ = delegate_symbol;
260 			_tmp38_ = vala_delegate_get_sender_type (_tmp37_);
261 			_tmp39_ = _tmp38_;
262 			_tmp33_ = _tmp39_ != NULL;
263 		} else {
264 			_tmp33_ = FALSE;
265 		}
266 		if (_tmp33_) {
267 			GString* _tmp40_;
268 			ValaDelegate* _tmp41_;
269 			ValaDataType* _tmp42_;
270 			ValaDataType* _tmp43_;
271 			gchar* _tmp44_;
272 			gchar* _tmp45_;
273 			gint _tmp46_;
274 			_tmp40_ = builder;
275 			_tmp41_ = delegate_symbol;
276 			_tmp42_ = vala_delegate_get_sender_type (_tmp41_);
277 			_tmp43_ = _tmp42_;
278 			_tmp44_ = vala_data_type_to_qualified_string (_tmp43_, NULL);
279 			_tmp45_ = _tmp44_;
280 			g_string_append (_tmp40_, _tmp45_);
281 			_g_free0 (_tmp45_);
282 			_tmp46_ = i;
283 			i = _tmp46_ + 1;
284 		}
285 	}
286 	{
287 		ValaList* _param_list = NULL;
288 		ValaList* _tmp47_;
289 		ValaList* _tmp48_;
290 		gint _param_size = 0;
291 		ValaList* _tmp49_;
292 		gint _tmp50_;
293 		gint _tmp51_;
294 		gint _param_index = 0;
295 		_tmp47_ = vala_data_type_get_parameters ((ValaDataType*) self);
296 		_tmp48_ = _vala_iterable_ref0 (_tmp47_);
297 		_param_list = _tmp48_;
298 		_tmp49_ = _param_list;
299 		_tmp50_ = vala_collection_get_size ((ValaCollection*) _tmp49_);
300 		_tmp51_ = _tmp50_;
301 		_param_size = _tmp51_;
302 		_param_index = -1;
303 		while (TRUE) {
304 			gint _tmp52_;
305 			gint _tmp53_;
306 			ValaParameter* param = NULL;
307 			ValaList* _tmp54_;
308 			gpointer _tmp55_;
309 			ValaParameter* _tmp57_;
310 			gboolean _tmp58_;
311 			gboolean _tmp59_;
312 			ValaParameter* _tmp61_;
313 			gboolean _tmp62_;
314 			gboolean _tmp63_;
315 			ValaParameter* _tmp65_;
316 			ValaParameterDirection _tmp66_;
317 			ValaParameterDirection _tmp67_;
318 			GString* _tmp92_;
319 			ValaParameter* _tmp93_;
320 			ValaDataType* _tmp94_;
321 			ValaDataType* _tmp95_;
322 			gchar* _tmp96_;
323 			gchar* _tmp97_;
324 			ValaParameter* _tmp98_;
325 			ValaExpression* _tmp99_;
326 			ValaExpression* _tmp100_;
327 			gint _tmp108_;
328 			_param_index = _param_index + 1;
329 			_tmp52_ = _param_index;
330 			_tmp53_ = _param_size;
331 			if (!(_tmp52_ < _tmp53_)) {
332 				break;
333 			}
334 			_tmp54_ = _param_list;
335 			_tmp55_ = vala_list_get (_tmp54_, _param_index);
336 			param = (ValaParameter*) _tmp55_;
337 			if (i > 1) {
338 				GString* _tmp56_;
339 				_tmp56_ = builder;
340 				g_string_append (_tmp56_, ", ");
341 			}
342 			_tmp57_ = param;
343 			_tmp58_ = vala_parameter_get_ellipsis (_tmp57_);
344 			_tmp59_ = _tmp58_;
345 			if (_tmp59_) {
346 				GString* _tmp60_;
347 				_tmp60_ = builder;
348 				g_string_append (_tmp60_, "...");
349 				_vala_code_node_unref0 (param);
350 				continue;
351 			}
352 			_tmp61_ = param;
353 			_tmp62_ = vala_parameter_get_params_array (_tmp61_);
354 			_tmp63_ = _tmp62_;
355 			if (_tmp63_) {
356 				GString* _tmp64_;
357 				_tmp64_ = builder;
358 				g_string_append (_tmp64_, "params ");
359 			}
360 			_tmp65_ = param;
361 			_tmp66_ = vala_parameter_get_direction (_tmp65_);
362 			_tmp67_ = _tmp66_;
363 			if (_tmp67_ == VALA_PARAMETER_DIRECTION_IN) {
364 				ValaParameter* _tmp68_;
365 				ValaDataType* _tmp69_;
366 				ValaDataType* _tmp70_;
367 				gboolean _tmp71_;
368 				gboolean _tmp72_;
369 				_tmp68_ = param;
370 				_tmp69_ = vala_variable_get_variable_type ((ValaVariable*) _tmp68_);
371 				_tmp70_ = _tmp69_;
372 				_tmp71_ = vala_data_type_get_value_owned (_tmp70_);
373 				_tmp72_ = _tmp71_;
374 				if (_tmp72_) {
375 					GString* _tmp73_;
376 					_tmp73_ = builder;
377 					g_string_append (_tmp73_, "owned ");
378 				}
379 			} else {
380 				ValaParameter* _tmp74_;
381 				ValaParameterDirection _tmp75_;
382 				ValaParameterDirection _tmp76_;
383 				gboolean _tmp82_ = FALSE;
384 				ValaParameter* _tmp83_;
385 				ValaDataType* _tmp84_;
386 				ValaDataType* _tmp85_;
387 				gboolean _tmp86_;
388 				gboolean _tmp87_;
389 				_tmp74_ = param;
390 				_tmp75_ = vala_parameter_get_direction (_tmp74_);
391 				_tmp76_ = _tmp75_;
392 				if (_tmp76_ == VALA_PARAMETER_DIRECTION_REF) {
393 					GString* _tmp77_;
394 					_tmp77_ = builder;
395 					g_string_append (_tmp77_, "ref ");
396 				} else {
397 					ValaParameter* _tmp78_;
398 					ValaParameterDirection _tmp79_;
399 					ValaParameterDirection _tmp80_;
400 					_tmp78_ = param;
401 					_tmp79_ = vala_parameter_get_direction (_tmp78_);
402 					_tmp80_ = _tmp79_;
403 					if (_tmp80_ == VALA_PARAMETER_DIRECTION_OUT) {
404 						GString* _tmp81_;
405 						_tmp81_ = builder;
406 						g_string_append (_tmp81_, "out ");
407 					}
408 				}
409 				_tmp83_ = param;
410 				_tmp84_ = vala_variable_get_variable_type ((ValaVariable*) _tmp83_);
411 				_tmp85_ = _tmp84_;
412 				_tmp86_ = vala_data_type_get_value_owned (_tmp85_);
413 				_tmp87_ = _tmp86_;
414 				if (!_tmp87_) {
415 					ValaParameter* _tmp88_;
416 					ValaDataType* _tmp89_;
417 					ValaDataType* _tmp90_;
418 					_tmp88_ = param;
419 					_tmp89_ = vala_variable_get_variable_type ((ValaVariable*) _tmp88_);
420 					_tmp90_ = _tmp89_;
421 					_tmp82_ = VALA_IS_REFERENCE_TYPE (_tmp90_);
422 				} else {
423 					_tmp82_ = FALSE;
424 				}
425 				if (_tmp82_) {
426 					GString* _tmp91_;
427 					_tmp91_ = builder;
428 					g_string_append (_tmp91_, "weak ");
429 				}
430 			}
431 			_tmp92_ = builder;
432 			_tmp93_ = param;
433 			_tmp94_ = vala_variable_get_variable_type ((ValaVariable*) _tmp93_);
434 			_tmp95_ = _tmp94_;
435 			_tmp96_ = vala_data_type_to_qualified_string (_tmp95_, NULL);
436 			_tmp97_ = _tmp96_;
437 			g_string_append (_tmp92_, _tmp97_);
438 			_g_free0 (_tmp97_);
439 			_tmp98_ = param;
440 			_tmp99_ = vala_variable_get_initializer ((ValaVariable*) _tmp98_);
441 			_tmp100_ = _tmp99_;
442 			if (_tmp100_ != NULL) {
443 				GString* _tmp101_;
444 				GString* _tmp102_;
445 				ValaParameter* _tmp103_;
446 				ValaExpression* _tmp104_;
447 				ValaExpression* _tmp105_;
448 				gchar* _tmp106_;
449 				gchar* _tmp107_;
450 				_tmp101_ = builder;
451 				g_string_append (_tmp101_, " = ");
452 				_tmp102_ = builder;
453 				_tmp103_ = param;
454 				_tmp104_ = vala_variable_get_initializer ((ValaVariable*) _tmp103_);
455 				_tmp105_ = _tmp104_;
456 				_tmp106_ = vala_code_node_to_string ((ValaCodeNode*) _tmp105_);
457 				_tmp107_ = _tmp106_;
458 				g_string_append (_tmp102_, _tmp107_);
459 				_g_free0 (_tmp107_);
460 			}
461 			_tmp108_ = i;
462 			i = _tmp108_ + 1;
463 			_vala_code_node_unref0 (param);
464 		}
465 		_vala_iterable_unref0 (_param_list);
466 	}
467 	_tmp109_ = builder;
468 	g_string_append_c (_tmp109_, ')');
469 	_tmp110_ = g_direct_equal;
470 	_tmp111_ = vala_array_list_new (VALA_TYPE_DATA_TYPE, (GBoxedCopyFunc) vala_code_node_ref, (GDestroyNotify) vala_code_node_unref, _tmp110_);
471 	error_types = _tmp111_;
472 	_tmp112_ = error_types;
473 	vala_code_node_get_error_types ((ValaCodeNode*) self, (ValaCollection*) _tmp112_, NULL);
474 	_tmp113_ = error_types;
475 	_tmp114_ = vala_collection_get_size ((ValaCollection*) _tmp113_);
476 	_tmp115_ = _tmp114_;
477 	if (_tmp115_ > 0) {
478 		GString* _tmp116_;
479 		gboolean first = FALSE;
480 		_tmp116_ = builder;
481 		g_string_append (_tmp116_, " throws ");
482 		first = TRUE;
483 		{
484 			ValaArrayList* _type_list = NULL;
485 			ValaArrayList* _tmp117_;
486 			ValaArrayList* _tmp118_;
487 			gint _type_size = 0;
488 			ValaArrayList* _tmp119_;
489 			gint _tmp120_;
490 			gint _tmp121_;
491 			gint _type_index = 0;
492 			_tmp117_ = error_types;
493 			_tmp118_ = _vala_iterable_ref0 (_tmp117_);
494 			_type_list = _tmp118_;
495 			_tmp119_ = _type_list;
496 			_tmp120_ = vala_collection_get_size ((ValaCollection*) _tmp119_);
497 			_tmp121_ = _tmp120_;
498 			_type_size = _tmp121_;
499 			_type_index = -1;
500 			while (TRUE) {
501 				gint _tmp122_;
502 				gint _tmp123_;
503 				ValaDataType* type = NULL;
504 				ValaArrayList* _tmp124_;
505 				gpointer _tmp125_;
506 				GString* _tmp127_;
507 				ValaDataType* _tmp128_;
508 				gchar* _tmp129_;
509 				gchar* _tmp130_;
510 				_type_index = _type_index + 1;
511 				_tmp122_ = _type_index;
512 				_tmp123_ = _type_size;
513 				if (!(_tmp122_ < _tmp123_)) {
514 					break;
515 				}
516 				_tmp124_ = _type_list;
517 				_tmp125_ = vala_list_get ((ValaList*) _tmp124_, _type_index);
518 				type = (ValaDataType*) _tmp125_;
519 				if (!first) {
520 					GString* _tmp126_;
521 					_tmp126_ = builder;
522 					g_string_append (_tmp126_, ", ");
523 				} else {
524 					first = FALSE;
525 				}
526 				_tmp127_ = builder;
527 				_tmp128_ = type;
528 				_tmp129_ = vala_code_node_to_string ((ValaCodeNode*) _tmp128_);
529 				_tmp130_ = _tmp129_;
530 				g_string_append (_tmp127_, _tmp130_);
531 				_g_free0 (_tmp130_);
532 				_vala_code_node_unref0 (type);
533 			}
534 			_vala_iterable_unref0 (_type_list);
535 		}
536 	}
537 	_tmp131_ = builder;
538 	_tmp132_ = _tmp131_->str;
539 	_tmp133_ = g_strdup (_tmp132_);
540 	result = _tmp133_;
541 	_vala_iterable_unref0 (error_types);
542 	_g_free0 (_tmp23_);
543 	_g_string_free0 (builder);
544 	return result;
545 }
546 
547 static void
vala_callable_type_class_init(ValaCallableTypeClass * klass,gpointer klass_data)548 vala_callable_type_class_init (ValaCallableTypeClass * klass,
549                                gpointer klass_data)
550 {
551 	vala_callable_type_parent_class = g_type_class_peek_parent (klass);
552 	((ValaDataTypeClass *) klass)->is_invokable = (gboolean (*) (ValaDataType*)) vala_callable_type_real_is_invokable;
553 	((ValaDataTypeClass *) klass)->get_return_type = (ValaDataType* (*) (ValaDataType*)) vala_callable_type_real_get_return_type;
554 	((ValaDataTypeClass *) klass)->get_parameters = (ValaList* (*) (ValaDataType*)) vala_callable_type_real_get_parameters;
555 	((ValaDataTypeClass *) klass)->to_prototype_string = (gchar* (*) (ValaDataType*, const gchar*)) vala_callable_type_real_to_prototype_string;
556 }
557 
558 static void
vala_callable_type_instance_init(ValaCallableType * self,gpointer klass)559 vala_callable_type_instance_init (ValaCallableType * self,
560                                   gpointer klass)
561 {
562 }
563 
564 /**
565  * A callable type, i.e. a delegate, method, or signal type.
566  */
567 static GType
vala_callable_type_get_type_once(void)568 vala_callable_type_get_type_once (void)
569 {
570 	static const GTypeInfo g_define_type_info = { sizeof (ValaCallableTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_callable_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaCallableType), 0, (GInstanceInitFunc) vala_callable_type_instance_init, NULL };
571 	GType vala_callable_type_type_id;
572 	vala_callable_type_type_id = g_type_register_static (VALA_TYPE_DATA_TYPE, "ValaCallableType", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
573 	return vala_callable_type_type_id;
574 }
575 
576 GType
vala_callable_type_get_type(void)577 vala_callable_type_get_type (void)
578 {
579 	static volatile gsize vala_callable_type_type_id__volatile = 0;
580 	if (g_once_init_enter (&vala_callable_type_type_id__volatile)) {
581 		GType vala_callable_type_type_id;
582 		vala_callable_type_type_id = vala_callable_type_get_type_once ();
583 		g_once_init_leave (&vala_callable_type_type_id__volatile, vala_callable_type_type_id);
584 	}
585 	return vala_callable_type_type_id__volatile;
586 }
587 
588