1 /* valaglibvalue.c generated by valac, the Vala compiler
2 * generated from valaglibvalue.vala, do not modify */
3
4 /* valaglibvalue.vala
5 *
6 * Copyright (C) 2010 Jürg Billeter
7 * Copyright (C) 2011 Luca Bruno
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 *
23 * Author:
24 * Jürg Billeter <j@bitron.ch>
25 * Luca Bruno <lucabru@src.gnome.org>
26 */
27
28 #include "valacodegen.h"
29 #include <vala.h>
30 #include <valaccode.h>
31 #include <glib.h>
32 #include <valagee.h>
33 #include <glib-object.h>
34 #include <stdlib.h>
35 #include <string.h>
36
37 #define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
38 #define _g_free0(var) (var = (g_free (var), NULL))
39 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
40 #define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
41 #define _vala_target_value_unref0(var) ((var == NULL) ? NULL : (var = (vala_target_value_unref (var), NULL)))
42
43 static gpointer vala_glib_value_parent_class = NULL;
44
45 static void vala_glib_value_finalize (ValaTargetValue * obj);
46 static GType vala_glib_value_get_type_once (void);
47
48 static gpointer
_vala_ccode_node_ref0(gpointer self)49 _vala_ccode_node_ref0 (gpointer self)
50 {
51 return self ? vala_ccode_node_ref (self) : NULL;
52 }
53
54 ValaGLibValue*
vala_glib_value_construct(GType object_type,ValaDataType * value_type,ValaCCodeExpression * cvalue,gboolean lvalue)55 vala_glib_value_construct (GType object_type,
56 ValaDataType* value_type,
57 ValaCCodeExpression* cvalue,
58 gboolean lvalue)
59 {
60 ValaGLibValue* self = NULL;
61 ValaCCodeExpression* _tmp0_;
62 self = (ValaGLibValue*) vala_target_value_construct (object_type, value_type);
63 _tmp0_ = _vala_ccode_node_ref0 (cvalue);
64 _vala_ccode_node_unref0 (self->cvalue);
65 self->cvalue = _tmp0_;
66 self->lvalue = lvalue;
67 return self;
68 }
69
70 ValaGLibValue*
vala_glib_value_new(ValaDataType * value_type,ValaCCodeExpression * cvalue,gboolean lvalue)71 vala_glib_value_new (ValaDataType* value_type,
72 ValaCCodeExpression* cvalue,
73 gboolean lvalue)
74 {
75 return vala_glib_value_construct (VALA_TYPE_GLIB_VALUE, value_type, cvalue, lvalue);
76 }
77
78 void
vala_glib_value_append_array_length_cvalue(ValaGLibValue * self,ValaCCodeExpression * length_cvalue)79 vala_glib_value_append_array_length_cvalue (ValaGLibValue* self,
80 ValaCCodeExpression* length_cvalue)
81 {
82 ValaList* _tmp0_;
83 ValaList* _tmp3_;
84 g_return_if_fail (self != NULL);
85 g_return_if_fail (length_cvalue != NULL);
86 _tmp0_ = self->array_length_cvalues;
87 if (_tmp0_ == NULL) {
88 GEqualFunc _tmp1_;
89 ValaArrayList* _tmp2_;
90 _tmp1_ = g_direct_equal;
91 _tmp2_ = vala_array_list_new (VALA_TYPE_CCODE_EXPRESSION, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp1_);
92 _vala_iterable_unref0 (self->array_length_cvalues);
93 self->array_length_cvalues = (ValaList*) _tmp2_;
94 }
95 _tmp3_ = self->array_length_cvalues;
96 vala_collection_add ((ValaCollection*) _tmp3_, length_cvalue);
97 }
98
99 static gpointer
_vala_iterable_ref0(gpointer self)100 _vala_iterable_ref0 (gpointer self)
101 {
102 return self ? vala_iterable_ref (self) : NULL;
103 }
104
105 ValaGLibValue*
vala_glib_value_copy(ValaGLibValue * self)106 vala_glib_value_copy (ValaGLibValue* self)
107 {
108 ValaGLibValue* _result_ = NULL;
109 ValaDataType* _tmp0_;
110 ValaDataType* _tmp1_;
111 ValaDataType* _tmp2_;
112 ValaDataType* _tmp3_;
113 ValaCCodeExpression* _tmp4_;
114 ValaGLibValue* _tmp5_;
115 ValaGLibValue* _tmp6_;
116 ValaGLibValue* _tmp7_;
117 ValaDataType* _tmp8_;
118 ValaDataType* _tmp9_;
119 ValaGLibValue* _tmp10_;
120 ValaGLibValue* _tmp11_;
121 const gchar* _tmp12_;
122 gchar* _tmp13_;
123 ValaList* _tmp14_;
124 ValaGLibValue* _tmp26_;
125 ValaCCodeExpression* _tmp27_;
126 ValaCCodeExpression* _tmp28_;
127 ValaGLibValue* _tmp29_;
128 ValaGLibValue* _tmp30_;
129 ValaCCodeExpression* _tmp31_;
130 ValaCCodeExpression* _tmp32_;
131 ValaGLibValue* _tmp33_;
132 ValaCCodeExpression* _tmp34_;
133 ValaCCodeExpression* _tmp35_;
134 ValaGLibValue* _tmp36_;
135 ValaCCodeExpression* _tmp37_;
136 ValaCCodeExpression* _tmp38_;
137 ValaGLibValue* result = NULL;
138 g_return_val_if_fail (self != NULL, NULL);
139 _tmp0_ = vala_target_value_get_value_type ((ValaTargetValue*) self);
140 _tmp1_ = _tmp0_;
141 _tmp2_ = vala_data_type_copy (_tmp1_);
142 _tmp3_ = _tmp2_;
143 _tmp4_ = self->cvalue;
144 _tmp5_ = vala_glib_value_new (_tmp3_, _tmp4_, self->lvalue);
145 _tmp6_ = _tmp5_;
146 _vala_code_node_unref0 (_tmp3_);
147 _result_ = _tmp6_;
148 _tmp7_ = _result_;
149 _tmp8_ = vala_target_value_get_actual_value_type ((ValaTargetValue*) self);
150 _tmp9_ = _tmp8_;
151 vala_target_value_set_actual_value_type ((ValaTargetValue*) _tmp7_, _tmp9_);
152 _tmp10_ = _result_;
153 _tmp10_->non_null = self->non_null;
154 _tmp11_ = _result_;
155 _tmp12_ = self->ctype;
156 _tmp13_ = g_strdup (_tmp12_);
157 _g_free0 (_tmp11_->ctype);
158 _tmp11_->ctype = _tmp13_;
159 _tmp14_ = self->array_length_cvalues;
160 if (_tmp14_ != NULL) {
161 {
162 ValaList* _cexpr_list = NULL;
163 ValaList* _tmp15_;
164 ValaList* _tmp16_;
165 gint _cexpr_size = 0;
166 ValaList* _tmp17_;
167 gint _tmp18_;
168 gint _tmp19_;
169 gint _cexpr_index = 0;
170 _tmp15_ = self->array_length_cvalues;
171 _tmp16_ = _vala_iterable_ref0 (_tmp15_);
172 _cexpr_list = _tmp16_;
173 _tmp17_ = _cexpr_list;
174 _tmp18_ = vala_collection_get_size ((ValaCollection*) _tmp17_);
175 _tmp19_ = _tmp18_;
176 _cexpr_size = _tmp19_;
177 _cexpr_index = -1;
178 while (TRUE) {
179 gint _tmp20_;
180 gint _tmp21_;
181 ValaCCodeExpression* cexpr = NULL;
182 ValaList* _tmp22_;
183 gpointer _tmp23_;
184 ValaGLibValue* _tmp24_;
185 ValaCCodeExpression* _tmp25_;
186 _cexpr_index = _cexpr_index + 1;
187 _tmp20_ = _cexpr_index;
188 _tmp21_ = _cexpr_size;
189 if (!(_tmp20_ < _tmp21_)) {
190 break;
191 }
192 _tmp22_ = _cexpr_list;
193 _tmp23_ = vala_list_get (_tmp22_, _cexpr_index);
194 cexpr = (ValaCCodeExpression*) _tmp23_;
195 _tmp24_ = _result_;
196 _tmp25_ = cexpr;
197 vala_glib_value_append_array_length_cvalue (_tmp24_, _tmp25_);
198 _vala_ccode_node_unref0 (cexpr);
199 }
200 _vala_iterable_unref0 (_cexpr_list);
201 }
202 }
203 _tmp26_ = _result_;
204 _tmp27_ = self->array_size_cvalue;
205 _tmp28_ = _vala_ccode_node_ref0 (_tmp27_);
206 _vala_ccode_node_unref0 (_tmp26_->array_size_cvalue);
207 _tmp26_->array_size_cvalue = _tmp28_;
208 _tmp29_ = _result_;
209 _tmp29_->array_null_terminated = self->array_null_terminated;
210 _tmp30_ = _result_;
211 _tmp31_ = self->array_length_cexpr;
212 _tmp32_ = _vala_ccode_node_ref0 (_tmp31_);
213 _vala_ccode_node_unref0 (_tmp30_->array_length_cexpr);
214 _tmp30_->array_length_cexpr = _tmp32_;
215 _tmp33_ = _result_;
216 _tmp34_ = self->delegate_target_cvalue;
217 _tmp35_ = _vala_ccode_node_ref0 (_tmp34_);
218 _vala_ccode_node_unref0 (_tmp33_->delegate_target_cvalue);
219 _tmp33_->delegate_target_cvalue = _tmp35_;
220 _tmp36_ = _result_;
221 _tmp37_ = self->delegate_target_destroy_notify_cvalue;
222 _tmp38_ = _vala_ccode_node_ref0 (_tmp37_);
223 _vala_ccode_node_unref0 (_tmp36_->delegate_target_destroy_notify_cvalue);
224 _tmp36_->delegate_target_destroy_notify_cvalue = _tmp38_;
225 result = _result_;
226 return result;
227 }
228
229 static void
vala_glib_value_class_init(ValaGLibValueClass * klass,gpointer klass_data)230 vala_glib_value_class_init (ValaGLibValueClass * klass,
231 gpointer klass_data)
232 {
233 vala_glib_value_parent_class = g_type_class_peek_parent (klass);
234 ((ValaTargetValueClass *) klass)->finalize = vala_glib_value_finalize;
235 }
236
237 static void
vala_glib_value_instance_init(ValaGLibValue * self,gpointer klass)238 vala_glib_value_instance_init (ValaGLibValue * self,
239 gpointer klass)
240 {
241 }
242
243 static void
vala_glib_value_finalize(ValaTargetValue * obj)244 vala_glib_value_finalize (ValaTargetValue * obj)
245 {
246 ValaGLibValue * self;
247 self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
248 _vala_ccode_node_unref0 (self->cvalue);
249 _g_free0 (self->ctype);
250 _vala_iterable_unref0 (self->array_length_cvalues);
251 _vala_ccode_node_unref0 (self->array_size_cvalue);
252 _vala_ccode_node_unref0 (self->array_length_cexpr);
253 _vala_ccode_node_unref0 (self->delegate_target_cvalue);
254 _vala_ccode_node_unref0 (self->delegate_target_destroy_notify_cvalue);
255 VALA_TARGET_VALUE_CLASS (vala_glib_value_parent_class)->finalize (obj);
256 }
257
258 static GType
vala_glib_value_get_type_once(void)259 vala_glib_value_get_type_once (void)
260 {
261 static const GTypeInfo g_define_type_info = { sizeof (ValaGLibValueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_glib_value_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaGLibValue), 0, (GInstanceInitFunc) vala_glib_value_instance_init, NULL };
262 GType vala_glib_value_type_id;
263 vala_glib_value_type_id = g_type_register_static (VALA_TYPE_TARGET_VALUE, "ValaGLibValue", &g_define_type_info, 0);
264 return vala_glib_value_type_id;
265 }
266
267 GType
vala_glib_value_get_type(void)268 vala_glib_value_get_type (void)
269 {
270 static volatile gsize vala_glib_value_type_id__volatile = 0;
271 if (g_once_init_enter (&vala_glib_value_type_id__volatile)) {
272 GType vala_glib_value_type_id;
273 vala_glib_value_type_id = vala_glib_value_get_type_once ();
274 g_once_init_leave (&vala_glib_value_type_id__volatile, vala_glib_value_type_id);
275 }
276 return vala_glib_value_type_id__volatile;
277 }
278
279 ValaCCodeExpression*
vala_get_cvalue(ValaExpression * expr)280 vala_get_cvalue (ValaExpression* expr)
281 {
282 ValaTargetValue* _tmp0_;
283 ValaTargetValue* _tmp1_;
284 ValaTargetValue* _tmp2_;
285 ValaTargetValue* _tmp3_;
286 ValaCCodeExpression* _tmp4_;
287 ValaCCodeExpression* result = NULL;
288 g_return_val_if_fail (expr != NULL, NULL);
289 _tmp0_ = vala_expression_get_target_value (expr);
290 _tmp1_ = _tmp0_;
291 if (_tmp1_ == NULL) {
292 result = NULL;
293 return result;
294 }
295 _tmp2_ = vala_expression_get_target_value (expr);
296 _tmp3_ = _tmp2_;
297 _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->cvalue;
298 result = _tmp4_;
299 return result;
300 }
301
302 ValaCCodeExpression*
vala_get_cvalue_(ValaTargetValue * value)303 vala_get_cvalue_ (ValaTargetValue* value)
304 {
305 ValaCCodeExpression* _tmp0_;
306 ValaCCodeExpression* result = NULL;
307 g_return_val_if_fail (value != NULL, NULL);
308 _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (value, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->cvalue;
309 result = _tmp0_;
310 return result;
311 }
312
313 void
vala_set_cvalue(ValaExpression * expr,ValaCCodeExpression * cvalue)314 vala_set_cvalue (ValaExpression* expr,
315 ValaCCodeExpression* cvalue)
316 {
317 ValaGLibValue* glib_value = NULL;
318 ValaTargetValue* _tmp0_;
319 ValaTargetValue* _tmp1_;
320 ValaGLibValue* _tmp2_;
321 ValaGLibValue* _tmp9_;
322 ValaCCodeExpression* _tmp10_;
323 g_return_if_fail (expr != NULL);
324 _tmp0_ = vala_expression_get_target_value (expr);
325 _tmp1_ = _tmp0_;
326 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
327 _tmp2_ = glib_value;
328 if (_tmp2_ == NULL) {
329 ValaDataType* _tmp3_;
330 ValaDataType* _tmp4_;
331 ValaGLibValue* _tmp5_;
332 ValaGLibValue* _tmp6_;
333 ValaTargetValue* _tmp7_;
334 ValaTargetValue* _tmp8_;
335 _tmp3_ = vala_expression_get_value_type (expr);
336 _tmp4_ = _tmp3_;
337 _tmp5_ = vala_glib_value_new (_tmp4_, NULL, FALSE);
338 _tmp6_ = _tmp5_;
339 vala_expression_set_target_value (expr, (ValaTargetValue*) _tmp6_);
340 _vala_target_value_unref0 (_tmp6_);
341 _tmp7_ = vala_expression_get_target_value (expr);
342 _tmp8_ = _tmp7_;
343 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
344 }
345 _tmp9_ = glib_value;
346 _tmp10_ = _vala_ccode_node_ref0 (cvalue);
347 _vala_ccode_node_unref0 (_tmp9_->cvalue);
348 _tmp9_->cvalue = _tmp10_;
349 }
350
351 ValaCCodeExpression*
vala_get_array_size_cvalue(ValaTargetValue * value)352 vala_get_array_size_cvalue (ValaTargetValue* value)
353 {
354 ValaCCodeExpression* _tmp0_;
355 ValaCCodeExpression* result = NULL;
356 g_return_val_if_fail (value != NULL, NULL);
357 _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (value, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->array_size_cvalue;
358 result = _tmp0_;
359 return result;
360 }
361
362 void
vala_set_array_size_cvalue(ValaTargetValue * value,ValaCCodeExpression * cvalue)363 vala_set_array_size_cvalue (ValaTargetValue* value,
364 ValaCCodeExpression* cvalue)
365 {
366 ValaCCodeExpression* _tmp0_;
367 g_return_if_fail (value != NULL);
368 _tmp0_ = _vala_ccode_node_ref0 (cvalue);
369 _vala_ccode_node_unref0 (G_TYPE_CHECK_INSTANCE_CAST (value, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->array_size_cvalue);
370 G_TYPE_CHECK_INSTANCE_CAST (value, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->array_size_cvalue = _tmp0_;
371 }
372
373 ValaCCodeExpression*
vala_get_delegate_target(ValaExpression * expr)374 vala_get_delegate_target (ValaExpression* expr)
375 {
376 ValaTargetValue* _tmp0_;
377 ValaTargetValue* _tmp1_;
378 ValaTargetValue* _tmp2_;
379 ValaTargetValue* _tmp3_;
380 ValaCCodeExpression* _tmp4_;
381 ValaCCodeExpression* result = NULL;
382 g_return_val_if_fail (expr != NULL, NULL);
383 _tmp0_ = vala_expression_get_target_value (expr);
384 _tmp1_ = _tmp0_;
385 if (_tmp1_ == NULL) {
386 result = NULL;
387 return result;
388 }
389 _tmp2_ = vala_expression_get_target_value (expr);
390 _tmp3_ = _tmp2_;
391 _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->delegate_target_cvalue;
392 result = _tmp4_;
393 return result;
394 }
395
396 void
vala_set_delegate_target(ValaExpression * expr,ValaCCodeExpression * delegate_target)397 vala_set_delegate_target (ValaExpression* expr,
398 ValaCCodeExpression* delegate_target)
399 {
400 ValaGLibValue* glib_value = NULL;
401 ValaTargetValue* _tmp0_;
402 ValaTargetValue* _tmp1_;
403 ValaGLibValue* _tmp2_;
404 ValaGLibValue* _tmp9_;
405 ValaCCodeExpression* _tmp10_;
406 g_return_if_fail (expr != NULL);
407 _tmp0_ = vala_expression_get_target_value (expr);
408 _tmp1_ = _tmp0_;
409 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
410 _tmp2_ = glib_value;
411 if (_tmp2_ == NULL) {
412 ValaDataType* _tmp3_;
413 ValaDataType* _tmp4_;
414 ValaGLibValue* _tmp5_;
415 ValaGLibValue* _tmp6_;
416 ValaTargetValue* _tmp7_;
417 ValaTargetValue* _tmp8_;
418 _tmp3_ = vala_expression_get_value_type (expr);
419 _tmp4_ = _tmp3_;
420 _tmp5_ = vala_glib_value_new (_tmp4_, NULL, FALSE);
421 _tmp6_ = _tmp5_;
422 vala_expression_set_target_value (expr, (ValaTargetValue*) _tmp6_);
423 _vala_target_value_unref0 (_tmp6_);
424 _tmp7_ = vala_expression_get_target_value (expr);
425 _tmp8_ = _tmp7_;
426 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
427 }
428 _tmp9_ = glib_value;
429 _tmp10_ = _vala_ccode_node_ref0 (delegate_target);
430 _vala_ccode_node_unref0 (_tmp9_->delegate_target_cvalue);
431 _tmp9_->delegate_target_cvalue = _tmp10_;
432 }
433
434 ValaCCodeExpression*
vala_get_delegate_target_destroy_notify(ValaExpression * expr)435 vala_get_delegate_target_destroy_notify (ValaExpression* expr)
436 {
437 ValaGLibValue* glib_value = NULL;
438 ValaTargetValue* _tmp0_;
439 ValaTargetValue* _tmp1_;
440 ValaGLibValue* _tmp2_;
441 ValaGLibValue* _tmp3_;
442 ValaCCodeExpression* _tmp4_;
443 ValaCCodeExpression* result = NULL;
444 g_return_val_if_fail (expr != NULL, NULL);
445 _tmp0_ = vala_expression_get_target_value (expr);
446 _tmp1_ = _tmp0_;
447 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
448 _tmp2_ = glib_value;
449 if (_tmp2_ == NULL) {
450 result = NULL;
451 return result;
452 }
453 _tmp3_ = glib_value;
454 _tmp4_ = _tmp3_->delegate_target_destroy_notify_cvalue;
455 result = _tmp4_;
456 return result;
457 }
458
459 void
vala_set_delegate_target_destroy_notify(ValaExpression * expr,ValaCCodeExpression * destroy_notify)460 vala_set_delegate_target_destroy_notify (ValaExpression* expr,
461 ValaCCodeExpression* destroy_notify)
462 {
463 ValaGLibValue* glib_value = NULL;
464 ValaTargetValue* _tmp0_;
465 ValaTargetValue* _tmp1_;
466 ValaGLibValue* _tmp2_;
467 ValaGLibValue* _tmp9_;
468 ValaCCodeExpression* _tmp10_;
469 g_return_if_fail (expr != NULL);
470 _tmp0_ = vala_expression_get_target_value (expr);
471 _tmp1_ = _tmp0_;
472 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
473 _tmp2_ = glib_value;
474 if (_tmp2_ == NULL) {
475 ValaDataType* _tmp3_;
476 ValaDataType* _tmp4_;
477 ValaGLibValue* _tmp5_;
478 ValaGLibValue* _tmp6_;
479 ValaTargetValue* _tmp7_;
480 ValaTargetValue* _tmp8_;
481 _tmp3_ = vala_expression_get_value_type (expr);
482 _tmp4_ = _tmp3_;
483 _tmp5_ = vala_glib_value_new (_tmp4_, NULL, FALSE);
484 _tmp6_ = _tmp5_;
485 vala_expression_set_target_value (expr, (ValaTargetValue*) _tmp6_);
486 _vala_target_value_unref0 (_tmp6_);
487 _tmp7_ = vala_expression_get_target_value (expr);
488 _tmp8_ = _tmp7_;
489 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
490 }
491 _tmp9_ = glib_value;
492 _tmp10_ = _vala_ccode_node_ref0 (destroy_notify);
493 _vala_ccode_node_unref0 (_tmp9_->delegate_target_destroy_notify_cvalue);
494 _tmp9_->delegate_target_destroy_notify_cvalue = _tmp10_;
495 }
496
497 void
vala_append_array_length(ValaExpression * expr,ValaCCodeExpression * size)498 vala_append_array_length (ValaExpression* expr,
499 ValaCCodeExpression* size)
500 {
501 ValaGLibValue* glib_value = NULL;
502 ValaTargetValue* _tmp0_;
503 ValaTargetValue* _tmp1_;
504 ValaGLibValue* _tmp2_;
505 ValaGLibValue* _tmp9_;
506 g_return_if_fail (expr != NULL);
507 g_return_if_fail (size != NULL);
508 _tmp0_ = vala_expression_get_target_value (expr);
509 _tmp1_ = _tmp0_;
510 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
511 _tmp2_ = glib_value;
512 if (_tmp2_ == NULL) {
513 ValaDataType* _tmp3_;
514 ValaDataType* _tmp4_;
515 ValaGLibValue* _tmp5_;
516 ValaGLibValue* _tmp6_;
517 ValaTargetValue* _tmp7_;
518 ValaTargetValue* _tmp8_;
519 _tmp3_ = vala_expression_get_value_type (expr);
520 _tmp4_ = _tmp3_;
521 _tmp5_ = vala_glib_value_new (_tmp4_, NULL, FALSE);
522 _tmp6_ = _tmp5_;
523 vala_expression_set_target_value (expr, (ValaTargetValue*) _tmp6_);
524 _vala_target_value_unref0 (_tmp6_);
525 _tmp7_ = vala_expression_get_target_value (expr);
526 _tmp8_ = _tmp7_;
527 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
528 }
529 _tmp9_ = glib_value;
530 vala_glib_value_append_array_length_cvalue (_tmp9_, size);
531 }
532
533 ValaList*
vala_get_array_lengths(ValaExpression * expr)534 vala_get_array_lengths (ValaExpression* expr)
535 {
536 ValaGLibValue* glib_value = NULL;
537 ValaTargetValue* _tmp0_;
538 ValaTargetValue* _tmp1_;
539 ValaGLibValue* _tmp2_;
540 ValaGLibValue* _tmp3_;
541 ValaList* _tmp4_;
542 ValaList* result = NULL;
543 g_return_val_if_fail (expr != NULL, NULL);
544 _tmp0_ = vala_expression_get_target_value (expr);
545 _tmp1_ = _tmp0_;
546 glib_value = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, VALA_TYPE_GLIB_VALUE, ValaGLibValue);
547 _tmp2_ = glib_value;
548 if (_tmp2_ == NULL) {
549 result = NULL;
550 return result;
551 }
552 _tmp3_ = glib_value;
553 _tmp4_ = _tmp3_->array_length_cvalues;
554 result = _tmp4_;
555 return result;
556 }
557
558 gboolean
vala_get_lvalue(ValaTargetValue * value)559 vala_get_lvalue (ValaTargetValue* value)
560 {
561 gboolean result = FALSE;
562 g_return_val_if_fail (value != NULL, FALSE);
563 result = G_TYPE_CHECK_INSTANCE_CAST (value, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->lvalue;
564 return result;
565 }
566
567 gboolean
vala_get_non_null(ValaTargetValue * value)568 vala_get_non_null (ValaTargetValue* value)
569 {
570 gboolean result = FALSE;
571 g_return_val_if_fail (value != NULL, FALSE);
572 result = G_TYPE_CHECK_INSTANCE_CAST (value, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->non_null;
573 return result;
574 }
575
576 const gchar*
vala_get_ctype(ValaTargetValue * value)577 vala_get_ctype (ValaTargetValue* value)
578 {
579 const gchar* _tmp0_;
580 const gchar* result = NULL;
581 g_return_val_if_fail (value != NULL, NULL);
582 _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (value, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->ctype;
583 result = _tmp0_;
584 return result;
585 }
586
587 gboolean
vala_get_array_null_terminated(ValaTargetValue * value)588 vala_get_array_null_terminated (ValaTargetValue* value)
589 {
590 gboolean result = FALSE;
591 g_return_val_if_fail (value != NULL, FALSE);
592 result = G_TYPE_CHECK_INSTANCE_CAST (value, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->array_null_terminated;
593 return result;
594 }
595
596 ValaCCodeExpression*
vala_get_array_length_cexpr(ValaTargetValue * value)597 vala_get_array_length_cexpr (ValaTargetValue* value)
598 {
599 ValaCCodeExpression* _tmp0_;
600 ValaCCodeExpression* result = NULL;
601 g_return_val_if_fail (value != NULL, NULL);
602 _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (value, VALA_TYPE_GLIB_VALUE, ValaGLibValue)->array_length_cexpr;
603 result = _tmp0_;
604 return result;
605 }
606
607