1 /* valaccodefile.c generated by valac, the Vala compiler
2  * generated from valaccodefile.vala, do not modify */
3 
4 /* valaccodefile.vala
5  *
6  * Copyright (C) 2009-2011  Jürg Billeter
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  * 	Jürg Billeter <j@bitron.ch>
24  */
25 
26 #include "valaccode.h"
27 #include <glib.h>
28 #include <vala.h>
29 #include <valagee.h>
30 #include <glib-object.h>
31 #include <stdlib.h>
32 #include <string.h>
33 #include <gobject/gvaluecollector.h>
34 
35 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
36 #define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
37 #define _g_free0(var) (var = (g_free (var), NULL))
38 #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
39 #define _vala_ccode_writer_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_writer_unref (var), NULL)))
40 typedef struct _ValaParamSpecCCodeFile ValaParamSpecCCodeFile;
41 
42 struct _ValaCCodeFilePrivate {
43 	gboolean _is_header;
44 	ValaSourceFile* _file;
45 	ValaSet* features;
46 	ValaSet* declarations;
47 	ValaSet* definitions;
48 	ValaSet* includes;
49 	ValaCCodeFragment* comments;
50 	ValaCCodeFragment* feature_test_macros;
51 	ValaCCodeFragment* include_directives;
52 	ValaCCodeFragment* type_declaration;
53 	ValaCCodeFragment* type_definition;
54 	ValaCCodeFragment* type_member_declaration;
55 	ValaCCodeFragment* constant_declaration;
56 	ValaCCodeFragment* type_member_definition;
57 };
58 
59 struct _ValaParamSpecCCodeFile {
60 	GParamSpec parent_instance;
61 };
62 
63 static gint ValaCCodeFile_private_offset;
64 static gpointer vala_ccode_file_parent_class = NULL;
65 
66 static void vala_ccode_file_set_file (ValaCCodeFile* self,
67                                ValaSourceFile* value);
68 static void vala_ccode_file_get_symbols_from_fragment (ValaCCodeFile* self,
69                                                 ValaList* symbols,
70                                                 ValaCCodeFragment* fragment);
71 static gchar* vala_ccode_file_get_define_for_filename (const gchar* filename);
72 static void vala_ccode_file_finalize (ValaCCodeFile * obj);
73 static GType vala_ccode_file_get_type_once (void);
74 
75 static inline gpointer
vala_ccode_file_get_instance_private(ValaCCodeFile * self)76 vala_ccode_file_get_instance_private (ValaCCodeFile* self)
77 {
78 	return G_STRUCT_MEMBER_P (self, ValaCCodeFile_private_offset);
79 }
80 
81 gboolean
vala_ccode_file_get_is_header(ValaCCodeFile * self)82 vala_ccode_file_get_is_header (ValaCCodeFile* self)
83 {
84 	gboolean result;
85 	g_return_val_if_fail (self != NULL, FALSE);
86 	result = self->priv->_is_header;
87 	return result;
88 }
89 
90 void
vala_ccode_file_set_is_header(ValaCCodeFile * self,gboolean value)91 vala_ccode_file_set_is_header (ValaCCodeFile* self,
92                                gboolean value)
93 {
94 	g_return_if_fail (self != NULL);
95 	self->priv->_is_header = value;
96 }
97 
98 ValaSourceFile*
vala_ccode_file_get_file(ValaCCodeFile * self)99 vala_ccode_file_get_file (ValaCCodeFile* self)
100 {
101 	ValaSourceFile* result;
102 	ValaSourceFile* _tmp0_;
103 	g_return_val_if_fail (self != NULL, NULL);
104 	_tmp0_ = self->priv->_file;
105 	result = _tmp0_;
106 	return result;
107 }
108 
109 static void
vala_ccode_file_set_file(ValaCCodeFile * self,ValaSourceFile * value)110 vala_ccode_file_set_file (ValaCCodeFile* self,
111                           ValaSourceFile* value)
112 {
113 	g_return_if_fail (self != NULL);
114 	self->priv->_file = value;
115 }
116 
117 ValaCCodeFile*
vala_ccode_file_construct(GType object_type,ValaSourceFile * source_file)118 vala_ccode_file_construct (GType object_type,
119                            ValaSourceFile* source_file)
120 {
121 	ValaCCodeFile* self = NULL;
122 	self = (ValaCCodeFile*) g_type_create_instance (object_type);
123 	vala_ccode_file_set_file (self, source_file);
124 	return self;
125 }
126 
127 ValaCCodeFile*
vala_ccode_file_new(ValaSourceFile * source_file)128 vala_ccode_file_new (ValaSourceFile* source_file)
129 {
130 	return vala_ccode_file_construct (VALA_TYPE_CCODE_FILE, source_file);
131 }
132 
133 gboolean
vala_ccode_file_add_declaration(ValaCCodeFile * self,const gchar * name)134 vala_ccode_file_add_declaration (ValaCCodeFile* self,
135                                  const gchar* name)
136 {
137 	ValaSet* _tmp0_;
138 	ValaSet* _tmp1_;
139 	gboolean result = FALSE;
140 	g_return_val_if_fail (self != NULL, FALSE);
141 	g_return_val_if_fail (name != NULL, FALSE);
142 	_tmp0_ = self->priv->declarations;
143 	if (vala_collection_contains ((ValaCollection*) _tmp0_, name)) {
144 		result = TRUE;
145 		return result;
146 	}
147 	_tmp1_ = self->priv->declarations;
148 	vala_collection_add ((ValaCollection*) _tmp1_, name);
149 	result = FALSE;
150 	return result;
151 }
152 
153 void
vala_ccode_file_add_comment(ValaCCodeFile * self,ValaCCodeComment * comment)154 vala_ccode_file_add_comment (ValaCCodeFile* self,
155                              ValaCCodeComment* comment)
156 {
157 	ValaCCodeFragment* _tmp0_;
158 	g_return_if_fail (self != NULL);
159 	g_return_if_fail (comment != NULL);
160 	_tmp0_ = self->priv->comments;
161 	vala_ccode_fragment_append (_tmp0_, (ValaCCodeNode*) comment);
162 }
163 
164 void
vala_ccode_file_add_feature_test_macro(ValaCCodeFile * self,const gchar * feature_test_macro)165 vala_ccode_file_add_feature_test_macro (ValaCCodeFile* self,
166                                         const gchar* feature_test_macro)
167 {
168 	ValaSet* _tmp0_;
169 	g_return_if_fail (self != NULL);
170 	g_return_if_fail (feature_test_macro != NULL);
171 	_tmp0_ = self->priv->features;
172 	if (!vala_collection_contains ((ValaCollection*) _tmp0_, feature_test_macro)) {
173 		ValaCCodeFragment* _tmp1_;
174 		ValaCCodeDefine* _tmp2_;
175 		ValaCCodeDefine* _tmp3_;
176 		ValaSet* _tmp4_;
177 		_tmp1_ = self->priv->feature_test_macros;
178 		_tmp2_ = vala_ccode_define_new (feature_test_macro, NULL);
179 		_tmp3_ = _tmp2_;
180 		vala_ccode_fragment_append (_tmp1_, (ValaCCodeNode*) _tmp3_);
181 		_vala_ccode_node_unref0 (_tmp3_);
182 		_tmp4_ = self->priv->features;
183 		vala_collection_add ((ValaCollection*) _tmp4_, feature_test_macro);
184 	}
185 }
186 
187 void
vala_ccode_file_add_include(ValaCCodeFile * self,const gchar * filename,gboolean local)188 vala_ccode_file_add_include (ValaCCodeFile* self,
189                              const gchar* filename,
190                              gboolean local)
191 {
192 	ValaSet* _tmp0_;
193 	g_return_if_fail (self != NULL);
194 	g_return_if_fail (filename != NULL);
195 	_tmp0_ = self->priv->includes;
196 	if (!vala_collection_contains ((ValaCollection*) _tmp0_, filename)) {
197 		ValaCCodeFragment* _tmp1_;
198 		ValaCCodeIncludeDirective* _tmp2_;
199 		ValaCCodeIncludeDirective* _tmp3_;
200 		ValaSet* _tmp4_;
201 		_tmp1_ = self->priv->include_directives;
202 		_tmp2_ = vala_ccode_include_directive_new (filename, local);
203 		_tmp3_ = _tmp2_;
204 		vala_ccode_fragment_append (_tmp1_, (ValaCCodeNode*) _tmp3_);
205 		_vala_ccode_node_unref0 (_tmp3_);
206 		_tmp4_ = self->priv->includes;
207 		vala_collection_add ((ValaCollection*) _tmp4_, filename);
208 	}
209 }
210 
211 void
vala_ccode_file_add_type_declaration(ValaCCodeFile * self,ValaCCodeNode * node)212 vala_ccode_file_add_type_declaration (ValaCCodeFile* self,
213                                       ValaCCodeNode* node)
214 {
215 	ValaCCodeFragment* _tmp0_;
216 	g_return_if_fail (self != NULL);
217 	g_return_if_fail (node != NULL);
218 	_tmp0_ = self->priv->type_declaration;
219 	vala_ccode_fragment_append (_tmp0_, node);
220 }
221 
222 void
vala_ccode_file_add_type_definition(ValaCCodeFile * self,ValaCCodeNode * node)223 vala_ccode_file_add_type_definition (ValaCCodeFile* self,
224                                      ValaCCodeNode* node)
225 {
226 	ValaCCodeFragment* _tmp0_;
227 	g_return_if_fail (self != NULL);
228 	g_return_if_fail (node != NULL);
229 	_tmp0_ = self->priv->type_definition;
230 	vala_ccode_fragment_append (_tmp0_, node);
231 }
232 
233 void
vala_ccode_file_add_type_member_declaration(ValaCCodeFile * self,ValaCCodeNode * node)234 vala_ccode_file_add_type_member_declaration (ValaCCodeFile* self,
235                                              ValaCCodeNode* node)
236 {
237 	ValaCCodeFragment* _tmp0_;
238 	g_return_if_fail (self != NULL);
239 	g_return_if_fail (node != NULL);
240 	_tmp0_ = self->priv->type_member_declaration;
241 	vala_ccode_fragment_append (_tmp0_, node);
242 }
243 
244 void
vala_ccode_file_add_constant_declaration(ValaCCodeFile * self,ValaCCodeNode * node)245 vala_ccode_file_add_constant_declaration (ValaCCodeFile* self,
246                                           ValaCCodeNode* node)
247 {
248 	ValaCCodeFragment* _tmp0_;
249 	g_return_if_fail (self != NULL);
250 	g_return_if_fail (node != NULL);
251 	_tmp0_ = self->priv->constant_declaration;
252 	vala_ccode_fragment_append (_tmp0_, node);
253 }
254 
255 void
vala_ccode_file_add_type_member_definition(ValaCCodeFile * self,ValaCCodeNode * node)256 vala_ccode_file_add_type_member_definition (ValaCCodeFile* self,
257                                             ValaCCodeNode* node)
258 {
259 	ValaCCodeFragment* _tmp0_;
260 	g_return_if_fail (self != NULL);
261 	g_return_if_fail (node != NULL);
262 	_tmp0_ = self->priv->type_member_definition;
263 	vala_ccode_fragment_append (_tmp0_, node);
264 }
265 
266 void
vala_ccode_file_add_function_declaration(ValaCCodeFile * self,ValaCCodeFunction * func)267 vala_ccode_file_add_function_declaration (ValaCCodeFile* self,
268                                           ValaCCodeFunction* func)
269 {
270 	ValaSet* _tmp0_;
271 	const gchar* _tmp1_;
272 	const gchar* _tmp2_;
273 	ValaCCodeFunction* decl = NULL;
274 	ValaCCodeFunction* _tmp3_;
275 	ValaCCodeFragment* _tmp4_;
276 	g_return_if_fail (self != NULL);
277 	g_return_if_fail (func != NULL);
278 	_tmp0_ = self->priv->declarations;
279 	_tmp1_ = vala_ccode_function_get_name (func);
280 	_tmp2_ = _tmp1_;
281 	vala_collection_add ((ValaCollection*) _tmp0_, _tmp2_);
282 	_tmp3_ = vala_ccode_function_copy (func);
283 	decl = _tmp3_;
284 	vala_ccode_function_set_is_declaration (decl, TRUE);
285 	_tmp4_ = self->priv->type_member_declaration;
286 	vala_ccode_fragment_append (_tmp4_, (ValaCCodeNode*) decl);
287 	_vala_ccode_node_unref0 (decl);
288 }
289 
290 void
vala_ccode_file_add_function(ValaCCodeFile * self,ValaCCodeFunction * func)291 vala_ccode_file_add_function (ValaCCodeFile* self,
292                               ValaCCodeFunction* func)
293 {
294 	ValaSet* _tmp0_;
295 	const gchar* _tmp1_;
296 	const gchar* _tmp2_;
297 	ValaCCodeFragment* _tmp7_;
298 	g_return_if_fail (self != NULL);
299 	g_return_if_fail (func != NULL);
300 	_tmp0_ = self->priv->definitions;
301 	_tmp1_ = vala_ccode_function_get_name (func);
302 	_tmp2_ = _tmp1_;
303 	if (!vala_collection_add ((ValaCollection*) _tmp0_, _tmp2_)) {
304 		const gchar* _tmp3_;
305 		const gchar* _tmp4_;
306 		gchar* _tmp5_;
307 		gchar* _tmp6_;
308 		_tmp3_ = vala_ccode_function_get_name (func);
309 		_tmp4_ = _tmp3_;
310 		_tmp5_ = g_strdup_printf ("internal: Redefinition of `%s'", _tmp4_);
311 		_tmp6_ = _tmp5_;
312 		vala_report_error (NULL, _tmp6_);
313 		_g_free0 (_tmp6_);
314 		return;
315 	}
316 	_tmp7_ = self->priv->type_member_definition;
317 	vala_ccode_fragment_append (_tmp7_, (ValaCCodeNode*) func);
318 }
319 
320 ValaList*
vala_ccode_file_get_symbols(ValaCCodeFile * self)321 vala_ccode_file_get_symbols (ValaCCodeFile* self)
322 {
323 	ValaArrayList* symbols = NULL;
324 	GEqualFunc _tmp0_;
325 	ValaArrayList* _tmp1_;
326 	ValaCCodeFragment* _tmp2_;
327 	ValaList* result = NULL;
328 	g_return_val_if_fail (self != NULL, NULL);
329 	_tmp0_ = g_str_equal;
330 	_tmp1_ = vala_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, _tmp0_);
331 	symbols = _tmp1_;
332 	_tmp2_ = self->priv->type_member_declaration;
333 	vala_ccode_file_get_symbols_from_fragment (self, (ValaList*) symbols, _tmp2_);
334 	result = (ValaList*) symbols;
335 	return result;
336 }
337 
338 static gpointer
_vala_ccode_node_ref0(gpointer self)339 _vala_ccode_node_ref0 (gpointer self)
340 {
341 	return self ? vala_ccode_node_ref (self) : NULL;
342 }
343 
344 static void
vala_ccode_file_get_symbols_from_fragment(ValaCCodeFile * self,ValaList * symbols,ValaCCodeFragment * fragment)345 vala_ccode_file_get_symbols_from_fragment (ValaCCodeFile* self,
346                                            ValaList* symbols,
347                                            ValaCCodeFragment* fragment)
348 {
349 	g_return_if_fail (self != NULL);
350 	g_return_if_fail (symbols != NULL);
351 	g_return_if_fail (fragment != NULL);
352 	{
353 		ValaList* _node_list = NULL;
354 		ValaList* _tmp0_;
355 		gint _node_size = 0;
356 		ValaList* _tmp1_;
357 		gint _tmp2_;
358 		gint _tmp3_;
359 		gint _node_index = 0;
360 		_tmp0_ = vala_ccode_fragment_get_children (fragment);
361 		_node_list = _tmp0_;
362 		_tmp1_ = _node_list;
363 		_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
364 		_tmp3_ = _tmp2_;
365 		_node_size = _tmp3_;
366 		_node_index = -1;
367 		while (TRUE) {
368 			gint _tmp4_;
369 			gint _tmp5_;
370 			ValaCCodeNode* node = NULL;
371 			ValaList* _tmp6_;
372 			gpointer _tmp7_;
373 			ValaCCodeNode* _tmp8_;
374 			_node_index = _node_index + 1;
375 			_tmp4_ = _node_index;
376 			_tmp5_ = _node_size;
377 			if (!(_tmp4_ < _tmp5_)) {
378 				break;
379 			}
380 			_tmp6_ = _node_list;
381 			_tmp7_ = vala_list_get (_tmp6_, _node_index);
382 			node = (ValaCCodeNode*) _tmp7_;
383 			_tmp8_ = node;
384 			if (VALA_IS_CCODE_FRAGMENT (_tmp8_)) {
385 				ValaCCodeNode* _tmp9_;
386 				_tmp9_ = node;
387 				vala_ccode_file_get_symbols_from_fragment (self, symbols, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, VALA_TYPE_CCODE_FRAGMENT, ValaCCodeFragment));
388 			} else {
389 				ValaCCodeFunction* func = NULL;
390 				ValaCCodeNode* _tmp10_;
391 				ValaCCodeFunction* _tmp11_;
392 				ValaCCodeFunction* _tmp12_;
393 				_tmp10_ = node;
394 				_tmp11_ = _vala_ccode_node_ref0 (VALA_IS_CCODE_FUNCTION (_tmp10_) ? ((ValaCCodeFunction*) _tmp10_) : NULL);
395 				func = _tmp11_;
396 				_tmp12_ = func;
397 				if (_tmp12_ != NULL) {
398 					ValaCCodeFunction* _tmp13_;
399 					const gchar* _tmp14_;
400 					const gchar* _tmp15_;
401 					_tmp13_ = func;
402 					_tmp14_ = vala_ccode_function_get_name (_tmp13_);
403 					_tmp15_ = _tmp14_;
404 					vala_collection_add ((ValaCollection*) symbols, _tmp15_);
405 				}
406 				_vala_ccode_node_unref0 (func);
407 			}
408 			_vala_ccode_node_unref0 (node);
409 		}
410 		_vala_iterable_unref0 (_node_list);
411 	}
412 }
413 
414 static gunichar
string_get_char(const gchar * self,glong index)415 string_get_char (const gchar* self,
416                  glong index)
417 {
418 	gunichar result = 0U;
419 	g_return_val_if_fail (self != NULL, 0U);
420 	result = g_utf8_get_char (((gchar*) self) + index);
421 	return result;
422 }
423 
424 static gchar*
vala_ccode_file_get_define_for_filename(const gchar * filename)425 vala_ccode_file_get_define_for_filename (const gchar* filename)
426 {
427 	GString* define = NULL;
428 	GString* _tmp0_;
429 	gchar* i = NULL;
430 	gchar* _tmp1_;
431 	GString* _tmp12_;
432 	GString* _tmp13_;
433 	const gchar* _tmp14_;
434 	gchar* _tmp15_;
435 	gchar* result = NULL;
436 	g_return_val_if_fail (filename != NULL, NULL);
437 	_tmp0_ = g_string_new ("__");
438 	define = _tmp0_;
439 	_tmp1_ = g_strdup (filename);
440 	i = _tmp1_;
441 	while (TRUE) {
442 		const gchar* _tmp2_;
443 		gint _tmp3_;
444 		gint _tmp4_;
445 		gunichar c = 0U;
446 		const gchar* _tmp5_;
447 		gboolean _tmp6_ = FALSE;
448 		const gchar* _tmp9_;
449 		const gchar* _tmp10_;
450 		gchar* _tmp11_;
451 		_tmp2_ = i;
452 		_tmp3_ = strlen (_tmp2_);
453 		_tmp4_ = _tmp3_;
454 		if (!(_tmp4_ > 0)) {
455 			break;
456 		}
457 		_tmp5_ = i;
458 		c = string_get_char (_tmp5_, (glong) 0);
459 		if (g_unichar_isalnum (c)) {
460 			_tmp6_ = c < ((gunichar) 0x80);
461 		} else {
462 			_tmp6_ = FALSE;
463 		}
464 		if (_tmp6_) {
465 			GString* _tmp7_;
466 			_tmp7_ = define;
467 			g_string_append_unichar (_tmp7_, g_unichar_toupper (c));
468 		} else {
469 			GString* _tmp8_;
470 			_tmp8_ = define;
471 			g_string_append_c (_tmp8_, '_');
472 		}
473 		_tmp9_ = i;
474 		_tmp10_ = g_utf8_next_char (_tmp9_);
475 		_tmp11_ = g_strdup (_tmp10_);
476 		_g_free0 (i);
477 		i = _tmp11_;
478 	}
479 	_tmp12_ = define;
480 	g_string_append (_tmp12_, "__");
481 	_tmp13_ = define;
482 	_tmp14_ = _tmp13_->str;
483 	_tmp15_ = g_strdup (_tmp14_);
484 	result = _tmp15_;
485 	_g_free0 (i);
486 	_g_string_free0 (define);
487 	return result;
488 }
489 
490 gboolean
vala_ccode_file_store(ValaCCodeFile * self,const gchar * filename,const gchar * source_filename,gboolean write_version,gboolean line_directives,const gchar * begin_decls,const gchar * end_decls)491 vala_ccode_file_store (ValaCCodeFile* self,
492                        const gchar* filename,
493                        const gchar* source_filename,
494                        gboolean write_version,
495                        gboolean line_directives,
496                        const gchar* begin_decls,
497                        const gchar* end_decls)
498 {
499 	ValaCCodeWriter* writer = NULL;
500 	ValaCCodeWriter* _tmp0_;
501 	ValaCCodeWriter* _tmp1_;
502 	gboolean _tmp2_;
503 	ValaCCodeWriter* _tmp87_;
504 	gboolean result = FALSE;
505 	g_return_val_if_fail (self != NULL, FALSE);
506 	g_return_val_if_fail (filename != NULL, FALSE);
507 	_tmp0_ = vala_ccode_writer_new (filename, source_filename);
508 	writer = _tmp0_;
509 	_tmp1_ = writer;
510 	if (!vala_ccode_writer_open (_tmp1_, write_version)) {
511 		result = FALSE;
512 		_vala_ccode_writer_unref0 (writer);
513 		return result;
514 	}
515 	_tmp2_ = self->priv->_is_header;
516 	if (!_tmp2_) {
517 		ValaCCodeWriter* _tmp3_;
518 		ValaCCodeFragment* _tmp4_;
519 		ValaCCodeWriter* _tmp5_;
520 		ValaCCodeWriter* _tmp6_;
521 		ValaCCodeFragment* _tmp7_;
522 		ValaCCodeWriter* _tmp8_;
523 		ValaCCodeWriter* _tmp9_;
524 		ValaCCodeFragment* _tmp10_;
525 		ValaCCodeWriter* _tmp11_;
526 		ValaCCodeWriter* _tmp12_;
527 		ValaCCodeFragment* _tmp13_;
528 		ValaCCodeWriter* _tmp14_;
529 		ValaCCodeWriter* _tmp15_;
530 		ValaCCodeFragment* _tmp16_;
531 		ValaCCodeWriter* _tmp17_;
532 		ValaCCodeWriter* _tmp18_;
533 		ValaCCodeFragment* _tmp19_;
534 		ValaCCodeWriter* _tmp20_;
535 		ValaCCodeWriter* _tmp21_;
536 		ValaCCodeFragment* _tmp22_;
537 		ValaCCodeWriter* _tmp23_;
538 		ValaCCodeWriter* _tmp24_;
539 		ValaCCodeFragment* _tmp25_;
540 		ValaCCodeWriter* _tmp26_;
541 		ValaCCodeWriter* _tmp27_;
542 		ValaCCodeFragment* _tmp28_;
543 		ValaCCodeWriter* _tmp29_;
544 		ValaCCodeWriter* _tmp30_;
545 		_tmp3_ = writer;
546 		vala_ccode_writer_set_line_directives (_tmp3_, line_directives);
547 		_tmp4_ = self->priv->comments;
548 		_tmp5_ = writer;
549 		vala_ccode_node_write ((ValaCCodeNode*) _tmp4_, _tmp5_);
550 		_tmp6_ = writer;
551 		vala_ccode_writer_write_newline (_tmp6_);
552 		_tmp7_ = self->priv->feature_test_macros;
553 		_tmp8_ = writer;
554 		vala_ccode_node_write ((ValaCCodeNode*) _tmp7_, _tmp8_);
555 		_tmp9_ = writer;
556 		vala_ccode_writer_write_newline (_tmp9_);
557 		_tmp10_ = self->priv->include_directives;
558 		_tmp11_ = writer;
559 		vala_ccode_node_write ((ValaCCodeNode*) _tmp10_, _tmp11_);
560 		_tmp12_ = writer;
561 		vala_ccode_writer_write_newline (_tmp12_);
562 		_tmp13_ = self->priv->type_declaration;
563 		_tmp14_ = writer;
564 		vala_ccode_node_write_combined ((ValaCCodeNode*) _tmp13_, _tmp14_);
565 		_tmp15_ = writer;
566 		vala_ccode_writer_write_newline (_tmp15_);
567 		_tmp16_ = self->priv->type_definition;
568 		_tmp17_ = writer;
569 		vala_ccode_node_write_combined ((ValaCCodeNode*) _tmp16_, _tmp17_);
570 		_tmp18_ = writer;
571 		vala_ccode_writer_write_newline (_tmp18_);
572 		_tmp19_ = self->priv->type_member_declaration;
573 		_tmp20_ = writer;
574 		vala_ccode_node_write_declaration ((ValaCCodeNode*) _tmp19_, _tmp20_);
575 		_tmp21_ = writer;
576 		vala_ccode_writer_write_newline (_tmp21_);
577 		_tmp22_ = self->priv->type_member_declaration;
578 		_tmp23_ = writer;
579 		vala_ccode_node_write ((ValaCCodeNode*) _tmp22_, _tmp23_);
580 		_tmp24_ = writer;
581 		vala_ccode_writer_write_newline (_tmp24_);
582 		_tmp25_ = self->priv->constant_declaration;
583 		_tmp26_ = writer;
584 		vala_ccode_node_write_combined ((ValaCCodeNode*) _tmp25_, _tmp26_);
585 		_tmp27_ = writer;
586 		vala_ccode_writer_write_newline (_tmp27_);
587 		_tmp28_ = self->priv->type_member_definition;
588 		_tmp29_ = writer;
589 		vala_ccode_node_write ((ValaCCodeNode*) _tmp28_, _tmp29_);
590 		_tmp30_ = writer;
591 		vala_ccode_writer_write_newline (_tmp30_);
592 	} else {
593 		ValaCCodeWriter* _tmp31_;
594 		ValaCCodeOnceSection* once = NULL;
595 		ValaCCodeWriter* _tmp32_;
596 		const gchar* _tmp33_;
597 		const gchar* _tmp34_;
598 		gchar* _tmp35_;
599 		gchar* _tmp36_;
600 		ValaCCodeOnceSection* _tmp37_;
601 		ValaCCodeOnceSection* _tmp38_;
602 		ValaCCodeOnceSection* _tmp39_;
603 		ValaCCodeNewline* _tmp40_;
604 		ValaCCodeNewline* _tmp41_;
605 		ValaCCodeOnceSection* _tmp42_;
606 		ValaCCodeFragment* _tmp43_;
607 		ValaCCodeOnceSection* _tmp44_;
608 		ValaCCodeNewline* _tmp45_;
609 		ValaCCodeNewline* _tmp46_;
610 		ValaCCodeOnceSection* _tmp53_;
611 		ValaCCodeNewline* _tmp54_;
612 		ValaCCodeNewline* _tmp55_;
613 		ValaCCodeOnceSection* _tmp56_;
614 		ValaCCodeFragment* _tmp57_;
615 		ValaCCodeOnceSection* _tmp58_;
616 		ValaCCodeNewline* _tmp59_;
617 		ValaCCodeNewline* _tmp60_;
618 		ValaCCodeOnceSection* _tmp61_;
619 		ValaCCodeFragment* _tmp62_;
620 		ValaCCodeOnceSection* _tmp63_;
621 		ValaCCodeNewline* _tmp64_;
622 		ValaCCodeNewline* _tmp65_;
623 		ValaCCodeOnceSection* _tmp66_;
624 		ValaCCodeFragment* _tmp67_;
625 		ValaCCodeOnceSection* _tmp68_;
626 		ValaCCodeNewline* _tmp69_;
627 		ValaCCodeNewline* _tmp70_;
628 		ValaCCodeOnceSection* _tmp71_;
629 		ValaCCodeFragment* _tmp72_;
630 		ValaCCodeOnceSection* _tmp73_;
631 		ValaCCodeNewline* _tmp74_;
632 		ValaCCodeNewline* _tmp75_;
633 		ValaCCodeOnceSection* _tmp82_;
634 		ValaCCodeNewline* _tmp83_;
635 		ValaCCodeNewline* _tmp84_;
636 		ValaCCodeOnceSection* _tmp85_;
637 		ValaCCodeWriter* _tmp86_;
638 		_tmp31_ = writer;
639 		vala_ccode_writer_write_newline (_tmp31_);
640 		_tmp32_ = writer;
641 		_tmp33_ = vala_ccode_writer_get_filename (_tmp32_);
642 		_tmp34_ = _tmp33_;
643 		_tmp35_ = vala_ccode_file_get_define_for_filename (_tmp34_);
644 		_tmp36_ = _tmp35_;
645 		_tmp37_ = vala_ccode_once_section_new (_tmp36_);
646 		_tmp38_ = _tmp37_;
647 		_g_free0 (_tmp36_);
648 		once = _tmp38_;
649 		_tmp39_ = once;
650 		_tmp40_ = vala_ccode_newline_new ();
651 		_tmp41_ = _tmp40_;
652 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp39_, (ValaCCodeNode*) _tmp41_);
653 		_vala_ccode_node_unref0 (_tmp41_);
654 		_tmp42_ = once;
655 		_tmp43_ = self->priv->include_directives;
656 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp42_, (ValaCCodeNode*) _tmp43_);
657 		_tmp44_ = once;
658 		_tmp45_ = vala_ccode_newline_new ();
659 		_tmp46_ = _tmp45_;
660 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp44_, (ValaCCodeNode*) _tmp46_);
661 		_vala_ccode_node_unref0 (_tmp46_);
662 		if (begin_decls != NULL) {
663 			ValaCCodeOnceSection* _tmp47_;
664 			ValaCCodeIdentifier* _tmp48_;
665 			ValaCCodeIdentifier* _tmp49_;
666 			ValaCCodeOnceSection* _tmp50_;
667 			ValaCCodeNewline* _tmp51_;
668 			ValaCCodeNewline* _tmp52_;
669 			_tmp47_ = once;
670 			_tmp48_ = vala_ccode_identifier_new (begin_decls);
671 			_tmp49_ = _tmp48_;
672 			vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp47_, (ValaCCodeNode*) _tmp49_);
673 			_vala_ccode_node_unref0 (_tmp49_);
674 			_tmp50_ = once;
675 			_tmp51_ = vala_ccode_newline_new ();
676 			_tmp52_ = _tmp51_;
677 			vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp50_, (ValaCCodeNode*) _tmp52_);
678 			_vala_ccode_node_unref0 (_tmp52_);
679 		}
680 		_tmp53_ = once;
681 		_tmp54_ = vala_ccode_newline_new ();
682 		_tmp55_ = _tmp54_;
683 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp53_, (ValaCCodeNode*) _tmp55_);
684 		_vala_ccode_node_unref0 (_tmp55_);
685 		_tmp56_ = once;
686 		_tmp57_ = self->priv->type_declaration;
687 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp56_, (ValaCCodeNode*) _tmp57_);
688 		_tmp58_ = once;
689 		_tmp59_ = vala_ccode_newline_new ();
690 		_tmp60_ = _tmp59_;
691 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp58_, (ValaCCodeNode*) _tmp60_);
692 		_vala_ccode_node_unref0 (_tmp60_);
693 		_tmp61_ = once;
694 		_tmp62_ = self->priv->type_definition;
695 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp61_, (ValaCCodeNode*) _tmp62_);
696 		_tmp63_ = once;
697 		_tmp64_ = vala_ccode_newline_new ();
698 		_tmp65_ = _tmp64_;
699 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp63_, (ValaCCodeNode*) _tmp65_);
700 		_vala_ccode_node_unref0 (_tmp65_);
701 		_tmp66_ = once;
702 		_tmp67_ = self->priv->type_member_declaration;
703 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp66_, (ValaCCodeNode*) _tmp67_);
704 		_tmp68_ = once;
705 		_tmp69_ = vala_ccode_newline_new ();
706 		_tmp70_ = _tmp69_;
707 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp68_, (ValaCCodeNode*) _tmp70_);
708 		_vala_ccode_node_unref0 (_tmp70_);
709 		_tmp71_ = once;
710 		_tmp72_ = self->priv->constant_declaration;
711 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp71_, (ValaCCodeNode*) _tmp72_);
712 		_tmp73_ = once;
713 		_tmp74_ = vala_ccode_newline_new ();
714 		_tmp75_ = _tmp74_;
715 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp73_, (ValaCCodeNode*) _tmp75_);
716 		_vala_ccode_node_unref0 (_tmp75_);
717 		if (end_decls != NULL) {
718 			ValaCCodeOnceSection* _tmp76_;
719 			ValaCCodeIdentifier* _tmp77_;
720 			ValaCCodeIdentifier* _tmp78_;
721 			ValaCCodeOnceSection* _tmp79_;
722 			ValaCCodeNewline* _tmp80_;
723 			ValaCCodeNewline* _tmp81_;
724 			_tmp76_ = once;
725 			_tmp77_ = vala_ccode_identifier_new (end_decls);
726 			_tmp78_ = _tmp77_;
727 			vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp76_, (ValaCCodeNode*) _tmp78_);
728 			_vala_ccode_node_unref0 (_tmp78_);
729 			_tmp79_ = once;
730 			_tmp80_ = vala_ccode_newline_new ();
731 			_tmp81_ = _tmp80_;
732 			vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp79_, (ValaCCodeNode*) _tmp81_);
733 			_vala_ccode_node_unref0 (_tmp81_);
734 		}
735 		_tmp82_ = once;
736 		_tmp83_ = vala_ccode_newline_new ();
737 		_tmp84_ = _tmp83_;
738 		vala_ccode_fragment_append ((ValaCCodeFragment*) _tmp82_, (ValaCCodeNode*) _tmp84_);
739 		_vala_ccode_node_unref0 (_tmp84_);
740 		_tmp85_ = once;
741 		_tmp86_ = writer;
742 		vala_ccode_node_write ((ValaCCodeNode*) _tmp85_, _tmp86_);
743 		_vala_ccode_node_unref0 (once);
744 	}
745 	_tmp87_ = writer;
746 	vala_ccode_writer_close (_tmp87_);
747 	result = TRUE;
748 	_vala_ccode_writer_unref0 (writer);
749 	return result;
750 }
751 
752 static void
vala_value_ccode_file_init(GValue * value)753 vala_value_ccode_file_init (GValue* value)
754 {
755 	value->data[0].v_pointer = NULL;
756 }
757 
758 static void
vala_value_ccode_file_free_value(GValue * value)759 vala_value_ccode_file_free_value (GValue* value)
760 {
761 	if (value->data[0].v_pointer) {
762 		vala_ccode_file_unref (value->data[0].v_pointer);
763 	}
764 }
765 
766 static void
vala_value_ccode_file_copy_value(const GValue * src_value,GValue * dest_value)767 vala_value_ccode_file_copy_value (const GValue* src_value,
768                                   GValue* dest_value)
769 {
770 	if (src_value->data[0].v_pointer) {
771 		dest_value->data[0].v_pointer = vala_ccode_file_ref (src_value->data[0].v_pointer);
772 	} else {
773 		dest_value->data[0].v_pointer = NULL;
774 	}
775 }
776 
777 static gpointer
vala_value_ccode_file_peek_pointer(const GValue * value)778 vala_value_ccode_file_peek_pointer (const GValue* value)
779 {
780 	return value->data[0].v_pointer;
781 }
782 
783 static gchar*
vala_value_ccode_file_collect_value(GValue * value,guint n_collect_values,GTypeCValue * collect_values,guint collect_flags)784 vala_value_ccode_file_collect_value (GValue* value,
785                                      guint n_collect_values,
786                                      GTypeCValue* collect_values,
787                                      guint collect_flags)
788 {
789 	if (collect_values[0].v_pointer) {
790 		ValaCCodeFile * object;
791 		object = collect_values[0].v_pointer;
792 		if (object->parent_instance.g_class == NULL) {
793 			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
794 		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
795 			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
796 		}
797 		value->data[0].v_pointer = vala_ccode_file_ref (object);
798 	} else {
799 		value->data[0].v_pointer = NULL;
800 	}
801 	return NULL;
802 }
803 
804 static gchar*
vala_value_ccode_file_lcopy_value(const GValue * value,guint n_collect_values,GTypeCValue * collect_values,guint collect_flags)805 vala_value_ccode_file_lcopy_value (const GValue* value,
806                                    guint n_collect_values,
807                                    GTypeCValue* collect_values,
808                                    guint collect_flags)
809 {
810 	ValaCCodeFile ** object_p;
811 	object_p = collect_values[0].v_pointer;
812 	if (!object_p) {
813 		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
814 	}
815 	if (!value->data[0].v_pointer) {
816 		*object_p = NULL;
817 	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
818 		*object_p = value->data[0].v_pointer;
819 	} else {
820 		*object_p = vala_ccode_file_ref (value->data[0].v_pointer);
821 	}
822 	return NULL;
823 }
824 
825 GParamSpec*
vala_param_spec_ccode_file(const gchar * name,const gchar * nick,const gchar * blurb,GType object_type,GParamFlags flags)826 vala_param_spec_ccode_file (const gchar* name,
827                             const gchar* nick,
828                             const gchar* blurb,
829                             GType object_type,
830                             GParamFlags flags)
831 {
832 	ValaParamSpecCCodeFile* spec;
833 	g_return_val_if_fail (g_type_is_a (object_type, VALA_TYPE_CCODE_FILE), NULL);
834 	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
835 	G_PARAM_SPEC (spec)->value_type = object_type;
836 	return G_PARAM_SPEC (spec);
837 }
838 
839 gpointer
vala_value_get_ccode_file(const GValue * value)840 vala_value_get_ccode_file (const GValue* value)
841 {
842 	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VALA_TYPE_CCODE_FILE), NULL);
843 	return value->data[0].v_pointer;
844 }
845 
846 void
vala_value_set_ccode_file(GValue * value,gpointer v_object)847 vala_value_set_ccode_file (GValue* value,
848                            gpointer v_object)
849 {
850 	ValaCCodeFile * old;
851 	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VALA_TYPE_CCODE_FILE));
852 	old = value->data[0].v_pointer;
853 	if (v_object) {
854 		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, VALA_TYPE_CCODE_FILE));
855 		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
856 		value->data[0].v_pointer = v_object;
857 		vala_ccode_file_ref (value->data[0].v_pointer);
858 	} else {
859 		value->data[0].v_pointer = NULL;
860 	}
861 	if (old) {
862 		vala_ccode_file_unref (old);
863 	}
864 }
865 
866 void
vala_value_take_ccode_file(GValue * value,gpointer v_object)867 vala_value_take_ccode_file (GValue* value,
868                             gpointer v_object)
869 {
870 	ValaCCodeFile * old;
871 	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VALA_TYPE_CCODE_FILE));
872 	old = value->data[0].v_pointer;
873 	if (v_object) {
874 		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, VALA_TYPE_CCODE_FILE));
875 		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
876 		value->data[0].v_pointer = v_object;
877 	} else {
878 		value->data[0].v_pointer = NULL;
879 	}
880 	if (old) {
881 		vala_ccode_file_unref (old);
882 	}
883 }
884 
885 static void
vala_ccode_file_class_init(ValaCCodeFileClass * klass,gpointer klass_data)886 vala_ccode_file_class_init (ValaCCodeFileClass * klass,
887                             gpointer klass_data)
888 {
889 	vala_ccode_file_parent_class = g_type_class_peek_parent (klass);
890 	((ValaCCodeFileClass *) klass)->finalize = vala_ccode_file_finalize;
891 	g_type_class_adjust_private_offset (klass, &ValaCCodeFile_private_offset);
892 }
893 
894 static void
vala_ccode_file_instance_init(ValaCCodeFile * self,gpointer klass)895 vala_ccode_file_instance_init (ValaCCodeFile * self,
896                                gpointer klass)
897 {
898 	GHashFunc _tmp0_;
899 	GEqualFunc _tmp1_;
900 	ValaHashSet* _tmp2_;
901 	GHashFunc _tmp3_;
902 	GEqualFunc _tmp4_;
903 	ValaHashSet* _tmp5_;
904 	GHashFunc _tmp6_;
905 	GEqualFunc _tmp7_;
906 	ValaHashSet* _tmp8_;
907 	GHashFunc _tmp9_;
908 	GEqualFunc _tmp10_;
909 	ValaHashSet* _tmp11_;
910 	ValaCCodeFragment* _tmp12_;
911 	ValaCCodeFragment* _tmp13_;
912 	ValaCCodeFragment* _tmp14_;
913 	ValaCCodeFragment* _tmp15_;
914 	ValaCCodeFragment* _tmp16_;
915 	ValaCCodeFragment* _tmp17_;
916 	ValaCCodeFragment* _tmp18_;
917 	ValaCCodeFragment* _tmp19_;
918 	self->priv = vala_ccode_file_get_instance_private (self);
919 	_tmp0_ = g_str_hash;
920 	_tmp1_ = g_str_equal;
921 	_tmp2_ = vala_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, _tmp0_, _tmp1_);
922 	self->priv->features = (ValaSet*) _tmp2_;
923 	_tmp3_ = g_str_hash;
924 	_tmp4_ = g_str_equal;
925 	_tmp5_ = vala_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, _tmp3_, _tmp4_);
926 	self->priv->declarations = (ValaSet*) _tmp5_;
927 	_tmp6_ = g_str_hash;
928 	_tmp7_ = g_str_equal;
929 	_tmp8_ = vala_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, _tmp6_, _tmp7_);
930 	self->priv->definitions = (ValaSet*) _tmp8_;
931 	_tmp9_ = g_str_hash;
932 	_tmp10_ = g_str_equal;
933 	_tmp11_ = vala_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, _tmp9_, _tmp10_);
934 	self->priv->includes = (ValaSet*) _tmp11_;
935 	_tmp12_ = vala_ccode_fragment_new ();
936 	self->priv->comments = _tmp12_;
937 	_tmp13_ = vala_ccode_fragment_new ();
938 	self->priv->feature_test_macros = _tmp13_;
939 	_tmp14_ = vala_ccode_fragment_new ();
940 	self->priv->include_directives = _tmp14_;
941 	_tmp15_ = vala_ccode_fragment_new ();
942 	self->priv->type_declaration = _tmp15_;
943 	_tmp16_ = vala_ccode_fragment_new ();
944 	self->priv->type_definition = _tmp16_;
945 	_tmp17_ = vala_ccode_fragment_new ();
946 	self->priv->type_member_declaration = _tmp17_;
947 	_tmp18_ = vala_ccode_fragment_new ();
948 	self->priv->constant_declaration = _tmp18_;
949 	_tmp19_ = vala_ccode_fragment_new ();
950 	self->priv->type_member_definition = _tmp19_;
951 	self->ref_count = 1;
952 }
953 
954 static void
vala_ccode_file_finalize(ValaCCodeFile * obj)955 vala_ccode_file_finalize (ValaCCodeFile * obj)
956 {
957 	ValaCCodeFile * self;
958 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALA_TYPE_CCODE_FILE, ValaCCodeFile);
959 	g_signal_handlers_destroy (self);
960 	_vala_iterable_unref0 (self->priv->features);
961 	_vala_iterable_unref0 (self->priv->declarations);
962 	_vala_iterable_unref0 (self->priv->definitions);
963 	_vala_iterable_unref0 (self->priv->includes);
964 	_vala_ccode_node_unref0 (self->priv->comments);
965 	_vala_ccode_node_unref0 (self->priv->feature_test_macros);
966 	_vala_ccode_node_unref0 (self->priv->include_directives);
967 	_vala_ccode_node_unref0 (self->priv->type_declaration);
968 	_vala_ccode_node_unref0 (self->priv->type_definition);
969 	_vala_ccode_node_unref0 (self->priv->type_member_declaration);
970 	_vala_ccode_node_unref0 (self->priv->constant_declaration);
971 	_vala_ccode_node_unref0 (self->priv->type_member_definition);
972 }
973 
974 static GType
vala_ccode_file_get_type_once(void)975 vala_ccode_file_get_type_once (void)
976 {
977 	static const GTypeValueTable g_define_type_value_table = { vala_value_ccode_file_init, vala_value_ccode_file_free_value, vala_value_ccode_file_copy_value, vala_value_ccode_file_peek_pointer, "p", vala_value_ccode_file_collect_value, "p", vala_value_ccode_file_lcopy_value };
978 	static const GTypeInfo g_define_type_info = { sizeof (ValaCCodeFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_ccode_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaCCodeFile), 0, (GInstanceInitFunc) vala_ccode_file_instance_init, &g_define_type_value_table };
979 	static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
980 	GType vala_ccode_file_type_id;
981 	vala_ccode_file_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ValaCCodeFile", &g_define_type_info, &g_define_type_fundamental_info, 0);
982 	ValaCCodeFile_private_offset = g_type_add_instance_private (vala_ccode_file_type_id, sizeof (ValaCCodeFilePrivate));
983 	return vala_ccode_file_type_id;
984 }
985 
986 GType
vala_ccode_file_get_type(void)987 vala_ccode_file_get_type (void)
988 {
989 	static volatile gsize vala_ccode_file_type_id__volatile = 0;
990 	if (g_once_init_enter (&vala_ccode_file_type_id__volatile)) {
991 		GType vala_ccode_file_type_id;
992 		vala_ccode_file_type_id = vala_ccode_file_get_type_once ();
993 		g_once_init_leave (&vala_ccode_file_type_id__volatile, vala_ccode_file_type_id);
994 	}
995 	return vala_ccode_file_type_id__volatile;
996 }
997 
998 gpointer
vala_ccode_file_ref(gpointer instance)999 vala_ccode_file_ref (gpointer instance)
1000 {
1001 	ValaCCodeFile * self;
1002 	self = instance;
1003 	g_atomic_int_inc (&self->ref_count);
1004 	return instance;
1005 }
1006 
1007 void
vala_ccode_file_unref(gpointer instance)1008 vala_ccode_file_unref (gpointer instance)
1009 {
1010 	ValaCCodeFile * self;
1011 	self = instance;
1012 	if (g_atomic_int_dec_and_test (&self->ref_count)) {
1013 		VALA_CCODE_FILE_GET_CLASS (self)->finalize (self);
1014 		g_type_free_instance ((GTypeInstance *) self);
1015 	}
1016 }
1017 
1018