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