1 /* valagdbusservermodule.c generated by valac, the Vala compiler
2 * generated from valagdbusservermodule.vala, do not modify */
3
4 /* valagdbusservermodule.vala
5 *
6 * Copyright (C) 2010-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 "valacodegen.h"
27 #include <vala.h>
28 #include <valaccode.h>
29 #include <glib.h>
30 #include <stdlib.h>
31 #include <string.h>
32 #include <valagee.h>
33 #include <glib-object.h>
34
35 #define _g_free0(var) (var = (g_free (var), NULL))
36 #define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
37 #define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
38 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
39 #define _vala_target_value_unref0(var) ((var == NULL) ? NULL : (var = (vala_target_value_unref (var), NULL)))
40 #define _vala_map_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_unref (var), NULL)))
41
42 static gpointer vala_gd_bus_server_module_parent_class = NULL;
43
44 static gchar* vala_gd_bus_server_module_generate_dbus_wrapper (ValaGDBusServerModule* self,
45 ValaMethod* m,
46 ValaObjectTypeSymbol* sym,
47 gboolean ready);
48 static gchar* vala_gd_bus_server_module_generate_dbus_signal_wrapper (ValaGDBusServerModule* self,
49 ValaSignal* sig,
50 ValaObjectTypeSymbol* sym,
51 const gchar* dbus_iface_name);
52 static gchar* vala_gd_bus_server_module_generate_dbus_property_get_wrapper (ValaGDBusServerModule* self,
53 ValaProperty* prop,
54 ValaObjectTypeSymbol* sym);
55 static gchar* vala_gd_bus_server_module_generate_dbus_property_set_wrapper (ValaGDBusServerModule* self,
56 ValaProperty* prop,
57 ValaObjectTypeSymbol* sym);
58 static void vala_gd_bus_server_module_handle_signals (ValaGDBusServerModule* self,
59 ValaObjectTypeSymbol* sym,
60 gboolean connect);
61 static void vala_gd_bus_server_module_generate_interface_method_call_function (ValaGDBusServerModule* self,
62 ValaObjectTypeSymbol* sym);
63 static void vala_gd_bus_server_module_generate_interface_get_property_function (ValaGDBusServerModule* self,
64 ValaObjectTypeSymbol* sym);
65 static void vala_gd_bus_server_module_generate_interface_set_property_function (ValaGDBusServerModule* self,
66 ValaObjectTypeSymbol* sym);
67 static ValaCCodeExpression* vala_gd_bus_server_module_get_interface_vtable (ValaGDBusServerModule* self,
68 ValaObjectTypeSymbol* sym);
69 static gchar* vala_gd_bus_server_module_generate_register_object_function (ValaGDBusServerModule* self);
70 static void vala_gd_bus_server_module_real_visit_method_call (ValaCodeVisitor* base,
71 ValaMethodCall* expr);
72 static void vala_gd_bus_server_module_real_generate_class_declaration (ValaCCodeBaseModule* base,
73 ValaClass* cl,
74 ValaCCodeFile* decl_space);
75 static void vala_gd_bus_server_module_generate_object_type_symbol_declaration (ValaGDBusServerModule* self,
76 ValaObjectTypeSymbol* sym,
77 ValaCCodeFile* decl_space);
78 static void vala_gd_bus_server_module_real_generate_interface_declaration (ValaCCodeBaseModule* base,
79 ValaInterface* iface,
80 ValaCCodeFile* decl_space);
81 static void vala_gd_bus_server_module_real_visit_class (ValaCodeVisitor* base,
82 ValaClass* cl);
83 static void vala_gd_bus_server_module_visit_object_type_symbol (ValaGDBusServerModule* self,
84 ValaObjectTypeSymbol* sym);
85 static void vala_gd_bus_server_module_real_visit_interface (ValaCodeVisitor* base,
86 ValaInterface* iface);
87 static void vala_gd_bus_server_module_real_register_dbus_info (ValaCCodeBaseModule* base,
88 ValaCCodeBlock* block,
89 ValaObjectTypeSymbol* sym);
90 static GType vala_gd_bus_server_module_get_type_once (void);
91
92 static gpointer
_vala_ccode_node_ref0(gpointer self)93 _vala_ccode_node_ref0 (gpointer self)
94 {
95 return self ? vala_ccode_node_ref (self) : NULL;
96 }
97
98 static gpointer
_vala_iterable_ref0(gpointer self)99 _vala_iterable_ref0 (gpointer self)
100 {
101 return self ? vala_iterable_ref (self) : NULL;
102 }
103
104 static gpointer
_vala_code_node_ref0(gpointer self)105 _vala_code_node_ref0 (gpointer self)
106 {
107 return self ? vala_code_node_ref (self) : NULL;
108 }
109
110 static gchar*
vala_gd_bus_server_module_generate_dbus_wrapper(ValaGDBusServerModule * self,ValaMethod * m,ValaObjectTypeSymbol * sym,gboolean ready)111 vala_gd_bus_server_module_generate_dbus_wrapper (ValaGDBusServerModule* self,
112 ValaMethod* m,
113 ValaObjectTypeSymbol* sym,
114 gboolean ready)
115 {
116 gchar* wrapper_name = NULL;
117 gchar* _tmp0_;
118 gchar* _tmp1_;
119 gchar* _tmp2_;
120 gchar* _tmp3_;
121 gboolean need_goto_label = FALSE;
122 ValaMethod* _tmp4_;
123 ValaMethod* _tmp5_;
124 ValaCCodeFunction* function = NULL;
125 const gchar* _tmp14_;
126 ValaCCodeFunction* _tmp15_;
127 ValaCCodeFunction* _tmp16_;
128 ValaCCodeFunction* _tmp39_;
129 ValaCCodeIdentifier* _tmp40_ = NULL;
130 gboolean _tmp41_;
131 gboolean _tmp42_;
132 ValaCCodeIdentifier* ready_data_expr = NULL;
133 ValaCCodeIdentifier* _tmp44_;
134 gchar* ready_data_struct_name = NULL;
135 gchar* _tmp45_;
136 gchar* _tmp46_;
137 gchar* _tmp47_;
138 gchar* _tmp48_;
139 gchar* _tmp49_;
140 gchar* _tmp50_;
141 ValaCCodeFunctionCall* connection = NULL;
142 ValaCCodeIdentifier* _tmp67_;
143 ValaCCodeIdentifier* _tmp68_;
144 ValaCCodeFunctionCall* _tmp69_;
145 ValaCCodeFunctionCall* _tmp70_;
146 ValaCCodeFunctionCall* _tmp71_;
147 ValaCCodeIdentifier* _tmp72_;
148 ValaCCodeIdentifier* _tmp73_;
149 gboolean no_reply = FALSE;
150 gboolean uses_fd = FALSE;
151 gboolean uses_error = FALSE;
152 gboolean _tmp79_ = FALSE;
153 gboolean _tmp80_;
154 gboolean _tmp81_;
155 ValaCCodeFunctionCall* ccall = NULL;
156 gboolean _tmp462_ = FALSE;
157 gboolean _tmp463_;
158 gboolean _tmp464_;
159 gboolean _tmp490_ = FALSE;
160 gboolean _tmp491_;
161 gboolean _tmp492_;
162 gboolean _tmp503_ = FALSE;
163 gboolean _tmp504_;
164 gboolean _tmp505_;
165 gboolean _tmp513_ = FALSE;
166 gboolean _tmp811_ = FALSE;
167 ValaCCodeFile* _tmp973_;
168 ValaCCodeFunction* _tmp974_;
169 ValaCCodeFile* _tmp975_;
170 ValaCCodeFunction* _tmp976_;
171 gboolean _tmp977_ = FALSE;
172 gboolean _tmp978_;
173 gboolean _tmp979_;
174 gchar* result = NULL;
175 g_return_val_if_fail (self != NULL, NULL);
176 g_return_val_if_fail (m != NULL, NULL);
177 g_return_val_if_fail (sym != NULL, NULL);
178 _tmp0_ = vala_get_ccode_name ((ValaCodeNode*) m);
179 _tmp1_ = _tmp0_;
180 _tmp2_ = g_strdup_printf ("_dbus_%s", _tmp1_);
181 _tmp3_ = _tmp2_;
182 _g_free0 (_tmp1_);
183 wrapper_name = _tmp3_;
184 need_goto_label = ready;
185 _tmp4_ = vala_method_get_base_method (m);
186 _tmp5_ = _tmp4_;
187 if (_tmp5_ != NULL) {
188 ValaMethod* _tmp6_;
189 ValaMethod* _tmp7_;
190 _tmp6_ = vala_method_get_base_method (m);
191 _tmp7_ = _tmp6_;
192 m = _tmp7_;
193 } else {
194 ValaMethod* _tmp8_;
195 ValaMethod* _tmp9_;
196 _tmp8_ = vala_method_get_base_interface_method (m);
197 _tmp9_ = _tmp8_;
198 if (_tmp9_ != NULL) {
199 ValaMethod* _tmp10_;
200 ValaMethod* _tmp11_;
201 _tmp10_ = vala_method_get_base_interface_method (m);
202 _tmp11_ = _tmp10_;
203 m = _tmp11_;
204 }
205 }
206 if (ready) {
207 const gchar* _tmp12_;
208 gchar* _tmp13_;
209 _tmp12_ = wrapper_name;
210 _tmp13_ = g_strconcat (_tmp12_, "_ready", NULL);
211 _g_free0 (wrapper_name);
212 wrapper_name = _tmp13_;
213 }
214 _tmp14_ = wrapper_name;
215 _tmp15_ = vala_ccode_function_new (_tmp14_, "void");
216 function = _tmp15_;
217 _tmp16_ = function;
218 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp16_, VALA_CCODE_MODIFIERS_STATIC);
219 if (!ready) {
220 ValaCCodeFunction* _tmp17_;
221 gchar* _tmp18_;
222 gchar* _tmp19_;
223 gchar* _tmp20_;
224 gchar* _tmp21_;
225 ValaCCodeParameter* _tmp22_;
226 ValaCCodeParameter* _tmp23_;
227 ValaCCodeFunction* _tmp24_;
228 ValaCCodeParameter* _tmp25_;
229 ValaCCodeParameter* _tmp26_;
230 ValaCCodeFunction* _tmp27_;
231 ValaCCodeParameter* _tmp28_;
232 ValaCCodeParameter* _tmp29_;
233 _tmp17_ = function;
234 _tmp18_ = vala_get_ccode_name ((ValaCodeNode*) sym);
235 _tmp19_ = _tmp18_;
236 _tmp20_ = g_strconcat (_tmp19_, "*", NULL);
237 _tmp21_ = _tmp20_;
238 _tmp22_ = vala_ccode_parameter_new ("self", _tmp21_);
239 _tmp23_ = _tmp22_;
240 vala_ccode_function_add_parameter (_tmp17_, _tmp23_);
241 _vala_ccode_node_unref0 (_tmp23_);
242 _g_free0 (_tmp21_);
243 _g_free0 (_tmp19_);
244 _tmp24_ = function;
245 _tmp25_ = vala_ccode_parameter_new ("_parameters_", "GVariant*");
246 _tmp26_ = _tmp25_;
247 vala_ccode_function_add_parameter (_tmp24_, _tmp26_);
248 _vala_ccode_node_unref0 (_tmp26_);
249 _tmp27_ = function;
250 _tmp28_ = vala_ccode_parameter_new ("invocation", "GDBusMethodInvocation*");
251 _tmp29_ = _tmp28_;
252 vala_ccode_function_add_parameter (_tmp27_, _tmp29_);
253 _vala_ccode_node_unref0 (_tmp29_);
254 } else {
255 ValaCCodeFunction* _tmp30_;
256 ValaCCodeParameter* _tmp31_;
257 ValaCCodeParameter* _tmp32_;
258 ValaCCodeFunction* _tmp33_;
259 ValaCCodeParameter* _tmp34_;
260 ValaCCodeParameter* _tmp35_;
261 ValaCCodeFunction* _tmp36_;
262 ValaCCodeParameter* _tmp37_;
263 ValaCCodeParameter* _tmp38_;
264 _tmp30_ = function;
265 _tmp31_ = vala_ccode_parameter_new ("source_object", "GObject *");
266 _tmp32_ = _tmp31_;
267 vala_ccode_function_add_parameter (_tmp30_, _tmp32_);
268 _vala_ccode_node_unref0 (_tmp32_);
269 _tmp33_ = function;
270 _tmp34_ = vala_ccode_parameter_new ("_res_", "GAsyncResult *");
271 _tmp35_ = _tmp34_;
272 vala_ccode_function_add_parameter (_tmp33_, _tmp35_);
273 _vala_ccode_node_unref0 (_tmp35_);
274 _tmp36_ = function;
275 _tmp37_ = vala_ccode_parameter_new ("_user_data_", "gpointer");
276 _tmp38_ = _tmp37_;
277 vala_ccode_function_add_parameter (_tmp36_, _tmp38_);
278 _vala_ccode_node_unref0 (_tmp38_);
279 }
280 _tmp39_ = function;
281 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp39_);
282 _tmp41_ = vala_method_get_coroutine (m);
283 _tmp42_ = _tmp41_;
284 if (_tmp42_) {
285 ValaCCodeIdentifier* _tmp43_;
286 _tmp43_ = vala_ccode_identifier_new ("_ready_data");
287 _vala_ccode_node_unref0 (_tmp40_);
288 _tmp40_ = _tmp43_;
289 } else {
290 _vala_ccode_node_unref0 (_tmp40_);
291 _tmp40_ = NULL;
292 }
293 _tmp44_ = _vala_ccode_node_ref0 (_tmp40_);
294 ready_data_expr = _tmp44_;
295 _tmp45_ = vala_get_ccode_name ((ValaCodeNode*) m);
296 _tmp46_ = _tmp45_;
297 _tmp47_ = vala_symbol_lower_case_to_camel_case (_tmp46_);
298 _tmp48_ = _tmp47_;
299 _tmp49_ = g_strconcat (_tmp48_, "ReadyData", NULL);
300 _tmp50_ = _tmp49_;
301 _g_free0 (_tmp48_);
302 _g_free0 (_tmp46_);
303 ready_data_struct_name = _tmp50_;
304 if (ready) {
305 ValaCCodeFunction* _tmp51_;
306 ValaCCodeFunction* _tmp52_;
307 const gchar* _tmp53_;
308 gchar* _tmp54_;
309 gchar* _tmp55_;
310 ValaCCodeIdentifier* _tmp56_;
311 ValaCCodeIdentifier* _tmp57_;
312 ValaCCodeVariableDeclarator* _tmp58_;
313 ValaCCodeVariableDeclarator* _tmp59_;
314 ValaCCodeFunction* _tmp60_;
315 ValaCCodeFunction* _tmp61_;
316 ValaCCodeIdentifier* _tmp62_;
317 ValaCCodeMemberAccess* _tmp63_;
318 ValaCCodeMemberAccess* _tmp64_;
319 ValaCCodeVariableDeclarator* _tmp65_;
320 ValaCCodeVariableDeclarator* _tmp66_;
321 _tmp51_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
322 _tmp52_ = _tmp51_;
323 _tmp53_ = ready_data_struct_name;
324 _tmp54_ = g_strconcat (_tmp53_, "*", NULL);
325 _tmp55_ = _tmp54_;
326 _tmp56_ = vala_ccode_identifier_new ("_user_data_");
327 _tmp57_ = _tmp56_;
328 _tmp58_ = vala_ccode_variable_declarator_new ("_ready_data", (ValaCCodeExpression*) _tmp57_, NULL);
329 _tmp59_ = _tmp58_;
330 vala_ccode_function_add_declaration (_tmp52_, _tmp55_, (ValaCCodeDeclarator*) _tmp59_, 0);
331 _vala_ccode_node_unref0 (_tmp59_);
332 _vala_ccode_node_unref0 (_tmp57_);
333 _g_free0 (_tmp55_);
334 _tmp60_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
335 _tmp61_ = _tmp60_;
336 _tmp62_ = ready_data_expr;
337 _tmp63_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp62_, "_invocation_");
338 _tmp64_ = _tmp63_;
339 _tmp65_ = vala_ccode_variable_declarator_new ("invocation", (ValaCCodeExpression*) _tmp64_, NULL);
340 _tmp66_ = _tmp65_;
341 vala_ccode_function_add_declaration (_tmp61_, "GDBusMethodInvocation*", (ValaCCodeDeclarator*) _tmp66_, 0);
342 _vala_ccode_node_unref0 (_tmp66_);
343 _vala_ccode_node_unref0 (_tmp64_);
344 }
345 _tmp67_ = vala_ccode_identifier_new ("g_dbus_method_invocation_get_connection");
346 _tmp68_ = _tmp67_;
347 _tmp69_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp68_);
348 _tmp70_ = _tmp69_;
349 _vala_ccode_node_unref0 (_tmp68_);
350 connection = _tmp70_;
351 _tmp71_ = connection;
352 _tmp72_ = vala_ccode_identifier_new ("invocation");
353 _tmp73_ = _tmp72_;
354 vala_ccode_function_call_add_argument (_tmp71_, (ValaCCodeExpression*) _tmp73_);
355 _vala_ccode_node_unref0 (_tmp73_);
356 no_reply = vala_gd_bus_module_is_dbus_no_reply (m);
357 uses_fd = vala_gd_bus_module_dbus_method_uses_file_descriptor ((ValaGDBusModule*) self, m);
358 if (uses_fd) {
359 ValaCCodeFile* _tmp74_;
360 ValaCCodeFunction* _tmp75_;
361 ValaCCodeFunction* _tmp76_;
362 ValaCCodeVariableDeclarator* _tmp77_;
363 ValaCCodeVariableDeclarator* _tmp78_;
364 _tmp74_ = ((ValaCCodeBaseModule*) self)->cfile;
365 vala_ccode_file_add_include (_tmp74_, "gio/gunixfdlist.h", FALSE);
366 _tmp75_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
367 _tmp76_ = _tmp75_;
368 _tmp77_ = vala_ccode_variable_declarator_new ("_fd_list", NULL, NULL);
369 _tmp78_ = _tmp77_;
370 vala_ccode_function_add_declaration (_tmp76_, "GUnixFDList*", (ValaCCodeDeclarator*) _tmp78_, 0);
371 _vala_ccode_node_unref0 (_tmp78_);
372 }
373 uses_error = FALSE;
374 _tmp80_ = vala_method_get_coroutine (m);
375 _tmp81_ = _tmp80_;
376 if (!_tmp81_) {
377 _tmp79_ = TRUE;
378 } else {
379 _tmp79_ = ready;
380 }
381 if (_tmp79_) {
382 ValaCCodeFunction* _tmp82_;
383 ValaCCodeFunction* _tmp83_;
384 ValaCCodeConstant* _tmp84_;
385 ValaCCodeConstant* _tmp85_;
386 ValaCCodeVariableDeclarator* _tmp86_;
387 ValaCCodeVariableDeclarator* _tmp87_;
388 _tmp82_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
389 _tmp83_ = _tmp82_;
390 _tmp84_ = vala_ccode_constant_new ("NULL");
391 _tmp85_ = _tmp84_;
392 _tmp86_ = vala_ccode_variable_declarator_new_zero ("error", (ValaCCodeExpression*) _tmp85_, NULL);
393 _tmp87_ = _tmp86_;
394 vala_ccode_function_add_declaration (_tmp83_, "GError*", (ValaCCodeDeclarator*) _tmp87_, 0);
395 _vala_ccode_node_unref0 (_tmp87_);
396 _vala_ccode_node_unref0 (_tmp85_);
397 uses_error = TRUE;
398 }
399 if (!ready) {
400 ValaCCodeFunction* _tmp88_;
401 ValaCCodeFunction* _tmp89_;
402 ValaCCodeVariableDeclarator* _tmp90_;
403 ValaCCodeVariableDeclarator* _tmp91_;
404 ValaCCodeFunctionCall* iter_init = NULL;
405 ValaCCodeIdentifier* _tmp92_;
406 ValaCCodeIdentifier* _tmp93_;
407 ValaCCodeFunctionCall* _tmp94_;
408 ValaCCodeFunctionCall* _tmp95_;
409 ValaCCodeFunctionCall* _tmp96_;
410 ValaCCodeIdentifier* _tmp97_;
411 ValaCCodeIdentifier* _tmp98_;
412 ValaCCodeUnaryExpression* _tmp99_;
413 ValaCCodeUnaryExpression* _tmp100_;
414 ValaCCodeFunctionCall* _tmp101_;
415 ValaCCodeIdentifier* _tmp102_;
416 ValaCCodeIdentifier* _tmp103_;
417 ValaCCodeFunction* _tmp104_;
418 ValaCCodeFunction* _tmp105_;
419 ValaCCodeFunctionCall* _tmp106_;
420 _tmp88_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
421 _tmp89_ = _tmp88_;
422 _tmp90_ = vala_ccode_variable_declarator_new ("_arguments_iter", NULL, NULL);
423 _tmp91_ = _tmp90_;
424 vala_ccode_function_add_declaration (_tmp89_, "GVariantIter", (ValaCCodeDeclarator*) _tmp91_, 0);
425 _vala_ccode_node_unref0 (_tmp91_);
426 _tmp92_ = vala_ccode_identifier_new ("g_variant_iter_init");
427 _tmp93_ = _tmp92_;
428 _tmp94_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp93_);
429 _tmp95_ = _tmp94_;
430 _vala_ccode_node_unref0 (_tmp93_);
431 iter_init = _tmp95_;
432 _tmp96_ = iter_init;
433 _tmp97_ = vala_ccode_identifier_new ("_arguments_iter");
434 _tmp98_ = _tmp97_;
435 _tmp99_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp98_);
436 _tmp100_ = _tmp99_;
437 vala_ccode_function_call_add_argument (_tmp96_, (ValaCCodeExpression*) _tmp100_);
438 _vala_ccode_node_unref0 (_tmp100_);
439 _vala_ccode_node_unref0 (_tmp98_);
440 _tmp101_ = iter_init;
441 _tmp102_ = vala_ccode_identifier_new ("_parameters_");
442 _tmp103_ = _tmp102_;
443 vala_ccode_function_call_add_argument (_tmp101_, (ValaCCodeExpression*) _tmp103_);
444 _vala_ccode_node_unref0 (_tmp103_);
445 _tmp104_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
446 _tmp105_ = _tmp104_;
447 _tmp106_ = iter_init;
448 vala_ccode_function_add_expression (_tmp105_, (ValaCCodeExpression*) _tmp106_);
449 _vala_ccode_node_unref0 (iter_init);
450 }
451 if (!ready) {
452 gchar* _tmp107_;
453 gchar* _tmp108_;
454 ValaCCodeIdentifier* _tmp109_;
455 ValaCCodeIdentifier* _tmp110_;
456 ValaCCodeFunctionCall* _tmp111_;
457 ValaCCodeFunctionCall* _tmp112_;
458 ValaCCodeIdentifier* _tmp113_;
459 ValaCCodeIdentifier* _tmp114_;
460 _tmp107_ = vala_get_ccode_name ((ValaCodeNode*) m);
461 _tmp108_ = _tmp107_;
462 _tmp109_ = vala_ccode_identifier_new (_tmp108_);
463 _tmp110_ = _tmp109_;
464 _tmp111_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp110_);
465 _vala_ccode_node_unref0 (ccall);
466 ccall = _tmp111_;
467 _vala_ccode_node_unref0 (_tmp110_);
468 _g_free0 (_tmp108_);
469 _tmp112_ = ccall;
470 _tmp113_ = vala_ccode_identifier_new ("self");
471 _tmp114_ = _tmp113_;
472 vala_ccode_function_call_add_argument (_tmp112_, (ValaCCodeExpression*) _tmp114_);
473 _vala_ccode_node_unref0 (_tmp114_);
474 } else {
475 gchar* _tmp115_;
476 gchar* _tmp116_;
477 ValaCCodeIdentifier* _tmp117_;
478 ValaCCodeIdentifier* _tmp118_;
479 ValaCCodeFunctionCall* _tmp119_;
480 ValaCCodeFunctionCall* _tmp120_;
481 ValaCCodeIdentifier* _tmp121_;
482 ValaCCodeIdentifier* _tmp122_;
483 gchar* _tmp123_;
484 gchar* _tmp124_;
485 gchar* _tmp125_;
486 gchar* _tmp126_;
487 ValaCCodeCastExpression* _tmp127_;
488 ValaCCodeCastExpression* _tmp128_;
489 ValaCCodeFunctionCall* _tmp129_;
490 ValaCCodeIdentifier* _tmp130_;
491 ValaCCodeIdentifier* _tmp131_;
492 _tmp115_ = vala_get_ccode_finish_name (m);
493 _tmp116_ = _tmp115_;
494 _tmp117_ = vala_ccode_identifier_new (_tmp116_);
495 _tmp118_ = _tmp117_;
496 _tmp119_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp118_);
497 _vala_ccode_node_unref0 (ccall);
498 ccall = _tmp119_;
499 _vala_ccode_node_unref0 (_tmp118_);
500 _g_free0 (_tmp116_);
501 _tmp120_ = ccall;
502 _tmp121_ = vala_ccode_identifier_new ("source_object");
503 _tmp122_ = _tmp121_;
504 _tmp123_ = vala_get_ccode_name ((ValaCodeNode*) sym);
505 _tmp124_ = _tmp123_;
506 _tmp125_ = g_strconcat (_tmp124_, "*", NULL);
507 _tmp126_ = _tmp125_;
508 _tmp127_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp122_, _tmp126_);
509 _tmp128_ = _tmp127_;
510 vala_ccode_function_call_add_argument (_tmp120_, (ValaCCodeExpression*) _tmp128_);
511 _vala_ccode_node_unref0 (_tmp128_);
512 _g_free0 (_tmp126_);
513 _g_free0 (_tmp124_);
514 _vala_ccode_node_unref0 (_tmp122_);
515 _tmp129_ = ccall;
516 _tmp130_ = vala_ccode_identifier_new ("_res_");
517 _tmp131_ = _tmp130_;
518 vala_ccode_function_call_add_argument (_tmp129_, (ValaCCodeExpression*) _tmp131_);
519 _vala_ccode_node_unref0 (_tmp131_);
520 }
521 if (!ready) {
522 ValaCCodeStruct* ready_data_struct = NULL;
523 gboolean _tmp142_;
524 gboolean _tmp143_;
525 if (uses_fd) {
526 ValaCCodeFunction* _tmp132_;
527 ValaCCodeFunction* _tmp133_;
528 ValaCCodeConstant* _tmp134_;
529 ValaCCodeConstant* _tmp135_;
530 ValaCCodeVariableDeclarator* _tmp136_;
531 ValaCCodeVariableDeclarator* _tmp137_;
532 ValaCCodeFunction* _tmp138_;
533 ValaCCodeFunction* _tmp139_;
534 ValaCCodeVariableDeclarator* _tmp140_;
535 ValaCCodeVariableDeclarator* _tmp141_;
536 _tmp132_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
537 _tmp133_ = _tmp132_;
538 _tmp134_ = vala_ccode_constant_new ("0");
539 _tmp135_ = _tmp134_;
540 _tmp136_ = vala_ccode_variable_declarator_new_zero ("_fd_index", (ValaCCodeExpression*) _tmp135_, NULL);
541 _tmp137_ = _tmp136_;
542 vala_ccode_function_add_declaration (_tmp133_, "gint", (ValaCCodeDeclarator*) _tmp137_, 0);
543 _vala_ccode_node_unref0 (_tmp137_);
544 _vala_ccode_node_unref0 (_tmp135_);
545 _tmp138_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
546 _tmp139_ = _tmp138_;
547 _tmp140_ = vala_ccode_variable_declarator_new ("_fd", NULL, NULL);
548 _tmp141_ = _tmp140_;
549 vala_ccode_function_add_declaration (_tmp139_, "gint", (ValaCCodeDeclarator*) _tmp141_, 0);
550 _vala_ccode_node_unref0 (_tmp141_);
551 }
552 ready_data_struct = NULL;
553 _tmp142_ = vala_method_get_coroutine (m);
554 _tmp143_ = _tmp142_;
555 if (_tmp143_) {
556 const gchar* _tmp144_;
557 gchar* _tmp145_;
558 gchar* _tmp146_;
559 ValaCCodeStruct* _tmp147_;
560 ValaCCodeStruct* _tmp148_;
561 ValaCCodeStruct* _tmp149_;
562 ValaCCodeFunctionCall* ready_data_alloc = NULL;
563 ValaCCodeIdentifier* _tmp150_;
564 ValaCCodeIdentifier* _tmp151_;
565 ValaCCodeFunctionCall* _tmp152_;
566 ValaCCodeFunctionCall* _tmp153_;
567 ValaCCodeFunctionCall* _tmp154_;
568 const gchar* _tmp155_;
569 ValaCCodeIdentifier* _tmp156_;
570 ValaCCodeIdentifier* _tmp157_;
571 ValaCCodeFunction* _tmp158_;
572 ValaCCodeFunction* _tmp159_;
573 const gchar* _tmp160_;
574 gchar* _tmp161_;
575 gchar* _tmp162_;
576 ValaCCodeVariableDeclarator* _tmp163_;
577 ValaCCodeVariableDeclarator* _tmp164_;
578 ValaCCodeFunction* _tmp165_;
579 ValaCCodeFunction* _tmp166_;
580 ValaCCodeIdentifier* _tmp167_;
581 ValaCCodeFunctionCall* _tmp168_;
582 ValaCCodeFunction* _tmp169_;
583 ValaCCodeFunction* _tmp170_;
584 ValaCCodeIdentifier* _tmp171_;
585 ValaCCodeMemberAccess* _tmp172_;
586 ValaCCodeMemberAccess* _tmp173_;
587 ValaCCodeIdentifier* _tmp174_;
588 ValaCCodeIdentifier* _tmp175_;
589 _tmp144_ = ready_data_struct_name;
590 _tmp145_ = g_strconcat ("_", _tmp144_, NULL);
591 _tmp146_ = _tmp145_;
592 _tmp147_ = vala_ccode_struct_new (_tmp146_);
593 _vala_ccode_node_unref0 (ready_data_struct);
594 ready_data_struct = _tmp147_;
595 _g_free0 (_tmp146_);
596 _tmp148_ = ready_data_struct;
597 vala_ccode_struct_add_field (_tmp148_, "GDBusMethodInvocation*", "_invocation_", 0, NULL);
598 _tmp149_ = ready_data_struct;
599 vala_gasync_module_append_struct ((ValaGAsyncModule*) self, _tmp149_);
600 _tmp150_ = vala_ccode_identifier_new ("g_slice_new0");
601 _tmp151_ = _tmp150_;
602 _tmp152_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp151_);
603 _tmp153_ = _tmp152_;
604 _vala_ccode_node_unref0 (_tmp151_);
605 ready_data_alloc = _tmp153_;
606 _tmp154_ = ready_data_alloc;
607 _tmp155_ = ready_data_struct_name;
608 _tmp156_ = vala_ccode_identifier_new (_tmp155_);
609 _tmp157_ = _tmp156_;
610 vala_ccode_function_call_add_argument (_tmp154_, (ValaCCodeExpression*) _tmp157_);
611 _vala_ccode_node_unref0 (_tmp157_);
612 _tmp158_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
613 _tmp159_ = _tmp158_;
614 _tmp160_ = ready_data_struct_name;
615 _tmp161_ = g_strconcat (_tmp160_, "*", NULL);
616 _tmp162_ = _tmp161_;
617 _tmp163_ = vala_ccode_variable_declarator_new ("_ready_data", NULL, NULL);
618 _tmp164_ = _tmp163_;
619 vala_ccode_function_add_declaration (_tmp159_, _tmp162_, (ValaCCodeDeclarator*) _tmp164_, 0);
620 _vala_ccode_node_unref0 (_tmp164_);
621 _g_free0 (_tmp162_);
622 _tmp165_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
623 _tmp166_ = _tmp165_;
624 _tmp167_ = ready_data_expr;
625 _tmp168_ = ready_data_alloc;
626 vala_ccode_function_add_assignment (_tmp166_, (ValaCCodeExpression*) _tmp167_, (ValaCCodeExpression*) _tmp168_);
627 _tmp169_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
628 _tmp170_ = _tmp169_;
629 _tmp171_ = ready_data_expr;
630 _tmp172_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp171_, "_invocation_");
631 _tmp173_ = _tmp172_;
632 _tmp174_ = vala_ccode_identifier_new ("invocation");
633 _tmp175_ = _tmp174_;
634 vala_ccode_function_add_assignment (_tmp170_, (ValaCCodeExpression*) _tmp173_, (ValaCCodeExpression*) _tmp175_);
635 _vala_ccode_node_unref0 (_tmp175_);
636 _vala_ccode_node_unref0 (_tmp173_);
637 _vala_ccode_node_unref0 (ready_data_alloc);
638 }
639 {
640 ValaList* _param_list = NULL;
641 ValaList* _tmp176_;
642 ValaList* _tmp177_;
643 gint _param_size = 0;
644 ValaList* _tmp178_;
645 gint _tmp179_;
646 gint _tmp180_;
647 gint _param_index = 0;
648 _tmp176_ = vala_callable_get_parameters ((ValaCallable*) m);
649 _tmp177_ = _vala_iterable_ref0 (_tmp176_);
650 _param_list = _tmp177_;
651 _tmp178_ = _param_list;
652 _tmp179_ = vala_collection_get_size ((ValaCollection*) _tmp178_);
653 _tmp180_ = _tmp179_;
654 _param_size = _tmp180_;
655 _param_index = -1;
656 while (TRUE) {
657 gint _tmp181_;
658 gint _tmp182_;
659 ValaParameter* param = NULL;
660 ValaList* _tmp183_;
661 gpointer _tmp184_;
662 gchar* param_name = NULL;
663 ValaParameter* _tmp185_;
664 const gchar* _tmp186_;
665 const gchar* _tmp187_;
666 gchar* _tmp188_;
667 ValaParameter* _tmp189_;
668 ValaParameterDirection _tmp190_;
669 ValaParameterDirection _tmp191_;
670 gboolean _tmp192_ = FALSE;
671 ValaParameter* _tmp193_;
672 ValaDataType* _tmp194_;
673 ValaDataType* _tmp195_;
674 gboolean _tmp203_ = FALSE;
675 ValaParameter* _tmp204_;
676 ValaDataType* _tmp205_;
677 ValaDataType* _tmp206_;
678 ValaCCodeExpression* param_expr = NULL;
679 ValaCCodeIdentifier* _tmp214_;
680 ValaDataType* owned_type = NULL;
681 ValaParameter* _tmp220_;
682 ValaDataType* _tmp221_;
683 ValaDataType* _tmp222_;
684 ValaDataType* _tmp223_;
685 ValaDataType* _tmp224_;
686 ValaCCodeStruct* _tmp225_;
687 ValaArrayType* array_type = NULL;
688 ValaParameter* _tmp244_;
689 ValaDataType* _tmp245_;
690 ValaDataType* _tmp246_;
691 ValaArrayType* _tmp247_;
692 ValaArrayType* _tmp248_;
693 ValaCCodeFunctionCall* message_expr = NULL;
694 ValaCCodeIdentifier* _tmp270_;
695 ValaCCodeIdentifier* _tmp271_;
696 ValaCCodeFunctionCall* _tmp272_;
697 ValaCCodeFunctionCall* _tmp273_;
698 ValaCCodeFunctionCall* _tmp274_;
699 ValaCCodeIdentifier* _tmp275_;
700 ValaCCodeIdentifier* _tmp276_;
701 gboolean may_fail = FALSE;
702 ValaParameter* _tmp277_;
703 ValaDataType* _tmp278_;
704 ValaDataType* _tmp279_;
705 ValaCCodeFunctionCall* _tmp280_;
706 ValaCCodeIdentifier* _tmp281_;
707 ValaCCodeIdentifier* _tmp282_;
708 ValaCCodeExpression* _tmp283_;
709 ValaParameter* _tmp284_;
710 ValaCCodeIdentifier* _tmp285_;
711 ValaCCodeIdentifier* _tmp286_;
712 ValaCCodeUnaryExpression* _tmp287_;
713 ValaCCodeUnaryExpression* _tmp288_;
714 gboolean _tmp289_ = FALSE;
715 _param_index = _param_index + 1;
716 _tmp181_ = _param_index;
717 _tmp182_ = _param_size;
718 if (!(_tmp181_ < _tmp182_)) {
719 break;
720 }
721 _tmp183_ = _param_list;
722 _tmp184_ = vala_list_get (_tmp183_, _param_index);
723 param = (ValaParameter*) _tmp184_;
724 _tmp185_ = param;
725 _tmp186_ = vala_symbol_get_name ((ValaSymbol*) _tmp185_);
726 _tmp187_ = _tmp186_;
727 _tmp188_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp187_);
728 param_name = _tmp188_;
729 _tmp189_ = param;
730 _tmp190_ = vala_parameter_get_direction (_tmp189_);
731 _tmp191_ = _tmp190_;
732 if (_tmp191_ != VALA_PARAMETER_DIRECTION_IN) {
733 _g_free0 (param_name);
734 _vala_code_node_unref0 (param);
735 continue;
736 }
737 _tmp193_ = param;
738 _tmp194_ = vala_variable_get_variable_type ((ValaVariable*) _tmp193_);
739 _tmp195_ = _tmp194_;
740 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp195_, VALA_TYPE_OBJECT_TYPE)) {
741 ValaParameter* _tmp196_;
742 ValaDataType* _tmp197_;
743 ValaDataType* _tmp198_;
744 ValaTypeSymbol* _tmp199_;
745 ValaTypeSymbol* _tmp200_;
746 gchar* _tmp201_;
747 gchar* _tmp202_;
748 _tmp196_ = param;
749 _tmp197_ = vala_variable_get_variable_type ((ValaVariable*) _tmp196_);
750 _tmp198_ = _tmp197_;
751 _tmp199_ = vala_data_type_get_type_symbol (_tmp198_);
752 _tmp200_ = _tmp199_;
753 _tmp201_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp200_);
754 _tmp202_ = _tmp201_;
755 _tmp192_ = g_strcmp0 (_tmp202_, "GLib.Cancellable") == 0;
756 _g_free0 (_tmp202_);
757 } else {
758 _tmp192_ = FALSE;
759 }
760 if (_tmp192_) {
761 _g_free0 (param_name);
762 _vala_code_node_unref0 (param);
763 continue;
764 }
765 _tmp204_ = param;
766 _tmp205_ = vala_variable_get_variable_type ((ValaVariable*) _tmp204_);
767 _tmp206_ = _tmp205_;
768 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp206_, VALA_TYPE_OBJECT_TYPE)) {
769 ValaParameter* _tmp207_;
770 ValaDataType* _tmp208_;
771 ValaDataType* _tmp209_;
772 ValaTypeSymbol* _tmp210_;
773 ValaTypeSymbol* _tmp211_;
774 gchar* _tmp212_;
775 gchar* _tmp213_;
776 _tmp207_ = param;
777 _tmp208_ = vala_variable_get_variable_type ((ValaVariable*) _tmp207_);
778 _tmp209_ = _tmp208_;
779 _tmp210_ = vala_data_type_get_type_symbol (_tmp209_);
780 _tmp211_ = _tmp210_;
781 _tmp212_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp211_);
782 _tmp213_ = _tmp212_;
783 _tmp203_ = g_strcmp0 (_tmp213_, "GLib.BusName") == 0;
784 _g_free0 (_tmp213_);
785 } else {
786 _tmp203_ = FALSE;
787 }
788 if (_tmp203_) {
789 _g_free0 (param_name);
790 _vala_code_node_unref0 (param);
791 continue;
792 }
793 _tmp214_ = ready_data_expr;
794 if (_tmp214_ != NULL) {
795 ValaCCodeIdentifier* _tmp215_;
796 const gchar* _tmp216_;
797 ValaCCodeMemberAccess* _tmp217_;
798 _tmp215_ = ready_data_expr;
799 _tmp216_ = param_name;
800 _tmp217_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp215_, _tmp216_);
801 _vala_ccode_node_unref0 (param_expr);
802 param_expr = (ValaCCodeExpression*) _tmp217_;
803 } else {
804 const gchar* _tmp218_;
805 ValaCCodeIdentifier* _tmp219_;
806 _tmp218_ = param_name;
807 _tmp219_ = vala_ccode_identifier_new (_tmp218_);
808 _vala_ccode_node_unref0 (param_expr);
809 param_expr = (ValaCCodeExpression*) _tmp219_;
810 }
811 _tmp220_ = param;
812 _tmp221_ = vala_variable_get_variable_type ((ValaVariable*) _tmp220_);
813 _tmp222_ = _tmp221_;
814 _tmp223_ = vala_data_type_copy (_tmp222_);
815 owned_type = _tmp223_;
816 _tmp224_ = owned_type;
817 vala_data_type_set_value_owned (_tmp224_, TRUE);
818 _tmp225_ = ready_data_struct;
819 if (_tmp225_ != NULL) {
820 ValaCCodeStruct* _tmp226_;
821 ValaDataType* _tmp227_;
822 gchar* _tmp228_;
823 gchar* _tmp229_;
824 const gchar* _tmp230_;
825 _tmp226_ = ready_data_struct;
826 _tmp227_ = owned_type;
827 _tmp228_ = vala_get_ccode_name ((ValaCodeNode*) _tmp227_);
828 _tmp229_ = _tmp228_;
829 _tmp230_ = param_name;
830 vala_ccode_struct_add_field (_tmp226_, _tmp229_, _tmp230_, 0, NULL);
831 _g_free0 (_tmp229_);
832 } else {
833 ValaCCodeFunction* _tmp231_;
834 ValaCCodeFunction* _tmp232_;
835 ValaDataType* _tmp233_;
836 gchar* _tmp234_;
837 gchar* _tmp235_;
838 const gchar* _tmp236_;
839 ValaParameter* _tmp237_;
840 ValaDataType* _tmp238_;
841 ValaDataType* _tmp239_;
842 ValaCCodeExpression* _tmp240_;
843 ValaCCodeExpression* _tmp241_;
844 ValaCCodeVariableDeclarator* _tmp242_;
845 ValaCCodeVariableDeclarator* _tmp243_;
846 _tmp231_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
847 _tmp232_ = _tmp231_;
848 _tmp233_ = owned_type;
849 _tmp234_ = vala_get_ccode_name ((ValaCodeNode*) _tmp233_);
850 _tmp235_ = _tmp234_;
851 _tmp236_ = param_name;
852 _tmp237_ = param;
853 _tmp238_ = vala_variable_get_variable_type ((ValaVariable*) _tmp237_);
854 _tmp239_ = _tmp238_;
855 _tmp240_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp239_, TRUE, FALSE);
856 _tmp241_ = _tmp240_;
857 _tmp242_ = vala_ccode_variable_declarator_new_zero (_tmp236_, _tmp241_, NULL);
858 _tmp243_ = _tmp242_;
859 vala_ccode_function_add_declaration (_tmp232_, _tmp235_, (ValaCCodeDeclarator*) _tmp243_, 0);
860 _vala_ccode_node_unref0 (_tmp243_);
861 _vala_ccode_node_unref0 (_tmp241_);
862 _g_free0 (_tmp235_);
863 }
864 _tmp244_ = param;
865 _tmp245_ = vala_variable_get_variable_type ((ValaVariable*) _tmp244_);
866 _tmp246_ = _tmp245_;
867 _tmp247_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp246_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp246_) : NULL);
868 array_type = _tmp247_;
869 _tmp248_ = array_type;
870 if (_tmp248_ != NULL) {
871 gchar* length_ctype = NULL;
872 ValaArrayType* _tmp249_;
873 gchar* _tmp250_;
874 _tmp249_ = array_type;
875 _tmp250_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp249_);
876 length_ctype = _tmp250_;
877 {
878 gint dim = 0;
879 dim = 1;
880 {
881 gboolean _tmp251_ = FALSE;
882 _tmp251_ = TRUE;
883 while (TRUE) {
884 ValaArrayType* _tmp253_;
885 gint _tmp254_;
886 gint _tmp255_;
887 gchar* length_cname = NULL;
888 ValaParameter* _tmp256_;
889 gchar* _tmp257_;
890 ValaCCodeStruct* _tmp258_;
891 if (!_tmp251_) {
892 gint _tmp252_;
893 _tmp252_ = dim;
894 dim = _tmp252_ + 1;
895 }
896 _tmp251_ = FALSE;
897 _tmp253_ = array_type;
898 _tmp254_ = vala_array_type_get_rank (_tmp253_);
899 _tmp255_ = _tmp254_;
900 if (!(dim <= _tmp255_)) {
901 break;
902 }
903 _tmp256_ = param;
904 _tmp257_ = vala_ccode_base_module_get_variable_array_length_cname ((ValaCCodeBaseModule*) self, (ValaVariable*) _tmp256_, dim);
905 length_cname = _tmp257_;
906 _tmp258_ = ready_data_struct;
907 if (_tmp258_ != NULL) {
908 ValaCCodeStruct* _tmp259_;
909 const gchar* _tmp260_;
910 const gchar* _tmp261_;
911 _tmp259_ = ready_data_struct;
912 _tmp260_ = length_ctype;
913 _tmp261_ = length_cname;
914 vala_ccode_struct_add_field (_tmp259_, _tmp260_, _tmp261_, 0, NULL);
915 } else {
916 ValaCCodeFunction* _tmp262_;
917 ValaCCodeFunction* _tmp263_;
918 const gchar* _tmp264_;
919 const gchar* _tmp265_;
920 ValaCCodeConstant* _tmp266_;
921 ValaCCodeConstant* _tmp267_;
922 ValaCCodeVariableDeclarator* _tmp268_;
923 ValaCCodeVariableDeclarator* _tmp269_;
924 _tmp262_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
925 _tmp263_ = _tmp262_;
926 _tmp264_ = length_ctype;
927 _tmp265_ = length_cname;
928 _tmp266_ = vala_ccode_constant_new ("0");
929 _tmp267_ = _tmp266_;
930 _tmp268_ = vala_ccode_variable_declarator_new_zero (_tmp265_, (ValaCCodeExpression*) _tmp267_, NULL);
931 _tmp269_ = _tmp268_;
932 vala_ccode_function_add_declaration (_tmp263_, _tmp264_, (ValaCCodeDeclarator*) _tmp269_, 0);
933 _vala_ccode_node_unref0 (_tmp269_);
934 _vala_ccode_node_unref0 (_tmp267_);
935 }
936 _g_free0 (length_cname);
937 }
938 }
939 }
940 _g_free0 (length_ctype);
941 }
942 _tmp270_ = vala_ccode_identifier_new ("g_dbus_method_invocation_get_message");
943 _tmp271_ = _tmp270_;
944 _tmp272_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp271_);
945 _tmp273_ = _tmp272_;
946 _vala_ccode_node_unref0 (_tmp271_);
947 message_expr = _tmp273_;
948 _tmp274_ = message_expr;
949 _tmp275_ = vala_ccode_identifier_new ("invocation");
950 _tmp276_ = _tmp275_;
951 vala_ccode_function_call_add_argument (_tmp274_, (ValaCCodeExpression*) _tmp276_);
952 _vala_ccode_node_unref0 (_tmp276_);
953 _tmp277_ = param;
954 _tmp278_ = vala_variable_get_variable_type ((ValaVariable*) _tmp277_);
955 _tmp279_ = _tmp278_;
956 _tmp280_ = message_expr;
957 _tmp281_ = vala_ccode_identifier_new ("_arguments_iter");
958 _tmp282_ = _tmp281_;
959 _tmp283_ = param_expr;
960 _tmp284_ = param;
961 _tmp285_ = vala_ccode_identifier_new ("error");
962 _tmp286_ = _tmp285_;
963 _tmp287_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp286_);
964 _tmp288_ = _tmp287_;
965 vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp279_, (ValaCCodeExpression*) _tmp280_, (ValaCCodeExpression*) _tmp282_, _tmp283_, (ValaSymbol*) _tmp284_, (ValaCCodeExpression*) _tmp288_, &_tmp289_);
966 may_fail = _tmp289_;
967 _vala_ccode_node_unref0 (_tmp288_);
968 _vala_ccode_node_unref0 (_tmp286_);
969 _vala_ccode_node_unref0 (_tmp282_);
970 if (may_fail) {
971 ValaCCodeFunction* _tmp296_;
972 ValaCCodeFunction* _tmp297_;
973 ValaCCodeIdentifier* _tmp298_;
974 ValaCCodeIdentifier* _tmp299_;
975 ValaCCodeFunctionCall* return_error = NULL;
976 ValaCCodeIdentifier* _tmp300_;
977 ValaCCodeIdentifier* _tmp301_;
978 ValaCCodeFunctionCall* _tmp302_;
979 ValaCCodeFunctionCall* _tmp303_;
980 ValaCCodeFunctionCall* _tmp304_;
981 ValaCCodeIdentifier* _tmp305_;
982 ValaCCodeIdentifier* _tmp306_;
983 ValaCCodeFunctionCall* _tmp307_;
984 ValaCCodeIdentifier* _tmp308_;
985 ValaCCodeIdentifier* _tmp309_;
986 ValaCCodeFunction* _tmp310_;
987 ValaCCodeFunction* _tmp311_;
988 ValaCCodeFunctionCall* _tmp312_;
989 ValaCCodeFunctionCall* free_error = NULL;
990 ValaCCodeIdentifier* _tmp313_;
991 ValaCCodeIdentifier* _tmp314_;
992 ValaCCodeFunctionCall* _tmp315_;
993 ValaCCodeFunctionCall* _tmp316_;
994 ValaCCodeFunctionCall* _tmp317_;
995 ValaCCodeIdentifier* _tmp318_;
996 ValaCCodeIdentifier* _tmp319_;
997 ValaCCodeFunction* _tmp320_;
998 ValaCCodeFunction* _tmp321_;
999 ValaCCodeFunctionCall* _tmp322_;
1000 gboolean _tmp323_ = FALSE;
1001 ValaCCodeFunction* _tmp329_;
1002 ValaCCodeFunction* _tmp330_;
1003 if (!uses_error) {
1004 ValaCCodeFunction* _tmp290_;
1005 ValaCCodeFunction* _tmp291_;
1006 ValaCCodeConstant* _tmp292_;
1007 ValaCCodeConstant* _tmp293_;
1008 ValaCCodeVariableDeclarator* _tmp294_;
1009 ValaCCodeVariableDeclarator* _tmp295_;
1010 _tmp290_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1011 _tmp291_ = _tmp290_;
1012 _tmp292_ = vala_ccode_constant_new ("NULL");
1013 _tmp293_ = _tmp292_;
1014 _tmp294_ = vala_ccode_variable_declarator_new_zero ("error", (ValaCCodeExpression*) _tmp293_, NULL);
1015 _tmp295_ = _tmp294_;
1016 vala_ccode_function_add_declaration (_tmp291_, "GError*", (ValaCCodeDeclarator*) _tmp295_, 0);
1017 _vala_ccode_node_unref0 (_tmp295_);
1018 _vala_ccode_node_unref0 (_tmp293_);
1019 uses_error = TRUE;
1020 }
1021 _tmp296_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1022 _tmp297_ = _tmp296_;
1023 _tmp298_ = vala_ccode_identifier_new ("error");
1024 _tmp299_ = _tmp298_;
1025 vala_ccode_function_open_if (_tmp297_, (ValaCCodeExpression*) _tmp299_);
1026 _vala_ccode_node_unref0 (_tmp299_);
1027 _tmp300_ = vala_ccode_identifier_new ("g_dbus_method_invocation_return_gerror");
1028 _tmp301_ = _tmp300_;
1029 _tmp302_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp301_);
1030 _tmp303_ = _tmp302_;
1031 _vala_ccode_node_unref0 (_tmp301_);
1032 return_error = _tmp303_;
1033 _tmp304_ = return_error;
1034 _tmp305_ = vala_ccode_identifier_new ("invocation");
1035 _tmp306_ = _tmp305_;
1036 vala_ccode_function_call_add_argument (_tmp304_, (ValaCCodeExpression*) _tmp306_);
1037 _vala_ccode_node_unref0 (_tmp306_);
1038 _tmp307_ = return_error;
1039 _tmp308_ = vala_ccode_identifier_new ("error");
1040 _tmp309_ = _tmp308_;
1041 vala_ccode_function_call_add_argument (_tmp307_, (ValaCCodeExpression*) _tmp309_);
1042 _vala_ccode_node_unref0 (_tmp309_);
1043 _tmp310_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1044 _tmp311_ = _tmp310_;
1045 _tmp312_ = return_error;
1046 vala_ccode_function_add_expression (_tmp311_, (ValaCCodeExpression*) _tmp312_);
1047 _tmp313_ = vala_ccode_identifier_new ("g_error_free");
1048 _tmp314_ = _tmp313_;
1049 _tmp315_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp314_);
1050 _tmp316_ = _tmp315_;
1051 _vala_ccode_node_unref0 (_tmp314_);
1052 free_error = _tmp316_;
1053 _tmp317_ = free_error;
1054 _tmp318_ = vala_ccode_identifier_new ("error");
1055 _tmp319_ = _tmp318_;
1056 vala_ccode_function_call_add_argument (_tmp317_, (ValaCCodeExpression*) _tmp319_);
1057 _vala_ccode_node_unref0 (_tmp319_);
1058 _tmp320_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1059 _tmp321_ = _tmp320_;
1060 _tmp322_ = free_error;
1061 vala_ccode_function_add_expression (_tmp321_, (ValaCCodeExpression*) _tmp322_);
1062 if (need_goto_label) {
1063 _tmp323_ = TRUE;
1064 } else {
1065 ValaDataType* _tmp324_;
1066 _tmp324_ = owned_type;
1067 _tmp323_ = vala_ccode_base_module_requires_destroy (_tmp324_);
1068 }
1069 if (_tmp323_) {
1070 ValaCCodeFunction* _tmp325_;
1071 ValaCCodeFunction* _tmp326_;
1072 _tmp325_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1073 _tmp326_ = _tmp325_;
1074 vala_ccode_function_add_goto (_tmp326_, "_error");
1075 need_goto_label = TRUE;
1076 } else {
1077 ValaCCodeFunction* _tmp327_;
1078 ValaCCodeFunction* _tmp328_;
1079 _tmp327_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1080 _tmp328_ = _tmp327_;
1081 vala_ccode_function_add_return (_tmp328_, NULL);
1082 }
1083 _tmp329_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1084 _tmp330_ = _tmp329_;
1085 vala_ccode_function_close (_tmp330_);
1086 _vala_ccode_node_unref0 (free_error);
1087 _vala_ccode_node_unref0 (return_error);
1088 } else {
1089 gboolean _tmp331_ = FALSE;
1090 gboolean _tmp332_ = FALSE;
1091 if (!need_goto_label) {
1092 gboolean _tmp333_;
1093 gboolean _tmp334_;
1094 _tmp333_ = vala_code_node_get_tree_can_fail ((ValaCodeNode*) m);
1095 _tmp334_ = _tmp333_;
1096 _tmp332_ = _tmp334_;
1097 } else {
1098 _tmp332_ = FALSE;
1099 }
1100 if (_tmp332_) {
1101 ValaDataType* _tmp335_;
1102 _tmp335_ = owned_type;
1103 _tmp331_ = vala_ccode_base_module_requires_destroy (_tmp335_);
1104 } else {
1105 _tmp331_ = FALSE;
1106 }
1107 if (_tmp331_) {
1108 need_goto_label = TRUE;
1109 }
1110 }
1111 _vala_ccode_node_unref0 (message_expr);
1112 _vala_code_node_unref0 (array_type);
1113 _vala_code_node_unref0 (owned_type);
1114 _vala_ccode_node_unref0 (param_expr);
1115 _g_free0 (param_name);
1116 _vala_code_node_unref0 (param);
1117 }
1118 _vala_iterable_unref0 (_param_list);
1119 }
1120 _vala_ccode_node_unref0 (ready_data_struct);
1121 }
1122 {
1123 ValaList* _param_list = NULL;
1124 ValaList* _tmp336_;
1125 ValaList* _tmp337_;
1126 gint _param_size = 0;
1127 ValaList* _tmp338_;
1128 gint _tmp339_;
1129 gint _tmp340_;
1130 gint _param_index = 0;
1131 _tmp336_ = vala_callable_get_parameters ((ValaCallable*) m);
1132 _tmp337_ = _vala_iterable_ref0 (_tmp336_);
1133 _param_list = _tmp337_;
1134 _tmp338_ = _param_list;
1135 _tmp339_ = vala_collection_get_size ((ValaCollection*) _tmp338_);
1136 _tmp340_ = _tmp339_;
1137 _param_size = _tmp340_;
1138 _param_index = -1;
1139 while (TRUE) {
1140 gint _tmp341_;
1141 gint _tmp342_;
1142 ValaParameter* param = NULL;
1143 ValaList* _tmp343_;
1144 gpointer _tmp344_;
1145 gchar* param_name = NULL;
1146 ValaParameter* _tmp345_;
1147 const gchar* _tmp346_;
1148 const gchar* _tmp347_;
1149 gchar* _tmp348_;
1150 ValaCCodeExpression* param_expr = NULL;
1151 gboolean _tmp349_ = FALSE;
1152 ValaCCodeIdentifier* _tmp350_;
1153 gboolean _tmp359_ = FALSE;
1154 ValaParameter* _tmp360_;
1155 ValaParameterDirection _tmp361_;
1156 ValaParameterDirection _tmp362_;
1157 ValaArrayType* array_type = NULL;
1158 ValaParameter* _tmp422_;
1159 ValaDataType* _tmp423_;
1160 ValaDataType* _tmp424_;
1161 ValaArrayType* _tmp425_;
1162 ValaArrayType* _tmp426_;
1163 _param_index = _param_index + 1;
1164 _tmp341_ = _param_index;
1165 _tmp342_ = _param_size;
1166 if (!(_tmp341_ < _tmp342_)) {
1167 break;
1168 }
1169 _tmp343_ = _param_list;
1170 _tmp344_ = vala_list_get (_tmp343_, _param_index);
1171 param = (ValaParameter*) _tmp344_;
1172 _tmp345_ = param;
1173 _tmp346_ = vala_symbol_get_name ((ValaSymbol*) _tmp345_);
1174 _tmp347_ = _tmp346_;
1175 _tmp348_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp347_);
1176 param_name = _tmp348_;
1177 _tmp350_ = ready_data_expr;
1178 if (_tmp350_ != NULL) {
1179 ValaParameter* _tmp351_;
1180 ValaParameterDirection _tmp352_;
1181 ValaParameterDirection _tmp353_;
1182 _tmp351_ = param;
1183 _tmp352_ = vala_parameter_get_direction (_tmp351_);
1184 _tmp353_ = _tmp352_;
1185 _tmp349_ = _tmp353_ == VALA_PARAMETER_DIRECTION_IN;
1186 } else {
1187 _tmp349_ = FALSE;
1188 }
1189 if (_tmp349_) {
1190 ValaCCodeIdentifier* _tmp354_;
1191 const gchar* _tmp355_;
1192 ValaCCodeMemberAccess* _tmp356_;
1193 _tmp354_ = ready_data_expr;
1194 _tmp355_ = param_name;
1195 _tmp356_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp354_, _tmp355_);
1196 _vala_ccode_node_unref0 (param_expr);
1197 param_expr = (ValaCCodeExpression*) _tmp356_;
1198 } else {
1199 const gchar* _tmp357_;
1200 ValaCCodeIdentifier* _tmp358_;
1201 _tmp357_ = param_name;
1202 _tmp358_ = vala_ccode_identifier_new (_tmp357_);
1203 _vala_ccode_node_unref0 (param_expr);
1204 param_expr = (ValaCCodeExpression*) _tmp358_;
1205 }
1206 _tmp360_ = param;
1207 _tmp361_ = vala_parameter_get_direction (_tmp360_);
1208 _tmp362_ = _tmp361_;
1209 if (_tmp362_ == VALA_PARAMETER_DIRECTION_IN) {
1210 _tmp359_ = !ready;
1211 } else {
1212 _tmp359_ = FALSE;
1213 }
1214 if (_tmp359_) {
1215 gboolean _tmp363_ = FALSE;
1216 ValaParameter* _tmp364_;
1217 ValaDataType* _tmp365_;
1218 ValaDataType* _tmp366_;
1219 gboolean _tmp377_ = FALSE;
1220 ValaParameter* _tmp378_;
1221 ValaDataType* _tmp379_;
1222 ValaDataType* _tmp380_;
1223 ValaStruct* st = NULL;
1224 ValaParameter* _tmp397_;
1225 ValaDataType* _tmp398_;
1226 ValaDataType* _tmp399_;
1227 ValaTypeSymbol* _tmp400_;
1228 ValaTypeSymbol* _tmp401_;
1229 gboolean _tmp402_ = FALSE;
1230 ValaStruct* _tmp403_;
1231 _tmp364_ = param;
1232 _tmp365_ = vala_variable_get_variable_type ((ValaVariable*) _tmp364_);
1233 _tmp366_ = _tmp365_;
1234 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp366_, VALA_TYPE_OBJECT_TYPE)) {
1235 ValaParameter* _tmp367_;
1236 ValaDataType* _tmp368_;
1237 ValaDataType* _tmp369_;
1238 ValaTypeSymbol* _tmp370_;
1239 ValaTypeSymbol* _tmp371_;
1240 gchar* _tmp372_;
1241 gchar* _tmp373_;
1242 _tmp367_ = param;
1243 _tmp368_ = vala_variable_get_variable_type ((ValaVariable*) _tmp367_);
1244 _tmp369_ = _tmp368_;
1245 _tmp370_ = vala_data_type_get_type_symbol (_tmp369_);
1246 _tmp371_ = _tmp370_;
1247 _tmp372_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp371_);
1248 _tmp373_ = _tmp372_;
1249 _tmp363_ = g_strcmp0 (_tmp373_, "GLib.Cancellable") == 0;
1250 _g_free0 (_tmp373_);
1251 } else {
1252 _tmp363_ = FALSE;
1253 }
1254 if (_tmp363_) {
1255 ValaCCodeFunctionCall* _tmp374_;
1256 ValaCCodeConstant* _tmp375_;
1257 ValaCCodeConstant* _tmp376_;
1258 _tmp374_ = ccall;
1259 _tmp375_ = vala_ccode_constant_new ("NULL");
1260 _tmp376_ = _tmp375_;
1261 vala_ccode_function_call_add_argument (_tmp374_, (ValaCCodeExpression*) _tmp376_);
1262 _vala_ccode_node_unref0 (_tmp376_);
1263 _vala_ccode_node_unref0 (param_expr);
1264 _g_free0 (param_name);
1265 _vala_code_node_unref0 (param);
1266 continue;
1267 }
1268 _tmp378_ = param;
1269 _tmp379_ = vala_variable_get_variable_type ((ValaVariable*) _tmp378_);
1270 _tmp380_ = _tmp379_;
1271 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp380_, VALA_TYPE_OBJECT_TYPE)) {
1272 ValaParameter* _tmp381_;
1273 ValaDataType* _tmp382_;
1274 ValaDataType* _tmp383_;
1275 ValaTypeSymbol* _tmp384_;
1276 ValaTypeSymbol* _tmp385_;
1277 gchar* _tmp386_;
1278 gchar* _tmp387_;
1279 _tmp381_ = param;
1280 _tmp382_ = vala_variable_get_variable_type ((ValaVariable*) _tmp381_);
1281 _tmp383_ = _tmp382_;
1282 _tmp384_ = vala_data_type_get_type_symbol (_tmp383_);
1283 _tmp385_ = _tmp384_;
1284 _tmp386_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp385_);
1285 _tmp387_ = _tmp386_;
1286 _tmp377_ = g_strcmp0 (_tmp387_, "GLib.BusName") == 0;
1287 _g_free0 (_tmp387_);
1288 } else {
1289 _tmp377_ = FALSE;
1290 }
1291 if (_tmp377_) {
1292 ValaCCodeFunctionCall* sender = NULL;
1293 ValaCCodeIdentifier* _tmp388_;
1294 ValaCCodeIdentifier* _tmp389_;
1295 ValaCCodeFunctionCall* _tmp390_;
1296 ValaCCodeFunctionCall* _tmp391_;
1297 ValaCCodeFunctionCall* _tmp392_;
1298 ValaCCodeIdentifier* _tmp393_;
1299 ValaCCodeIdentifier* _tmp394_;
1300 ValaCCodeFunctionCall* _tmp395_;
1301 ValaCCodeFunctionCall* _tmp396_;
1302 _tmp388_ = vala_ccode_identifier_new ("g_dbus_method_invocation_get_sender");
1303 _tmp389_ = _tmp388_;
1304 _tmp390_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp389_);
1305 _tmp391_ = _tmp390_;
1306 _vala_ccode_node_unref0 (_tmp389_);
1307 sender = _tmp391_;
1308 _tmp392_ = sender;
1309 _tmp393_ = vala_ccode_identifier_new ("invocation");
1310 _tmp394_ = _tmp393_;
1311 vala_ccode_function_call_add_argument (_tmp392_, (ValaCCodeExpression*) _tmp394_);
1312 _vala_ccode_node_unref0 (_tmp394_);
1313 _tmp395_ = ccall;
1314 _tmp396_ = sender;
1315 vala_ccode_function_call_add_argument (_tmp395_, (ValaCCodeExpression*) _tmp396_);
1316 _vala_ccode_node_unref0 (sender);
1317 _vala_ccode_node_unref0 (param_expr);
1318 _g_free0 (param_name);
1319 _vala_code_node_unref0 (param);
1320 continue;
1321 }
1322 _tmp397_ = param;
1323 _tmp398_ = vala_variable_get_variable_type ((ValaVariable*) _tmp397_);
1324 _tmp399_ = _tmp398_;
1325 _tmp400_ = vala_data_type_get_type_symbol (_tmp399_);
1326 _tmp401_ = _tmp400_;
1327 st = G_TYPE_CHECK_INSTANCE_TYPE (_tmp401_, VALA_TYPE_STRUCT) ? ((ValaStruct*) _tmp401_) : NULL;
1328 _tmp403_ = st;
1329 if (_tmp403_ != NULL) {
1330 ValaStruct* _tmp404_;
1331 _tmp404_ = st;
1332 _tmp402_ = !vala_struct_is_simple_type (_tmp404_);
1333 } else {
1334 _tmp402_ = FALSE;
1335 }
1336 if (_tmp402_) {
1337 ValaCCodeFunctionCall* _tmp405_;
1338 ValaCCodeExpression* _tmp406_;
1339 ValaCCodeUnaryExpression* _tmp407_;
1340 ValaCCodeUnaryExpression* _tmp408_;
1341 _tmp405_ = ccall;
1342 _tmp406_ = param_expr;
1343 _tmp407_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp406_);
1344 _tmp408_ = _tmp407_;
1345 vala_ccode_function_call_add_argument (_tmp405_, (ValaCCodeExpression*) _tmp408_);
1346 _vala_ccode_node_unref0 (_tmp408_);
1347 } else {
1348 ValaCCodeFunctionCall* _tmp409_;
1349 ValaCCodeExpression* _tmp410_;
1350 _tmp409_ = ccall;
1351 _tmp410_ = param_expr;
1352 vala_ccode_function_call_add_argument (_tmp409_, _tmp410_);
1353 }
1354 } else {
1355 gboolean _tmp411_ = FALSE;
1356 ValaParameter* _tmp412_;
1357 ValaParameterDirection _tmp413_;
1358 ValaParameterDirection _tmp414_;
1359 _tmp412_ = param;
1360 _tmp413_ = vala_parameter_get_direction (_tmp412_);
1361 _tmp414_ = _tmp413_;
1362 if (_tmp414_ == VALA_PARAMETER_DIRECTION_OUT) {
1363 gboolean _tmp415_ = FALSE;
1364 gboolean _tmp416_;
1365 gboolean _tmp417_;
1366 _tmp416_ = vala_method_get_coroutine (m);
1367 _tmp417_ = _tmp416_;
1368 if (!_tmp417_) {
1369 _tmp415_ = TRUE;
1370 } else {
1371 _tmp415_ = ready;
1372 }
1373 _tmp411_ = _tmp415_;
1374 } else {
1375 _tmp411_ = FALSE;
1376 }
1377 if (_tmp411_) {
1378 ValaCCodeFunctionCall* _tmp418_;
1379 ValaCCodeExpression* _tmp419_;
1380 ValaCCodeUnaryExpression* _tmp420_;
1381 ValaCCodeUnaryExpression* _tmp421_;
1382 _tmp418_ = ccall;
1383 _tmp419_ = param_expr;
1384 _tmp420_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp419_);
1385 _tmp421_ = _tmp420_;
1386 vala_ccode_function_call_add_argument (_tmp418_, (ValaCCodeExpression*) _tmp421_);
1387 _vala_ccode_node_unref0 (_tmp421_);
1388 }
1389 }
1390 _tmp422_ = param;
1391 _tmp423_ = vala_variable_get_variable_type ((ValaVariable*) _tmp422_);
1392 _tmp424_ = _tmp423_;
1393 _tmp425_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp424_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp424_) : NULL);
1394 array_type = _tmp425_;
1395 _tmp426_ = array_type;
1396 if (_tmp426_ != NULL) {
1397 {
1398 gint dim = 0;
1399 dim = 1;
1400 {
1401 gboolean _tmp427_ = FALSE;
1402 _tmp427_ = TRUE;
1403 while (TRUE) {
1404 ValaArrayType* _tmp429_;
1405 gint _tmp430_;
1406 gint _tmp431_;
1407 gchar* length_cname = NULL;
1408 ValaParameter* _tmp432_;
1409 gchar* _tmp433_;
1410 ValaCCodeExpression* length_expr = NULL;
1411 gboolean _tmp434_ = FALSE;
1412 ValaCCodeIdentifier* _tmp435_;
1413 gboolean _tmp444_ = FALSE;
1414 ValaParameter* _tmp445_;
1415 ValaParameterDirection _tmp446_;
1416 ValaParameterDirection _tmp447_;
1417 if (!_tmp427_) {
1418 gint _tmp428_;
1419 _tmp428_ = dim;
1420 dim = _tmp428_ + 1;
1421 }
1422 _tmp427_ = FALSE;
1423 _tmp429_ = array_type;
1424 _tmp430_ = vala_array_type_get_rank (_tmp429_);
1425 _tmp431_ = _tmp430_;
1426 if (!(dim <= _tmp431_)) {
1427 break;
1428 }
1429 _tmp432_ = param;
1430 _tmp433_ = vala_ccode_base_module_get_variable_array_length_cname ((ValaCCodeBaseModule*) self, (ValaVariable*) _tmp432_, dim);
1431 length_cname = _tmp433_;
1432 _tmp435_ = ready_data_expr;
1433 if (_tmp435_ != NULL) {
1434 ValaParameter* _tmp436_;
1435 ValaParameterDirection _tmp437_;
1436 ValaParameterDirection _tmp438_;
1437 _tmp436_ = param;
1438 _tmp437_ = vala_parameter_get_direction (_tmp436_);
1439 _tmp438_ = _tmp437_;
1440 _tmp434_ = _tmp438_ == VALA_PARAMETER_DIRECTION_IN;
1441 } else {
1442 _tmp434_ = FALSE;
1443 }
1444 if (_tmp434_) {
1445 ValaCCodeIdentifier* _tmp439_;
1446 const gchar* _tmp440_;
1447 ValaCCodeMemberAccess* _tmp441_;
1448 _tmp439_ = ready_data_expr;
1449 _tmp440_ = length_cname;
1450 _tmp441_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp439_, _tmp440_);
1451 _vala_ccode_node_unref0 (length_expr);
1452 length_expr = (ValaCCodeExpression*) _tmp441_;
1453 } else {
1454 const gchar* _tmp442_;
1455 ValaCCodeIdentifier* _tmp443_;
1456 _tmp442_ = length_cname;
1457 _tmp443_ = vala_ccode_identifier_new (_tmp442_);
1458 _vala_ccode_node_unref0 (length_expr);
1459 length_expr = (ValaCCodeExpression*) _tmp443_;
1460 }
1461 _tmp445_ = param;
1462 _tmp446_ = vala_parameter_get_direction (_tmp445_);
1463 _tmp447_ = _tmp446_;
1464 if (_tmp447_ == VALA_PARAMETER_DIRECTION_IN) {
1465 _tmp444_ = !ready;
1466 } else {
1467 _tmp444_ = FALSE;
1468 }
1469 if (_tmp444_) {
1470 ValaCCodeFunctionCall* _tmp448_;
1471 ValaCCodeExpression* _tmp449_;
1472 _tmp448_ = ccall;
1473 _tmp449_ = length_expr;
1474 vala_ccode_function_call_add_argument (_tmp448_, _tmp449_);
1475 } else {
1476 gboolean _tmp450_ = FALSE;
1477 gboolean _tmp451_ = FALSE;
1478 ValaParameter* _tmp452_;
1479 ValaParameterDirection _tmp453_;
1480 ValaParameterDirection _tmp454_;
1481 _tmp452_ = param;
1482 _tmp453_ = vala_parameter_get_direction (_tmp452_);
1483 _tmp454_ = _tmp453_;
1484 if (_tmp454_ == VALA_PARAMETER_DIRECTION_OUT) {
1485 _tmp451_ = !no_reply;
1486 } else {
1487 _tmp451_ = FALSE;
1488 }
1489 if (_tmp451_) {
1490 gboolean _tmp455_ = FALSE;
1491 gboolean _tmp456_;
1492 gboolean _tmp457_;
1493 _tmp456_ = vala_method_get_coroutine (m);
1494 _tmp457_ = _tmp456_;
1495 if (!_tmp457_) {
1496 _tmp455_ = TRUE;
1497 } else {
1498 _tmp455_ = ready;
1499 }
1500 _tmp450_ = _tmp455_;
1501 } else {
1502 _tmp450_ = FALSE;
1503 }
1504 if (_tmp450_) {
1505 ValaCCodeFunctionCall* _tmp458_;
1506 ValaCCodeExpression* _tmp459_;
1507 ValaCCodeUnaryExpression* _tmp460_;
1508 ValaCCodeUnaryExpression* _tmp461_;
1509 _tmp458_ = ccall;
1510 _tmp459_ = length_expr;
1511 _tmp460_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp459_);
1512 _tmp461_ = _tmp460_;
1513 vala_ccode_function_call_add_argument (_tmp458_, (ValaCCodeExpression*) _tmp461_);
1514 _vala_ccode_node_unref0 (_tmp461_);
1515 }
1516 }
1517 _vala_ccode_node_unref0 (length_expr);
1518 _g_free0 (length_cname);
1519 }
1520 }
1521 }
1522 }
1523 _vala_code_node_unref0 (array_type);
1524 _vala_ccode_node_unref0 (param_expr);
1525 _g_free0 (param_name);
1526 _vala_code_node_unref0 (param);
1527 }
1528 _vala_iterable_unref0 (_param_list);
1529 }
1530 _tmp463_ = vala_method_get_coroutine (m);
1531 _tmp464_ = _tmp463_;
1532 if (!_tmp464_) {
1533 _tmp462_ = TRUE;
1534 } else {
1535 _tmp462_ = ready;
1536 }
1537 if (_tmp462_) {
1538 ValaDataType* _tmp465_;
1539 ValaDataType* _tmp466_;
1540 _tmp465_ = vala_callable_get_return_type ((ValaCallable*) m);
1541 _tmp466_ = _tmp465_;
1542 if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp466_, VALA_TYPE_VOID_TYPE)) {
1543 ValaDataType* _tmp467_;
1544 ValaDataType* _tmp468_;
1545 _tmp467_ = vala_callable_get_return_type ((ValaCallable*) m);
1546 _tmp468_ = _tmp467_;
1547 if (vala_data_type_is_real_non_null_struct_type (_tmp468_)) {
1548 ValaCCodeFunctionCall* _tmp469_;
1549 ValaCCodeIdentifier* _tmp470_;
1550 ValaCCodeIdentifier* _tmp471_;
1551 ValaCCodeUnaryExpression* _tmp472_;
1552 ValaCCodeUnaryExpression* _tmp473_;
1553 _tmp469_ = ccall;
1554 _tmp470_ = vala_ccode_identifier_new ("result");
1555 _tmp471_ = _tmp470_;
1556 _tmp472_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp471_);
1557 _tmp473_ = _tmp472_;
1558 vala_ccode_function_call_add_argument (_tmp469_, (ValaCCodeExpression*) _tmp473_);
1559 _vala_ccode_node_unref0 (_tmp473_);
1560 _vala_ccode_node_unref0 (_tmp471_);
1561 } else {
1562 ValaArrayType* array_type = NULL;
1563 ValaDataType* _tmp474_;
1564 ValaDataType* _tmp475_;
1565 ValaArrayType* _tmp476_;
1566 ValaArrayType* _tmp477_;
1567 _tmp474_ = vala_callable_get_return_type ((ValaCallable*) m);
1568 _tmp475_ = _tmp474_;
1569 _tmp476_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp475_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp475_) : NULL);
1570 array_type = _tmp476_;
1571 _tmp477_ = array_type;
1572 if (_tmp477_ != NULL) {
1573 {
1574 gint dim = 0;
1575 dim = 1;
1576 {
1577 gboolean _tmp478_ = FALSE;
1578 _tmp478_ = TRUE;
1579 while (TRUE) {
1580 ValaArrayType* _tmp480_;
1581 gint _tmp481_;
1582 gint _tmp482_;
1583 gchar* length_cname = NULL;
1584 gchar* _tmp483_;
1585 ValaCCodeFunctionCall* _tmp484_;
1586 const gchar* _tmp485_;
1587 ValaCCodeIdentifier* _tmp486_;
1588 ValaCCodeIdentifier* _tmp487_;
1589 ValaCCodeUnaryExpression* _tmp488_;
1590 ValaCCodeUnaryExpression* _tmp489_;
1591 if (!_tmp478_) {
1592 gint _tmp479_;
1593 _tmp479_ = dim;
1594 dim = _tmp479_ + 1;
1595 }
1596 _tmp478_ = FALSE;
1597 _tmp480_ = array_type;
1598 _tmp481_ = vala_array_type_get_rank (_tmp480_);
1599 _tmp482_ = _tmp481_;
1600 if (!(dim <= _tmp482_)) {
1601 break;
1602 }
1603 _tmp483_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", dim);
1604 length_cname = _tmp483_;
1605 _tmp484_ = ccall;
1606 _tmp485_ = length_cname;
1607 _tmp486_ = vala_ccode_identifier_new (_tmp485_);
1608 _tmp487_ = _tmp486_;
1609 _tmp488_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp487_);
1610 _tmp489_ = _tmp488_;
1611 vala_ccode_function_call_add_argument (_tmp484_, (ValaCCodeExpression*) _tmp489_);
1612 _vala_ccode_node_unref0 (_tmp489_);
1613 _vala_ccode_node_unref0 (_tmp487_);
1614 _g_free0 (length_cname);
1615 }
1616 }
1617 }
1618 }
1619 _vala_code_node_unref0 (array_type);
1620 }
1621 }
1622 }
1623 _tmp491_ = vala_method_get_coroutine (m);
1624 _tmp492_ = _tmp491_;
1625 if (_tmp492_) {
1626 _tmp490_ = !ready;
1627 } else {
1628 _tmp490_ = FALSE;
1629 }
1630 if (_tmp490_) {
1631 ValaCCodeFunctionCall* _tmp493_;
1632 const gchar* _tmp494_;
1633 gchar* _tmp495_;
1634 gchar* _tmp496_;
1635 ValaCCodeIdentifier* _tmp497_;
1636 ValaCCodeIdentifier* _tmp498_;
1637 ValaCCodeCastExpression* _tmp499_;
1638 ValaCCodeCastExpression* _tmp500_;
1639 ValaCCodeFunctionCall* _tmp501_;
1640 ValaCCodeIdentifier* _tmp502_;
1641 _tmp493_ = ccall;
1642 _tmp494_ = wrapper_name;
1643 _tmp495_ = g_strconcat (_tmp494_, "_ready", NULL);
1644 _tmp496_ = _tmp495_;
1645 _tmp497_ = vala_ccode_identifier_new (_tmp496_);
1646 _tmp498_ = _tmp497_;
1647 _tmp499_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp498_, "GAsyncReadyCallback");
1648 _tmp500_ = _tmp499_;
1649 vala_ccode_function_call_add_argument (_tmp493_, (ValaCCodeExpression*) _tmp500_);
1650 _vala_ccode_node_unref0 (_tmp500_);
1651 _vala_ccode_node_unref0 (_tmp498_);
1652 _g_free0 (_tmp496_);
1653 _tmp501_ = ccall;
1654 _tmp502_ = ready_data_expr;
1655 vala_ccode_function_call_add_argument (_tmp501_, (ValaCCodeExpression*) _tmp502_);
1656 }
1657 _tmp504_ = vala_method_get_coroutine (m);
1658 _tmp505_ = _tmp504_;
1659 if (!_tmp505_) {
1660 _tmp503_ = TRUE;
1661 } else {
1662 _tmp503_ = ready;
1663 }
1664 if (_tmp503_) {
1665 gboolean _tmp506_;
1666 gboolean _tmp507_;
1667 _tmp506_ = vala_code_node_get_tree_can_fail ((ValaCodeNode*) m);
1668 _tmp507_ = _tmp506_;
1669 if (_tmp507_) {
1670 ValaCCodeFunctionCall* _tmp508_;
1671 ValaCCodeIdentifier* _tmp509_;
1672 ValaCCodeIdentifier* _tmp510_;
1673 ValaCCodeUnaryExpression* _tmp511_;
1674 ValaCCodeUnaryExpression* _tmp512_;
1675 _tmp508_ = ccall;
1676 _tmp509_ = vala_ccode_identifier_new ("error");
1677 _tmp510_ = _tmp509_;
1678 _tmp511_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp510_);
1679 _tmp512_ = _tmp511_;
1680 vala_ccode_function_call_add_argument (_tmp508_, (ValaCCodeExpression*) _tmp512_);
1681 _vala_ccode_node_unref0 (_tmp512_);
1682 _vala_ccode_node_unref0 (_tmp510_);
1683 }
1684 }
1685 if (!no_reply) {
1686 gboolean _tmp514_ = FALSE;
1687 gboolean _tmp515_;
1688 gboolean _tmp516_;
1689 _tmp515_ = vala_method_get_coroutine (m);
1690 _tmp516_ = _tmp515_;
1691 if (!_tmp516_) {
1692 _tmp514_ = TRUE;
1693 } else {
1694 _tmp514_ = ready;
1695 }
1696 _tmp513_ = _tmp514_;
1697 } else {
1698 _tmp513_ = FALSE;
1699 }
1700 if (_tmp513_) {
1701 gboolean _tmp517_ = FALSE;
1702 ValaDataType* _tmp518_;
1703 ValaDataType* _tmp519_;
1704 gboolean _tmp530_;
1705 gboolean _tmp531_;
1706 ValaCCodeFunction* _tmp565_;
1707 ValaCCodeFunction* _tmp566_;
1708 ValaCCodeConstant* _tmp567_;
1709 ValaCCodeConstant* _tmp568_;
1710 ValaCCodeVariableDeclarator* _tmp569_;
1711 ValaCCodeVariableDeclarator* _tmp570_;
1712 ValaCCodeFunctionCall* message_expr = NULL;
1713 ValaCCodeIdentifier* _tmp571_;
1714 ValaCCodeIdentifier* _tmp572_;
1715 ValaCCodeFunctionCall* _tmp573_;
1716 ValaCCodeFunctionCall* _tmp574_;
1717 ValaCCodeFunctionCall* _tmp575_;
1718 ValaCCodeIdentifier* _tmp576_;
1719 ValaCCodeIdentifier* _tmp577_;
1720 ValaCCodeIdentifier* _tmp578_;
1721 ValaCCodeIdentifier* _tmp579_;
1722 ValaCCodeFunctionCall* _tmp580_;
1723 ValaCCodeFunctionCall* _tmp581_;
1724 ValaCCodeFunctionCall* _tmp582_;
1725 ValaCCodeFunction* _tmp583_;
1726 ValaCCodeFunction* _tmp584_;
1727 ValaCCodeIdentifier* _tmp585_;
1728 ValaCCodeIdentifier* _tmp586_;
1729 ValaCCodeFunctionCall* _tmp587_;
1730 ValaCCodeFunction* _tmp588_;
1731 ValaCCodeFunction* _tmp589_;
1732 ValaCCodeVariableDeclarator* _tmp590_;
1733 ValaCCodeVariableDeclarator* _tmp591_;
1734 ValaCCodeFunction* _tmp592_;
1735 ValaCCodeFunction* _tmp593_;
1736 ValaCCodeVariableDeclarator* _tmp594_;
1737 ValaCCodeVariableDeclarator* _tmp595_;
1738 ValaCCodeFunctionCall* builder_init = NULL;
1739 ValaCCodeIdentifier* _tmp596_;
1740 ValaCCodeIdentifier* _tmp597_;
1741 ValaCCodeFunctionCall* _tmp598_;
1742 ValaCCodeFunctionCall* _tmp599_;
1743 ValaCCodeFunctionCall* _tmp600_;
1744 ValaCCodeIdentifier* _tmp601_;
1745 ValaCCodeIdentifier* _tmp602_;
1746 ValaCCodeUnaryExpression* _tmp603_;
1747 ValaCCodeUnaryExpression* _tmp604_;
1748 ValaCCodeFunctionCall* _tmp605_;
1749 ValaCCodeIdentifier* _tmp606_;
1750 ValaCCodeIdentifier* _tmp607_;
1751 ValaCCodeFunction* _tmp608_;
1752 ValaCCodeFunction* _tmp609_;
1753 ValaCCodeFunctionCall* _tmp610_;
1754 ValaDataType* _tmp684_;
1755 ValaDataType* _tmp685_;
1756 ValaCCodeFunctionCall* builder_end = NULL;
1757 ValaCCodeIdentifier* _tmp760_;
1758 ValaCCodeIdentifier* _tmp761_;
1759 ValaCCodeFunctionCall* _tmp762_;
1760 ValaCCodeFunctionCall* _tmp763_;
1761 ValaCCodeFunctionCall* _tmp764_;
1762 ValaCCodeIdentifier* _tmp765_;
1763 ValaCCodeIdentifier* _tmp766_;
1764 ValaCCodeUnaryExpression* _tmp767_;
1765 ValaCCodeUnaryExpression* _tmp768_;
1766 ValaCCodeFunction* _tmp769_;
1767 ValaCCodeFunction* _tmp770_;
1768 ValaCCodeIdentifier* _tmp771_;
1769 ValaCCodeIdentifier* _tmp772_;
1770 ValaCCodeFunctionCall* _tmp773_;
1771 ValaCCodeFunctionCall* set_body = NULL;
1772 ValaCCodeIdentifier* _tmp774_;
1773 ValaCCodeIdentifier* _tmp775_;
1774 ValaCCodeFunctionCall* _tmp776_;
1775 ValaCCodeFunctionCall* _tmp777_;
1776 ValaCCodeFunctionCall* _tmp778_;
1777 ValaCCodeIdentifier* _tmp779_;
1778 ValaCCodeIdentifier* _tmp780_;
1779 ValaCCodeFunctionCall* _tmp781_;
1780 ValaCCodeIdentifier* _tmp782_;
1781 ValaCCodeIdentifier* _tmp783_;
1782 ValaCCodeFunction* _tmp784_;
1783 ValaCCodeFunction* _tmp785_;
1784 ValaCCodeFunctionCall* _tmp786_;
1785 _tmp518_ = vala_callable_get_return_type ((ValaCallable*) m);
1786 _tmp519_ = _tmp518_;
1787 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp519_, VALA_TYPE_VOID_TYPE)) {
1788 _tmp517_ = TRUE;
1789 } else {
1790 ValaDataType* _tmp520_;
1791 ValaDataType* _tmp521_;
1792 _tmp520_ = vala_callable_get_return_type ((ValaCallable*) m);
1793 _tmp521_ = _tmp520_;
1794 _tmp517_ = vala_data_type_is_real_non_null_struct_type (_tmp521_);
1795 }
1796 if (_tmp517_) {
1797 ValaCCodeFunction* _tmp522_;
1798 ValaCCodeFunction* _tmp523_;
1799 ValaCCodeFunctionCall* _tmp524_;
1800 _tmp522_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1801 _tmp523_ = _tmp522_;
1802 _tmp524_ = ccall;
1803 vala_ccode_function_add_expression (_tmp523_, (ValaCCodeExpression*) _tmp524_);
1804 } else {
1805 ValaCCodeFunction* _tmp525_;
1806 ValaCCodeFunction* _tmp526_;
1807 ValaCCodeIdentifier* _tmp527_;
1808 ValaCCodeIdentifier* _tmp528_;
1809 ValaCCodeFunctionCall* _tmp529_;
1810 _tmp525_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1811 _tmp526_ = _tmp525_;
1812 _tmp527_ = vala_ccode_identifier_new ("result");
1813 _tmp528_ = _tmp527_;
1814 _tmp529_ = ccall;
1815 vala_ccode_function_add_assignment (_tmp526_, (ValaCCodeExpression*) _tmp528_, (ValaCCodeExpression*) _tmp529_);
1816 _vala_ccode_node_unref0 (_tmp528_);
1817 }
1818 _tmp530_ = vala_code_node_get_tree_can_fail ((ValaCodeNode*) m);
1819 _tmp531_ = _tmp530_;
1820 if (_tmp531_) {
1821 ValaCCodeFunction* _tmp532_;
1822 ValaCCodeFunction* _tmp533_;
1823 ValaCCodeIdentifier* _tmp534_;
1824 ValaCCodeIdentifier* _tmp535_;
1825 ValaCCodeFunctionCall* return_error = NULL;
1826 ValaCCodeIdentifier* _tmp536_;
1827 ValaCCodeIdentifier* _tmp537_;
1828 ValaCCodeFunctionCall* _tmp538_;
1829 ValaCCodeFunctionCall* _tmp539_;
1830 ValaCCodeFunctionCall* _tmp540_;
1831 ValaCCodeIdentifier* _tmp541_;
1832 ValaCCodeIdentifier* _tmp542_;
1833 ValaCCodeFunctionCall* _tmp543_;
1834 ValaCCodeIdentifier* _tmp544_;
1835 ValaCCodeIdentifier* _tmp545_;
1836 ValaCCodeFunction* _tmp546_;
1837 ValaCCodeFunction* _tmp547_;
1838 ValaCCodeFunctionCall* _tmp548_;
1839 ValaCCodeFunctionCall* free_error = NULL;
1840 ValaCCodeIdentifier* _tmp549_;
1841 ValaCCodeIdentifier* _tmp550_;
1842 ValaCCodeFunctionCall* _tmp551_;
1843 ValaCCodeFunctionCall* _tmp552_;
1844 ValaCCodeFunctionCall* _tmp553_;
1845 ValaCCodeIdentifier* _tmp554_;
1846 ValaCCodeIdentifier* _tmp555_;
1847 ValaCCodeFunction* _tmp556_;
1848 ValaCCodeFunction* _tmp557_;
1849 ValaCCodeFunctionCall* _tmp558_;
1850 ValaCCodeFunction* _tmp563_;
1851 ValaCCodeFunction* _tmp564_;
1852 _tmp532_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1853 _tmp533_ = _tmp532_;
1854 _tmp534_ = vala_ccode_identifier_new ("error");
1855 _tmp535_ = _tmp534_;
1856 vala_ccode_function_open_if (_tmp533_, (ValaCCodeExpression*) _tmp535_);
1857 _vala_ccode_node_unref0 (_tmp535_);
1858 _tmp536_ = vala_ccode_identifier_new ("g_dbus_method_invocation_return_gerror");
1859 _tmp537_ = _tmp536_;
1860 _tmp538_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp537_);
1861 _tmp539_ = _tmp538_;
1862 _vala_ccode_node_unref0 (_tmp537_);
1863 return_error = _tmp539_;
1864 _tmp540_ = return_error;
1865 _tmp541_ = vala_ccode_identifier_new ("invocation");
1866 _tmp542_ = _tmp541_;
1867 vala_ccode_function_call_add_argument (_tmp540_, (ValaCCodeExpression*) _tmp542_);
1868 _vala_ccode_node_unref0 (_tmp542_);
1869 _tmp543_ = return_error;
1870 _tmp544_ = vala_ccode_identifier_new ("error");
1871 _tmp545_ = _tmp544_;
1872 vala_ccode_function_call_add_argument (_tmp543_, (ValaCCodeExpression*) _tmp545_);
1873 _vala_ccode_node_unref0 (_tmp545_);
1874 _tmp546_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1875 _tmp547_ = _tmp546_;
1876 _tmp548_ = return_error;
1877 vala_ccode_function_add_expression (_tmp547_, (ValaCCodeExpression*) _tmp548_);
1878 _tmp549_ = vala_ccode_identifier_new ("g_error_free");
1879 _tmp550_ = _tmp549_;
1880 _tmp551_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp550_);
1881 _tmp552_ = _tmp551_;
1882 _vala_ccode_node_unref0 (_tmp550_);
1883 free_error = _tmp552_;
1884 _tmp553_ = free_error;
1885 _tmp554_ = vala_ccode_identifier_new ("error");
1886 _tmp555_ = _tmp554_;
1887 vala_ccode_function_call_add_argument (_tmp553_, (ValaCCodeExpression*) _tmp555_);
1888 _vala_ccode_node_unref0 (_tmp555_);
1889 _tmp556_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1890 _tmp557_ = _tmp556_;
1891 _tmp558_ = free_error;
1892 vala_ccode_function_add_expression (_tmp557_, (ValaCCodeExpression*) _tmp558_);
1893 if (need_goto_label) {
1894 ValaCCodeFunction* _tmp559_;
1895 ValaCCodeFunction* _tmp560_;
1896 _tmp559_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1897 _tmp560_ = _tmp559_;
1898 vala_ccode_function_add_goto (_tmp560_, "_error");
1899 } else {
1900 ValaCCodeFunction* _tmp561_;
1901 ValaCCodeFunction* _tmp562_;
1902 _tmp561_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1903 _tmp562_ = _tmp561_;
1904 vala_ccode_function_add_return (_tmp562_, NULL);
1905 }
1906 _tmp563_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1907 _tmp564_ = _tmp563_;
1908 vala_ccode_function_close (_tmp564_);
1909 _vala_ccode_node_unref0 (free_error);
1910 _vala_ccode_node_unref0 (return_error);
1911 }
1912 _tmp565_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1913 _tmp566_ = _tmp565_;
1914 _tmp567_ = vala_ccode_constant_new ("NULL");
1915 _tmp568_ = _tmp567_;
1916 _tmp569_ = vala_ccode_variable_declarator_new_zero ("_reply_message", (ValaCCodeExpression*) _tmp568_, NULL);
1917 _tmp570_ = _tmp569_;
1918 vala_ccode_function_add_declaration (_tmp566_, "GDBusMessage*", (ValaCCodeDeclarator*) _tmp570_, 0);
1919 _vala_ccode_node_unref0 (_tmp570_);
1920 _vala_ccode_node_unref0 (_tmp568_);
1921 _tmp571_ = vala_ccode_identifier_new ("g_dbus_method_invocation_get_message");
1922 _tmp572_ = _tmp571_;
1923 _tmp573_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp572_);
1924 _tmp574_ = _tmp573_;
1925 _vala_ccode_node_unref0 (_tmp572_);
1926 message_expr = _tmp574_;
1927 _tmp575_ = message_expr;
1928 _tmp576_ = vala_ccode_identifier_new ("invocation");
1929 _tmp577_ = _tmp576_;
1930 vala_ccode_function_call_add_argument (_tmp575_, (ValaCCodeExpression*) _tmp577_);
1931 _vala_ccode_node_unref0 (_tmp577_);
1932 _tmp578_ = vala_ccode_identifier_new ("g_dbus_message_new_method_reply");
1933 _tmp579_ = _tmp578_;
1934 _tmp580_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp579_);
1935 _vala_ccode_node_unref0 (ccall);
1936 ccall = _tmp580_;
1937 _vala_ccode_node_unref0 (_tmp579_);
1938 _tmp581_ = ccall;
1939 _tmp582_ = message_expr;
1940 vala_ccode_function_call_add_argument (_tmp581_, (ValaCCodeExpression*) _tmp582_);
1941 _tmp583_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1942 _tmp584_ = _tmp583_;
1943 _tmp585_ = vala_ccode_identifier_new ("_reply_message");
1944 _tmp586_ = _tmp585_;
1945 _tmp587_ = ccall;
1946 vala_ccode_function_add_assignment (_tmp584_, (ValaCCodeExpression*) _tmp586_, (ValaCCodeExpression*) _tmp587_);
1947 _vala_ccode_node_unref0 (_tmp586_);
1948 _tmp588_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1949 _tmp589_ = _tmp588_;
1950 _tmp590_ = vala_ccode_variable_declarator_new ("_reply", NULL, NULL);
1951 _tmp591_ = _tmp590_;
1952 vala_ccode_function_add_declaration (_tmp589_, "GVariant*", (ValaCCodeDeclarator*) _tmp591_, 0);
1953 _vala_ccode_node_unref0 (_tmp591_);
1954 _tmp592_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1955 _tmp593_ = _tmp592_;
1956 _tmp594_ = vala_ccode_variable_declarator_new ("_reply_builder", NULL, NULL);
1957 _tmp595_ = _tmp594_;
1958 vala_ccode_function_add_declaration (_tmp593_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp595_, 0);
1959 _vala_ccode_node_unref0 (_tmp595_);
1960 _tmp596_ = vala_ccode_identifier_new ("g_variant_builder_init");
1961 _tmp597_ = _tmp596_;
1962 _tmp598_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp597_);
1963 _tmp599_ = _tmp598_;
1964 _vala_ccode_node_unref0 (_tmp597_);
1965 builder_init = _tmp599_;
1966 _tmp600_ = builder_init;
1967 _tmp601_ = vala_ccode_identifier_new ("_reply_builder");
1968 _tmp602_ = _tmp601_;
1969 _tmp603_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp602_);
1970 _tmp604_ = _tmp603_;
1971 vala_ccode_function_call_add_argument (_tmp600_, (ValaCCodeExpression*) _tmp604_);
1972 _vala_ccode_node_unref0 (_tmp604_);
1973 _vala_ccode_node_unref0 (_tmp602_);
1974 _tmp605_ = builder_init;
1975 _tmp606_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
1976 _tmp607_ = _tmp606_;
1977 vala_ccode_function_call_add_argument (_tmp605_, (ValaCCodeExpression*) _tmp607_);
1978 _vala_ccode_node_unref0 (_tmp607_);
1979 _tmp608_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1980 _tmp609_ = _tmp608_;
1981 _tmp610_ = builder_init;
1982 vala_ccode_function_add_expression (_tmp609_, (ValaCCodeExpression*) _tmp610_);
1983 if (uses_fd) {
1984 ValaCCodeFunction* _tmp611_;
1985 ValaCCodeFunction* _tmp612_;
1986 ValaCCodeIdentifier* _tmp613_;
1987 ValaCCodeIdentifier* _tmp614_;
1988 ValaCCodeIdentifier* _tmp615_;
1989 ValaCCodeIdentifier* _tmp616_;
1990 ValaCCodeFunctionCall* _tmp617_;
1991 ValaCCodeFunctionCall* _tmp618_;
1992 _tmp611_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
1993 _tmp612_ = _tmp611_;
1994 _tmp613_ = vala_ccode_identifier_new ("_fd_list");
1995 _tmp614_ = _tmp613_;
1996 _tmp615_ = vala_ccode_identifier_new ("g_unix_fd_list_new");
1997 _tmp616_ = _tmp615_;
1998 _tmp617_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp616_);
1999 _tmp618_ = _tmp617_;
2000 vala_ccode_function_add_assignment (_tmp612_, (ValaCCodeExpression*) _tmp614_, (ValaCCodeExpression*) _tmp618_);
2001 _vala_ccode_node_unref0 (_tmp618_);
2002 _vala_ccode_node_unref0 (_tmp616_);
2003 _vala_ccode_node_unref0 (_tmp614_);
2004 }
2005 {
2006 ValaList* _param_list = NULL;
2007 ValaList* _tmp619_;
2008 ValaList* _tmp620_;
2009 gint _param_size = 0;
2010 ValaList* _tmp621_;
2011 gint _tmp622_;
2012 gint _tmp623_;
2013 gint _param_index = 0;
2014 _tmp619_ = vala_callable_get_parameters ((ValaCallable*) m);
2015 _tmp620_ = _vala_iterable_ref0 (_tmp619_);
2016 _param_list = _tmp620_;
2017 _tmp621_ = _param_list;
2018 _tmp622_ = vala_collection_get_size ((ValaCollection*) _tmp621_);
2019 _tmp623_ = _tmp622_;
2020 _param_size = _tmp623_;
2021 _param_index = -1;
2022 while (TRUE) {
2023 gint _tmp624_;
2024 gint _tmp625_;
2025 ValaParameter* param = NULL;
2026 ValaList* _tmp626_;
2027 gpointer _tmp627_;
2028 ValaParameter* _tmp628_;
2029 ValaParameterDirection _tmp629_;
2030 ValaParameterDirection _tmp630_;
2031 gchar* param_name = NULL;
2032 ValaParameter* _tmp631_;
2033 const gchar* _tmp632_;
2034 const gchar* _tmp633_;
2035 gchar* _tmp634_;
2036 ValaDataType* owned_type = NULL;
2037 ValaParameter* _tmp635_;
2038 ValaDataType* _tmp636_;
2039 ValaDataType* _tmp637_;
2040 ValaDataType* _tmp638_;
2041 ValaDataType* _tmp639_;
2042 ValaCCodeFunction* _tmp640_;
2043 ValaCCodeFunction* _tmp641_;
2044 ValaDataType* _tmp642_;
2045 gchar* _tmp643_;
2046 gchar* _tmp644_;
2047 const gchar* _tmp645_;
2048 ValaParameter* _tmp646_;
2049 ValaDataType* _tmp647_;
2050 ValaDataType* _tmp648_;
2051 ValaCCodeExpression* _tmp649_;
2052 ValaCCodeExpression* _tmp650_;
2053 ValaCCodeVariableDeclarator* _tmp651_;
2054 ValaCCodeVariableDeclarator* _tmp652_;
2055 ValaArrayType* array_type = NULL;
2056 ValaParameter* _tmp653_;
2057 ValaDataType* _tmp654_;
2058 ValaDataType* _tmp655_;
2059 ValaArrayType* _tmp656_;
2060 ValaArrayType* _tmp657_;
2061 ValaParameter* _tmp675_;
2062 ValaDataType* _tmp676_;
2063 ValaDataType* _tmp677_;
2064 ValaCCodeIdentifier* _tmp678_;
2065 ValaCCodeIdentifier* _tmp679_;
2066 const gchar* _tmp680_;
2067 ValaCCodeIdentifier* _tmp681_;
2068 ValaCCodeIdentifier* _tmp682_;
2069 ValaParameter* _tmp683_;
2070 _param_index = _param_index + 1;
2071 _tmp624_ = _param_index;
2072 _tmp625_ = _param_size;
2073 if (!(_tmp624_ < _tmp625_)) {
2074 break;
2075 }
2076 _tmp626_ = _param_list;
2077 _tmp627_ = vala_list_get (_tmp626_, _param_index);
2078 param = (ValaParameter*) _tmp627_;
2079 _tmp628_ = param;
2080 _tmp629_ = vala_parameter_get_direction (_tmp628_);
2081 _tmp630_ = _tmp629_;
2082 if (_tmp630_ != VALA_PARAMETER_DIRECTION_OUT) {
2083 _vala_code_node_unref0 (param);
2084 continue;
2085 }
2086 _tmp631_ = param;
2087 _tmp632_ = vala_symbol_get_name ((ValaSymbol*) _tmp631_);
2088 _tmp633_ = _tmp632_;
2089 _tmp634_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp633_);
2090 param_name = _tmp634_;
2091 _tmp635_ = param;
2092 _tmp636_ = vala_variable_get_variable_type ((ValaVariable*) _tmp635_);
2093 _tmp637_ = _tmp636_;
2094 _tmp638_ = vala_data_type_copy (_tmp637_);
2095 owned_type = _tmp638_;
2096 _tmp639_ = owned_type;
2097 vala_data_type_set_value_owned (_tmp639_, TRUE);
2098 _tmp640_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2099 _tmp641_ = _tmp640_;
2100 _tmp642_ = owned_type;
2101 _tmp643_ = vala_get_ccode_name ((ValaCodeNode*) _tmp642_);
2102 _tmp644_ = _tmp643_;
2103 _tmp645_ = param_name;
2104 _tmp646_ = param;
2105 _tmp647_ = vala_variable_get_variable_type ((ValaVariable*) _tmp646_);
2106 _tmp648_ = _tmp647_;
2107 _tmp649_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp648_, TRUE, FALSE);
2108 _tmp650_ = _tmp649_;
2109 _tmp651_ = vala_ccode_variable_declarator_new_zero (_tmp645_, _tmp650_, NULL);
2110 _tmp652_ = _tmp651_;
2111 vala_ccode_function_add_declaration (_tmp641_, _tmp644_, (ValaCCodeDeclarator*) _tmp652_, 0);
2112 _vala_ccode_node_unref0 (_tmp652_);
2113 _vala_ccode_node_unref0 (_tmp650_);
2114 _g_free0 (_tmp644_);
2115 _tmp653_ = param;
2116 _tmp654_ = vala_variable_get_variable_type ((ValaVariable*) _tmp653_);
2117 _tmp655_ = _tmp654_;
2118 _tmp656_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp655_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp655_) : NULL);
2119 array_type = _tmp656_;
2120 _tmp657_ = array_type;
2121 if (_tmp657_ != NULL) {
2122 gchar* length_ctype = NULL;
2123 ValaArrayType* _tmp658_;
2124 gchar* _tmp659_;
2125 _tmp658_ = array_type;
2126 _tmp659_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp658_);
2127 length_ctype = _tmp659_;
2128 {
2129 gint dim = 0;
2130 dim = 1;
2131 {
2132 gboolean _tmp660_ = FALSE;
2133 _tmp660_ = TRUE;
2134 while (TRUE) {
2135 ValaArrayType* _tmp662_;
2136 gint _tmp663_;
2137 gint _tmp664_;
2138 gchar* length_cname = NULL;
2139 ValaParameter* _tmp665_;
2140 gchar* _tmp666_;
2141 ValaCCodeFunction* _tmp667_;
2142 ValaCCodeFunction* _tmp668_;
2143 const gchar* _tmp669_;
2144 const gchar* _tmp670_;
2145 ValaCCodeConstant* _tmp671_;
2146 ValaCCodeConstant* _tmp672_;
2147 ValaCCodeVariableDeclarator* _tmp673_;
2148 ValaCCodeVariableDeclarator* _tmp674_;
2149 if (!_tmp660_) {
2150 gint _tmp661_;
2151 _tmp661_ = dim;
2152 dim = _tmp661_ + 1;
2153 }
2154 _tmp660_ = FALSE;
2155 _tmp662_ = array_type;
2156 _tmp663_ = vala_array_type_get_rank (_tmp662_);
2157 _tmp664_ = _tmp663_;
2158 if (!(dim <= _tmp664_)) {
2159 break;
2160 }
2161 _tmp665_ = param;
2162 _tmp666_ = vala_ccode_base_module_get_variable_array_length_cname ((ValaCCodeBaseModule*) self, (ValaVariable*) _tmp665_, dim);
2163 length_cname = _tmp666_;
2164 _tmp667_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2165 _tmp668_ = _tmp667_;
2166 _tmp669_ = length_ctype;
2167 _tmp670_ = length_cname;
2168 _tmp671_ = vala_ccode_constant_new ("0");
2169 _tmp672_ = _tmp671_;
2170 _tmp673_ = vala_ccode_variable_declarator_new_zero (_tmp670_, (ValaCCodeExpression*) _tmp672_, NULL);
2171 _tmp674_ = _tmp673_;
2172 vala_ccode_function_add_declaration (_tmp668_, _tmp669_, (ValaCCodeDeclarator*) _tmp674_, 0);
2173 _vala_ccode_node_unref0 (_tmp674_);
2174 _vala_ccode_node_unref0 (_tmp672_);
2175 _g_free0 (length_cname);
2176 }
2177 }
2178 }
2179 _g_free0 (length_ctype);
2180 }
2181 _tmp675_ = param;
2182 _tmp676_ = vala_variable_get_variable_type ((ValaVariable*) _tmp675_);
2183 _tmp677_ = _tmp676_;
2184 _tmp678_ = vala_ccode_identifier_new ("_reply_builder");
2185 _tmp679_ = _tmp678_;
2186 _tmp680_ = param_name;
2187 _tmp681_ = vala_ccode_identifier_new (_tmp680_);
2188 _tmp682_ = _tmp681_;
2189 _tmp683_ = param;
2190 vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp677_, (ValaCCodeExpression*) _tmp679_, (ValaCCodeExpression*) _tmp682_, (ValaSymbol*) _tmp683_);
2191 _vala_ccode_node_unref0 (_tmp682_);
2192 _vala_ccode_node_unref0 (_tmp679_);
2193 _vala_code_node_unref0 (array_type);
2194 _vala_code_node_unref0 (owned_type);
2195 _g_free0 (param_name);
2196 _vala_code_node_unref0 (param);
2197 }
2198 _vala_iterable_unref0 (_param_list);
2199 }
2200 _tmp684_ = vala_callable_get_return_type ((ValaCallable*) m);
2201 _tmp685_ = _tmp684_;
2202 if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp685_, VALA_TYPE_VOID_TYPE)) {
2203 ValaDataType* _tmp686_;
2204 ValaDataType* _tmp687_;
2205 _tmp686_ = vala_callable_get_return_type ((ValaCallable*) m);
2206 _tmp687_ = _tmp686_;
2207 if (vala_data_type_is_real_non_null_struct_type (_tmp687_)) {
2208 ValaCCodeFunction* _tmp688_;
2209 ValaCCodeFunction* _tmp689_;
2210 ValaDataType* _tmp690_;
2211 ValaDataType* _tmp691_;
2212 gchar* _tmp692_;
2213 gchar* _tmp693_;
2214 ValaDataType* _tmp694_;
2215 ValaDataType* _tmp695_;
2216 ValaCCodeExpression* _tmp696_;
2217 ValaCCodeExpression* _tmp697_;
2218 ValaCCodeVariableDeclarator* _tmp698_;
2219 ValaCCodeVariableDeclarator* _tmp699_;
2220 ValaDataType* _tmp700_;
2221 ValaDataType* _tmp701_;
2222 ValaCCodeIdentifier* _tmp702_;
2223 ValaCCodeIdentifier* _tmp703_;
2224 ValaCCodeIdentifier* _tmp704_;
2225 ValaCCodeIdentifier* _tmp705_;
2226 ValaDataType* _tmp706_;
2227 ValaDataType* _tmp707_;
2228 _tmp688_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2229 _tmp689_ = _tmp688_;
2230 _tmp690_ = vala_callable_get_return_type ((ValaCallable*) m);
2231 _tmp691_ = _tmp690_;
2232 _tmp692_ = vala_get_ccode_name ((ValaCodeNode*) _tmp691_);
2233 _tmp693_ = _tmp692_;
2234 _tmp694_ = vala_callable_get_return_type ((ValaCallable*) m);
2235 _tmp695_ = _tmp694_;
2236 _tmp696_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp695_, TRUE, FALSE);
2237 _tmp697_ = _tmp696_;
2238 _tmp698_ = vala_ccode_variable_declarator_new_zero ("result", _tmp697_, NULL);
2239 _tmp699_ = _tmp698_;
2240 vala_ccode_function_add_declaration (_tmp689_, _tmp693_, (ValaCCodeDeclarator*) _tmp699_, 0);
2241 _vala_ccode_node_unref0 (_tmp699_);
2242 _vala_ccode_node_unref0 (_tmp697_);
2243 _g_free0 (_tmp693_);
2244 _tmp700_ = vala_callable_get_return_type ((ValaCallable*) m);
2245 _tmp701_ = _tmp700_;
2246 _tmp702_ = vala_ccode_identifier_new ("_reply_builder");
2247 _tmp703_ = _tmp702_;
2248 _tmp704_ = vala_ccode_identifier_new ("result");
2249 _tmp705_ = _tmp704_;
2250 vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp701_, (ValaCCodeExpression*) _tmp703_, (ValaCCodeExpression*) _tmp705_, (ValaSymbol*) m);
2251 _vala_ccode_node_unref0 (_tmp705_);
2252 _vala_ccode_node_unref0 (_tmp703_);
2253 _tmp706_ = vala_callable_get_return_type ((ValaCallable*) m);
2254 _tmp707_ = _tmp706_;
2255 if (vala_ccode_base_module_requires_destroy (_tmp707_)) {
2256 ValaLocalVariable* local = NULL;
2257 ValaDataType* _tmp708_;
2258 ValaDataType* _tmp709_;
2259 ValaLocalVariable* _tmp710_;
2260 ValaCCodeFunction* _tmp711_;
2261 ValaCCodeFunction* _tmp712_;
2262 ValaLocalVariable* _tmp713_;
2263 ValaCCodeExpression* _tmp714_;
2264 ValaCCodeExpression* _tmp715_;
2265 _tmp708_ = vala_callable_get_return_type ((ValaCallable*) m);
2266 _tmp709_ = _tmp708_;
2267 _tmp710_ = vala_local_variable_new (_tmp709_, ".result", NULL, NULL);
2268 local = _tmp710_;
2269 _tmp711_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2270 _tmp712_ = _tmp711_;
2271 _tmp713_ = local;
2272 _tmp714_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp713_);
2273 _tmp715_ = _tmp714_;
2274 vala_ccode_function_add_expression (_tmp712_, _tmp715_);
2275 _vala_ccode_node_unref0 (_tmp715_);
2276 _vala_code_node_unref0 (local);
2277 }
2278 } else {
2279 ValaCCodeFunction* _tmp716_;
2280 ValaCCodeFunction* _tmp717_;
2281 ValaDataType* _tmp718_;
2282 ValaDataType* _tmp719_;
2283 gchar* _tmp720_;
2284 gchar* _tmp721_;
2285 ValaCCodeVariableDeclarator* _tmp722_;
2286 ValaCCodeVariableDeclarator* _tmp723_;
2287 ValaArrayType* array_type = NULL;
2288 ValaDataType* _tmp724_;
2289 ValaDataType* _tmp725_;
2290 ValaArrayType* _tmp726_;
2291 ValaArrayType* _tmp727_;
2292 ValaDataType* _tmp744_;
2293 ValaDataType* _tmp745_;
2294 ValaCCodeIdentifier* _tmp746_;
2295 ValaCCodeIdentifier* _tmp747_;
2296 ValaCCodeIdentifier* _tmp748_;
2297 ValaCCodeIdentifier* _tmp749_;
2298 ValaDataType* _tmp750_;
2299 ValaDataType* _tmp751_;
2300 _tmp716_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2301 _tmp717_ = _tmp716_;
2302 _tmp718_ = vala_callable_get_return_type ((ValaCallable*) m);
2303 _tmp719_ = _tmp718_;
2304 _tmp720_ = vala_get_ccode_name ((ValaCodeNode*) _tmp719_);
2305 _tmp721_ = _tmp720_;
2306 _tmp722_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
2307 _tmp723_ = _tmp722_;
2308 vala_ccode_function_add_declaration (_tmp717_, _tmp721_, (ValaCCodeDeclarator*) _tmp723_, 0);
2309 _vala_ccode_node_unref0 (_tmp723_);
2310 _g_free0 (_tmp721_);
2311 _tmp724_ = vala_callable_get_return_type ((ValaCallable*) m);
2312 _tmp725_ = _tmp724_;
2313 _tmp726_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp725_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp725_) : NULL);
2314 array_type = _tmp726_;
2315 _tmp727_ = array_type;
2316 if (_tmp727_ != NULL) {
2317 gchar* length_ctype = NULL;
2318 ValaArrayType* _tmp728_;
2319 gchar* _tmp729_;
2320 _tmp728_ = array_type;
2321 _tmp729_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp728_);
2322 length_ctype = _tmp729_;
2323 {
2324 gint dim = 0;
2325 dim = 1;
2326 {
2327 gboolean _tmp730_ = FALSE;
2328 _tmp730_ = TRUE;
2329 while (TRUE) {
2330 ValaArrayType* _tmp732_;
2331 gint _tmp733_;
2332 gint _tmp734_;
2333 gchar* length_cname = NULL;
2334 gchar* _tmp735_;
2335 ValaCCodeFunction* _tmp736_;
2336 ValaCCodeFunction* _tmp737_;
2337 const gchar* _tmp738_;
2338 const gchar* _tmp739_;
2339 ValaCCodeConstant* _tmp740_;
2340 ValaCCodeConstant* _tmp741_;
2341 ValaCCodeVariableDeclarator* _tmp742_;
2342 ValaCCodeVariableDeclarator* _tmp743_;
2343 if (!_tmp730_) {
2344 gint _tmp731_;
2345 _tmp731_ = dim;
2346 dim = _tmp731_ + 1;
2347 }
2348 _tmp730_ = FALSE;
2349 _tmp732_ = array_type;
2350 _tmp733_ = vala_array_type_get_rank (_tmp732_);
2351 _tmp734_ = _tmp733_;
2352 if (!(dim <= _tmp734_)) {
2353 break;
2354 }
2355 _tmp735_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", dim);
2356 length_cname = _tmp735_;
2357 _tmp736_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2358 _tmp737_ = _tmp736_;
2359 _tmp738_ = length_ctype;
2360 _tmp739_ = length_cname;
2361 _tmp740_ = vala_ccode_constant_new ("0");
2362 _tmp741_ = _tmp740_;
2363 _tmp742_ = vala_ccode_variable_declarator_new_zero (_tmp739_, (ValaCCodeExpression*) _tmp741_, NULL);
2364 _tmp743_ = _tmp742_;
2365 vala_ccode_function_add_declaration (_tmp737_, _tmp738_, (ValaCCodeDeclarator*) _tmp743_, 0);
2366 _vala_ccode_node_unref0 (_tmp743_);
2367 _vala_ccode_node_unref0 (_tmp741_);
2368 _g_free0 (length_cname);
2369 }
2370 }
2371 }
2372 _g_free0 (length_ctype);
2373 }
2374 _tmp744_ = vala_callable_get_return_type ((ValaCallable*) m);
2375 _tmp745_ = _tmp744_;
2376 _tmp746_ = vala_ccode_identifier_new ("_reply_builder");
2377 _tmp747_ = _tmp746_;
2378 _tmp748_ = vala_ccode_identifier_new ("result");
2379 _tmp749_ = _tmp748_;
2380 vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp745_, (ValaCCodeExpression*) _tmp747_, (ValaCCodeExpression*) _tmp749_, (ValaSymbol*) m);
2381 _vala_ccode_node_unref0 (_tmp749_);
2382 _vala_ccode_node_unref0 (_tmp747_);
2383 _tmp750_ = vala_callable_get_return_type ((ValaCallable*) m);
2384 _tmp751_ = _tmp750_;
2385 if (vala_ccode_base_module_requires_destroy (_tmp751_)) {
2386 ValaLocalVariable* local = NULL;
2387 ValaDataType* _tmp752_;
2388 ValaDataType* _tmp753_;
2389 ValaLocalVariable* _tmp754_;
2390 ValaCCodeFunction* _tmp755_;
2391 ValaCCodeFunction* _tmp756_;
2392 ValaLocalVariable* _tmp757_;
2393 ValaCCodeExpression* _tmp758_;
2394 ValaCCodeExpression* _tmp759_;
2395 _tmp752_ = vala_callable_get_return_type ((ValaCallable*) m);
2396 _tmp753_ = _tmp752_;
2397 _tmp754_ = vala_local_variable_new (_tmp753_, ".result", NULL, NULL);
2398 local = _tmp754_;
2399 _tmp755_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2400 _tmp756_ = _tmp755_;
2401 _tmp757_ = local;
2402 _tmp758_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp757_);
2403 _tmp759_ = _tmp758_;
2404 vala_ccode_function_add_expression (_tmp756_, _tmp759_);
2405 _vala_ccode_node_unref0 (_tmp759_);
2406 _vala_code_node_unref0 (local);
2407 }
2408 _vala_code_node_unref0 (array_type);
2409 }
2410 }
2411 _tmp760_ = vala_ccode_identifier_new ("g_variant_builder_end");
2412 _tmp761_ = _tmp760_;
2413 _tmp762_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp761_);
2414 _tmp763_ = _tmp762_;
2415 _vala_ccode_node_unref0 (_tmp761_);
2416 builder_end = _tmp763_;
2417 _tmp764_ = builder_end;
2418 _tmp765_ = vala_ccode_identifier_new ("_reply_builder");
2419 _tmp766_ = _tmp765_;
2420 _tmp767_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp766_);
2421 _tmp768_ = _tmp767_;
2422 vala_ccode_function_call_add_argument (_tmp764_, (ValaCCodeExpression*) _tmp768_);
2423 _vala_ccode_node_unref0 (_tmp768_);
2424 _vala_ccode_node_unref0 (_tmp766_);
2425 _tmp769_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2426 _tmp770_ = _tmp769_;
2427 _tmp771_ = vala_ccode_identifier_new ("_reply");
2428 _tmp772_ = _tmp771_;
2429 _tmp773_ = builder_end;
2430 vala_ccode_function_add_assignment (_tmp770_, (ValaCCodeExpression*) _tmp772_, (ValaCCodeExpression*) _tmp773_);
2431 _vala_ccode_node_unref0 (_tmp772_);
2432 _tmp774_ = vala_ccode_identifier_new ("g_dbus_message_set_body");
2433 _tmp775_ = _tmp774_;
2434 _tmp776_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp775_);
2435 _tmp777_ = _tmp776_;
2436 _vala_ccode_node_unref0 (_tmp775_);
2437 set_body = _tmp777_;
2438 _tmp778_ = set_body;
2439 _tmp779_ = vala_ccode_identifier_new ("_reply_message");
2440 _tmp780_ = _tmp779_;
2441 vala_ccode_function_call_add_argument (_tmp778_, (ValaCCodeExpression*) _tmp780_);
2442 _vala_ccode_node_unref0 (_tmp780_);
2443 _tmp781_ = set_body;
2444 _tmp782_ = vala_ccode_identifier_new ("_reply");
2445 _tmp783_ = _tmp782_;
2446 vala_ccode_function_call_add_argument (_tmp781_, (ValaCCodeExpression*) _tmp783_);
2447 _vala_ccode_node_unref0 (_tmp783_);
2448 _tmp784_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2449 _tmp785_ = _tmp784_;
2450 _tmp786_ = set_body;
2451 vala_ccode_function_add_expression (_tmp785_, (ValaCCodeExpression*) _tmp786_);
2452 if (uses_fd) {
2453 ValaCCodeIdentifier* _tmp787_;
2454 ValaCCodeIdentifier* _tmp788_;
2455 ValaCCodeFunctionCall* _tmp789_;
2456 ValaCCodeFunctionCall* _tmp790_;
2457 ValaCCodeIdentifier* _tmp791_;
2458 ValaCCodeIdentifier* _tmp792_;
2459 ValaCCodeFunctionCall* _tmp793_;
2460 ValaCCodeIdentifier* _tmp794_;
2461 ValaCCodeIdentifier* _tmp795_;
2462 ValaCCodeFunction* _tmp796_;
2463 ValaCCodeFunction* _tmp797_;
2464 ValaCCodeFunctionCall* _tmp798_;
2465 ValaCCodeIdentifier* _tmp799_;
2466 ValaCCodeIdentifier* _tmp800_;
2467 ValaCCodeFunctionCall* _tmp801_;
2468 ValaCCodeFunctionCall* _tmp802_;
2469 ValaCCodeIdentifier* _tmp803_;
2470 ValaCCodeIdentifier* _tmp804_;
2471 ValaCCodeFunction* _tmp805_;
2472 ValaCCodeFunction* _tmp806_;
2473 ValaCCodeFunctionCall* _tmp807_;
2474 _tmp787_ = vala_ccode_identifier_new ("g_dbus_message_set_unix_fd_list");
2475 _tmp788_ = _tmp787_;
2476 _tmp789_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp788_);
2477 _vala_ccode_node_unref0 (ccall);
2478 ccall = _tmp789_;
2479 _vala_ccode_node_unref0 (_tmp788_);
2480 _tmp790_ = ccall;
2481 _tmp791_ = vala_ccode_identifier_new ("_reply_message");
2482 _tmp792_ = _tmp791_;
2483 vala_ccode_function_call_add_argument (_tmp790_, (ValaCCodeExpression*) _tmp792_);
2484 _vala_ccode_node_unref0 (_tmp792_);
2485 _tmp793_ = ccall;
2486 _tmp794_ = vala_ccode_identifier_new ("_fd_list");
2487 _tmp795_ = _tmp794_;
2488 vala_ccode_function_call_add_argument (_tmp793_, (ValaCCodeExpression*) _tmp795_);
2489 _vala_ccode_node_unref0 (_tmp795_);
2490 _tmp796_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2491 _tmp797_ = _tmp796_;
2492 _tmp798_ = ccall;
2493 vala_ccode_function_add_expression (_tmp797_, (ValaCCodeExpression*) _tmp798_);
2494 _tmp799_ = vala_ccode_identifier_new ("g_object_unref");
2495 _tmp800_ = _tmp799_;
2496 _tmp801_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp800_);
2497 _vala_ccode_node_unref0 (ccall);
2498 ccall = _tmp801_;
2499 _vala_ccode_node_unref0 (_tmp800_);
2500 _tmp802_ = ccall;
2501 _tmp803_ = vala_ccode_identifier_new ("_fd_list");
2502 _tmp804_ = _tmp803_;
2503 vala_ccode_function_call_add_argument (_tmp802_, (ValaCCodeExpression*) _tmp804_);
2504 _vala_ccode_node_unref0 (_tmp804_);
2505 _tmp805_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2506 _tmp806_ = _tmp805_;
2507 _tmp807_ = ccall;
2508 vala_ccode_function_add_expression (_tmp806_, (ValaCCodeExpression*) _tmp807_);
2509 }
2510 _vala_ccode_node_unref0 (set_body);
2511 _vala_ccode_node_unref0 (builder_end);
2512 _vala_ccode_node_unref0 (builder_init);
2513 _vala_ccode_node_unref0 (message_expr);
2514 } else {
2515 ValaCCodeFunction* _tmp808_;
2516 ValaCCodeFunction* _tmp809_;
2517 ValaCCodeFunctionCall* _tmp810_;
2518 _tmp808_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2519 _tmp809_ = _tmp808_;
2520 _tmp810_ = ccall;
2521 vala_ccode_function_add_expression (_tmp809_, (ValaCCodeExpression*) _tmp810_);
2522 }
2523 if (!no_reply) {
2524 gboolean _tmp812_ = FALSE;
2525 gboolean _tmp813_;
2526 gboolean _tmp814_;
2527 _tmp813_ = vala_method_get_coroutine (m);
2528 _tmp814_ = _tmp813_;
2529 if (!_tmp814_) {
2530 _tmp812_ = TRUE;
2531 } else {
2532 _tmp812_ = ready;
2533 }
2534 _tmp811_ = _tmp812_;
2535 } else {
2536 _tmp811_ = FALSE;
2537 }
2538 if (_tmp811_) {
2539 ValaCCodeFunctionCall* return_value = NULL;
2540 ValaCCodeIdentifier* _tmp815_;
2541 ValaCCodeIdentifier* _tmp816_;
2542 ValaCCodeFunctionCall* _tmp817_;
2543 ValaCCodeFunctionCall* _tmp818_;
2544 ValaCCodeFunctionCall* _tmp819_;
2545 ValaCCodeFunctionCall* _tmp820_;
2546 ValaCCodeFunctionCall* _tmp821_;
2547 ValaCCodeIdentifier* _tmp822_;
2548 ValaCCodeIdentifier* _tmp823_;
2549 ValaCCodeFunctionCall* _tmp824_;
2550 ValaCCodeConstant* _tmp825_;
2551 ValaCCodeConstant* _tmp826_;
2552 ValaCCodeFunctionCall* _tmp827_;
2553 ValaCCodeConstant* _tmp828_;
2554 ValaCCodeConstant* _tmp829_;
2555 ValaCCodeFunctionCall* _tmp830_;
2556 ValaCCodeConstant* _tmp831_;
2557 ValaCCodeConstant* _tmp832_;
2558 ValaCCodeFunction* _tmp833_;
2559 ValaCCodeFunction* _tmp834_;
2560 ValaCCodeFunctionCall* _tmp835_;
2561 ValaCCodeFunctionCall* unref_call = NULL;
2562 ValaCCodeIdentifier* _tmp836_;
2563 ValaCCodeIdentifier* _tmp837_;
2564 ValaCCodeFunctionCall* _tmp838_;
2565 ValaCCodeFunctionCall* _tmp839_;
2566 ValaCCodeFunctionCall* _tmp840_;
2567 ValaCCodeIdentifier* _tmp841_;
2568 ValaCCodeIdentifier* _tmp842_;
2569 ValaCCodeFunction* _tmp843_;
2570 ValaCCodeFunction* _tmp844_;
2571 ValaCCodeFunctionCall* _tmp845_;
2572 ValaCCodeIdentifier* _tmp846_;
2573 ValaCCodeIdentifier* _tmp847_;
2574 ValaCCodeFunctionCall* _tmp848_;
2575 ValaCCodeFunctionCall* _tmp849_;
2576 ValaCCodeIdentifier* _tmp850_;
2577 ValaCCodeIdentifier* _tmp851_;
2578 ValaCCodeFunction* _tmp852_;
2579 ValaCCodeFunction* _tmp853_;
2580 ValaCCodeFunctionCall* _tmp854_;
2581 _tmp815_ = vala_ccode_identifier_new ("g_dbus_connection_send_message");
2582 _tmp816_ = _tmp815_;
2583 _tmp817_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp816_);
2584 _tmp818_ = _tmp817_;
2585 _vala_ccode_node_unref0 (_tmp816_);
2586 return_value = _tmp818_;
2587 _tmp819_ = return_value;
2588 _tmp820_ = connection;
2589 vala_ccode_function_call_add_argument (_tmp819_, (ValaCCodeExpression*) _tmp820_);
2590 _tmp821_ = return_value;
2591 _tmp822_ = vala_ccode_identifier_new ("_reply_message");
2592 _tmp823_ = _tmp822_;
2593 vala_ccode_function_call_add_argument (_tmp821_, (ValaCCodeExpression*) _tmp823_);
2594 _vala_ccode_node_unref0 (_tmp823_);
2595 _tmp824_ = return_value;
2596 _tmp825_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
2597 _tmp826_ = _tmp825_;
2598 vala_ccode_function_call_add_argument (_tmp824_, (ValaCCodeExpression*) _tmp826_);
2599 _vala_ccode_node_unref0 (_tmp826_);
2600 _tmp827_ = return_value;
2601 _tmp828_ = vala_ccode_constant_new ("NULL");
2602 _tmp829_ = _tmp828_;
2603 vala_ccode_function_call_add_argument (_tmp827_, (ValaCCodeExpression*) _tmp829_);
2604 _vala_ccode_node_unref0 (_tmp829_);
2605 _tmp830_ = return_value;
2606 _tmp831_ = vala_ccode_constant_new ("NULL");
2607 _tmp832_ = _tmp831_;
2608 vala_ccode_function_call_add_argument (_tmp830_, (ValaCCodeExpression*) _tmp832_);
2609 _vala_ccode_node_unref0 (_tmp832_);
2610 _tmp833_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2611 _tmp834_ = _tmp833_;
2612 _tmp835_ = return_value;
2613 vala_ccode_function_add_expression (_tmp834_, (ValaCCodeExpression*) _tmp835_);
2614 _tmp836_ = vala_ccode_identifier_new ("g_object_unref");
2615 _tmp837_ = _tmp836_;
2616 _tmp838_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp837_);
2617 _tmp839_ = _tmp838_;
2618 _vala_ccode_node_unref0 (_tmp837_);
2619 unref_call = _tmp839_;
2620 _tmp840_ = unref_call;
2621 _tmp841_ = vala_ccode_identifier_new ("invocation");
2622 _tmp842_ = _tmp841_;
2623 vala_ccode_function_call_add_argument (_tmp840_, (ValaCCodeExpression*) _tmp842_);
2624 _vala_ccode_node_unref0 (_tmp842_);
2625 _tmp843_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2626 _tmp844_ = _tmp843_;
2627 _tmp845_ = unref_call;
2628 vala_ccode_function_add_expression (_tmp844_, (ValaCCodeExpression*) _tmp845_);
2629 _tmp846_ = vala_ccode_identifier_new ("g_object_unref");
2630 _tmp847_ = _tmp846_;
2631 _tmp848_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp847_);
2632 _vala_ccode_node_unref0 (unref_call);
2633 unref_call = _tmp848_;
2634 _vala_ccode_node_unref0 (_tmp847_);
2635 _tmp849_ = unref_call;
2636 _tmp850_ = vala_ccode_identifier_new ("_reply_message");
2637 _tmp851_ = _tmp850_;
2638 vala_ccode_function_call_add_argument (_tmp849_, (ValaCCodeExpression*) _tmp851_);
2639 _vala_ccode_node_unref0 (_tmp851_);
2640 _tmp852_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2641 _tmp853_ = _tmp852_;
2642 _tmp854_ = unref_call;
2643 vala_ccode_function_add_expression (_tmp853_, (ValaCCodeExpression*) _tmp854_);
2644 _vala_ccode_node_unref0 (unref_call);
2645 _vala_ccode_node_unref0 (return_value);
2646 }
2647 if (need_goto_label) {
2648 ValaCCodeFunction* _tmp855_;
2649 ValaCCodeFunction* _tmp856_;
2650 _tmp855_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2651 _tmp856_ = _tmp855_;
2652 vala_ccode_function_add_label (_tmp856_, "_error");
2653 }
2654 {
2655 ValaList* _param_list = NULL;
2656 ValaList* _tmp857_;
2657 ValaList* _tmp858_;
2658 gint _param_size = 0;
2659 ValaList* _tmp859_;
2660 gint _tmp860_;
2661 gint _tmp861_;
2662 gint _param_index = 0;
2663 _tmp857_ = vala_callable_get_parameters ((ValaCallable*) m);
2664 _tmp858_ = _vala_iterable_ref0 (_tmp857_);
2665 _param_list = _tmp858_;
2666 _tmp859_ = _param_list;
2667 _tmp860_ = vala_collection_get_size ((ValaCollection*) _tmp859_);
2668 _tmp861_ = _tmp860_;
2669 _param_size = _tmp861_;
2670 _param_index = -1;
2671 while (TRUE) {
2672 gint _tmp862_;
2673 gint _tmp863_;
2674 ValaParameter* param = NULL;
2675 ValaList* _tmp864_;
2676 gpointer _tmp865_;
2677 gboolean _tmp866_ = FALSE;
2678 gboolean _tmp867_ = FALSE;
2679 ValaParameter* _tmp868_;
2680 ValaParameterDirection _tmp869_;
2681 ValaParameterDirection _tmp870_;
2682 _param_index = _param_index + 1;
2683 _tmp862_ = _param_index;
2684 _tmp863_ = _param_size;
2685 if (!(_tmp862_ < _tmp863_)) {
2686 break;
2687 }
2688 _tmp864_ = _param_list;
2689 _tmp865_ = vala_list_get (_tmp864_, _param_index);
2690 param = (ValaParameter*) _tmp865_;
2691 _tmp868_ = param;
2692 _tmp869_ = vala_parameter_get_direction (_tmp868_);
2693 _tmp870_ = _tmp869_;
2694 if (_tmp870_ == VALA_PARAMETER_DIRECTION_IN) {
2695 gboolean _tmp871_ = FALSE;
2696 ValaCCodeIdentifier* _tmp872_;
2697 _tmp872_ = ready_data_expr;
2698 if (_tmp872_ == NULL) {
2699 _tmp871_ = TRUE;
2700 } else {
2701 _tmp871_ = ready;
2702 }
2703 _tmp867_ = _tmp871_;
2704 } else {
2705 _tmp867_ = FALSE;
2706 }
2707 if (_tmp867_) {
2708 _tmp866_ = TRUE;
2709 } else {
2710 gboolean _tmp873_ = FALSE;
2711 gboolean _tmp874_ = FALSE;
2712 ValaParameter* _tmp875_;
2713 ValaParameterDirection _tmp876_;
2714 ValaParameterDirection _tmp877_;
2715 _tmp875_ = param;
2716 _tmp876_ = vala_parameter_get_direction (_tmp875_);
2717 _tmp877_ = _tmp876_;
2718 if (_tmp877_ == VALA_PARAMETER_DIRECTION_OUT) {
2719 _tmp874_ = !no_reply;
2720 } else {
2721 _tmp874_ = FALSE;
2722 }
2723 if (_tmp874_) {
2724 gboolean _tmp878_ = FALSE;
2725 gboolean _tmp879_;
2726 gboolean _tmp880_;
2727 _tmp879_ = vala_method_get_coroutine (m);
2728 _tmp880_ = _tmp879_;
2729 if (!_tmp880_) {
2730 _tmp878_ = TRUE;
2731 } else {
2732 _tmp878_ = ready;
2733 }
2734 _tmp873_ = _tmp878_;
2735 } else {
2736 _tmp873_ = FALSE;
2737 }
2738 _tmp866_ = _tmp873_;
2739 }
2740 if (_tmp866_) {
2741 gboolean _tmp881_ = FALSE;
2742 ValaParameter* _tmp882_;
2743 ValaDataType* _tmp883_;
2744 ValaDataType* _tmp884_;
2745 gboolean _tmp892_ = FALSE;
2746 ValaParameter* _tmp893_;
2747 ValaDataType* _tmp894_;
2748 ValaDataType* _tmp895_;
2749 ValaDataType* owned_type = NULL;
2750 ValaParameter* _tmp903_;
2751 ValaDataType* _tmp904_;
2752 ValaDataType* _tmp905_;
2753 ValaDataType* _tmp906_;
2754 ValaDataType* _tmp907_;
2755 ValaDataType* _tmp908_;
2756 _tmp882_ = param;
2757 _tmp883_ = vala_variable_get_variable_type ((ValaVariable*) _tmp882_);
2758 _tmp884_ = _tmp883_;
2759 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp884_, VALA_TYPE_OBJECT_TYPE)) {
2760 ValaParameter* _tmp885_;
2761 ValaDataType* _tmp886_;
2762 ValaDataType* _tmp887_;
2763 ValaTypeSymbol* _tmp888_;
2764 ValaTypeSymbol* _tmp889_;
2765 gchar* _tmp890_;
2766 gchar* _tmp891_;
2767 _tmp885_ = param;
2768 _tmp886_ = vala_variable_get_variable_type ((ValaVariable*) _tmp885_);
2769 _tmp887_ = _tmp886_;
2770 _tmp888_ = vala_data_type_get_type_symbol (_tmp887_);
2771 _tmp889_ = _tmp888_;
2772 _tmp890_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp889_);
2773 _tmp891_ = _tmp890_;
2774 _tmp881_ = g_strcmp0 (_tmp891_, "GLib.Cancellable") == 0;
2775 _g_free0 (_tmp891_);
2776 } else {
2777 _tmp881_ = FALSE;
2778 }
2779 if (_tmp881_) {
2780 _vala_code_node_unref0 (param);
2781 continue;
2782 }
2783 _tmp893_ = param;
2784 _tmp894_ = vala_variable_get_variable_type ((ValaVariable*) _tmp893_);
2785 _tmp895_ = _tmp894_;
2786 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp895_, VALA_TYPE_OBJECT_TYPE)) {
2787 ValaParameter* _tmp896_;
2788 ValaDataType* _tmp897_;
2789 ValaDataType* _tmp898_;
2790 ValaTypeSymbol* _tmp899_;
2791 ValaTypeSymbol* _tmp900_;
2792 gchar* _tmp901_;
2793 gchar* _tmp902_;
2794 _tmp896_ = param;
2795 _tmp897_ = vala_variable_get_variable_type ((ValaVariable*) _tmp896_);
2796 _tmp898_ = _tmp897_;
2797 _tmp899_ = vala_data_type_get_type_symbol (_tmp898_);
2798 _tmp900_ = _tmp899_;
2799 _tmp901_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp900_);
2800 _tmp902_ = _tmp901_;
2801 _tmp892_ = g_strcmp0 (_tmp902_, "GLib.BusName") == 0;
2802 _g_free0 (_tmp902_);
2803 } else {
2804 _tmp892_ = FALSE;
2805 }
2806 if (_tmp892_) {
2807 _vala_code_node_unref0 (param);
2808 continue;
2809 }
2810 _tmp903_ = param;
2811 _tmp904_ = vala_variable_get_variable_type ((ValaVariable*) _tmp903_);
2812 _tmp905_ = _tmp904_;
2813 _tmp906_ = vala_data_type_copy (_tmp905_);
2814 owned_type = _tmp906_;
2815 _tmp907_ = owned_type;
2816 vala_data_type_set_value_owned (_tmp907_, TRUE);
2817 _tmp908_ = owned_type;
2818 if (vala_ccode_base_module_requires_destroy (_tmp908_)) {
2819 gboolean _tmp909_ = FALSE;
2820 ValaCCodeIdentifier* _tmp910_;
2821 _tmp910_ = ready_data_expr;
2822 if (_tmp910_ != NULL) {
2823 ValaParameter* _tmp911_;
2824 ValaParameterDirection _tmp912_;
2825 ValaParameterDirection _tmp913_;
2826 _tmp911_ = param;
2827 _tmp912_ = vala_parameter_get_direction (_tmp911_);
2828 _tmp913_ = _tmp912_;
2829 _tmp909_ = _tmp913_ == VALA_PARAMETER_DIRECTION_IN;
2830 } else {
2831 _tmp909_ = FALSE;
2832 }
2833 if (_tmp909_) {
2834 ValaGLibValue* target = NULL;
2835 ValaDataType* _tmp914_;
2836 ValaCCodeIdentifier* _tmp915_;
2837 ValaParameter* _tmp916_;
2838 const gchar* _tmp917_;
2839 const gchar* _tmp918_;
2840 ValaCCodeMemberAccess* _tmp919_;
2841 ValaCCodeMemberAccess* _tmp920_;
2842 ValaGLibValue* _tmp921_;
2843 ValaGLibValue* _tmp922_;
2844 ValaArrayType* array_type = NULL;
2845 ValaDataType* _tmp923_;
2846 ValaArrayType* _tmp924_;
2847 ValaArrayType* _tmp925_;
2848 ValaCCodeFunction* _tmp938_;
2849 ValaCCodeFunction* _tmp939_;
2850 ValaGLibValue* _tmp940_;
2851 ValaCCodeExpression* _tmp941_;
2852 ValaCCodeExpression* _tmp942_;
2853 _tmp914_ = owned_type;
2854 _tmp915_ = ready_data_expr;
2855 _tmp916_ = param;
2856 _tmp917_ = vala_symbol_get_name ((ValaSymbol*) _tmp916_);
2857 _tmp918_ = _tmp917_;
2858 _tmp919_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp915_, _tmp918_);
2859 _tmp920_ = _tmp919_;
2860 _tmp921_ = vala_glib_value_new (_tmp914_, (ValaCCodeExpression*) _tmp920_, TRUE);
2861 _tmp922_ = _tmp921_;
2862 _vala_ccode_node_unref0 (_tmp920_);
2863 target = _tmp922_;
2864 _tmp923_ = owned_type;
2865 _tmp924_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp923_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp923_) : NULL);
2866 array_type = _tmp924_;
2867 _tmp925_ = array_type;
2868 if (_tmp925_ != NULL) {
2869 {
2870 gint dim = 0;
2871 dim = 1;
2872 {
2873 gboolean _tmp926_ = FALSE;
2874 _tmp926_ = TRUE;
2875 while (TRUE) {
2876 ValaArrayType* _tmp928_;
2877 gint _tmp929_;
2878 gint _tmp930_;
2879 gchar* length_cname = NULL;
2880 ValaParameter* _tmp931_;
2881 gchar* _tmp932_;
2882 ValaGLibValue* _tmp933_;
2883 ValaCCodeIdentifier* _tmp934_;
2884 const gchar* _tmp935_;
2885 ValaCCodeMemberAccess* _tmp936_;
2886 ValaCCodeMemberAccess* _tmp937_;
2887 if (!_tmp926_) {
2888 gint _tmp927_;
2889 _tmp927_ = dim;
2890 dim = _tmp927_ + 1;
2891 }
2892 _tmp926_ = FALSE;
2893 _tmp928_ = array_type;
2894 _tmp929_ = vala_array_type_get_rank (_tmp928_);
2895 _tmp930_ = _tmp929_;
2896 if (!(dim <= _tmp930_)) {
2897 break;
2898 }
2899 _tmp931_ = param;
2900 _tmp932_ = vala_ccode_base_module_get_variable_array_length_cname ((ValaCCodeBaseModule*) self, (ValaVariable*) _tmp931_, dim);
2901 length_cname = _tmp932_;
2902 _tmp933_ = target;
2903 _tmp934_ = ready_data_expr;
2904 _tmp935_ = length_cname;
2905 _tmp936_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp934_, _tmp935_);
2906 _tmp937_ = _tmp936_;
2907 vala_glib_value_append_array_length_cvalue (_tmp933_, (ValaCCodeExpression*) _tmp937_);
2908 _vala_ccode_node_unref0 (_tmp937_);
2909 _g_free0 (length_cname);
2910 }
2911 }
2912 }
2913 }
2914 _tmp938_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2915 _tmp939_ = _tmp938_;
2916 _tmp940_ = target;
2917 _tmp941_ = vala_ccode_base_module_destroy_value ((ValaCCodeBaseModule*) self, (ValaTargetValue*) _tmp940_, FALSE);
2918 _tmp942_ = _tmp941_;
2919 vala_ccode_function_add_expression (_tmp939_, _tmp942_);
2920 _vala_ccode_node_unref0 (_tmp942_);
2921 _vala_code_node_unref0 (array_type);
2922 _vala_target_value_unref0 (target);
2923 } else {
2924 ValaLocalVariable* local = NULL;
2925 ValaDataType* _tmp943_;
2926 ValaParameter* _tmp944_;
2927 const gchar* _tmp945_;
2928 const gchar* _tmp946_;
2929 gchar* _tmp947_;
2930 gchar* _tmp948_;
2931 ValaLocalVariable* _tmp949_;
2932 ValaLocalVariable* _tmp950_;
2933 ValaCCodeFunction* _tmp951_;
2934 ValaCCodeFunction* _tmp952_;
2935 ValaLocalVariable* _tmp953_;
2936 ValaCCodeExpression* _tmp954_;
2937 ValaCCodeExpression* _tmp955_;
2938 _tmp943_ = owned_type;
2939 _tmp944_ = param;
2940 _tmp945_ = vala_symbol_get_name ((ValaSymbol*) _tmp944_);
2941 _tmp946_ = _tmp945_;
2942 _tmp947_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp946_);
2943 _tmp948_ = _tmp947_;
2944 _tmp949_ = vala_local_variable_new (_tmp943_, _tmp948_, NULL, NULL);
2945 _tmp950_ = _tmp949_;
2946 _g_free0 (_tmp948_);
2947 local = _tmp950_;
2948 _tmp951_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2949 _tmp952_ = _tmp951_;
2950 _tmp953_ = local;
2951 _tmp954_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp953_);
2952 _tmp955_ = _tmp954_;
2953 vala_ccode_function_add_expression (_tmp952_, _tmp955_);
2954 _vala_ccode_node_unref0 (_tmp955_);
2955 _vala_code_node_unref0 (local);
2956 }
2957 }
2958 _vala_code_node_unref0 (owned_type);
2959 }
2960 _vala_code_node_unref0 (param);
2961 }
2962 _vala_iterable_unref0 (_param_list);
2963 }
2964 if (ready) {
2965 ValaCCodeFunctionCall* freecall = NULL;
2966 ValaCCodeIdentifier* _tmp956_;
2967 ValaCCodeIdentifier* _tmp957_;
2968 ValaCCodeFunctionCall* _tmp958_;
2969 ValaCCodeFunctionCall* _tmp959_;
2970 ValaCCodeFunctionCall* _tmp960_;
2971 const gchar* _tmp961_;
2972 ValaCCodeIdentifier* _tmp962_;
2973 ValaCCodeIdentifier* _tmp963_;
2974 ValaCCodeFunctionCall* _tmp964_;
2975 ValaCCodeIdentifier* _tmp965_;
2976 ValaCCodeFunction* _tmp966_;
2977 ValaCCodeFunction* _tmp967_;
2978 ValaCCodeFunctionCall* _tmp968_;
2979 _tmp956_ = vala_ccode_identifier_new ("g_slice_free");
2980 _tmp957_ = _tmp956_;
2981 _tmp958_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp957_);
2982 _tmp959_ = _tmp958_;
2983 _vala_ccode_node_unref0 (_tmp957_);
2984 freecall = _tmp959_;
2985 _tmp960_ = freecall;
2986 _tmp961_ = ready_data_struct_name;
2987 _tmp962_ = vala_ccode_identifier_new (_tmp961_);
2988 _tmp963_ = _tmp962_;
2989 vala_ccode_function_call_add_argument (_tmp960_, (ValaCCodeExpression*) _tmp963_);
2990 _vala_ccode_node_unref0 (_tmp963_);
2991 _tmp964_ = freecall;
2992 _tmp965_ = ready_data_expr;
2993 vala_ccode_function_call_add_argument (_tmp964_, (ValaCCodeExpression*) _tmp965_);
2994 _tmp966_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
2995 _tmp967_ = _tmp966_;
2996 _tmp968_ = freecall;
2997 vala_ccode_function_add_expression (_tmp967_, (ValaCCodeExpression*) _tmp968_);
2998 _vala_ccode_node_unref0 (freecall);
2999 } else {
3000 if (need_goto_label) {
3001 ValaCCodeFunction* _tmp969_;
3002 ValaCCodeFunction* _tmp970_;
3003 ValaCCodeEmptyStatement* _tmp971_;
3004 ValaCCodeEmptyStatement* _tmp972_;
3005 _tmp969_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3006 _tmp970_ = _tmp969_;
3007 _tmp971_ = vala_ccode_empty_statement_new ();
3008 _tmp972_ = _tmp971_;
3009 vala_ccode_function_add_statement (_tmp970_, (ValaCCodeNode*) _tmp972_);
3010 _vala_ccode_node_unref0 (_tmp972_);
3011 }
3012 }
3013 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
3014 _tmp973_ = ((ValaCCodeBaseModule*) self)->cfile;
3015 _tmp974_ = function;
3016 vala_ccode_file_add_function_declaration (_tmp973_, _tmp974_);
3017 _tmp975_ = ((ValaCCodeBaseModule*) self)->cfile;
3018 _tmp976_ = function;
3019 vala_ccode_file_add_function (_tmp975_, _tmp976_);
3020 _tmp978_ = vala_method_get_coroutine (m);
3021 _tmp979_ = _tmp978_;
3022 if (_tmp979_) {
3023 _tmp977_ = !ready;
3024 } else {
3025 _tmp977_ = FALSE;
3026 }
3027 if (_tmp977_) {
3028 gchar* _tmp980_;
3029 gchar* _tmp981_;
3030 _tmp980_ = vala_gd_bus_server_module_generate_dbus_wrapper (self, m, sym, TRUE);
3031 _tmp981_ = _tmp980_;
3032 _g_free0 (_tmp981_);
3033 }
3034 result = wrapper_name;
3035 _vala_ccode_node_unref0 (ccall);
3036 _vala_ccode_node_unref0 (connection);
3037 _g_free0 (ready_data_struct_name);
3038 _vala_ccode_node_unref0 (ready_data_expr);
3039 _vala_ccode_node_unref0 (_tmp40_);
3040 _vala_ccode_node_unref0 (function);
3041 return result;
3042 }
3043
3044 static gchar*
vala_gd_bus_server_module_generate_dbus_signal_wrapper(ValaGDBusServerModule * self,ValaSignal * sig,ValaObjectTypeSymbol * sym,const gchar * dbus_iface_name)3045 vala_gd_bus_server_module_generate_dbus_signal_wrapper (ValaGDBusServerModule* self,
3046 ValaSignal* sig,
3047 ValaObjectTypeSymbol* sym,
3048 const gchar* dbus_iface_name)
3049 {
3050 gchar* wrapper_name = NULL;
3051 gchar* _tmp0_;
3052 gchar* _tmp1_;
3053 gchar* _tmp2_;
3054 gchar* _tmp3_;
3055 gchar* _tmp4_;
3056 gchar* _tmp5_;
3057 ValaCCodeFunction* function = NULL;
3058 const gchar* _tmp6_;
3059 ValaCCodeFunction* _tmp7_;
3060 ValaCCodeFunction* _tmp8_;
3061 ValaCCodeFunction* _tmp9_;
3062 ValaCCodeParameter* _tmp10_;
3063 ValaCCodeParameter* _tmp11_;
3064 ValaCCodeFunction* _tmp53_;
3065 ValaCCodeParameter* _tmp54_;
3066 ValaCCodeParameter* _tmp55_;
3067 ValaCCodeFunction* _tmp56_;
3068 ValaCCodeFunction* _tmp57_;
3069 ValaCCodeFunction* _tmp58_;
3070 ValaCCodeIdentifier* _tmp59_;
3071 ValaCCodeIdentifier* _tmp60_;
3072 ValaCCodeConstant* _tmp61_;
3073 ValaCCodeConstant* _tmp62_;
3074 ValaCCodeElementAccess* _tmp63_;
3075 ValaCCodeElementAccess* _tmp64_;
3076 ValaCCodeVariableDeclarator* _tmp65_;
3077 ValaCCodeVariableDeclarator* _tmp66_;
3078 ValaCCodeFunction* _tmp67_;
3079 ValaCCodeFunction* _tmp68_;
3080 ValaCCodeIdentifier* _tmp69_;
3081 ValaCCodeIdentifier* _tmp70_;
3082 ValaCCodeConstant* _tmp71_;
3083 ValaCCodeConstant* _tmp72_;
3084 ValaCCodeElementAccess* _tmp73_;
3085 ValaCCodeElementAccess* _tmp74_;
3086 ValaCCodeVariableDeclarator* _tmp75_;
3087 ValaCCodeVariableDeclarator* _tmp76_;
3088 ValaCCodeFunction* _tmp77_;
3089 ValaCCodeFunction* _tmp78_;
3090 ValaCCodeVariableDeclarator* _tmp79_;
3091 ValaCCodeVariableDeclarator* _tmp80_;
3092 ValaCCodeFunction* _tmp81_;
3093 ValaCCodeFunction* _tmp82_;
3094 ValaCCodeVariableDeclarator* _tmp83_;
3095 ValaCCodeVariableDeclarator* _tmp84_;
3096 ValaCCodeFunctionCall* builder_init = NULL;
3097 ValaCCodeIdentifier* _tmp85_;
3098 ValaCCodeIdentifier* _tmp86_;
3099 ValaCCodeFunctionCall* _tmp87_;
3100 ValaCCodeFunctionCall* _tmp88_;
3101 ValaCCodeFunctionCall* _tmp89_;
3102 ValaCCodeIdentifier* _tmp90_;
3103 ValaCCodeIdentifier* _tmp91_;
3104 ValaCCodeUnaryExpression* _tmp92_;
3105 ValaCCodeUnaryExpression* _tmp93_;
3106 ValaCCodeFunctionCall* _tmp94_;
3107 ValaCCodeIdentifier* _tmp95_;
3108 ValaCCodeIdentifier* _tmp96_;
3109 ValaCCodeFunction* _tmp97_;
3110 ValaCCodeFunction* _tmp98_;
3111 ValaCCodeFunctionCall* _tmp99_;
3112 ValaCCodeFunctionCall* builder_end = NULL;
3113 ValaCCodeIdentifier* _tmp127_;
3114 ValaCCodeIdentifier* _tmp128_;
3115 ValaCCodeFunctionCall* _tmp129_;
3116 ValaCCodeFunctionCall* _tmp130_;
3117 ValaCCodeIdentifier* _tmp131_;
3118 ValaCCodeIdentifier* _tmp132_;
3119 ValaCCodeUnaryExpression* _tmp133_;
3120 ValaCCodeUnaryExpression* _tmp134_;
3121 ValaCCodeFunction* _tmp135_;
3122 ValaCCodeFunction* _tmp136_;
3123 ValaCCodeIdentifier* _tmp137_;
3124 ValaCCodeIdentifier* _tmp138_;
3125 ValaCCodeFunctionCall* ccall = NULL;
3126 ValaCCodeIdentifier* _tmp139_;
3127 ValaCCodeIdentifier* _tmp140_;
3128 ValaCCodeFunctionCall* _tmp141_;
3129 ValaCCodeFunctionCall* _tmp142_;
3130 ValaCCodeIdentifier* _tmp143_;
3131 ValaCCodeIdentifier* _tmp144_;
3132 ValaCCodeConstant* _tmp145_;
3133 ValaCCodeConstant* _tmp146_;
3134 ValaCCodeIdentifier* _tmp147_;
3135 ValaCCodeIdentifier* _tmp148_;
3136 gchar* _tmp149_;
3137 gchar* _tmp150_;
3138 ValaCCodeConstant* _tmp151_;
3139 ValaCCodeConstant* _tmp152_;
3140 gchar* _tmp153_;
3141 gchar* _tmp154_;
3142 gchar* _tmp155_;
3143 gchar* _tmp156_;
3144 ValaCCodeConstant* _tmp157_;
3145 ValaCCodeConstant* _tmp158_;
3146 ValaCCodeIdentifier* _tmp159_;
3147 ValaCCodeIdentifier* _tmp160_;
3148 ValaCCodeConstant* _tmp161_;
3149 ValaCCodeConstant* _tmp162_;
3150 ValaCCodeFunction* _tmp163_;
3151 ValaCCodeFunction* _tmp164_;
3152 ValaCCodeFile* _tmp165_;
3153 ValaCCodeFunction* _tmp166_;
3154 ValaCCodeFile* _tmp167_;
3155 ValaCCodeFunction* _tmp168_;
3156 gchar* result = NULL;
3157 g_return_val_if_fail (self != NULL, NULL);
3158 g_return_val_if_fail (sig != NULL, NULL);
3159 g_return_val_if_fail (sym != NULL, NULL);
3160 g_return_val_if_fail (dbus_iface_name != NULL, NULL);
3161 _tmp0_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) sym, NULL);
3162 _tmp1_ = _tmp0_;
3163 _tmp2_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) sig, NULL);
3164 _tmp3_ = _tmp2_;
3165 _tmp4_ = g_strdup_printf ("_dbus_%s_%s", _tmp1_, _tmp3_);
3166 _tmp5_ = _tmp4_;
3167 _g_free0 (_tmp3_);
3168 _g_free0 (_tmp1_);
3169 wrapper_name = _tmp5_;
3170 _tmp6_ = wrapper_name;
3171 _tmp7_ = vala_ccode_function_new (_tmp6_, "void");
3172 function = _tmp7_;
3173 _tmp8_ = function;
3174 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp8_, VALA_CCODE_MODIFIERS_STATIC);
3175 _tmp9_ = function;
3176 _tmp10_ = vala_ccode_parameter_new ("_sender", "GObject*");
3177 _tmp11_ = _tmp10_;
3178 vala_ccode_function_add_parameter (_tmp9_, _tmp11_);
3179 _vala_ccode_node_unref0 (_tmp11_);
3180 {
3181 ValaList* _param_list = NULL;
3182 ValaList* _tmp12_;
3183 ValaList* _tmp13_;
3184 gint _param_size = 0;
3185 ValaList* _tmp14_;
3186 gint _tmp15_;
3187 gint _tmp16_;
3188 gint _param_index = 0;
3189 _tmp12_ = vala_callable_get_parameters ((ValaCallable*) sig);
3190 _tmp13_ = _vala_iterable_ref0 (_tmp12_);
3191 _param_list = _tmp13_;
3192 _tmp14_ = _param_list;
3193 _tmp15_ = vala_collection_get_size ((ValaCollection*) _tmp14_);
3194 _tmp16_ = _tmp15_;
3195 _param_size = _tmp16_;
3196 _param_index = -1;
3197 while (TRUE) {
3198 gint _tmp17_;
3199 gint _tmp18_;
3200 ValaParameter* param = NULL;
3201 ValaList* _tmp19_;
3202 gpointer _tmp20_;
3203 ValaCCodeParameter* cparam = NULL;
3204 ValaParameter* _tmp21_;
3205 ValaCCodeFile* _tmp22_;
3206 GHashFunc _tmp23_;
3207 GEqualFunc _tmp24_;
3208 GEqualFunc _tmp25_;
3209 ValaHashMap* _tmp26_;
3210 ValaHashMap* _tmp27_;
3211 ValaCCodeParameter* _tmp28_;
3212 ValaCCodeParameter* _tmp29_;
3213 ValaCCodeFunction* _tmp30_;
3214 ValaCCodeParameter* _tmp31_;
3215 ValaParameter* _tmp32_;
3216 ValaDataType* _tmp33_;
3217 ValaDataType* _tmp34_;
3218 _param_index = _param_index + 1;
3219 _tmp17_ = _param_index;
3220 _tmp18_ = _param_size;
3221 if (!(_tmp17_ < _tmp18_)) {
3222 break;
3223 }
3224 _tmp19_ = _param_list;
3225 _tmp20_ = vala_list_get (_tmp19_, _param_index);
3226 param = (ValaParameter*) _tmp20_;
3227 _tmp21_ = param;
3228 _tmp22_ = ((ValaCCodeBaseModule*) self)->cfile;
3229 _tmp23_ = g_direct_hash;
3230 _tmp24_ = g_direct_equal;
3231 _tmp25_ = g_direct_equal;
3232 _tmp26_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp23_, _tmp24_, _tmp25_);
3233 _tmp27_ = _tmp26_;
3234 _tmp28_ = vala_ccode_method_module_generate_parameter ((ValaCCodeMethodModule*) self, _tmp21_, _tmp22_, (ValaMap*) _tmp27_, NULL);
3235 _tmp29_ = _tmp28_;
3236 _vala_map_unref0 (_tmp27_);
3237 cparam = _tmp29_;
3238 _tmp30_ = function;
3239 _tmp31_ = cparam;
3240 vala_ccode_function_add_parameter (_tmp30_, _tmp31_);
3241 _tmp32_ = param;
3242 _tmp33_ = vala_variable_get_variable_type ((ValaVariable*) _tmp32_);
3243 _tmp34_ = _tmp33_;
3244 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp34_, VALA_TYPE_ARRAY_TYPE)) {
3245 ValaArrayType* array_type = NULL;
3246 ValaParameter* _tmp35_;
3247 ValaDataType* _tmp36_;
3248 ValaDataType* _tmp37_;
3249 ValaArrayType* _tmp38_;
3250 gchar* length_ctype = NULL;
3251 ValaArrayType* _tmp39_;
3252 gchar* _tmp40_;
3253 _tmp35_ = param;
3254 _tmp36_ = vala_variable_get_variable_type ((ValaVariable*) _tmp35_);
3255 _tmp37_ = _tmp36_;
3256 _tmp38_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, VALA_TYPE_ARRAY_TYPE, ValaArrayType));
3257 array_type = _tmp38_;
3258 _tmp39_ = array_type;
3259 _tmp40_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp39_);
3260 length_ctype = _tmp40_;
3261 {
3262 gint dim = 0;
3263 dim = 1;
3264 {
3265 gboolean _tmp41_ = FALSE;
3266 _tmp41_ = TRUE;
3267 while (TRUE) {
3268 ValaArrayType* _tmp43_;
3269 gint _tmp44_;
3270 gint _tmp45_;
3271 ValaCCodeFunction* _tmp46_;
3272 ValaParameter* _tmp47_;
3273 gchar* _tmp48_;
3274 gchar* _tmp49_;
3275 const gchar* _tmp50_;
3276 ValaCCodeParameter* _tmp51_;
3277 ValaCCodeParameter* _tmp52_;
3278 if (!_tmp41_) {
3279 gint _tmp42_;
3280 _tmp42_ = dim;
3281 dim = _tmp42_ + 1;
3282 }
3283 _tmp41_ = FALSE;
3284 _tmp43_ = array_type;
3285 _tmp44_ = vala_array_type_get_rank (_tmp43_);
3286 _tmp45_ = _tmp44_;
3287 if (!(dim <= _tmp45_)) {
3288 break;
3289 }
3290 _tmp46_ = function;
3291 _tmp47_ = param;
3292 _tmp48_ = vala_ccode_base_module_get_variable_array_length_cname ((ValaCCodeBaseModule*) self, (ValaVariable*) _tmp47_, dim);
3293 _tmp49_ = _tmp48_;
3294 _tmp50_ = length_ctype;
3295 _tmp51_ = vala_ccode_parameter_new (_tmp49_, _tmp50_);
3296 _tmp52_ = _tmp51_;
3297 vala_ccode_function_add_parameter (_tmp46_, _tmp52_);
3298 _vala_ccode_node_unref0 (_tmp52_);
3299 _g_free0 (_tmp49_);
3300 }
3301 }
3302 }
3303 _g_free0 (length_ctype);
3304 _vala_code_node_unref0 (array_type);
3305 }
3306 _vala_ccode_node_unref0 (cparam);
3307 _vala_code_node_unref0 (param);
3308 }
3309 _vala_iterable_unref0 (_param_list);
3310 }
3311 _tmp53_ = function;
3312 _tmp54_ = vala_ccode_parameter_new ("_data", "gpointer*");
3313 _tmp55_ = _tmp54_;
3314 vala_ccode_function_add_parameter (_tmp53_, _tmp55_);
3315 _vala_ccode_node_unref0 (_tmp55_);
3316 _tmp56_ = function;
3317 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp56_);
3318 _tmp57_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3319 _tmp58_ = _tmp57_;
3320 _tmp59_ = vala_ccode_identifier_new ("_data");
3321 _tmp60_ = _tmp59_;
3322 _tmp61_ = vala_ccode_constant_new ("1");
3323 _tmp62_ = _tmp61_;
3324 _tmp63_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp60_, (ValaCCodeExpression*) _tmp62_);
3325 _tmp64_ = _tmp63_;
3326 _tmp65_ = vala_ccode_variable_declarator_new ("_connection", (ValaCCodeExpression*) _tmp64_, NULL);
3327 _tmp66_ = _tmp65_;
3328 vala_ccode_function_add_declaration (_tmp58_, "GDBusConnection *", (ValaCCodeDeclarator*) _tmp66_, 0);
3329 _vala_ccode_node_unref0 (_tmp66_);
3330 _vala_ccode_node_unref0 (_tmp64_);
3331 _vala_ccode_node_unref0 (_tmp62_);
3332 _vala_ccode_node_unref0 (_tmp60_);
3333 _tmp67_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3334 _tmp68_ = _tmp67_;
3335 _tmp69_ = vala_ccode_identifier_new ("_data");
3336 _tmp70_ = _tmp69_;
3337 _tmp71_ = vala_ccode_constant_new ("2");
3338 _tmp72_ = _tmp71_;
3339 _tmp73_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp70_, (ValaCCodeExpression*) _tmp72_);
3340 _tmp74_ = _tmp73_;
3341 _tmp75_ = vala_ccode_variable_declarator_new ("_path", (ValaCCodeExpression*) _tmp74_, NULL);
3342 _tmp76_ = _tmp75_;
3343 vala_ccode_function_add_declaration (_tmp68_, "const gchar *", (ValaCCodeDeclarator*) _tmp76_, 0);
3344 _vala_ccode_node_unref0 (_tmp76_);
3345 _vala_ccode_node_unref0 (_tmp74_);
3346 _vala_ccode_node_unref0 (_tmp72_);
3347 _vala_ccode_node_unref0 (_tmp70_);
3348 _tmp77_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3349 _tmp78_ = _tmp77_;
3350 _tmp79_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
3351 _tmp80_ = _tmp79_;
3352 vala_ccode_function_add_declaration (_tmp78_, "GVariant", (ValaCCodeDeclarator*) _tmp80_, 0);
3353 _vala_ccode_node_unref0 (_tmp80_);
3354 _tmp81_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3355 _tmp82_ = _tmp81_;
3356 _tmp83_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
3357 _tmp84_ = _tmp83_;
3358 vala_ccode_function_add_declaration (_tmp82_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp84_, 0);
3359 _vala_ccode_node_unref0 (_tmp84_);
3360 _tmp85_ = vala_ccode_identifier_new ("g_variant_builder_init");
3361 _tmp86_ = _tmp85_;
3362 _tmp87_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp86_);
3363 _tmp88_ = _tmp87_;
3364 _vala_ccode_node_unref0 (_tmp86_);
3365 builder_init = _tmp88_;
3366 _tmp89_ = builder_init;
3367 _tmp90_ = vala_ccode_identifier_new ("_arguments_builder");
3368 _tmp91_ = _tmp90_;
3369 _tmp92_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp91_);
3370 _tmp93_ = _tmp92_;
3371 vala_ccode_function_call_add_argument (_tmp89_, (ValaCCodeExpression*) _tmp93_);
3372 _vala_ccode_node_unref0 (_tmp93_);
3373 _vala_ccode_node_unref0 (_tmp91_);
3374 _tmp94_ = builder_init;
3375 _tmp95_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
3376 _tmp96_ = _tmp95_;
3377 vala_ccode_function_call_add_argument (_tmp94_, (ValaCCodeExpression*) _tmp96_);
3378 _vala_ccode_node_unref0 (_tmp96_);
3379 _tmp97_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3380 _tmp98_ = _tmp97_;
3381 _tmp99_ = builder_init;
3382 vala_ccode_function_add_expression (_tmp98_, (ValaCCodeExpression*) _tmp99_);
3383 {
3384 ValaList* _param_list = NULL;
3385 ValaList* _tmp100_;
3386 ValaList* _tmp101_;
3387 gint _param_size = 0;
3388 ValaList* _tmp102_;
3389 gint _tmp103_;
3390 gint _tmp104_;
3391 gint _param_index = 0;
3392 _tmp100_ = vala_callable_get_parameters ((ValaCallable*) sig);
3393 _tmp101_ = _vala_iterable_ref0 (_tmp100_);
3394 _param_list = _tmp101_;
3395 _tmp102_ = _param_list;
3396 _tmp103_ = vala_collection_get_size ((ValaCollection*) _tmp102_);
3397 _tmp104_ = _tmp103_;
3398 _param_size = _tmp104_;
3399 _param_index = -1;
3400 while (TRUE) {
3401 gint _tmp105_;
3402 gint _tmp106_;
3403 ValaParameter* param = NULL;
3404 ValaList* _tmp107_;
3405 gpointer _tmp108_;
3406 gchar* param_name = NULL;
3407 ValaParameter* _tmp109_;
3408 const gchar* _tmp110_;
3409 const gchar* _tmp111_;
3410 gchar* _tmp112_;
3411 ValaCCodeExpression* expr = NULL;
3412 const gchar* _tmp113_;
3413 ValaCCodeIdentifier* _tmp114_;
3414 ValaParameter* _tmp115_;
3415 ValaDataType* _tmp116_;
3416 ValaDataType* _tmp117_;
3417 ValaParameter* _tmp120_;
3418 ValaDataType* _tmp121_;
3419 ValaDataType* _tmp122_;
3420 ValaCCodeIdentifier* _tmp123_;
3421 ValaCCodeIdentifier* _tmp124_;
3422 ValaCCodeExpression* _tmp125_;
3423 ValaParameter* _tmp126_;
3424 _param_index = _param_index + 1;
3425 _tmp105_ = _param_index;
3426 _tmp106_ = _param_size;
3427 if (!(_tmp105_ < _tmp106_)) {
3428 break;
3429 }
3430 _tmp107_ = _param_list;
3431 _tmp108_ = vala_list_get (_tmp107_, _param_index);
3432 param = (ValaParameter*) _tmp108_;
3433 _tmp109_ = param;
3434 _tmp110_ = vala_symbol_get_name ((ValaSymbol*) _tmp109_);
3435 _tmp111_ = _tmp110_;
3436 _tmp112_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp111_);
3437 param_name = _tmp112_;
3438 _tmp113_ = param_name;
3439 _tmp114_ = vala_ccode_identifier_new (_tmp113_);
3440 expr = (ValaCCodeExpression*) _tmp114_;
3441 _tmp115_ = param;
3442 _tmp116_ = vala_variable_get_variable_type ((ValaVariable*) _tmp115_);
3443 _tmp117_ = _tmp116_;
3444 if (vala_data_type_is_real_struct_type (_tmp117_)) {
3445 ValaCCodeExpression* _tmp118_;
3446 ValaCCodeUnaryExpression* _tmp119_;
3447 _tmp118_ = expr;
3448 _tmp119_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, _tmp118_);
3449 _vala_ccode_node_unref0 (expr);
3450 expr = (ValaCCodeExpression*) _tmp119_;
3451 }
3452 _tmp120_ = param;
3453 _tmp121_ = vala_variable_get_variable_type ((ValaVariable*) _tmp120_);
3454 _tmp122_ = _tmp121_;
3455 _tmp123_ = vala_ccode_identifier_new ("_arguments_builder");
3456 _tmp124_ = _tmp123_;
3457 _tmp125_ = expr;
3458 _tmp126_ = param;
3459 vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp122_, (ValaCCodeExpression*) _tmp124_, _tmp125_, (ValaSymbol*) _tmp126_);
3460 _vala_ccode_node_unref0 (_tmp124_);
3461 _vala_ccode_node_unref0 (expr);
3462 _g_free0 (param_name);
3463 _vala_code_node_unref0 (param);
3464 }
3465 _vala_iterable_unref0 (_param_list);
3466 }
3467 _tmp127_ = vala_ccode_identifier_new ("g_variant_builder_end");
3468 _tmp128_ = _tmp127_;
3469 _tmp129_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp128_);
3470 _tmp130_ = _tmp129_;
3471 _vala_ccode_node_unref0 (_tmp128_);
3472 builder_end = _tmp130_;
3473 _tmp131_ = vala_ccode_identifier_new ("_arguments_builder");
3474 _tmp132_ = _tmp131_;
3475 _tmp133_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp132_);
3476 _tmp134_ = _tmp133_;
3477 vala_ccode_function_call_add_argument (builder_end, (ValaCCodeExpression*) _tmp134_);
3478 _vala_ccode_node_unref0 (_tmp134_);
3479 _vala_ccode_node_unref0 (_tmp132_);
3480 _tmp135_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3481 _tmp136_ = _tmp135_;
3482 _tmp137_ = vala_ccode_identifier_new ("_arguments");
3483 _tmp138_ = _tmp137_;
3484 vala_ccode_function_add_assignment (_tmp136_, (ValaCCodeExpression*) _tmp138_, (ValaCCodeExpression*) builder_end);
3485 _vala_ccode_node_unref0 (_tmp138_);
3486 _tmp139_ = vala_ccode_identifier_new ("g_dbus_connection_emit_signal");
3487 _tmp140_ = _tmp139_;
3488 _tmp141_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp140_);
3489 _tmp142_ = _tmp141_;
3490 _vala_ccode_node_unref0 (_tmp140_);
3491 ccall = _tmp142_;
3492 _tmp143_ = vala_ccode_identifier_new ("_connection");
3493 _tmp144_ = _tmp143_;
3494 vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp144_);
3495 _vala_ccode_node_unref0 (_tmp144_);
3496 _tmp145_ = vala_ccode_constant_new ("NULL");
3497 _tmp146_ = _tmp145_;
3498 vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp146_);
3499 _vala_ccode_node_unref0 (_tmp146_);
3500 _tmp147_ = vala_ccode_identifier_new ("_path");
3501 _tmp148_ = _tmp147_;
3502 vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp148_);
3503 _vala_ccode_node_unref0 (_tmp148_);
3504 _tmp149_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
3505 _tmp150_ = _tmp149_;
3506 _tmp151_ = vala_ccode_constant_new (_tmp150_);
3507 _tmp152_ = _tmp151_;
3508 vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp152_);
3509 _vala_ccode_node_unref0 (_tmp152_);
3510 _g_free0 (_tmp150_);
3511 _tmp153_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) sig);
3512 _tmp154_ = _tmp153_;
3513 _tmp155_ = g_strdup_printf ("\"%s\"", _tmp154_);
3514 _tmp156_ = _tmp155_;
3515 _tmp157_ = vala_ccode_constant_new (_tmp156_);
3516 _tmp158_ = _tmp157_;
3517 vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp158_);
3518 _vala_ccode_node_unref0 (_tmp158_);
3519 _g_free0 (_tmp156_);
3520 _g_free0 (_tmp154_);
3521 _tmp159_ = vala_ccode_identifier_new ("_arguments");
3522 _tmp160_ = _tmp159_;
3523 vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp160_);
3524 _vala_ccode_node_unref0 (_tmp160_);
3525 _tmp161_ = vala_ccode_constant_new ("NULL");
3526 _tmp162_ = _tmp161_;
3527 vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp162_);
3528 _vala_ccode_node_unref0 (_tmp162_);
3529 _tmp163_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3530 _tmp164_ = _tmp163_;
3531 vala_ccode_function_add_expression (_tmp164_, (ValaCCodeExpression*) ccall);
3532 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
3533 _tmp165_ = ((ValaCCodeBaseModule*) self)->cfile;
3534 _tmp166_ = function;
3535 vala_ccode_file_add_function_declaration (_tmp165_, _tmp166_);
3536 _tmp167_ = ((ValaCCodeBaseModule*) self)->cfile;
3537 _tmp168_ = function;
3538 vala_ccode_file_add_function (_tmp167_, _tmp168_);
3539 result = wrapper_name;
3540 _vala_ccode_node_unref0 (ccall);
3541 _vala_ccode_node_unref0 (builder_end);
3542 _vala_ccode_node_unref0 (builder_init);
3543 _vala_ccode_node_unref0 (function);
3544 return result;
3545 }
3546
3547 static gchar*
vala_gd_bus_server_module_generate_dbus_property_get_wrapper(ValaGDBusServerModule * self,ValaProperty * prop,ValaObjectTypeSymbol * sym)3548 vala_gd_bus_server_module_generate_dbus_property_get_wrapper (ValaGDBusServerModule* self,
3549 ValaProperty* prop,
3550 ValaObjectTypeSymbol* sym)
3551 {
3552 gchar* wrapper_name = NULL;
3553 ValaPropertyAccessor* _tmp0_;
3554 ValaPropertyAccessor* _tmp1_;
3555 gchar* _tmp2_;
3556 gchar* _tmp3_;
3557 gchar* _tmp4_;
3558 gchar* _tmp5_;
3559 ValaCCodeFunction* function = NULL;
3560 const gchar* _tmp6_;
3561 ValaCCodeFunction* _tmp7_;
3562 ValaCCodeFunction* _tmp8_;
3563 ValaCCodeFunction* _tmp9_;
3564 gchar* _tmp10_;
3565 gchar* _tmp11_;
3566 gchar* _tmp12_;
3567 gchar* _tmp13_;
3568 ValaCCodeParameter* _tmp14_;
3569 ValaCCodeParameter* _tmp15_;
3570 ValaCCodeFunction* _tmp16_;
3571 ValaCCodeFunctionCall* ccall = NULL;
3572 ValaPropertyAccessor* _tmp17_;
3573 ValaPropertyAccessor* _tmp18_;
3574 gchar* _tmp19_;
3575 gchar* _tmp20_;
3576 ValaCCodeIdentifier* _tmp21_;
3577 ValaCCodeIdentifier* _tmp22_;
3578 ValaCCodeFunctionCall* _tmp23_;
3579 ValaCCodeFunctionCall* _tmp24_;
3580 ValaCCodeFunctionCall* _tmp25_;
3581 ValaCCodeIdentifier* _tmp26_;
3582 ValaCCodeIdentifier* _tmp27_;
3583 ValaPropertyAccessor* _tmp28_;
3584 ValaPropertyAccessor* _tmp29_;
3585 ValaDataType* _tmp30_;
3586 ValaDataType* _tmp31_;
3587 ValaCCodeFunction* _tmp99_;
3588 ValaCCodeFunction* _tmp100_;
3589 ValaCCodeVariableDeclarator* _tmp101_;
3590 ValaCCodeVariableDeclarator* _tmp102_;
3591 gchar* _tmp103_;
3592 gchar* _tmp104_;
3593 gboolean _tmp105_;
3594 ValaCCodeFunction* _tmp139_;
3595 ValaCCodeFunction* _tmp140_;
3596 ValaCCodeIdentifier* _tmp141_;
3597 ValaCCodeIdentifier* _tmp142_;
3598 ValaCCodeFile* _tmp143_;
3599 ValaCCodeFunction* _tmp144_;
3600 ValaCCodeFile* _tmp145_;
3601 ValaCCodeFunction* _tmp146_;
3602 gchar* result = NULL;
3603 g_return_val_if_fail (self != NULL, NULL);
3604 g_return_val_if_fail (prop != NULL, NULL);
3605 g_return_val_if_fail (sym != NULL, NULL);
3606 _tmp0_ = vala_property_get_get_accessor (prop);
3607 _tmp1_ = _tmp0_;
3608 _tmp2_ = vala_get_ccode_name ((ValaCodeNode*) _tmp1_);
3609 _tmp3_ = _tmp2_;
3610 _tmp4_ = g_strdup_printf ("_dbus_%s", _tmp3_);
3611 _tmp5_ = _tmp4_;
3612 _g_free0 (_tmp3_);
3613 wrapper_name = _tmp5_;
3614 _tmp6_ = wrapper_name;
3615 _tmp7_ = vala_ccode_function_new (_tmp6_, "GVariant*");
3616 function = _tmp7_;
3617 _tmp8_ = function;
3618 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp8_, VALA_CCODE_MODIFIERS_STATIC);
3619 _tmp9_ = function;
3620 _tmp10_ = vala_get_ccode_name ((ValaCodeNode*) sym);
3621 _tmp11_ = _tmp10_;
3622 _tmp12_ = g_strconcat (_tmp11_, "*", NULL);
3623 _tmp13_ = _tmp12_;
3624 _tmp14_ = vala_ccode_parameter_new ("self", _tmp13_);
3625 _tmp15_ = _tmp14_;
3626 vala_ccode_function_add_parameter (_tmp9_, _tmp15_);
3627 _vala_ccode_node_unref0 (_tmp15_);
3628 _g_free0 (_tmp13_);
3629 _g_free0 (_tmp11_);
3630 _tmp16_ = function;
3631 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp16_);
3632 _tmp17_ = vala_property_get_get_accessor (prop);
3633 _tmp18_ = _tmp17_;
3634 _tmp19_ = vala_get_ccode_name ((ValaCodeNode*) _tmp18_);
3635 _tmp20_ = _tmp19_;
3636 _tmp21_ = vala_ccode_identifier_new (_tmp20_);
3637 _tmp22_ = _tmp21_;
3638 _tmp23_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp22_);
3639 _tmp24_ = _tmp23_;
3640 _vala_ccode_node_unref0 (_tmp22_);
3641 _g_free0 (_tmp20_);
3642 ccall = _tmp24_;
3643 _tmp25_ = ccall;
3644 _tmp26_ = vala_ccode_identifier_new ("self");
3645 _tmp27_ = _tmp26_;
3646 vala_ccode_function_call_add_argument (_tmp25_, (ValaCCodeExpression*) _tmp27_);
3647 _vala_ccode_node_unref0 (_tmp27_);
3648 _tmp28_ = vala_property_get_get_accessor (prop);
3649 _tmp29_ = _tmp28_;
3650 _tmp30_ = vala_property_accessor_get_value_type (_tmp29_);
3651 _tmp31_ = _tmp30_;
3652 if (vala_data_type_is_real_non_null_struct_type (_tmp31_)) {
3653 ValaCCodeFunction* _tmp32_;
3654 ValaCCodeFunction* _tmp33_;
3655 ValaPropertyAccessor* _tmp34_;
3656 ValaPropertyAccessor* _tmp35_;
3657 ValaDataType* _tmp36_;
3658 ValaDataType* _tmp37_;
3659 gchar* _tmp38_;
3660 gchar* _tmp39_;
3661 ValaPropertyAccessor* _tmp40_;
3662 ValaPropertyAccessor* _tmp41_;
3663 ValaDataType* _tmp42_;
3664 ValaDataType* _tmp43_;
3665 ValaCCodeExpression* _tmp44_;
3666 ValaCCodeExpression* _tmp45_;
3667 ValaCCodeVariableDeclarator* _tmp46_;
3668 ValaCCodeVariableDeclarator* _tmp47_;
3669 ValaCCodeFunctionCall* _tmp48_;
3670 ValaCCodeIdentifier* _tmp49_;
3671 ValaCCodeIdentifier* _tmp50_;
3672 ValaCCodeUnaryExpression* _tmp51_;
3673 ValaCCodeUnaryExpression* _tmp52_;
3674 ValaCCodeFunction* _tmp53_;
3675 ValaCCodeFunction* _tmp54_;
3676 ValaCCodeFunctionCall* _tmp55_;
3677 _tmp32_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3678 _tmp33_ = _tmp32_;
3679 _tmp34_ = vala_property_get_get_accessor (prop);
3680 _tmp35_ = _tmp34_;
3681 _tmp36_ = vala_property_accessor_get_value_type (_tmp35_);
3682 _tmp37_ = _tmp36_;
3683 _tmp38_ = vala_get_ccode_name ((ValaCodeNode*) _tmp37_);
3684 _tmp39_ = _tmp38_;
3685 _tmp40_ = vala_property_get_get_accessor (prop);
3686 _tmp41_ = _tmp40_;
3687 _tmp42_ = vala_property_accessor_get_value_type (_tmp41_);
3688 _tmp43_ = _tmp42_;
3689 _tmp44_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp43_, TRUE, FALSE);
3690 _tmp45_ = _tmp44_;
3691 _tmp46_ = vala_ccode_variable_declarator_new_zero ("result", _tmp45_, NULL);
3692 _tmp47_ = _tmp46_;
3693 vala_ccode_function_add_declaration (_tmp33_, _tmp39_, (ValaCCodeDeclarator*) _tmp47_, 0);
3694 _vala_ccode_node_unref0 (_tmp47_);
3695 _vala_ccode_node_unref0 (_tmp45_);
3696 _g_free0 (_tmp39_);
3697 _tmp48_ = ccall;
3698 _tmp49_ = vala_ccode_identifier_new ("result");
3699 _tmp50_ = _tmp49_;
3700 _tmp51_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp50_);
3701 _tmp52_ = _tmp51_;
3702 vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp52_);
3703 _vala_ccode_node_unref0 (_tmp52_);
3704 _vala_ccode_node_unref0 (_tmp50_);
3705 _tmp53_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3706 _tmp54_ = _tmp53_;
3707 _tmp55_ = ccall;
3708 vala_ccode_function_add_expression (_tmp54_, (ValaCCodeExpression*) _tmp55_);
3709 } else {
3710 ValaCCodeFunction* _tmp56_;
3711 ValaCCodeFunction* _tmp57_;
3712 ValaPropertyAccessor* _tmp58_;
3713 ValaPropertyAccessor* _tmp59_;
3714 ValaDataType* _tmp60_;
3715 ValaDataType* _tmp61_;
3716 gchar* _tmp62_;
3717 gchar* _tmp63_;
3718 ValaCCodeVariableDeclarator* _tmp64_;
3719 ValaCCodeVariableDeclarator* _tmp65_;
3720 ValaCCodeFunction* _tmp66_;
3721 ValaCCodeFunction* _tmp67_;
3722 ValaCCodeIdentifier* _tmp68_;
3723 ValaCCodeIdentifier* _tmp69_;
3724 ValaCCodeFunctionCall* _tmp70_;
3725 ValaArrayType* array_type = NULL;
3726 ValaPropertyAccessor* _tmp71_;
3727 ValaPropertyAccessor* _tmp72_;
3728 ValaDataType* _tmp73_;
3729 ValaDataType* _tmp74_;
3730 ValaArrayType* _tmp75_;
3731 ValaArrayType* _tmp76_;
3732 _tmp56_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3733 _tmp57_ = _tmp56_;
3734 _tmp58_ = vala_property_get_get_accessor (prop);
3735 _tmp59_ = _tmp58_;
3736 _tmp60_ = vala_property_accessor_get_value_type (_tmp59_);
3737 _tmp61_ = _tmp60_;
3738 _tmp62_ = vala_get_ccode_name ((ValaCodeNode*) _tmp61_);
3739 _tmp63_ = _tmp62_;
3740 _tmp64_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
3741 _tmp65_ = _tmp64_;
3742 vala_ccode_function_add_declaration (_tmp57_, _tmp63_, (ValaCCodeDeclarator*) _tmp65_, 0);
3743 _vala_ccode_node_unref0 (_tmp65_);
3744 _g_free0 (_tmp63_);
3745 _tmp66_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3746 _tmp67_ = _tmp66_;
3747 _tmp68_ = vala_ccode_identifier_new ("result");
3748 _tmp69_ = _tmp68_;
3749 _tmp70_ = ccall;
3750 vala_ccode_function_add_assignment (_tmp67_, (ValaCCodeExpression*) _tmp69_, (ValaCCodeExpression*) _tmp70_);
3751 _vala_ccode_node_unref0 (_tmp69_);
3752 _tmp71_ = vala_property_get_get_accessor (prop);
3753 _tmp72_ = _tmp71_;
3754 _tmp73_ = vala_property_accessor_get_value_type (_tmp72_);
3755 _tmp74_ = _tmp73_;
3756 _tmp75_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp74_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp74_) : NULL);
3757 array_type = _tmp75_;
3758 _tmp76_ = array_type;
3759 if (_tmp76_ != NULL) {
3760 gchar* length_ctype = NULL;
3761 ValaArrayType* _tmp77_;
3762 gchar* _tmp78_;
3763 _tmp77_ = array_type;
3764 _tmp78_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp77_);
3765 length_ctype = _tmp78_;
3766 {
3767 gint dim = 0;
3768 dim = 1;
3769 {
3770 gboolean _tmp79_ = FALSE;
3771 _tmp79_ = TRUE;
3772 while (TRUE) {
3773 ValaArrayType* _tmp81_;
3774 gint _tmp82_;
3775 gint _tmp83_;
3776 gchar* length_cname = NULL;
3777 gchar* _tmp84_;
3778 ValaCCodeFunction* _tmp85_;
3779 ValaCCodeFunction* _tmp86_;
3780 const gchar* _tmp87_;
3781 const gchar* _tmp88_;
3782 ValaCCodeConstant* _tmp89_;
3783 ValaCCodeConstant* _tmp90_;
3784 ValaCCodeVariableDeclarator* _tmp91_;
3785 ValaCCodeVariableDeclarator* _tmp92_;
3786 ValaCCodeFunctionCall* _tmp93_;
3787 const gchar* _tmp94_;
3788 ValaCCodeIdentifier* _tmp95_;
3789 ValaCCodeIdentifier* _tmp96_;
3790 ValaCCodeUnaryExpression* _tmp97_;
3791 ValaCCodeUnaryExpression* _tmp98_;
3792 if (!_tmp79_) {
3793 gint _tmp80_;
3794 _tmp80_ = dim;
3795 dim = _tmp80_ + 1;
3796 }
3797 _tmp79_ = FALSE;
3798 _tmp81_ = array_type;
3799 _tmp82_ = vala_array_type_get_rank (_tmp81_);
3800 _tmp83_ = _tmp82_;
3801 if (!(dim <= _tmp83_)) {
3802 break;
3803 }
3804 _tmp84_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "result", dim);
3805 length_cname = _tmp84_;
3806 _tmp85_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3807 _tmp86_ = _tmp85_;
3808 _tmp87_ = length_ctype;
3809 _tmp88_ = length_cname;
3810 _tmp89_ = vala_ccode_constant_new ("0");
3811 _tmp90_ = _tmp89_;
3812 _tmp91_ = vala_ccode_variable_declarator_new_zero (_tmp88_, (ValaCCodeExpression*) _tmp90_, NULL);
3813 _tmp92_ = _tmp91_;
3814 vala_ccode_function_add_declaration (_tmp86_, _tmp87_, (ValaCCodeDeclarator*) _tmp92_, 0);
3815 _vala_ccode_node_unref0 (_tmp92_);
3816 _vala_ccode_node_unref0 (_tmp90_);
3817 _tmp93_ = ccall;
3818 _tmp94_ = length_cname;
3819 _tmp95_ = vala_ccode_identifier_new (_tmp94_);
3820 _tmp96_ = _tmp95_;
3821 _tmp97_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp96_);
3822 _tmp98_ = _tmp97_;
3823 vala_ccode_function_call_add_argument (_tmp93_, (ValaCCodeExpression*) _tmp98_);
3824 _vala_ccode_node_unref0 (_tmp98_);
3825 _vala_ccode_node_unref0 (_tmp96_);
3826 _g_free0 (length_cname);
3827 }
3828 }
3829 }
3830 _g_free0 (length_ctype);
3831 }
3832 _vala_code_node_unref0 (array_type);
3833 }
3834 _tmp99_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3835 _tmp100_ = _tmp99_;
3836 _tmp101_ = vala_ccode_variable_declarator_new ("_reply", NULL, NULL);
3837 _tmp102_ = _tmp101_;
3838 vala_ccode_function_add_declaration (_tmp100_, "GVariant*", (ValaCCodeDeclarator*) _tmp102_, 0);
3839 _vala_ccode_node_unref0 (_tmp102_);
3840 _tmp103_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) prop);
3841 _tmp104_ = _tmp103_;
3842 _tmp105_ = _tmp104_ != NULL;
3843 _g_free0 (_tmp104_);
3844 if (_tmp105_) {
3845 ValaCCodeFunction* _tmp106_;
3846 ValaCCodeFunction* _tmp107_;
3847 ValaCCodeIdentifier* _tmp108_;
3848 ValaCCodeIdentifier* _tmp109_;
3849 ValaCCodeIdentifier* _tmp110_;
3850 ValaCCodeIdentifier* _tmp111_;
3851 _tmp106_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3852 _tmp107_ = _tmp106_;
3853 _tmp108_ = vala_ccode_identifier_new ("_reply");
3854 _tmp109_ = _tmp108_;
3855 _tmp110_ = vala_ccode_identifier_new ("result");
3856 _tmp111_ = _tmp110_;
3857 vala_ccode_function_add_assignment (_tmp107_, (ValaCCodeExpression*) _tmp109_, (ValaCCodeExpression*) _tmp111_);
3858 _vala_ccode_node_unref0 (_tmp111_);
3859 _vala_ccode_node_unref0 (_tmp109_);
3860 } else {
3861 ValaCCodeExpression* reply_expr = NULL;
3862 ValaPropertyAccessor* _tmp112_;
3863 ValaPropertyAccessor* _tmp113_;
3864 ValaDataType* _tmp114_;
3865 ValaDataType* _tmp115_;
3866 ValaCCodeIdentifier* _tmp116_;
3867 ValaCCodeIdentifier* _tmp117_;
3868 ValaCCodeExpression* _tmp118_;
3869 ValaCCodeExpression* _tmp119_;
3870 ValaCCodeFunction* _tmp120_;
3871 ValaCCodeFunction* _tmp121_;
3872 ValaCCodeIdentifier* _tmp122_;
3873 ValaCCodeIdentifier* _tmp123_;
3874 ValaCCodeExpression* _tmp124_;
3875 ValaPropertyAccessor* _tmp125_;
3876 ValaPropertyAccessor* _tmp126_;
3877 ValaDataType* _tmp127_;
3878 ValaDataType* _tmp128_;
3879 _tmp112_ = vala_property_get_get_accessor (prop);
3880 _tmp113_ = _tmp112_;
3881 _tmp114_ = vala_property_accessor_get_value_type (_tmp113_);
3882 _tmp115_ = _tmp114_;
3883 _tmp116_ = vala_ccode_identifier_new ("result");
3884 _tmp117_ = _tmp116_;
3885 _tmp118_ = vala_ccode_base_module_serialize_expression ((ValaCCodeBaseModule*) self, _tmp115_, (ValaCCodeExpression*) _tmp117_);
3886 _tmp119_ = _tmp118_;
3887 _vala_ccode_node_unref0 (_tmp117_);
3888 reply_expr = _tmp119_;
3889 _tmp120_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3890 _tmp121_ = _tmp120_;
3891 _tmp122_ = vala_ccode_identifier_new ("_reply");
3892 _tmp123_ = _tmp122_;
3893 _tmp124_ = reply_expr;
3894 vala_ccode_function_add_assignment (_tmp121_, (ValaCCodeExpression*) _tmp123_, _tmp124_);
3895 _vala_ccode_node_unref0 (_tmp123_);
3896 _tmp125_ = vala_property_get_get_accessor (prop);
3897 _tmp126_ = _tmp125_;
3898 _tmp127_ = vala_property_accessor_get_value_type (_tmp126_);
3899 _tmp128_ = _tmp127_;
3900 if (vala_ccode_base_module_requires_destroy (_tmp128_)) {
3901 ValaLocalVariable* local = NULL;
3902 ValaPropertyAccessor* _tmp129_;
3903 ValaPropertyAccessor* _tmp130_;
3904 ValaDataType* _tmp131_;
3905 ValaDataType* _tmp132_;
3906 ValaLocalVariable* _tmp133_;
3907 ValaCCodeFunction* _tmp134_;
3908 ValaCCodeFunction* _tmp135_;
3909 ValaLocalVariable* _tmp136_;
3910 ValaCCodeExpression* _tmp137_;
3911 ValaCCodeExpression* _tmp138_;
3912 _tmp129_ = vala_property_get_get_accessor (prop);
3913 _tmp130_ = _tmp129_;
3914 _tmp131_ = vala_property_accessor_get_value_type (_tmp130_);
3915 _tmp132_ = _tmp131_;
3916 _tmp133_ = vala_local_variable_new (_tmp132_, ".result", NULL, NULL);
3917 local = _tmp133_;
3918 _tmp134_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3919 _tmp135_ = _tmp134_;
3920 _tmp136_ = local;
3921 _tmp137_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp136_);
3922 _tmp138_ = _tmp137_;
3923 vala_ccode_function_add_expression (_tmp135_, _tmp138_);
3924 _vala_ccode_node_unref0 (_tmp138_);
3925 _vala_code_node_unref0 (local);
3926 }
3927 _vala_ccode_node_unref0 (reply_expr);
3928 }
3929 _tmp139_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
3930 _tmp140_ = _tmp139_;
3931 _tmp141_ = vala_ccode_identifier_new ("_reply");
3932 _tmp142_ = _tmp141_;
3933 vala_ccode_function_add_return (_tmp140_, (ValaCCodeExpression*) _tmp142_);
3934 _vala_ccode_node_unref0 (_tmp142_);
3935 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
3936 _tmp143_ = ((ValaCCodeBaseModule*) self)->cfile;
3937 _tmp144_ = function;
3938 vala_ccode_file_add_function_declaration (_tmp143_, _tmp144_);
3939 _tmp145_ = ((ValaCCodeBaseModule*) self)->cfile;
3940 _tmp146_ = function;
3941 vala_ccode_file_add_function (_tmp145_, _tmp146_);
3942 result = wrapper_name;
3943 _vala_ccode_node_unref0 (ccall);
3944 _vala_ccode_node_unref0 (function);
3945 return result;
3946 }
3947
3948 static gchar*
vala_gd_bus_server_module_generate_dbus_property_set_wrapper(ValaGDBusServerModule * self,ValaProperty * prop,ValaObjectTypeSymbol * sym)3949 vala_gd_bus_server_module_generate_dbus_property_set_wrapper (ValaGDBusServerModule* self,
3950 ValaProperty* prop,
3951 ValaObjectTypeSymbol* sym)
3952 {
3953 gchar* wrapper_name = NULL;
3954 ValaPropertyAccessor* _tmp0_;
3955 ValaPropertyAccessor* _tmp1_;
3956 gchar* _tmp2_;
3957 gchar* _tmp3_;
3958 gchar* _tmp4_;
3959 gchar* _tmp5_;
3960 ValaCCodeFunction* function = NULL;
3961 const gchar* _tmp6_;
3962 ValaCCodeFunction* _tmp7_;
3963 ValaCCodeFunction* _tmp8_;
3964 ValaCCodeFunction* _tmp9_;
3965 gchar* _tmp10_;
3966 gchar* _tmp11_;
3967 gchar* _tmp12_;
3968 gchar* _tmp13_;
3969 ValaCCodeParameter* _tmp14_;
3970 ValaCCodeParameter* _tmp15_;
3971 ValaCCodeFunction* _tmp16_;
3972 ValaCCodeParameter* _tmp17_;
3973 ValaCCodeParameter* _tmp18_;
3974 ValaCCodeFunction* _tmp19_;
3975 ValaCCodeFunctionCall* ccall = NULL;
3976 ValaPropertyAccessor* _tmp20_;
3977 ValaPropertyAccessor* _tmp21_;
3978 gchar* _tmp22_;
3979 gchar* _tmp23_;
3980 ValaCCodeIdentifier* _tmp24_;
3981 ValaCCodeIdentifier* _tmp25_;
3982 ValaCCodeFunctionCall* _tmp26_;
3983 ValaCCodeFunctionCall* _tmp27_;
3984 ValaCCodeFunctionCall* _tmp28_;
3985 ValaCCodeIdentifier* _tmp29_;
3986 ValaCCodeIdentifier* _tmp30_;
3987 ValaDataType* owned_type = NULL;
3988 ValaDataType* _tmp31_;
3989 ValaDataType* _tmp32_;
3990 ValaDataType* _tmp33_;
3991 ValaDataType* _tmp34_;
3992 ValaCCodeFunction* _tmp35_;
3993 ValaCCodeFunction* _tmp36_;
3994 ValaDataType* _tmp37_;
3995 gchar* _tmp38_;
3996 gchar* _tmp39_;
3997 ValaDataType* _tmp40_;
3998 ValaDataType* _tmp41_;
3999 ValaCCodeExpression* _tmp42_;
4000 ValaCCodeExpression* _tmp43_;
4001 ValaCCodeVariableDeclarator* _tmp44_;
4002 ValaCCodeVariableDeclarator* _tmp45_;
4003 ValaStruct* st = NULL;
4004 ValaDataType* _tmp46_;
4005 ValaDataType* _tmp47_;
4006 ValaTypeSymbol* _tmp48_;
4007 ValaTypeSymbol* _tmp49_;
4008 gboolean _tmp50_ = FALSE;
4009 ValaStruct* _tmp51_;
4010 ValaCCodeIdentifier* target = NULL;
4011 ValaCCodeIdentifier* _tmp84_;
4012 gchar* _tmp85_;
4013 gchar* _tmp86_;
4014 gboolean _tmp87_;
4015 ValaCCodeFile* _tmp118_;
4016 ValaCCodeFunction* _tmp119_;
4017 ValaCCodeFile* _tmp120_;
4018 ValaCCodeFunction* _tmp121_;
4019 gchar* result = NULL;
4020 g_return_val_if_fail (self != NULL, NULL);
4021 g_return_val_if_fail (prop != NULL, NULL);
4022 g_return_val_if_fail (sym != NULL, NULL);
4023 _tmp0_ = vala_property_get_set_accessor (prop);
4024 _tmp1_ = _tmp0_;
4025 _tmp2_ = vala_get_ccode_name ((ValaCodeNode*) _tmp1_);
4026 _tmp3_ = _tmp2_;
4027 _tmp4_ = g_strdup_printf ("_dbus_%s", _tmp3_);
4028 _tmp5_ = _tmp4_;
4029 _g_free0 (_tmp3_);
4030 wrapper_name = _tmp5_;
4031 _tmp6_ = wrapper_name;
4032 _tmp7_ = vala_ccode_function_new (_tmp6_, "void");
4033 function = _tmp7_;
4034 _tmp8_ = function;
4035 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp8_, VALA_CCODE_MODIFIERS_STATIC);
4036 _tmp9_ = function;
4037 _tmp10_ = vala_get_ccode_name ((ValaCodeNode*) sym);
4038 _tmp11_ = _tmp10_;
4039 _tmp12_ = g_strconcat (_tmp11_, "*", NULL);
4040 _tmp13_ = _tmp12_;
4041 _tmp14_ = vala_ccode_parameter_new ("self", _tmp13_);
4042 _tmp15_ = _tmp14_;
4043 vala_ccode_function_add_parameter (_tmp9_, _tmp15_);
4044 _vala_ccode_node_unref0 (_tmp15_);
4045 _g_free0 (_tmp13_);
4046 _g_free0 (_tmp11_);
4047 _tmp16_ = function;
4048 _tmp17_ = vala_ccode_parameter_new ("_value", "GVariant*");
4049 _tmp18_ = _tmp17_;
4050 vala_ccode_function_add_parameter (_tmp16_, _tmp18_);
4051 _vala_ccode_node_unref0 (_tmp18_);
4052 _tmp19_ = function;
4053 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp19_);
4054 _tmp20_ = vala_property_get_set_accessor (prop);
4055 _tmp21_ = _tmp20_;
4056 _tmp22_ = vala_get_ccode_name ((ValaCodeNode*) _tmp21_);
4057 _tmp23_ = _tmp22_;
4058 _tmp24_ = vala_ccode_identifier_new (_tmp23_);
4059 _tmp25_ = _tmp24_;
4060 _tmp26_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp25_);
4061 _tmp27_ = _tmp26_;
4062 _vala_ccode_node_unref0 (_tmp25_);
4063 _g_free0 (_tmp23_);
4064 ccall = _tmp27_;
4065 _tmp28_ = ccall;
4066 _tmp29_ = vala_ccode_identifier_new ("self");
4067 _tmp30_ = _tmp29_;
4068 vala_ccode_function_call_add_argument (_tmp28_, (ValaCCodeExpression*) _tmp30_);
4069 _vala_ccode_node_unref0 (_tmp30_);
4070 _tmp31_ = vala_property_get_property_type (prop);
4071 _tmp32_ = _tmp31_;
4072 _tmp33_ = vala_data_type_copy (_tmp32_);
4073 owned_type = _tmp33_;
4074 _tmp34_ = owned_type;
4075 vala_data_type_set_value_owned (_tmp34_, TRUE);
4076 _tmp35_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4077 _tmp36_ = _tmp35_;
4078 _tmp37_ = owned_type;
4079 _tmp38_ = vala_get_ccode_name ((ValaCodeNode*) _tmp37_);
4080 _tmp39_ = _tmp38_;
4081 _tmp40_ = vala_property_get_property_type (prop);
4082 _tmp41_ = _tmp40_;
4083 _tmp42_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp41_, TRUE, FALSE);
4084 _tmp43_ = _tmp42_;
4085 _tmp44_ = vala_ccode_variable_declarator_new_zero ("value", _tmp43_, NULL);
4086 _tmp45_ = _tmp44_;
4087 vala_ccode_function_add_declaration (_tmp36_, _tmp39_, (ValaCCodeDeclarator*) _tmp45_, 0);
4088 _vala_ccode_node_unref0 (_tmp45_);
4089 _vala_ccode_node_unref0 (_tmp43_);
4090 _g_free0 (_tmp39_);
4091 _tmp46_ = vala_property_get_property_type (prop);
4092 _tmp47_ = _tmp46_;
4093 _tmp48_ = vala_data_type_get_type_symbol (_tmp47_);
4094 _tmp49_ = _tmp48_;
4095 st = G_TYPE_CHECK_INSTANCE_TYPE (_tmp49_, VALA_TYPE_STRUCT) ? ((ValaStruct*) _tmp49_) : NULL;
4096 _tmp51_ = st;
4097 if (_tmp51_ != NULL) {
4098 ValaStruct* _tmp52_;
4099 _tmp52_ = st;
4100 _tmp50_ = !vala_struct_is_simple_type (_tmp52_);
4101 } else {
4102 _tmp50_ = FALSE;
4103 }
4104 if (_tmp50_) {
4105 ValaCCodeFunctionCall* _tmp53_;
4106 ValaCCodeIdentifier* _tmp54_;
4107 ValaCCodeIdentifier* _tmp55_;
4108 ValaCCodeUnaryExpression* _tmp56_;
4109 ValaCCodeUnaryExpression* _tmp57_;
4110 _tmp53_ = ccall;
4111 _tmp54_ = vala_ccode_identifier_new ("value");
4112 _tmp55_ = _tmp54_;
4113 _tmp56_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp55_);
4114 _tmp57_ = _tmp56_;
4115 vala_ccode_function_call_add_argument (_tmp53_, (ValaCCodeExpression*) _tmp57_);
4116 _vala_ccode_node_unref0 (_tmp57_);
4117 _vala_ccode_node_unref0 (_tmp55_);
4118 } else {
4119 ValaCCodeFunctionCall* _tmp58_;
4120 ValaCCodeIdentifier* _tmp59_;
4121 ValaCCodeIdentifier* _tmp60_;
4122 ValaArrayType* array_type = NULL;
4123 ValaDataType* _tmp61_;
4124 ValaDataType* _tmp62_;
4125 ValaArrayType* _tmp63_;
4126 ValaArrayType* _tmp64_;
4127 _tmp58_ = ccall;
4128 _tmp59_ = vala_ccode_identifier_new ("value");
4129 _tmp60_ = _tmp59_;
4130 vala_ccode_function_call_add_argument (_tmp58_, (ValaCCodeExpression*) _tmp60_);
4131 _vala_ccode_node_unref0 (_tmp60_);
4132 _tmp61_ = vala_property_get_property_type (prop);
4133 _tmp62_ = _tmp61_;
4134 _tmp63_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp62_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp62_) : NULL);
4135 array_type = _tmp63_;
4136 _tmp64_ = array_type;
4137 if (_tmp64_ != NULL) {
4138 gchar* length_ctype = NULL;
4139 ValaArrayType* _tmp65_;
4140 gchar* _tmp66_;
4141 _tmp65_ = array_type;
4142 _tmp66_ = vala_get_ccode_array_length_type ((ValaCodeNode*) _tmp65_);
4143 length_ctype = _tmp66_;
4144 {
4145 gint dim = 0;
4146 dim = 1;
4147 {
4148 gboolean _tmp67_ = FALSE;
4149 _tmp67_ = TRUE;
4150 while (TRUE) {
4151 ValaArrayType* _tmp69_;
4152 gint _tmp70_;
4153 gint _tmp71_;
4154 ValaCCodeFunction* _tmp72_;
4155 ValaCCodeFunction* _tmp73_;
4156 const gchar* _tmp74_;
4157 gchar* _tmp75_;
4158 gchar* _tmp76_;
4159 ValaCCodeVariableDeclarator* _tmp77_;
4160 ValaCCodeVariableDeclarator* _tmp78_;
4161 ValaCCodeFunctionCall* _tmp79_;
4162 gchar* _tmp80_;
4163 gchar* _tmp81_;
4164 ValaCCodeIdentifier* _tmp82_;
4165 ValaCCodeIdentifier* _tmp83_;
4166 if (!_tmp67_) {
4167 gint _tmp68_;
4168 _tmp68_ = dim;
4169 dim = _tmp68_ + 1;
4170 }
4171 _tmp67_ = FALSE;
4172 _tmp69_ = array_type;
4173 _tmp70_ = vala_array_type_get_rank (_tmp69_);
4174 _tmp71_ = _tmp70_;
4175 if (!(dim <= _tmp71_)) {
4176 break;
4177 }
4178 _tmp72_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4179 _tmp73_ = _tmp72_;
4180 _tmp74_ = length_ctype;
4181 _tmp75_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", dim);
4182 _tmp76_ = _tmp75_;
4183 _tmp77_ = vala_ccode_variable_declarator_new (_tmp76_, NULL, NULL);
4184 _tmp78_ = _tmp77_;
4185 vala_ccode_function_add_declaration (_tmp73_, _tmp74_, (ValaCCodeDeclarator*) _tmp78_, 0);
4186 _vala_ccode_node_unref0 (_tmp78_);
4187 _g_free0 (_tmp76_);
4188 _tmp79_ = ccall;
4189 _tmp80_ = vala_ccode_base_module_get_array_length_cname ((ValaCCodeBaseModule*) self, "value", dim);
4190 _tmp81_ = _tmp80_;
4191 _tmp82_ = vala_ccode_identifier_new (_tmp81_);
4192 _tmp83_ = _tmp82_;
4193 vala_ccode_function_call_add_argument (_tmp79_, (ValaCCodeExpression*) _tmp83_);
4194 _vala_ccode_node_unref0 (_tmp83_);
4195 _g_free0 (_tmp81_);
4196 }
4197 }
4198 }
4199 _g_free0 (length_ctype);
4200 }
4201 _vala_code_node_unref0 (array_type);
4202 }
4203 _tmp84_ = vala_ccode_identifier_new ("value");
4204 target = _tmp84_;
4205 _tmp85_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) prop);
4206 _tmp86_ = _tmp85_;
4207 _tmp87_ = _tmp86_ != NULL;
4208 _g_free0 (_tmp86_);
4209 if (_tmp87_) {
4210 ValaCCodeFunction* _tmp88_;
4211 ValaCCodeFunction* _tmp89_;
4212 ValaCCodeIdentifier* _tmp90_;
4213 ValaCCodeIdentifier* _tmp91_;
4214 ValaCCodeIdentifier* _tmp92_;
4215 ValaCCodeFunction* _tmp93_;
4216 ValaCCodeFunction* _tmp94_;
4217 ValaCCodeFunctionCall* _tmp95_;
4218 _tmp88_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4219 _tmp89_ = _tmp88_;
4220 _tmp90_ = target;
4221 _tmp91_ = vala_ccode_identifier_new ("_value");
4222 _tmp92_ = _tmp91_;
4223 vala_ccode_function_add_assignment (_tmp89_, (ValaCCodeExpression*) _tmp90_, (ValaCCodeExpression*) _tmp92_);
4224 _vala_ccode_node_unref0 (_tmp92_);
4225 _tmp93_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4226 _tmp94_ = _tmp93_;
4227 _tmp95_ = ccall;
4228 vala_ccode_function_add_expression (_tmp94_, (ValaCCodeExpression*) _tmp95_);
4229 } else {
4230 ValaCCodeExpression* expr = NULL;
4231 ValaDataType* _tmp96_;
4232 ValaDataType* _tmp97_;
4233 ValaCCodeIdentifier* _tmp98_;
4234 ValaCCodeIdentifier* _tmp99_;
4235 ValaCCodeIdentifier* _tmp100_;
4236 ValaCCodeExpression* _tmp101_;
4237 ValaCCodeExpression* _tmp102_;
4238 ValaCCodeFunction* _tmp103_;
4239 ValaCCodeFunction* _tmp104_;
4240 ValaCCodeIdentifier* _tmp105_;
4241 ValaCCodeExpression* _tmp106_;
4242 ValaCCodeFunction* _tmp107_;
4243 ValaCCodeFunction* _tmp108_;
4244 ValaCCodeFunctionCall* _tmp109_;
4245 ValaDataType* _tmp110_;
4246 _tmp96_ = vala_property_get_property_type (prop);
4247 _tmp97_ = _tmp96_;
4248 _tmp98_ = vala_ccode_identifier_new ("_value");
4249 _tmp99_ = _tmp98_;
4250 _tmp100_ = target;
4251 _tmp101_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp97_, (ValaCCodeExpression*) _tmp99_, (ValaCCodeExpression*) _tmp100_, NULL, NULL);
4252 _tmp102_ = _tmp101_;
4253 _vala_ccode_node_unref0 (_tmp99_);
4254 expr = _tmp102_;
4255 _tmp103_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4256 _tmp104_ = _tmp103_;
4257 _tmp105_ = target;
4258 _tmp106_ = expr;
4259 vala_ccode_function_add_assignment (_tmp104_, (ValaCCodeExpression*) _tmp105_, _tmp106_);
4260 _tmp107_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4261 _tmp108_ = _tmp107_;
4262 _tmp109_ = ccall;
4263 vala_ccode_function_add_expression (_tmp108_, (ValaCCodeExpression*) _tmp109_);
4264 _tmp110_ = owned_type;
4265 if (vala_ccode_base_module_requires_destroy (_tmp110_)) {
4266 ValaLocalVariable* local = NULL;
4267 ValaDataType* _tmp111_;
4268 ValaLocalVariable* _tmp112_;
4269 ValaCCodeFunction* _tmp113_;
4270 ValaCCodeFunction* _tmp114_;
4271 ValaLocalVariable* _tmp115_;
4272 ValaCCodeExpression* _tmp116_;
4273 ValaCCodeExpression* _tmp117_;
4274 _tmp111_ = owned_type;
4275 _tmp112_ = vala_local_variable_new (_tmp111_, "value", NULL, NULL);
4276 local = _tmp112_;
4277 _tmp113_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4278 _tmp114_ = _tmp113_;
4279 _tmp115_ = local;
4280 _tmp116_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp115_);
4281 _tmp117_ = _tmp116_;
4282 vala_ccode_function_add_expression (_tmp114_, _tmp117_);
4283 _vala_ccode_node_unref0 (_tmp117_);
4284 _vala_code_node_unref0 (local);
4285 }
4286 _vala_ccode_node_unref0 (expr);
4287 }
4288 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
4289 _tmp118_ = ((ValaCCodeBaseModule*) self)->cfile;
4290 _tmp119_ = function;
4291 vala_ccode_file_add_function_declaration (_tmp118_, _tmp119_);
4292 _tmp120_ = ((ValaCCodeBaseModule*) self)->cfile;
4293 _tmp121_ = function;
4294 vala_ccode_file_add_function (_tmp120_, _tmp121_);
4295 result = wrapper_name;
4296 _vala_ccode_node_unref0 (target);
4297 _vala_code_node_unref0 (owned_type);
4298 _vala_ccode_node_unref0 (ccall);
4299 _vala_ccode_node_unref0 (function);
4300 return result;
4301 }
4302
4303 static void
vala_gd_bus_server_module_handle_signals(ValaGDBusServerModule * self,ValaObjectTypeSymbol * sym,gboolean connect)4304 vala_gd_bus_server_module_handle_signals (ValaGDBusServerModule* self,
4305 ValaObjectTypeSymbol* sym,
4306 gboolean connect)
4307 {
4308 gchar* dbus_iface_name = NULL;
4309 gchar* _tmp0_;
4310 const gchar* _tmp1_;
4311 g_return_if_fail (self != NULL);
4312 g_return_if_fail (sym != NULL);
4313 _tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) sym);
4314 dbus_iface_name = _tmp0_;
4315 _tmp1_ = dbus_iface_name;
4316 if (_tmp1_ == NULL) {
4317 _g_free0 (dbus_iface_name);
4318 return;
4319 }
4320 {
4321 ValaList* _sig_list = NULL;
4322 ValaList* _tmp2_;
4323 ValaList* _tmp3_;
4324 gint _sig_size = 0;
4325 ValaList* _tmp4_;
4326 gint _tmp5_;
4327 gint _tmp6_;
4328 gint _sig_index = 0;
4329 _tmp2_ = vala_object_type_symbol_get_signals (sym);
4330 _tmp3_ = _vala_iterable_ref0 (_tmp2_);
4331 _sig_list = _tmp3_;
4332 _tmp4_ = _sig_list;
4333 _tmp5_ = vala_collection_get_size ((ValaCollection*) _tmp4_);
4334 _tmp6_ = _tmp5_;
4335 _sig_size = _tmp6_;
4336 _sig_index = -1;
4337 while (TRUE) {
4338 gint _tmp7_;
4339 gint _tmp8_;
4340 ValaSignal* sig = NULL;
4341 ValaList* _tmp9_;
4342 gpointer _tmp10_;
4343 ValaSignal* _tmp11_;
4344 ValaSymbolAccessibility _tmp12_;
4345 ValaSymbolAccessibility _tmp13_;
4346 ValaSignal* _tmp14_;
4347 _sig_index = _sig_index + 1;
4348 _tmp7_ = _sig_index;
4349 _tmp8_ = _sig_size;
4350 if (!(_tmp7_ < _tmp8_)) {
4351 break;
4352 }
4353 _tmp9_ = _sig_list;
4354 _tmp10_ = vala_list_get (_tmp9_, _sig_index);
4355 sig = (ValaSignal*) _tmp10_;
4356 _tmp11_ = sig;
4357 _tmp12_ = vala_symbol_get_access ((ValaSymbol*) _tmp11_);
4358 _tmp13_ = _tmp12_;
4359 if (_tmp13_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
4360 _vala_code_node_unref0 (sig);
4361 continue;
4362 }
4363 _tmp14_ = sig;
4364 if (!vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp14_)) {
4365 _vala_code_node_unref0 (sig);
4366 continue;
4367 }
4368 if (connect) {
4369 ValaCCodeFunctionCall* connect_call = NULL;
4370 ValaCCodeIdentifier* _tmp15_;
4371 ValaCCodeIdentifier* _tmp16_;
4372 ValaCCodeFunctionCall* _tmp17_;
4373 ValaCCodeFunctionCall* _tmp18_;
4374 ValaCCodeFunctionCall* _tmp19_;
4375 ValaCCodeIdentifier* _tmp20_;
4376 ValaCCodeIdentifier* _tmp21_;
4377 ValaCCodeFunctionCall* _tmp22_;
4378 ValaSignal* _tmp23_;
4379 ValaCCodeConstant* _tmp24_;
4380 ValaCCodeConstant* _tmp25_;
4381 ValaCCodeFunctionCall* _tmp26_;
4382 ValaSignal* _tmp27_;
4383 const gchar* _tmp28_;
4384 gchar* _tmp29_;
4385 gchar* _tmp30_;
4386 ValaCCodeIdentifier* _tmp31_;
4387 ValaCCodeIdentifier* _tmp32_;
4388 ValaCCodeCastExpression* _tmp33_;
4389 ValaCCodeCastExpression* _tmp34_;
4390 ValaCCodeFunctionCall* _tmp35_;
4391 ValaCCodeIdentifier* _tmp36_;
4392 ValaCCodeIdentifier* _tmp37_;
4393 ValaCCodeFunction* _tmp38_;
4394 ValaCCodeFunction* _tmp39_;
4395 ValaCCodeFunctionCall* _tmp40_;
4396 _tmp15_ = vala_ccode_identifier_new ("g_signal_connect");
4397 _tmp16_ = _tmp15_;
4398 _tmp17_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp16_);
4399 _tmp18_ = _tmp17_;
4400 _vala_ccode_node_unref0 (_tmp16_);
4401 connect_call = _tmp18_;
4402 _tmp19_ = connect_call;
4403 _tmp20_ = vala_ccode_identifier_new ("object");
4404 _tmp21_ = _tmp20_;
4405 vala_ccode_function_call_add_argument (_tmp19_, (ValaCCodeExpression*) _tmp21_);
4406 _vala_ccode_node_unref0 (_tmp21_);
4407 _tmp22_ = connect_call;
4408 _tmp23_ = sig;
4409 _tmp24_ = vala_ccode_base_module_get_signal_canonical_constant ((ValaCCodeBaseModule*) self, _tmp23_, NULL);
4410 _tmp25_ = _tmp24_;
4411 vala_ccode_function_call_add_argument (_tmp22_, (ValaCCodeExpression*) _tmp25_);
4412 _vala_ccode_node_unref0 (_tmp25_);
4413 _tmp26_ = connect_call;
4414 _tmp27_ = sig;
4415 _tmp28_ = dbus_iface_name;
4416 _tmp29_ = vala_gd_bus_server_module_generate_dbus_signal_wrapper (self, _tmp27_, sym, _tmp28_);
4417 _tmp30_ = _tmp29_;
4418 _tmp31_ = vala_ccode_identifier_new (_tmp30_);
4419 _tmp32_ = _tmp31_;
4420 _tmp33_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp32_, "GCallback");
4421 _tmp34_ = _tmp33_;
4422 vala_ccode_function_call_add_argument (_tmp26_, (ValaCCodeExpression*) _tmp34_);
4423 _vala_ccode_node_unref0 (_tmp34_);
4424 _vala_ccode_node_unref0 (_tmp32_);
4425 _g_free0 (_tmp30_);
4426 _tmp35_ = connect_call;
4427 _tmp36_ = vala_ccode_identifier_new ("data");
4428 _tmp37_ = _tmp36_;
4429 vala_ccode_function_call_add_argument (_tmp35_, (ValaCCodeExpression*) _tmp37_);
4430 _vala_ccode_node_unref0 (_tmp37_);
4431 _tmp38_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4432 _tmp39_ = _tmp38_;
4433 _tmp40_ = connect_call;
4434 vala_ccode_function_add_expression (_tmp39_, (ValaCCodeExpression*) _tmp40_);
4435 _vala_ccode_node_unref0 (connect_call);
4436 } else {
4437 ValaCCodeFunctionCall* disconnect_call = NULL;
4438 ValaCCodeIdentifier* _tmp41_;
4439 ValaCCodeIdentifier* _tmp42_;
4440 ValaCCodeFunctionCall* _tmp43_;
4441 ValaCCodeFunctionCall* _tmp44_;
4442 ValaCCodeFunctionCall* _tmp45_;
4443 ValaCCodeIdentifier* _tmp46_;
4444 ValaCCodeIdentifier* _tmp47_;
4445 ValaCCodeConstant* _tmp48_;
4446 ValaCCodeConstant* _tmp49_;
4447 ValaCCodeElementAccess* _tmp50_;
4448 ValaCCodeElementAccess* _tmp51_;
4449 ValaCCodeFunctionCall* _tmp52_;
4450 gchar* _tmp53_;
4451 gchar* _tmp54_;
4452 ValaSignal* _tmp55_;
4453 gchar* _tmp56_;
4454 gchar* _tmp57_;
4455 gchar* _tmp58_;
4456 gchar* _tmp59_;
4457 ValaCCodeIdentifier* _tmp60_;
4458 ValaCCodeIdentifier* _tmp61_;
4459 ValaCCodeFunctionCall* _tmp62_;
4460 ValaCCodeIdentifier* _tmp63_;
4461 ValaCCodeIdentifier* _tmp64_;
4462 ValaCCodeFunction* _tmp65_;
4463 ValaCCodeFunction* _tmp66_;
4464 ValaCCodeFunctionCall* _tmp67_;
4465 _tmp41_ = vala_ccode_identifier_new ("g_signal_handlers_disconnect_by_func");
4466 _tmp42_ = _tmp41_;
4467 _tmp43_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp42_);
4468 _tmp44_ = _tmp43_;
4469 _vala_ccode_node_unref0 (_tmp42_);
4470 disconnect_call = _tmp44_;
4471 _tmp45_ = disconnect_call;
4472 _tmp46_ = vala_ccode_identifier_new ("data");
4473 _tmp47_ = _tmp46_;
4474 _tmp48_ = vala_ccode_constant_new ("0");
4475 _tmp49_ = _tmp48_;
4476 _tmp50_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp47_, (ValaCCodeExpression*) _tmp49_);
4477 _tmp51_ = _tmp50_;
4478 vala_ccode_function_call_add_argument (_tmp45_, (ValaCCodeExpression*) _tmp51_);
4479 _vala_ccode_node_unref0 (_tmp51_);
4480 _vala_ccode_node_unref0 (_tmp49_);
4481 _vala_ccode_node_unref0 (_tmp47_);
4482 _tmp52_ = disconnect_call;
4483 _tmp53_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) sym, NULL);
4484 _tmp54_ = _tmp53_;
4485 _tmp55_ = sig;
4486 _tmp56_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp55_, NULL);
4487 _tmp57_ = _tmp56_;
4488 _tmp58_ = g_strdup_printf ("_dbus_%s_%s", _tmp54_, _tmp57_);
4489 _tmp59_ = _tmp58_;
4490 _tmp60_ = vala_ccode_identifier_new (_tmp59_);
4491 _tmp61_ = _tmp60_;
4492 vala_ccode_function_call_add_argument (_tmp52_, (ValaCCodeExpression*) _tmp61_);
4493 _vala_ccode_node_unref0 (_tmp61_);
4494 _g_free0 (_tmp59_);
4495 _g_free0 (_tmp57_);
4496 _g_free0 (_tmp54_);
4497 _tmp62_ = disconnect_call;
4498 _tmp63_ = vala_ccode_identifier_new ("data");
4499 _tmp64_ = _tmp63_;
4500 vala_ccode_function_call_add_argument (_tmp62_, (ValaCCodeExpression*) _tmp64_);
4501 _vala_ccode_node_unref0 (_tmp64_);
4502 _tmp65_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4503 _tmp66_ = _tmp65_;
4504 _tmp67_ = disconnect_call;
4505 vala_ccode_function_add_expression (_tmp66_, (ValaCCodeExpression*) _tmp67_);
4506 _vala_ccode_node_unref0 (disconnect_call);
4507 }
4508 _vala_code_node_unref0 (sig);
4509 }
4510 _vala_iterable_unref0 (_sig_list);
4511 }
4512 _g_free0 (dbus_iface_name);
4513 }
4514
4515 static void
vala_gd_bus_server_module_generate_interface_method_call_function(ValaGDBusServerModule * self,ValaObjectTypeSymbol * sym)4516 vala_gd_bus_server_module_generate_interface_method_call_function (ValaGDBusServerModule* self,
4517 ValaObjectTypeSymbol* sym)
4518 {
4519 ValaCCodeFunction* cfunc = NULL;
4520 gchar* _tmp0_;
4521 gchar* _tmp1_;
4522 gchar* _tmp2_;
4523 gchar* _tmp3_;
4524 ValaCCodeFunction* _tmp4_;
4525 ValaCCodeFunction* _tmp5_;
4526 ValaCCodeFunction* _tmp6_;
4527 ValaCCodeParameter* _tmp7_;
4528 ValaCCodeParameter* _tmp8_;
4529 ValaCCodeFunction* _tmp9_;
4530 ValaCCodeParameter* _tmp10_;
4531 ValaCCodeParameter* _tmp11_;
4532 ValaCCodeFunction* _tmp12_;
4533 ValaCCodeParameter* _tmp13_;
4534 ValaCCodeParameter* _tmp14_;
4535 ValaCCodeFunction* _tmp15_;
4536 ValaCCodeParameter* _tmp16_;
4537 ValaCCodeParameter* _tmp17_;
4538 ValaCCodeFunction* _tmp18_;
4539 ValaCCodeParameter* _tmp19_;
4540 ValaCCodeParameter* _tmp20_;
4541 ValaCCodeFunction* _tmp21_;
4542 ValaCCodeParameter* _tmp22_;
4543 ValaCCodeParameter* _tmp23_;
4544 ValaCCodeFunction* _tmp24_;
4545 ValaCCodeParameter* _tmp25_;
4546 ValaCCodeParameter* _tmp26_;
4547 ValaCCodeFunction* _tmp27_;
4548 ValaCCodeParameter* _tmp28_;
4549 ValaCCodeParameter* _tmp29_;
4550 ValaCCodeFunction* _tmp30_;
4551 ValaCCodeFunction* _tmp31_;
4552 ValaCCodeModifiers _tmp32_;
4553 ValaCCodeModifiers _tmp33_;
4554 ValaCCodeFunction* _tmp34_;
4555 ValaCCodeFunction* _tmp35_;
4556 ValaCCodeFunction* _tmp36_;
4557 ValaCCodeIdentifier* _tmp37_;
4558 ValaCCodeIdentifier* _tmp38_;
4559 ValaCCodeVariableDeclarator* _tmp39_;
4560 ValaCCodeVariableDeclarator* _tmp40_;
4561 ValaCCodeFunction* _tmp41_;
4562 ValaCCodeFunction* _tmp42_;
4563 ValaCCodeIdentifier* _tmp43_;
4564 ValaCCodeIdentifier* _tmp44_;
4565 ValaCCodeConstant* _tmp45_;
4566 ValaCCodeConstant* _tmp46_;
4567 ValaCCodeElementAccess* _tmp47_;
4568 ValaCCodeElementAccess* _tmp48_;
4569 ValaCCodeVariableDeclarator* _tmp49_;
4570 ValaCCodeVariableDeclarator* _tmp50_;
4571 gboolean first = FALSE;
4572 ValaCCodeFunctionCall* ccall = NULL;
4573 ValaCCodeIdentifier* _tmp125_;
4574 ValaCCodeIdentifier* _tmp126_;
4575 ValaCCodeFunctionCall* _tmp127_;
4576 ValaCCodeFunctionCall* _tmp128_;
4577 ValaCCodeFunctionCall* _tmp129_;
4578 ValaCCodeIdentifier* _tmp130_;
4579 ValaCCodeIdentifier* _tmp131_;
4580 ValaCCodeFunction* _tmp132_;
4581 ValaCCodeFunction* _tmp133_;
4582 ValaCCodeFunctionCall* _tmp134_;
4583 ValaCCodeFile* _tmp137_;
4584 ValaCCodeFunction* _tmp138_;
4585 ValaCCodeFile* _tmp139_;
4586 ValaCCodeFunction* _tmp140_;
4587 g_return_if_fail (self != NULL);
4588 g_return_if_fail (sym != NULL);
4589 _tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
4590 _tmp1_ = _tmp0_;
4591 _tmp2_ = g_strconcat (_tmp1_, "dbus_interface_method_call", NULL);
4592 _tmp3_ = _tmp2_;
4593 _tmp4_ = vala_ccode_function_new (_tmp3_, "void");
4594 _tmp5_ = _tmp4_;
4595 _g_free0 (_tmp3_);
4596 _g_free0 (_tmp1_);
4597 cfunc = _tmp5_;
4598 _tmp6_ = cfunc;
4599 _tmp7_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
4600 _tmp8_ = _tmp7_;
4601 vala_ccode_function_add_parameter (_tmp6_, _tmp8_);
4602 _vala_ccode_node_unref0 (_tmp8_);
4603 _tmp9_ = cfunc;
4604 _tmp10_ = vala_ccode_parameter_new ("sender", "const gchar*");
4605 _tmp11_ = _tmp10_;
4606 vala_ccode_function_add_parameter (_tmp9_, _tmp11_);
4607 _vala_ccode_node_unref0 (_tmp11_);
4608 _tmp12_ = cfunc;
4609 _tmp13_ = vala_ccode_parameter_new ("object_path", "const gchar*");
4610 _tmp14_ = _tmp13_;
4611 vala_ccode_function_add_parameter (_tmp12_, _tmp14_);
4612 _vala_ccode_node_unref0 (_tmp14_);
4613 _tmp15_ = cfunc;
4614 _tmp16_ = vala_ccode_parameter_new ("interface_name", "const gchar*");
4615 _tmp17_ = _tmp16_;
4616 vala_ccode_function_add_parameter (_tmp15_, _tmp17_);
4617 _vala_ccode_node_unref0 (_tmp17_);
4618 _tmp18_ = cfunc;
4619 _tmp19_ = vala_ccode_parameter_new ("method_name", "const gchar*");
4620 _tmp20_ = _tmp19_;
4621 vala_ccode_function_add_parameter (_tmp18_, _tmp20_);
4622 _vala_ccode_node_unref0 (_tmp20_);
4623 _tmp21_ = cfunc;
4624 _tmp22_ = vala_ccode_parameter_new ("parameters", "GVariant*");
4625 _tmp23_ = _tmp22_;
4626 vala_ccode_function_add_parameter (_tmp21_, _tmp23_);
4627 _vala_ccode_node_unref0 (_tmp23_);
4628 _tmp24_ = cfunc;
4629 _tmp25_ = vala_ccode_parameter_new ("invocation", "GDBusMethodInvocation*");
4630 _tmp26_ = _tmp25_;
4631 vala_ccode_function_add_parameter (_tmp24_, _tmp26_);
4632 _vala_ccode_node_unref0 (_tmp26_);
4633 _tmp27_ = cfunc;
4634 _tmp28_ = vala_ccode_parameter_new ("user_data", "gpointer");
4635 _tmp29_ = _tmp28_;
4636 vala_ccode_function_add_parameter (_tmp27_, _tmp29_);
4637 _vala_ccode_node_unref0 (_tmp29_);
4638 _tmp30_ = cfunc;
4639 _tmp31_ = cfunc;
4640 _tmp32_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp31_);
4641 _tmp33_ = _tmp32_;
4642 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp31_, _tmp33_ | VALA_CCODE_MODIFIERS_STATIC);
4643 _tmp34_ = cfunc;
4644 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp34_);
4645 _tmp35_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4646 _tmp36_ = _tmp35_;
4647 _tmp37_ = vala_ccode_identifier_new ("user_data");
4648 _tmp38_ = _tmp37_;
4649 _tmp39_ = vala_ccode_variable_declarator_new ("data", (ValaCCodeExpression*) _tmp38_, NULL);
4650 _tmp40_ = _tmp39_;
4651 vala_ccode_function_add_declaration (_tmp36_, "gpointer*", (ValaCCodeDeclarator*) _tmp40_, 0);
4652 _vala_ccode_node_unref0 (_tmp40_);
4653 _vala_ccode_node_unref0 (_tmp38_);
4654 _tmp41_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4655 _tmp42_ = _tmp41_;
4656 _tmp43_ = vala_ccode_identifier_new ("data");
4657 _tmp44_ = _tmp43_;
4658 _tmp45_ = vala_ccode_constant_new ("0");
4659 _tmp46_ = _tmp45_;
4660 _tmp47_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp44_, (ValaCCodeExpression*) _tmp46_);
4661 _tmp48_ = _tmp47_;
4662 _tmp49_ = vala_ccode_variable_declarator_new ("object", (ValaCCodeExpression*) _tmp48_, NULL);
4663 _tmp50_ = _tmp49_;
4664 vala_ccode_function_add_declaration (_tmp42_, "gpointer", (ValaCCodeDeclarator*) _tmp50_, 0);
4665 _vala_ccode_node_unref0 (_tmp50_);
4666 _vala_ccode_node_unref0 (_tmp48_);
4667 _vala_ccode_node_unref0 (_tmp46_);
4668 _vala_ccode_node_unref0 (_tmp44_);
4669 first = TRUE;
4670 {
4671 ValaList* _m_list = NULL;
4672 ValaList* _tmp51_;
4673 ValaList* _tmp52_;
4674 gint _m_size = 0;
4675 ValaList* _tmp53_;
4676 gint _tmp54_;
4677 gint _tmp55_;
4678 gint _m_index = 0;
4679 _tmp51_ = vala_object_type_symbol_get_methods (sym);
4680 _tmp52_ = _vala_iterable_ref0 (_tmp51_);
4681 _m_list = _tmp52_;
4682 _tmp53_ = _m_list;
4683 _tmp54_ = vala_collection_get_size ((ValaCollection*) _tmp53_);
4684 _tmp55_ = _tmp54_;
4685 _m_size = _tmp55_;
4686 _m_index = -1;
4687 while (TRUE) {
4688 gint _tmp56_;
4689 gint _tmp57_;
4690 ValaMethod* m = NULL;
4691 ValaList* _tmp58_;
4692 gpointer _tmp59_;
4693 gboolean _tmp60_ = FALSE;
4694 gboolean _tmp61_ = FALSE;
4695 gboolean _tmp62_ = FALSE;
4696 ValaMethod* _tmp63_;
4697 ValaMethod* _tmp73_;
4698 ValaCCodeFile* _tmp74_;
4699 ValaCCodeFunctionCall* ccheck = NULL;
4700 ValaCCodeIdentifier* _tmp75_;
4701 ValaCCodeIdentifier* _tmp76_;
4702 ValaCCodeFunctionCall* _tmp77_;
4703 ValaCCodeFunctionCall* _tmp78_;
4704 ValaCCodeFunctionCall* _tmp79_;
4705 ValaCCodeIdentifier* _tmp80_;
4706 ValaCCodeIdentifier* _tmp81_;
4707 ValaCCodeFunctionCall* _tmp82_;
4708 ValaMethod* _tmp83_;
4709 gchar* _tmp84_;
4710 gchar* _tmp85_;
4711 gchar* _tmp86_;
4712 gchar* _tmp87_;
4713 ValaCCodeConstant* _tmp88_;
4714 ValaCCodeConstant* _tmp89_;
4715 ValaCCodeFunctionCall* ccall = NULL;
4716 ValaMethod* _tmp104_;
4717 gchar* _tmp105_;
4718 gchar* _tmp106_;
4719 ValaCCodeIdentifier* _tmp107_;
4720 ValaCCodeIdentifier* _tmp108_;
4721 ValaCCodeFunctionCall* _tmp109_;
4722 ValaCCodeFunctionCall* _tmp110_;
4723 ValaCCodeFunctionCall* _tmp111_;
4724 ValaCCodeIdentifier* _tmp112_;
4725 ValaCCodeIdentifier* _tmp113_;
4726 ValaCCodeFunctionCall* _tmp114_;
4727 ValaCCodeIdentifier* _tmp115_;
4728 ValaCCodeIdentifier* _tmp116_;
4729 ValaCCodeFunctionCall* _tmp117_;
4730 ValaCCodeIdentifier* _tmp118_;
4731 ValaCCodeIdentifier* _tmp119_;
4732 ValaCCodeFunction* _tmp120_;
4733 ValaCCodeFunction* _tmp121_;
4734 ValaCCodeFunctionCall* _tmp122_;
4735 _m_index = _m_index + 1;
4736 _tmp56_ = _m_index;
4737 _tmp57_ = _m_size;
4738 if (!(_tmp56_ < _tmp57_)) {
4739 break;
4740 }
4741 _tmp58_ = _m_list;
4742 _tmp59_ = vala_list_get (_tmp58_, _m_index);
4743 m = (ValaMethod*) _tmp59_;
4744 _tmp63_ = m;
4745 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp63_, VALA_TYPE_CREATION_METHOD)) {
4746 _tmp62_ = TRUE;
4747 } else {
4748 ValaMethod* _tmp64_;
4749 ValaMemberBinding _tmp65_;
4750 ValaMemberBinding _tmp66_;
4751 _tmp64_ = m;
4752 _tmp65_ = vala_method_get_binding (_tmp64_);
4753 _tmp66_ = _tmp65_;
4754 _tmp62_ = _tmp66_ != VALA_MEMBER_BINDING_INSTANCE;
4755 }
4756 if (_tmp62_) {
4757 _tmp61_ = TRUE;
4758 } else {
4759 ValaMethod* _tmp67_;
4760 gboolean _tmp68_;
4761 gboolean _tmp69_;
4762 _tmp67_ = m;
4763 _tmp68_ = vala_method_get_overrides (_tmp67_);
4764 _tmp69_ = _tmp68_;
4765 _tmp61_ = _tmp69_;
4766 }
4767 if (_tmp61_) {
4768 _tmp60_ = TRUE;
4769 } else {
4770 ValaMethod* _tmp70_;
4771 ValaSymbolAccessibility _tmp71_;
4772 ValaSymbolAccessibility _tmp72_;
4773 _tmp70_ = m;
4774 _tmp71_ = vala_symbol_get_access ((ValaSymbol*) _tmp70_);
4775 _tmp72_ = _tmp71_;
4776 _tmp60_ = _tmp72_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
4777 }
4778 if (_tmp60_) {
4779 _vala_code_node_unref0 (m);
4780 continue;
4781 }
4782 _tmp73_ = m;
4783 if (!vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp73_)) {
4784 _vala_code_node_unref0 (m);
4785 continue;
4786 }
4787 _tmp74_ = ((ValaCCodeBaseModule*) self)->cfile;
4788 vala_ccode_file_add_include (_tmp74_, "string.h", FALSE);
4789 _tmp75_ = vala_ccode_identifier_new ("strcmp");
4790 _tmp76_ = _tmp75_;
4791 _tmp77_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp76_);
4792 _tmp78_ = _tmp77_;
4793 _vala_ccode_node_unref0 (_tmp76_);
4794 ccheck = _tmp78_;
4795 _tmp79_ = ccheck;
4796 _tmp80_ = vala_ccode_identifier_new ("method_name");
4797 _tmp81_ = _tmp80_;
4798 vala_ccode_function_call_add_argument (_tmp79_, (ValaCCodeExpression*) _tmp81_);
4799 _vala_ccode_node_unref0 (_tmp81_);
4800 _tmp82_ = ccheck;
4801 _tmp83_ = m;
4802 _tmp84_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp83_);
4803 _tmp85_ = _tmp84_;
4804 _tmp86_ = g_strdup_printf ("\"%s\"", _tmp85_);
4805 _tmp87_ = _tmp86_;
4806 _tmp88_ = vala_ccode_constant_new (_tmp87_);
4807 _tmp89_ = _tmp88_;
4808 vala_ccode_function_call_add_argument (_tmp82_, (ValaCCodeExpression*) _tmp89_);
4809 _vala_ccode_node_unref0 (_tmp89_);
4810 _g_free0 (_tmp87_);
4811 _g_free0 (_tmp85_);
4812 if (first) {
4813 ValaCCodeFunction* _tmp90_;
4814 ValaCCodeFunction* _tmp91_;
4815 ValaCCodeFunctionCall* _tmp92_;
4816 ValaCCodeConstant* _tmp93_;
4817 ValaCCodeConstant* _tmp94_;
4818 ValaCCodeBinaryExpression* _tmp95_;
4819 ValaCCodeBinaryExpression* _tmp96_;
4820 _tmp90_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4821 _tmp91_ = _tmp90_;
4822 _tmp92_ = ccheck;
4823 _tmp93_ = vala_ccode_constant_new ("0");
4824 _tmp94_ = _tmp93_;
4825 _tmp95_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp92_, (ValaCCodeExpression*) _tmp94_);
4826 _tmp96_ = _tmp95_;
4827 vala_ccode_function_open_if (_tmp91_, (ValaCCodeExpression*) _tmp96_);
4828 _vala_ccode_node_unref0 (_tmp96_);
4829 _vala_ccode_node_unref0 (_tmp94_);
4830 first = FALSE;
4831 } else {
4832 ValaCCodeFunction* _tmp97_;
4833 ValaCCodeFunction* _tmp98_;
4834 ValaCCodeFunctionCall* _tmp99_;
4835 ValaCCodeConstant* _tmp100_;
4836 ValaCCodeConstant* _tmp101_;
4837 ValaCCodeBinaryExpression* _tmp102_;
4838 ValaCCodeBinaryExpression* _tmp103_;
4839 _tmp97_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4840 _tmp98_ = _tmp97_;
4841 _tmp99_ = ccheck;
4842 _tmp100_ = vala_ccode_constant_new ("0");
4843 _tmp101_ = _tmp100_;
4844 _tmp102_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp99_, (ValaCCodeExpression*) _tmp101_);
4845 _tmp103_ = _tmp102_;
4846 vala_ccode_function_else_if (_tmp98_, (ValaCCodeExpression*) _tmp103_);
4847 _vala_ccode_node_unref0 (_tmp103_);
4848 _vala_ccode_node_unref0 (_tmp101_);
4849 }
4850 _tmp104_ = m;
4851 _tmp105_ = vala_gd_bus_server_module_generate_dbus_wrapper (self, _tmp104_, sym, FALSE);
4852 _tmp106_ = _tmp105_;
4853 _tmp107_ = vala_ccode_identifier_new (_tmp106_);
4854 _tmp108_ = _tmp107_;
4855 _tmp109_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp108_);
4856 _tmp110_ = _tmp109_;
4857 _vala_ccode_node_unref0 (_tmp108_);
4858 _g_free0 (_tmp106_);
4859 ccall = _tmp110_;
4860 _tmp111_ = ccall;
4861 _tmp112_ = vala_ccode_identifier_new ("object");
4862 _tmp113_ = _tmp112_;
4863 vala_ccode_function_call_add_argument (_tmp111_, (ValaCCodeExpression*) _tmp113_);
4864 _vala_ccode_node_unref0 (_tmp113_);
4865 _tmp114_ = ccall;
4866 _tmp115_ = vala_ccode_identifier_new ("parameters");
4867 _tmp116_ = _tmp115_;
4868 vala_ccode_function_call_add_argument (_tmp114_, (ValaCCodeExpression*) _tmp116_);
4869 _vala_ccode_node_unref0 (_tmp116_);
4870 _tmp117_ = ccall;
4871 _tmp118_ = vala_ccode_identifier_new ("invocation");
4872 _tmp119_ = _tmp118_;
4873 vala_ccode_function_call_add_argument (_tmp117_, (ValaCCodeExpression*) _tmp119_);
4874 _vala_ccode_node_unref0 (_tmp119_);
4875 _tmp120_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4876 _tmp121_ = _tmp120_;
4877 _tmp122_ = ccall;
4878 vala_ccode_function_add_expression (_tmp121_, (ValaCCodeExpression*) _tmp122_);
4879 _vala_ccode_node_unref0 (ccall);
4880 _vala_ccode_node_unref0 (ccheck);
4881 _vala_code_node_unref0 (m);
4882 }
4883 _vala_iterable_unref0 (_m_list);
4884 }
4885 if (!first) {
4886 ValaCCodeFunction* _tmp123_;
4887 ValaCCodeFunction* _tmp124_;
4888 _tmp123_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4889 _tmp124_ = _tmp123_;
4890 vala_ccode_function_add_else (_tmp124_);
4891 }
4892 _tmp125_ = vala_ccode_identifier_new ("g_object_unref");
4893 _tmp126_ = _tmp125_;
4894 _tmp127_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp126_);
4895 _tmp128_ = _tmp127_;
4896 _vala_ccode_node_unref0 (_tmp126_);
4897 ccall = _tmp128_;
4898 _tmp129_ = ccall;
4899 _tmp130_ = vala_ccode_identifier_new ("invocation");
4900 _tmp131_ = _tmp130_;
4901 vala_ccode_function_call_add_argument (_tmp129_, (ValaCCodeExpression*) _tmp131_);
4902 _vala_ccode_node_unref0 (_tmp131_);
4903 _tmp132_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4904 _tmp133_ = _tmp132_;
4905 _tmp134_ = ccall;
4906 vala_ccode_function_add_expression (_tmp133_, (ValaCCodeExpression*) _tmp134_);
4907 if (!first) {
4908 ValaCCodeFunction* _tmp135_;
4909 ValaCCodeFunction* _tmp136_;
4910 _tmp135_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
4911 _tmp136_ = _tmp135_;
4912 vala_ccode_function_close (_tmp136_);
4913 }
4914 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
4915 _tmp137_ = ((ValaCCodeBaseModule*) self)->cfile;
4916 _tmp138_ = cfunc;
4917 vala_ccode_file_add_function_declaration (_tmp137_, _tmp138_);
4918 _tmp139_ = ((ValaCCodeBaseModule*) self)->cfile;
4919 _tmp140_ = cfunc;
4920 vala_ccode_file_add_function (_tmp139_, _tmp140_);
4921 _vala_ccode_node_unref0 (ccall);
4922 _vala_ccode_node_unref0 (cfunc);
4923 }
4924
4925 static void
vala_gd_bus_server_module_generate_interface_get_property_function(ValaGDBusServerModule * self,ValaObjectTypeSymbol * sym)4926 vala_gd_bus_server_module_generate_interface_get_property_function (ValaGDBusServerModule* self,
4927 ValaObjectTypeSymbol* sym)
4928 {
4929 ValaCCodeFunction* cfunc = NULL;
4930 gchar* _tmp0_;
4931 gchar* _tmp1_;
4932 gchar* _tmp2_;
4933 gchar* _tmp3_;
4934 ValaCCodeFunction* _tmp4_;
4935 ValaCCodeFunction* _tmp5_;
4936 ValaCCodeFunction* _tmp6_;
4937 ValaCCodeParameter* _tmp7_;
4938 ValaCCodeParameter* _tmp8_;
4939 ValaCCodeFunction* _tmp9_;
4940 ValaCCodeParameter* _tmp10_;
4941 ValaCCodeParameter* _tmp11_;
4942 ValaCCodeFunction* _tmp12_;
4943 ValaCCodeParameter* _tmp13_;
4944 ValaCCodeParameter* _tmp14_;
4945 ValaCCodeFunction* _tmp15_;
4946 ValaCCodeParameter* _tmp16_;
4947 ValaCCodeParameter* _tmp17_;
4948 ValaCCodeFunction* _tmp18_;
4949 ValaCCodeParameter* _tmp19_;
4950 ValaCCodeParameter* _tmp20_;
4951 ValaCCodeFunction* _tmp21_;
4952 ValaCCodeParameter* _tmp22_;
4953 ValaCCodeParameter* _tmp23_;
4954 ValaCCodeFunction* _tmp24_;
4955 ValaCCodeParameter* _tmp25_;
4956 ValaCCodeParameter* _tmp26_;
4957 ValaCCodeFunction* _tmp27_;
4958 ValaCCodeFunction* _tmp28_;
4959 ValaCCodeModifiers _tmp29_;
4960 ValaCCodeModifiers _tmp30_;
4961 ValaCCodeFile* _tmp31_;
4962 ValaCCodeFunction* _tmp32_;
4963 ValaCCodeFunction* _tmp33_;
4964 ValaCCodeFunction* _tmp34_;
4965 ValaCCodeFunction* _tmp35_;
4966 ValaCCodeIdentifier* _tmp36_;
4967 ValaCCodeIdentifier* _tmp37_;
4968 ValaCCodeVariableDeclarator* _tmp38_;
4969 ValaCCodeVariableDeclarator* _tmp39_;
4970 ValaCCodeFunction* _tmp40_;
4971 ValaCCodeFunction* _tmp41_;
4972 ValaCCodeIdentifier* _tmp42_;
4973 ValaCCodeIdentifier* _tmp43_;
4974 ValaCCodeConstant* _tmp44_;
4975 ValaCCodeConstant* _tmp45_;
4976 ValaCCodeElementAccess* _tmp46_;
4977 ValaCCodeElementAccess* _tmp47_;
4978 ValaCCodeVariableDeclarator* _tmp48_;
4979 ValaCCodeVariableDeclarator* _tmp49_;
4980 gboolean firstif = FALSE;
4981 ValaCCodeFunction* _tmp116_;
4982 ValaCCodeFunction* _tmp117_;
4983 ValaCCodeConstant* _tmp118_;
4984 ValaCCodeConstant* _tmp119_;
4985 ValaCCodeFile* _tmp120_;
4986 ValaCCodeFunction* _tmp121_;
4987 g_return_if_fail (self != NULL);
4988 g_return_if_fail (sym != NULL);
4989 _tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
4990 _tmp1_ = _tmp0_;
4991 _tmp2_ = g_strconcat (_tmp1_, "dbus_interface_get_property", NULL);
4992 _tmp3_ = _tmp2_;
4993 _tmp4_ = vala_ccode_function_new (_tmp3_, "GVariant*");
4994 _tmp5_ = _tmp4_;
4995 _g_free0 (_tmp3_);
4996 _g_free0 (_tmp1_);
4997 cfunc = _tmp5_;
4998 _tmp6_ = cfunc;
4999 _tmp7_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
5000 _tmp8_ = _tmp7_;
5001 vala_ccode_function_add_parameter (_tmp6_, _tmp8_);
5002 _vala_ccode_node_unref0 (_tmp8_);
5003 _tmp9_ = cfunc;
5004 _tmp10_ = vala_ccode_parameter_new ("sender", "const gchar*");
5005 _tmp11_ = _tmp10_;
5006 vala_ccode_function_add_parameter (_tmp9_, _tmp11_);
5007 _vala_ccode_node_unref0 (_tmp11_);
5008 _tmp12_ = cfunc;
5009 _tmp13_ = vala_ccode_parameter_new ("object_path", "const gchar*");
5010 _tmp14_ = _tmp13_;
5011 vala_ccode_function_add_parameter (_tmp12_, _tmp14_);
5012 _vala_ccode_node_unref0 (_tmp14_);
5013 _tmp15_ = cfunc;
5014 _tmp16_ = vala_ccode_parameter_new ("interface_name", "const gchar*");
5015 _tmp17_ = _tmp16_;
5016 vala_ccode_function_add_parameter (_tmp15_, _tmp17_);
5017 _vala_ccode_node_unref0 (_tmp17_);
5018 _tmp18_ = cfunc;
5019 _tmp19_ = vala_ccode_parameter_new ("property_name", "const gchar*");
5020 _tmp20_ = _tmp19_;
5021 vala_ccode_function_add_parameter (_tmp18_, _tmp20_);
5022 _vala_ccode_node_unref0 (_tmp20_);
5023 _tmp21_ = cfunc;
5024 _tmp22_ = vala_ccode_parameter_new ("error", "GError**");
5025 _tmp23_ = _tmp22_;
5026 vala_ccode_function_add_parameter (_tmp21_, _tmp23_);
5027 _vala_ccode_node_unref0 (_tmp23_);
5028 _tmp24_ = cfunc;
5029 _tmp25_ = vala_ccode_parameter_new ("user_data", "gpointer");
5030 _tmp26_ = _tmp25_;
5031 vala_ccode_function_add_parameter (_tmp24_, _tmp26_);
5032 _vala_ccode_node_unref0 (_tmp26_);
5033 _tmp27_ = cfunc;
5034 _tmp28_ = cfunc;
5035 _tmp29_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp28_);
5036 _tmp30_ = _tmp29_;
5037 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp28_, _tmp30_ | VALA_CCODE_MODIFIERS_STATIC);
5038 _tmp31_ = ((ValaCCodeBaseModule*) self)->cfile;
5039 _tmp32_ = cfunc;
5040 vala_ccode_file_add_function_declaration (_tmp31_, _tmp32_);
5041 _tmp33_ = cfunc;
5042 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp33_);
5043 _tmp34_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5044 _tmp35_ = _tmp34_;
5045 _tmp36_ = vala_ccode_identifier_new ("user_data");
5046 _tmp37_ = _tmp36_;
5047 _tmp38_ = vala_ccode_variable_declarator_new ("data", (ValaCCodeExpression*) _tmp37_, NULL);
5048 _tmp39_ = _tmp38_;
5049 vala_ccode_function_add_declaration (_tmp35_, "gpointer*", (ValaCCodeDeclarator*) _tmp39_, 0);
5050 _vala_ccode_node_unref0 (_tmp39_);
5051 _vala_ccode_node_unref0 (_tmp37_);
5052 _tmp40_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5053 _tmp41_ = _tmp40_;
5054 _tmp42_ = vala_ccode_identifier_new ("data");
5055 _tmp43_ = _tmp42_;
5056 _tmp44_ = vala_ccode_constant_new ("0");
5057 _tmp45_ = _tmp44_;
5058 _tmp46_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp43_, (ValaCCodeExpression*) _tmp45_);
5059 _tmp47_ = _tmp46_;
5060 _tmp48_ = vala_ccode_variable_declarator_new ("object", (ValaCCodeExpression*) _tmp47_, NULL);
5061 _tmp49_ = _tmp48_;
5062 vala_ccode_function_add_declaration (_tmp41_, "gpointer", (ValaCCodeDeclarator*) _tmp49_, 0);
5063 _vala_ccode_node_unref0 (_tmp49_);
5064 _vala_ccode_node_unref0 (_tmp47_);
5065 _vala_ccode_node_unref0 (_tmp45_);
5066 _vala_ccode_node_unref0 (_tmp43_);
5067 firstif = TRUE;
5068 {
5069 ValaList* _prop_list = NULL;
5070 ValaList* _tmp50_;
5071 ValaList* _tmp51_;
5072 gint _prop_size = 0;
5073 ValaList* _tmp52_;
5074 gint _tmp53_;
5075 gint _tmp54_;
5076 gint _prop_index = 0;
5077 _tmp50_ = vala_object_type_symbol_get_properties (sym);
5078 _tmp51_ = _vala_iterable_ref0 (_tmp50_);
5079 _prop_list = _tmp51_;
5080 _tmp52_ = _prop_list;
5081 _tmp53_ = vala_collection_get_size ((ValaCollection*) _tmp52_);
5082 _tmp54_ = _tmp53_;
5083 _prop_size = _tmp54_;
5084 _prop_index = -1;
5085 while (TRUE) {
5086 gint _tmp55_;
5087 gint _tmp56_;
5088 ValaProperty* prop = NULL;
5089 ValaList* _tmp57_;
5090 gpointer _tmp58_;
5091 gboolean _tmp59_ = FALSE;
5092 gboolean _tmp60_ = FALSE;
5093 ValaProperty* _tmp61_;
5094 ValaMemberBinding _tmp62_;
5095 ValaMemberBinding _tmp63_;
5096 ValaProperty* _tmp70_;
5097 ValaProperty* _tmp71_;
5098 ValaPropertyAccessor* _tmp72_;
5099 ValaPropertyAccessor* _tmp73_;
5100 ValaCCodeFile* _tmp74_;
5101 ValaCCodeFunctionCall* ccheck = NULL;
5102 ValaCCodeIdentifier* _tmp75_;
5103 ValaCCodeIdentifier* _tmp76_;
5104 ValaCCodeFunctionCall* _tmp77_;
5105 ValaCCodeFunctionCall* _tmp78_;
5106 ValaCCodeFunctionCall* _tmp79_;
5107 ValaCCodeIdentifier* _tmp80_;
5108 ValaCCodeIdentifier* _tmp81_;
5109 ValaCCodeFunctionCall* _tmp82_;
5110 ValaProperty* _tmp83_;
5111 gchar* _tmp84_;
5112 gchar* _tmp85_;
5113 gchar* _tmp86_;
5114 gchar* _tmp87_;
5115 ValaCCodeConstant* _tmp88_;
5116 ValaCCodeConstant* _tmp89_;
5117 ValaCCodeBinaryExpression* cond = NULL;
5118 ValaCCodeFunctionCall* _tmp90_;
5119 ValaCCodeConstant* _tmp91_;
5120 ValaCCodeConstant* _tmp92_;
5121 ValaCCodeBinaryExpression* _tmp93_;
5122 ValaCCodeBinaryExpression* _tmp94_;
5123 ValaCCodeFunctionCall* ccall = NULL;
5124 ValaProperty* _tmp101_;
5125 gchar* _tmp102_;
5126 gchar* _tmp103_;
5127 ValaCCodeIdentifier* _tmp104_;
5128 ValaCCodeIdentifier* _tmp105_;
5129 ValaCCodeFunctionCall* _tmp106_;
5130 ValaCCodeFunctionCall* _tmp107_;
5131 ValaCCodeFunctionCall* _tmp108_;
5132 ValaCCodeIdentifier* _tmp109_;
5133 ValaCCodeIdentifier* _tmp110_;
5134 ValaCCodeFunction* _tmp111_;
5135 ValaCCodeFunction* _tmp112_;
5136 ValaCCodeFunctionCall* _tmp113_;
5137 _prop_index = _prop_index + 1;
5138 _tmp55_ = _prop_index;
5139 _tmp56_ = _prop_size;
5140 if (!(_tmp55_ < _tmp56_)) {
5141 break;
5142 }
5143 _tmp57_ = _prop_list;
5144 _tmp58_ = vala_list_get (_tmp57_, _prop_index);
5145 prop = (ValaProperty*) _tmp58_;
5146 _tmp61_ = prop;
5147 _tmp62_ = vala_property_get_binding (_tmp61_);
5148 _tmp63_ = _tmp62_;
5149 if (_tmp63_ != VALA_MEMBER_BINDING_INSTANCE) {
5150 _tmp60_ = TRUE;
5151 } else {
5152 ValaProperty* _tmp64_;
5153 gboolean _tmp65_;
5154 gboolean _tmp66_;
5155 _tmp64_ = prop;
5156 _tmp65_ = vala_property_get_overrides (_tmp64_);
5157 _tmp66_ = _tmp65_;
5158 _tmp60_ = _tmp66_;
5159 }
5160 if (_tmp60_) {
5161 _tmp59_ = TRUE;
5162 } else {
5163 ValaProperty* _tmp67_;
5164 ValaSymbolAccessibility _tmp68_;
5165 ValaSymbolAccessibility _tmp69_;
5166 _tmp67_ = prop;
5167 _tmp68_ = vala_symbol_get_access ((ValaSymbol*) _tmp67_);
5168 _tmp69_ = _tmp68_;
5169 _tmp59_ = _tmp69_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
5170 }
5171 if (_tmp59_) {
5172 _vala_code_node_unref0 (prop);
5173 continue;
5174 }
5175 _tmp70_ = prop;
5176 if (!vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp70_)) {
5177 _vala_code_node_unref0 (prop);
5178 continue;
5179 }
5180 _tmp71_ = prop;
5181 _tmp72_ = vala_property_get_get_accessor (_tmp71_);
5182 _tmp73_ = _tmp72_;
5183 if (_tmp73_ == NULL) {
5184 _vala_code_node_unref0 (prop);
5185 continue;
5186 }
5187 _tmp74_ = ((ValaCCodeBaseModule*) self)->cfile;
5188 vala_ccode_file_add_include (_tmp74_, "string.h", FALSE);
5189 _tmp75_ = vala_ccode_identifier_new ("strcmp");
5190 _tmp76_ = _tmp75_;
5191 _tmp77_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp76_);
5192 _tmp78_ = _tmp77_;
5193 _vala_ccode_node_unref0 (_tmp76_);
5194 ccheck = _tmp78_;
5195 _tmp79_ = ccheck;
5196 _tmp80_ = vala_ccode_identifier_new ("property_name");
5197 _tmp81_ = _tmp80_;
5198 vala_ccode_function_call_add_argument (_tmp79_, (ValaCCodeExpression*) _tmp81_);
5199 _vala_ccode_node_unref0 (_tmp81_);
5200 _tmp82_ = ccheck;
5201 _tmp83_ = prop;
5202 _tmp84_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp83_);
5203 _tmp85_ = _tmp84_;
5204 _tmp86_ = g_strdup_printf ("\"%s\"", _tmp85_);
5205 _tmp87_ = _tmp86_;
5206 _tmp88_ = vala_ccode_constant_new (_tmp87_);
5207 _tmp89_ = _tmp88_;
5208 vala_ccode_function_call_add_argument (_tmp82_, (ValaCCodeExpression*) _tmp89_);
5209 _vala_ccode_node_unref0 (_tmp89_);
5210 _g_free0 (_tmp87_);
5211 _g_free0 (_tmp85_);
5212 _tmp90_ = ccheck;
5213 _tmp91_ = vala_ccode_constant_new ("0");
5214 _tmp92_ = _tmp91_;
5215 _tmp93_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp90_, (ValaCCodeExpression*) _tmp92_);
5216 _tmp94_ = _tmp93_;
5217 _vala_ccode_node_unref0 (_tmp92_);
5218 cond = _tmp94_;
5219 if (firstif) {
5220 ValaCCodeFunction* _tmp95_;
5221 ValaCCodeFunction* _tmp96_;
5222 ValaCCodeBinaryExpression* _tmp97_;
5223 _tmp95_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5224 _tmp96_ = _tmp95_;
5225 _tmp97_ = cond;
5226 vala_ccode_function_open_if (_tmp96_, (ValaCCodeExpression*) _tmp97_);
5227 firstif = FALSE;
5228 } else {
5229 ValaCCodeFunction* _tmp98_;
5230 ValaCCodeFunction* _tmp99_;
5231 ValaCCodeBinaryExpression* _tmp100_;
5232 _tmp98_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5233 _tmp99_ = _tmp98_;
5234 _tmp100_ = cond;
5235 vala_ccode_function_else_if (_tmp99_, (ValaCCodeExpression*) _tmp100_);
5236 }
5237 _tmp101_ = prop;
5238 _tmp102_ = vala_gd_bus_server_module_generate_dbus_property_get_wrapper (self, _tmp101_, sym);
5239 _tmp103_ = _tmp102_;
5240 _tmp104_ = vala_ccode_identifier_new (_tmp103_);
5241 _tmp105_ = _tmp104_;
5242 _tmp106_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp105_);
5243 _tmp107_ = _tmp106_;
5244 _vala_ccode_node_unref0 (_tmp105_);
5245 _g_free0 (_tmp103_);
5246 ccall = _tmp107_;
5247 _tmp108_ = ccall;
5248 _tmp109_ = vala_ccode_identifier_new ("object");
5249 _tmp110_ = _tmp109_;
5250 vala_ccode_function_call_add_argument (_tmp108_, (ValaCCodeExpression*) _tmp110_);
5251 _vala_ccode_node_unref0 (_tmp110_);
5252 _tmp111_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5253 _tmp112_ = _tmp111_;
5254 _tmp113_ = ccall;
5255 vala_ccode_function_add_return (_tmp112_, (ValaCCodeExpression*) _tmp113_);
5256 _vala_ccode_node_unref0 (ccall);
5257 _vala_ccode_node_unref0 (cond);
5258 _vala_ccode_node_unref0 (ccheck);
5259 _vala_code_node_unref0 (prop);
5260 }
5261 _vala_iterable_unref0 (_prop_list);
5262 }
5263 if (!firstif) {
5264 ValaCCodeFunction* _tmp114_;
5265 ValaCCodeFunction* _tmp115_;
5266 _tmp114_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5267 _tmp115_ = _tmp114_;
5268 vala_ccode_function_close (_tmp115_);
5269 }
5270 _tmp116_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5271 _tmp117_ = _tmp116_;
5272 _tmp118_ = vala_ccode_constant_new ("NULL");
5273 _tmp119_ = _tmp118_;
5274 vala_ccode_function_add_return (_tmp117_, (ValaCCodeExpression*) _tmp119_);
5275 _vala_ccode_node_unref0 (_tmp119_);
5276 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
5277 _tmp120_ = ((ValaCCodeBaseModule*) self)->cfile;
5278 _tmp121_ = cfunc;
5279 vala_ccode_file_add_function (_tmp120_, _tmp121_);
5280 _vala_ccode_node_unref0 (cfunc);
5281 }
5282
5283 static void
vala_gd_bus_server_module_generate_interface_set_property_function(ValaGDBusServerModule * self,ValaObjectTypeSymbol * sym)5284 vala_gd_bus_server_module_generate_interface_set_property_function (ValaGDBusServerModule* self,
5285 ValaObjectTypeSymbol* sym)
5286 {
5287 ValaCCodeFunction* cfunc = NULL;
5288 gchar* _tmp0_;
5289 gchar* _tmp1_;
5290 gchar* _tmp2_;
5291 gchar* _tmp3_;
5292 ValaCCodeFunction* _tmp4_;
5293 ValaCCodeFunction* _tmp5_;
5294 ValaCCodeFunction* _tmp6_;
5295 ValaCCodeParameter* _tmp7_;
5296 ValaCCodeParameter* _tmp8_;
5297 ValaCCodeFunction* _tmp9_;
5298 ValaCCodeParameter* _tmp10_;
5299 ValaCCodeParameter* _tmp11_;
5300 ValaCCodeFunction* _tmp12_;
5301 ValaCCodeParameter* _tmp13_;
5302 ValaCCodeParameter* _tmp14_;
5303 ValaCCodeFunction* _tmp15_;
5304 ValaCCodeParameter* _tmp16_;
5305 ValaCCodeParameter* _tmp17_;
5306 ValaCCodeFunction* _tmp18_;
5307 ValaCCodeParameter* _tmp19_;
5308 ValaCCodeParameter* _tmp20_;
5309 ValaCCodeFunction* _tmp21_;
5310 ValaCCodeParameter* _tmp22_;
5311 ValaCCodeParameter* _tmp23_;
5312 ValaCCodeFunction* _tmp24_;
5313 ValaCCodeParameter* _tmp25_;
5314 ValaCCodeParameter* _tmp26_;
5315 ValaCCodeFunction* _tmp27_;
5316 ValaCCodeParameter* _tmp28_;
5317 ValaCCodeParameter* _tmp29_;
5318 ValaCCodeFunction* _tmp30_;
5319 ValaCCodeFunction* _tmp31_;
5320 ValaCCodeModifiers _tmp32_;
5321 ValaCCodeModifiers _tmp33_;
5322 ValaCCodeFile* _tmp34_;
5323 ValaCCodeFunction* _tmp35_;
5324 ValaCCodeFunction* _tmp36_;
5325 ValaCCodeFunction* _tmp37_;
5326 ValaCCodeFunction* _tmp38_;
5327 ValaCCodeIdentifier* _tmp39_;
5328 ValaCCodeIdentifier* _tmp40_;
5329 ValaCCodeVariableDeclarator* _tmp41_;
5330 ValaCCodeVariableDeclarator* _tmp42_;
5331 ValaCCodeFunction* _tmp43_;
5332 ValaCCodeFunction* _tmp44_;
5333 ValaCCodeIdentifier* _tmp45_;
5334 ValaCCodeIdentifier* _tmp46_;
5335 ValaCCodeConstant* _tmp47_;
5336 ValaCCodeConstant* _tmp48_;
5337 ValaCCodeElementAccess* _tmp49_;
5338 ValaCCodeElementAccess* _tmp50_;
5339 ValaCCodeVariableDeclarator* _tmp51_;
5340 ValaCCodeVariableDeclarator* _tmp52_;
5341 gboolean firstif = FALSE;
5342 ValaCCodeFunction* _tmp126_;
5343 ValaCCodeFunction* _tmp127_;
5344 ValaCCodeConstant* _tmp128_;
5345 ValaCCodeConstant* _tmp129_;
5346 ValaCCodeFile* _tmp130_;
5347 ValaCCodeFunction* _tmp131_;
5348 g_return_if_fail (self != NULL);
5349 g_return_if_fail (sym != NULL);
5350 _tmp0_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
5351 _tmp1_ = _tmp0_;
5352 _tmp2_ = g_strconcat (_tmp1_, "dbus_interface_set_property", NULL);
5353 _tmp3_ = _tmp2_;
5354 _tmp4_ = vala_ccode_function_new (_tmp3_, "gboolean");
5355 _tmp5_ = _tmp4_;
5356 _g_free0 (_tmp3_);
5357 _g_free0 (_tmp1_);
5358 cfunc = _tmp5_;
5359 _tmp6_ = cfunc;
5360 _tmp7_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
5361 _tmp8_ = _tmp7_;
5362 vala_ccode_function_add_parameter (_tmp6_, _tmp8_);
5363 _vala_ccode_node_unref0 (_tmp8_);
5364 _tmp9_ = cfunc;
5365 _tmp10_ = vala_ccode_parameter_new ("sender", "const gchar*");
5366 _tmp11_ = _tmp10_;
5367 vala_ccode_function_add_parameter (_tmp9_, _tmp11_);
5368 _vala_ccode_node_unref0 (_tmp11_);
5369 _tmp12_ = cfunc;
5370 _tmp13_ = vala_ccode_parameter_new ("object_path", "const gchar*");
5371 _tmp14_ = _tmp13_;
5372 vala_ccode_function_add_parameter (_tmp12_, _tmp14_);
5373 _vala_ccode_node_unref0 (_tmp14_);
5374 _tmp15_ = cfunc;
5375 _tmp16_ = vala_ccode_parameter_new ("interface_name", "const gchar*");
5376 _tmp17_ = _tmp16_;
5377 vala_ccode_function_add_parameter (_tmp15_, _tmp17_);
5378 _vala_ccode_node_unref0 (_tmp17_);
5379 _tmp18_ = cfunc;
5380 _tmp19_ = vala_ccode_parameter_new ("property_name", "const gchar*");
5381 _tmp20_ = _tmp19_;
5382 vala_ccode_function_add_parameter (_tmp18_, _tmp20_);
5383 _vala_ccode_node_unref0 (_tmp20_);
5384 _tmp21_ = cfunc;
5385 _tmp22_ = vala_ccode_parameter_new ("value", "GVariant*");
5386 _tmp23_ = _tmp22_;
5387 vala_ccode_function_add_parameter (_tmp21_, _tmp23_);
5388 _vala_ccode_node_unref0 (_tmp23_);
5389 _tmp24_ = cfunc;
5390 _tmp25_ = vala_ccode_parameter_new ("error", "GError**");
5391 _tmp26_ = _tmp25_;
5392 vala_ccode_function_add_parameter (_tmp24_, _tmp26_);
5393 _vala_ccode_node_unref0 (_tmp26_);
5394 _tmp27_ = cfunc;
5395 _tmp28_ = vala_ccode_parameter_new ("user_data", "gpointer");
5396 _tmp29_ = _tmp28_;
5397 vala_ccode_function_add_parameter (_tmp27_, _tmp29_);
5398 _vala_ccode_node_unref0 (_tmp29_);
5399 _tmp30_ = cfunc;
5400 _tmp31_ = cfunc;
5401 _tmp32_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp31_);
5402 _tmp33_ = _tmp32_;
5403 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp31_, _tmp33_ | VALA_CCODE_MODIFIERS_STATIC);
5404 _tmp34_ = ((ValaCCodeBaseModule*) self)->cfile;
5405 _tmp35_ = cfunc;
5406 vala_ccode_file_add_function_declaration (_tmp34_, _tmp35_);
5407 _tmp36_ = cfunc;
5408 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp36_);
5409 _tmp37_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5410 _tmp38_ = _tmp37_;
5411 _tmp39_ = vala_ccode_identifier_new ("user_data");
5412 _tmp40_ = _tmp39_;
5413 _tmp41_ = vala_ccode_variable_declarator_new ("data", (ValaCCodeExpression*) _tmp40_, NULL);
5414 _tmp42_ = _tmp41_;
5415 vala_ccode_function_add_declaration (_tmp38_, "gpointer*", (ValaCCodeDeclarator*) _tmp42_, 0);
5416 _vala_ccode_node_unref0 (_tmp42_);
5417 _vala_ccode_node_unref0 (_tmp40_);
5418 _tmp43_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5419 _tmp44_ = _tmp43_;
5420 _tmp45_ = vala_ccode_identifier_new ("data");
5421 _tmp46_ = _tmp45_;
5422 _tmp47_ = vala_ccode_constant_new ("0");
5423 _tmp48_ = _tmp47_;
5424 _tmp49_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp46_, (ValaCCodeExpression*) _tmp48_);
5425 _tmp50_ = _tmp49_;
5426 _tmp51_ = vala_ccode_variable_declarator_new ("object", (ValaCCodeExpression*) _tmp50_, NULL);
5427 _tmp52_ = _tmp51_;
5428 vala_ccode_function_add_declaration (_tmp44_, "gpointer", (ValaCCodeDeclarator*) _tmp52_, 0);
5429 _vala_ccode_node_unref0 (_tmp52_);
5430 _vala_ccode_node_unref0 (_tmp50_);
5431 _vala_ccode_node_unref0 (_tmp48_);
5432 _vala_ccode_node_unref0 (_tmp46_);
5433 firstif = TRUE;
5434 {
5435 ValaList* _prop_list = NULL;
5436 ValaList* _tmp53_;
5437 ValaList* _tmp54_;
5438 gint _prop_size = 0;
5439 ValaList* _tmp55_;
5440 gint _tmp56_;
5441 gint _tmp57_;
5442 gint _prop_index = 0;
5443 _tmp53_ = vala_object_type_symbol_get_properties (sym);
5444 _tmp54_ = _vala_iterable_ref0 (_tmp53_);
5445 _prop_list = _tmp54_;
5446 _tmp55_ = _prop_list;
5447 _tmp56_ = vala_collection_get_size ((ValaCollection*) _tmp55_);
5448 _tmp57_ = _tmp56_;
5449 _prop_size = _tmp57_;
5450 _prop_index = -1;
5451 while (TRUE) {
5452 gint _tmp58_;
5453 gint _tmp59_;
5454 ValaProperty* prop = NULL;
5455 ValaList* _tmp60_;
5456 gpointer _tmp61_;
5457 gboolean _tmp62_ = FALSE;
5458 gboolean _tmp63_ = FALSE;
5459 ValaProperty* _tmp64_;
5460 ValaMemberBinding _tmp65_;
5461 ValaMemberBinding _tmp66_;
5462 ValaProperty* _tmp73_;
5463 ValaProperty* _tmp74_;
5464 ValaPropertyAccessor* _tmp75_;
5465 ValaPropertyAccessor* _tmp76_;
5466 ValaCCodeFile* _tmp77_;
5467 ValaCCodeFunctionCall* ccheck = NULL;
5468 ValaCCodeIdentifier* _tmp78_;
5469 ValaCCodeIdentifier* _tmp79_;
5470 ValaCCodeFunctionCall* _tmp80_;
5471 ValaCCodeFunctionCall* _tmp81_;
5472 ValaCCodeFunctionCall* _tmp82_;
5473 ValaCCodeIdentifier* _tmp83_;
5474 ValaCCodeIdentifier* _tmp84_;
5475 ValaCCodeFunctionCall* _tmp85_;
5476 ValaProperty* _tmp86_;
5477 gchar* _tmp87_;
5478 gchar* _tmp88_;
5479 gchar* _tmp89_;
5480 gchar* _tmp90_;
5481 ValaCCodeConstant* _tmp91_;
5482 ValaCCodeConstant* _tmp92_;
5483 ValaCCodeBinaryExpression* cond = NULL;
5484 ValaCCodeFunctionCall* _tmp93_;
5485 ValaCCodeConstant* _tmp94_;
5486 ValaCCodeConstant* _tmp95_;
5487 ValaCCodeBinaryExpression* _tmp96_;
5488 ValaCCodeBinaryExpression* _tmp97_;
5489 ValaCCodeFunctionCall* ccall = NULL;
5490 ValaProperty* _tmp104_;
5491 gchar* _tmp105_;
5492 gchar* _tmp106_;
5493 ValaCCodeIdentifier* _tmp107_;
5494 ValaCCodeIdentifier* _tmp108_;
5495 ValaCCodeFunctionCall* _tmp109_;
5496 ValaCCodeFunctionCall* _tmp110_;
5497 ValaCCodeFunctionCall* _tmp111_;
5498 ValaCCodeIdentifier* _tmp112_;
5499 ValaCCodeIdentifier* _tmp113_;
5500 ValaCCodeFunctionCall* _tmp114_;
5501 ValaCCodeIdentifier* _tmp115_;
5502 ValaCCodeIdentifier* _tmp116_;
5503 ValaCCodeFunction* _tmp117_;
5504 ValaCCodeFunction* _tmp118_;
5505 ValaCCodeFunctionCall* _tmp119_;
5506 ValaCCodeFunction* _tmp120_;
5507 ValaCCodeFunction* _tmp121_;
5508 ValaCCodeConstant* _tmp122_;
5509 ValaCCodeConstant* _tmp123_;
5510 _prop_index = _prop_index + 1;
5511 _tmp58_ = _prop_index;
5512 _tmp59_ = _prop_size;
5513 if (!(_tmp58_ < _tmp59_)) {
5514 break;
5515 }
5516 _tmp60_ = _prop_list;
5517 _tmp61_ = vala_list_get (_tmp60_, _prop_index);
5518 prop = (ValaProperty*) _tmp61_;
5519 _tmp64_ = prop;
5520 _tmp65_ = vala_property_get_binding (_tmp64_);
5521 _tmp66_ = _tmp65_;
5522 if (_tmp66_ != VALA_MEMBER_BINDING_INSTANCE) {
5523 _tmp63_ = TRUE;
5524 } else {
5525 ValaProperty* _tmp67_;
5526 gboolean _tmp68_;
5527 gboolean _tmp69_;
5528 _tmp67_ = prop;
5529 _tmp68_ = vala_property_get_overrides (_tmp67_);
5530 _tmp69_ = _tmp68_;
5531 _tmp63_ = _tmp69_;
5532 }
5533 if (_tmp63_) {
5534 _tmp62_ = TRUE;
5535 } else {
5536 ValaProperty* _tmp70_;
5537 ValaSymbolAccessibility _tmp71_;
5538 ValaSymbolAccessibility _tmp72_;
5539 _tmp70_ = prop;
5540 _tmp71_ = vala_symbol_get_access ((ValaSymbol*) _tmp70_);
5541 _tmp72_ = _tmp71_;
5542 _tmp62_ = _tmp72_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
5543 }
5544 if (_tmp62_) {
5545 _vala_code_node_unref0 (prop);
5546 continue;
5547 }
5548 _tmp73_ = prop;
5549 if (!vala_gd_bus_module_is_dbus_visible ((ValaCodeNode*) _tmp73_)) {
5550 _vala_code_node_unref0 (prop);
5551 continue;
5552 }
5553 _tmp74_ = prop;
5554 _tmp75_ = vala_property_get_set_accessor (_tmp74_);
5555 _tmp76_ = _tmp75_;
5556 if (_tmp76_ == NULL) {
5557 _vala_code_node_unref0 (prop);
5558 continue;
5559 }
5560 _tmp77_ = ((ValaCCodeBaseModule*) self)->cfile;
5561 vala_ccode_file_add_include (_tmp77_, "string.h", FALSE);
5562 _tmp78_ = vala_ccode_identifier_new ("strcmp");
5563 _tmp79_ = _tmp78_;
5564 _tmp80_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp79_);
5565 _tmp81_ = _tmp80_;
5566 _vala_ccode_node_unref0 (_tmp79_);
5567 ccheck = _tmp81_;
5568 _tmp82_ = ccheck;
5569 _tmp83_ = vala_ccode_identifier_new ("property_name");
5570 _tmp84_ = _tmp83_;
5571 vala_ccode_function_call_add_argument (_tmp82_, (ValaCCodeExpression*) _tmp84_);
5572 _vala_ccode_node_unref0 (_tmp84_);
5573 _tmp85_ = ccheck;
5574 _tmp86_ = prop;
5575 _tmp87_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp86_);
5576 _tmp88_ = _tmp87_;
5577 _tmp89_ = g_strdup_printf ("\"%s\"", _tmp88_);
5578 _tmp90_ = _tmp89_;
5579 _tmp91_ = vala_ccode_constant_new (_tmp90_);
5580 _tmp92_ = _tmp91_;
5581 vala_ccode_function_call_add_argument (_tmp85_, (ValaCCodeExpression*) _tmp92_);
5582 _vala_ccode_node_unref0 (_tmp92_);
5583 _g_free0 (_tmp90_);
5584 _g_free0 (_tmp88_);
5585 _tmp93_ = ccheck;
5586 _tmp94_ = vala_ccode_constant_new ("0");
5587 _tmp95_ = _tmp94_;
5588 _tmp96_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp93_, (ValaCCodeExpression*) _tmp95_);
5589 _tmp97_ = _tmp96_;
5590 _vala_ccode_node_unref0 (_tmp95_);
5591 cond = _tmp97_;
5592 if (firstif) {
5593 ValaCCodeFunction* _tmp98_;
5594 ValaCCodeFunction* _tmp99_;
5595 ValaCCodeBinaryExpression* _tmp100_;
5596 _tmp98_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5597 _tmp99_ = _tmp98_;
5598 _tmp100_ = cond;
5599 vala_ccode_function_open_if (_tmp99_, (ValaCCodeExpression*) _tmp100_);
5600 firstif = FALSE;
5601 } else {
5602 ValaCCodeFunction* _tmp101_;
5603 ValaCCodeFunction* _tmp102_;
5604 ValaCCodeBinaryExpression* _tmp103_;
5605 _tmp101_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5606 _tmp102_ = _tmp101_;
5607 _tmp103_ = cond;
5608 vala_ccode_function_else_if (_tmp102_, (ValaCCodeExpression*) _tmp103_);
5609 }
5610 _tmp104_ = prop;
5611 _tmp105_ = vala_gd_bus_server_module_generate_dbus_property_set_wrapper (self, _tmp104_, sym);
5612 _tmp106_ = _tmp105_;
5613 _tmp107_ = vala_ccode_identifier_new (_tmp106_);
5614 _tmp108_ = _tmp107_;
5615 _tmp109_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp108_);
5616 _tmp110_ = _tmp109_;
5617 _vala_ccode_node_unref0 (_tmp108_);
5618 _g_free0 (_tmp106_);
5619 ccall = _tmp110_;
5620 _tmp111_ = ccall;
5621 _tmp112_ = vala_ccode_identifier_new ("object");
5622 _tmp113_ = _tmp112_;
5623 vala_ccode_function_call_add_argument (_tmp111_, (ValaCCodeExpression*) _tmp113_);
5624 _vala_ccode_node_unref0 (_tmp113_);
5625 _tmp114_ = ccall;
5626 _tmp115_ = vala_ccode_identifier_new ("value");
5627 _tmp116_ = _tmp115_;
5628 vala_ccode_function_call_add_argument (_tmp114_, (ValaCCodeExpression*) _tmp116_);
5629 _vala_ccode_node_unref0 (_tmp116_);
5630 _tmp117_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5631 _tmp118_ = _tmp117_;
5632 _tmp119_ = ccall;
5633 vala_ccode_function_add_expression (_tmp118_, (ValaCCodeExpression*) _tmp119_);
5634 _tmp120_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5635 _tmp121_ = _tmp120_;
5636 _tmp122_ = vala_ccode_constant_new ("TRUE");
5637 _tmp123_ = _tmp122_;
5638 vala_ccode_function_add_return (_tmp121_, (ValaCCodeExpression*) _tmp123_);
5639 _vala_ccode_node_unref0 (_tmp123_);
5640 _vala_ccode_node_unref0 (ccall);
5641 _vala_ccode_node_unref0 (cond);
5642 _vala_ccode_node_unref0 (ccheck);
5643 _vala_code_node_unref0 (prop);
5644 }
5645 _vala_iterable_unref0 (_prop_list);
5646 }
5647 if (!firstif) {
5648 ValaCCodeFunction* _tmp124_;
5649 ValaCCodeFunction* _tmp125_;
5650 _tmp124_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5651 _tmp125_ = _tmp124_;
5652 vala_ccode_function_close (_tmp125_);
5653 }
5654 _tmp126_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5655 _tmp127_ = _tmp126_;
5656 _tmp128_ = vala_ccode_constant_new ("FALSE");
5657 _tmp129_ = _tmp128_;
5658 vala_ccode_function_add_return (_tmp127_, (ValaCCodeExpression*) _tmp129_);
5659 _vala_ccode_node_unref0 (_tmp129_);
5660 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
5661 _tmp130_ = ((ValaCCodeBaseModule*) self)->cfile;
5662 _tmp131_ = cfunc;
5663 vala_ccode_file_add_function (_tmp130_, _tmp131_);
5664 _vala_ccode_node_unref0 (cfunc);
5665 }
5666
5667 static ValaCCodeExpression*
vala_gd_bus_server_module_get_interface_vtable(ValaGDBusServerModule * self,ValaObjectTypeSymbol * sym)5668 vala_gd_bus_server_module_get_interface_vtable (ValaGDBusServerModule* self,
5669 ValaObjectTypeSymbol* sym)
5670 {
5671 ValaCCodeInitializerList* vtable = NULL;
5672 ValaCCodeInitializerList* _tmp0_;
5673 gchar* _tmp1_;
5674 gchar* _tmp2_;
5675 gchar* _tmp3_;
5676 gchar* _tmp4_;
5677 ValaCCodeIdentifier* _tmp5_;
5678 ValaCCodeIdentifier* _tmp6_;
5679 gchar* _tmp7_;
5680 gchar* _tmp8_;
5681 gchar* _tmp9_;
5682 gchar* _tmp10_;
5683 ValaCCodeIdentifier* _tmp11_;
5684 ValaCCodeIdentifier* _tmp12_;
5685 gchar* _tmp13_;
5686 gchar* _tmp14_;
5687 gchar* _tmp15_;
5688 gchar* _tmp16_;
5689 ValaCCodeIdentifier* _tmp17_;
5690 ValaCCodeIdentifier* _tmp18_;
5691 ValaCCodeDeclaration* _cdecl_ = NULL;
5692 ValaCCodeDeclaration* _tmp19_;
5693 gchar* _tmp20_;
5694 gchar* _tmp21_;
5695 gchar* _tmp22_;
5696 gchar* _tmp23_;
5697 gchar* _tmp24_;
5698 gchar* _tmp25_;
5699 ValaCCodeVariableDeclarator* _tmp26_;
5700 ValaCCodeVariableDeclarator* _tmp27_;
5701 ValaCCodeFile* _tmp28_;
5702 gchar* _tmp29_;
5703 gchar* _tmp30_;
5704 gchar* _tmp31_;
5705 gchar* _tmp32_;
5706 gchar* _tmp33_;
5707 gchar* _tmp34_;
5708 ValaCCodeIdentifier* _tmp35_;
5709 ValaCCodeExpression* _tmp36_;
5710 ValaCCodeExpression* result = NULL;
5711 g_return_val_if_fail (self != NULL, NULL);
5712 g_return_val_if_fail (sym != NULL, NULL);
5713 _tmp0_ = vala_ccode_initializer_list_new ();
5714 vtable = _tmp0_;
5715 _tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
5716 _tmp2_ = _tmp1_;
5717 _tmp3_ = g_strconcat (_tmp2_, "dbus_interface_method_call", NULL);
5718 _tmp4_ = _tmp3_;
5719 _tmp5_ = vala_ccode_identifier_new (_tmp4_);
5720 _tmp6_ = _tmp5_;
5721 vala_ccode_initializer_list_append (vtable, (ValaCCodeExpression*) _tmp6_);
5722 _vala_ccode_node_unref0 (_tmp6_);
5723 _g_free0 (_tmp4_);
5724 _g_free0 (_tmp2_);
5725 _tmp7_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
5726 _tmp8_ = _tmp7_;
5727 _tmp9_ = g_strconcat (_tmp8_, "dbus_interface_get_property", NULL);
5728 _tmp10_ = _tmp9_;
5729 _tmp11_ = vala_ccode_identifier_new (_tmp10_);
5730 _tmp12_ = _tmp11_;
5731 vala_ccode_initializer_list_append (vtable, (ValaCCodeExpression*) _tmp12_);
5732 _vala_ccode_node_unref0 (_tmp12_);
5733 _g_free0 (_tmp10_);
5734 _g_free0 (_tmp8_);
5735 _tmp13_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
5736 _tmp14_ = _tmp13_;
5737 _tmp15_ = g_strconcat (_tmp14_, "dbus_interface_set_property", NULL);
5738 _tmp16_ = _tmp15_;
5739 _tmp17_ = vala_ccode_identifier_new (_tmp16_);
5740 _tmp18_ = _tmp17_;
5741 vala_ccode_initializer_list_append (vtable, (ValaCCodeExpression*) _tmp18_);
5742 _vala_ccode_node_unref0 (_tmp18_);
5743 _g_free0 (_tmp16_);
5744 _g_free0 (_tmp14_);
5745 vala_gd_bus_server_module_generate_interface_method_call_function (self, sym);
5746 vala_gd_bus_server_module_generate_interface_get_property_function (self, sym);
5747 vala_gd_bus_server_module_generate_interface_set_property_function (self, sym);
5748 _tmp19_ = vala_ccode_declaration_new ("const GDBusInterfaceVTable");
5749 _cdecl_ = _tmp19_;
5750 _tmp20_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
5751 _tmp21_ = _tmp20_;
5752 _tmp22_ = g_strconcat ("_", _tmp21_, NULL);
5753 _tmp23_ = _tmp22_;
5754 _tmp24_ = g_strconcat (_tmp23_, "dbus_interface_vtable", NULL);
5755 _tmp25_ = _tmp24_;
5756 _tmp26_ = vala_ccode_variable_declarator_new (_tmp25_, (ValaCCodeExpression*) vtable, NULL);
5757 _tmp27_ = _tmp26_;
5758 vala_ccode_declaration_add_declarator (_cdecl_, (ValaCCodeDeclarator*) _tmp27_);
5759 _vala_ccode_node_unref0 (_tmp27_);
5760 _g_free0 (_tmp25_);
5761 _g_free0 (_tmp23_);
5762 _g_free0 (_tmp21_);
5763 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _cdecl_, VALA_CCODE_MODIFIERS_STATIC);
5764 _tmp28_ = ((ValaCCodeBaseModule*) self)->cfile;
5765 vala_ccode_file_add_constant_declaration (_tmp28_, (ValaCCodeNode*) _cdecl_);
5766 _tmp29_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
5767 _tmp30_ = _tmp29_;
5768 _tmp31_ = g_strconcat ("_", _tmp30_, NULL);
5769 _tmp32_ = _tmp31_;
5770 _tmp33_ = g_strconcat (_tmp32_, "dbus_interface_vtable", NULL);
5771 _tmp34_ = _tmp33_;
5772 _tmp35_ = vala_ccode_identifier_new (_tmp34_);
5773 _tmp36_ = (ValaCCodeExpression*) _tmp35_;
5774 _g_free0 (_tmp34_);
5775 _g_free0 (_tmp32_);
5776 _g_free0 (_tmp30_);
5777 result = _tmp36_;
5778 _vala_ccode_node_unref0 (_cdecl_);
5779 _vala_ccode_node_unref0 (vtable);
5780 return result;
5781 }
5782
5783 static gchar*
vala_gd_bus_server_module_generate_register_object_function(ValaGDBusServerModule * self)5784 vala_gd_bus_server_module_generate_register_object_function (ValaGDBusServerModule* self)
5785 {
5786 gchar* register_object_func = NULL;
5787 gchar* _tmp0_;
5788 const gchar* _tmp1_;
5789 ValaCCodeFile* _tmp2_;
5790 ValaCCodeFunction* function = NULL;
5791 const gchar* _tmp3_;
5792 ValaCCodeFunction* _tmp4_;
5793 ValaCCodeFunction* _tmp5_;
5794 ValaCCodeFunction* _tmp6_;
5795 ValaCCodeParameter* _tmp7_;
5796 ValaCCodeParameter* _tmp8_;
5797 ValaCCodeFunction* _tmp9_;
5798 ValaCCodeParameter* _tmp10_;
5799 ValaCCodeParameter* _tmp11_;
5800 ValaCCodeFunction* _tmp12_;
5801 ValaCCodeParameter* _tmp13_;
5802 ValaCCodeParameter* _tmp14_;
5803 ValaCCodeFunction* _tmp15_;
5804 ValaCCodeParameter* _tmp16_;
5805 ValaCCodeParameter* _tmp17_;
5806 ValaCCodeFunction* _tmp18_;
5807 ValaCCodeParameter* _tmp19_;
5808 ValaCCodeParameter* _tmp20_;
5809 ValaCCodeFunction* _tmp21_;
5810 ValaCCodeFunctionCall* quark = NULL;
5811 ValaCCodeIdentifier* _tmp22_;
5812 ValaCCodeIdentifier* _tmp23_;
5813 ValaCCodeFunctionCall* _tmp24_;
5814 ValaCCodeFunctionCall* _tmp25_;
5815 ValaCCodeFunctionCall* _tmp26_;
5816 ValaCCodeConstant* _tmp27_;
5817 ValaCCodeConstant* _tmp28_;
5818 ValaCCodeFunctionCall* get_qdata = NULL;
5819 ValaCCodeIdentifier* _tmp29_;
5820 ValaCCodeIdentifier* _tmp30_;
5821 ValaCCodeFunctionCall* _tmp31_;
5822 ValaCCodeFunctionCall* _tmp32_;
5823 ValaCCodeFunctionCall* _tmp33_;
5824 ValaCCodeIdentifier* _tmp34_;
5825 ValaCCodeIdentifier* _tmp35_;
5826 ValaCCodeFunctionCall* _tmp36_;
5827 ValaCCodeFunctionCall* _tmp37_;
5828 ValaCCodeFunction* _tmp38_;
5829 ValaCCodeFunction* _tmp39_;
5830 ValaCCodeVariableDeclarator* _tmp40_;
5831 ValaCCodeVariableDeclarator* _tmp41_;
5832 ValaCCodeFunction* _tmp42_;
5833 ValaCCodeFunction* _tmp43_;
5834 ValaCCodeIdentifier* _tmp44_;
5835 ValaCCodeIdentifier* _tmp45_;
5836 ValaCCodeFunctionCall* _tmp46_;
5837 ValaCCodeFunction* _tmp47_;
5838 ValaCCodeFunction* _tmp48_;
5839 ValaCCodeIdentifier* _tmp49_;
5840 ValaCCodeIdentifier* _tmp50_;
5841 ValaCCodeUnaryExpression* _tmp51_;
5842 ValaCCodeUnaryExpression* _tmp52_;
5843 ValaCCodeFunctionCall* set_error = NULL;
5844 ValaCCodeIdentifier* _tmp53_;
5845 ValaCCodeIdentifier* _tmp54_;
5846 ValaCCodeFunctionCall* _tmp55_;
5847 ValaCCodeFunctionCall* _tmp56_;
5848 ValaCCodeFunctionCall* _tmp57_;
5849 ValaCCodeIdentifier* _tmp58_;
5850 ValaCCodeIdentifier* _tmp59_;
5851 ValaCCodeFunctionCall* _tmp60_;
5852 ValaCCodeIdentifier* _tmp61_;
5853 ValaCCodeIdentifier* _tmp62_;
5854 ValaCCodeFunctionCall* _tmp63_;
5855 ValaCCodeIdentifier* _tmp64_;
5856 ValaCCodeIdentifier* _tmp65_;
5857 ValaCCodeFunctionCall* _tmp66_;
5858 ValaCCodeConstant* _tmp67_;
5859 ValaCCodeConstant* _tmp68_;
5860 ValaCCodeFunction* _tmp69_;
5861 ValaCCodeFunction* _tmp70_;
5862 ValaCCodeFunctionCall* _tmp71_;
5863 ValaCCodeFunction* _tmp72_;
5864 ValaCCodeFunction* _tmp73_;
5865 ValaCCodeConstant* _tmp74_;
5866 ValaCCodeConstant* _tmp75_;
5867 ValaCCodeFunction* _tmp76_;
5868 ValaCCodeFunction* _tmp77_;
5869 ValaCCodeCastExpression* register_object = NULL;
5870 ValaCCodeIdentifier* _tmp78_;
5871 ValaCCodeIdentifier* _tmp79_;
5872 ValaCCodeCastExpression* _tmp80_;
5873 ValaCCodeCastExpression* _tmp81_;
5874 ValaCCodeFunctionCall* ccall = NULL;
5875 ValaCCodeCastExpression* _tmp82_;
5876 ValaCCodeFunctionCall* _tmp83_;
5877 ValaCCodeFunctionCall* _tmp84_;
5878 ValaCCodeIdentifier* _tmp85_;
5879 ValaCCodeIdentifier* _tmp86_;
5880 ValaCCodeFunctionCall* _tmp87_;
5881 ValaCCodeIdentifier* _tmp88_;
5882 ValaCCodeIdentifier* _tmp89_;
5883 ValaCCodeFunctionCall* _tmp90_;
5884 ValaCCodeIdentifier* _tmp91_;
5885 ValaCCodeIdentifier* _tmp92_;
5886 ValaCCodeFunctionCall* _tmp93_;
5887 ValaCCodeIdentifier* _tmp94_;
5888 ValaCCodeIdentifier* _tmp95_;
5889 ValaCCodeFunction* _tmp96_;
5890 ValaCCodeFunction* _tmp97_;
5891 ValaCCodeFunctionCall* _tmp98_;
5892 ValaCCodeFile* _tmp99_;
5893 ValaCCodeFunction* _tmp100_;
5894 ValaCCodeFile* _tmp101_;
5895 ValaCCodeFunction* _tmp102_;
5896 gchar* result = NULL;
5897 g_return_val_if_fail (self != NULL, NULL);
5898 _tmp0_ = g_strdup ("_vala_g_dbus_connection_register_object");
5899 register_object_func = _tmp0_;
5900 _tmp1_ = register_object_func;
5901 if (!vala_ccode_base_module_add_wrapper ((ValaCCodeBaseModule*) self, _tmp1_)) {
5902 result = register_object_func;
5903 return result;
5904 }
5905 _tmp2_ = ((ValaCCodeBaseModule*) self)->cfile;
5906 vala_ccode_file_add_include (_tmp2_, "gio/gio.h", FALSE);
5907 _tmp3_ = register_object_func;
5908 _tmp4_ = vala_ccode_function_new (_tmp3_, "guint");
5909 function = _tmp4_;
5910 _tmp5_ = function;
5911 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp5_, VALA_CCODE_MODIFIERS_STATIC);
5912 _tmp6_ = function;
5913 _tmp7_ = vala_ccode_parameter_new ("type", "GType");
5914 _tmp8_ = _tmp7_;
5915 vala_ccode_function_add_parameter (_tmp6_, _tmp8_);
5916 _vala_ccode_node_unref0 (_tmp8_);
5917 _tmp9_ = function;
5918 _tmp10_ = vala_ccode_parameter_new ("object", "void*");
5919 _tmp11_ = _tmp10_;
5920 vala_ccode_function_add_parameter (_tmp9_, _tmp11_);
5921 _vala_ccode_node_unref0 (_tmp11_);
5922 _tmp12_ = function;
5923 _tmp13_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
5924 _tmp14_ = _tmp13_;
5925 vala_ccode_function_add_parameter (_tmp12_, _tmp14_);
5926 _vala_ccode_node_unref0 (_tmp14_);
5927 _tmp15_ = function;
5928 _tmp16_ = vala_ccode_parameter_new ("path", "const gchar*");
5929 _tmp17_ = _tmp16_;
5930 vala_ccode_function_add_parameter (_tmp15_, _tmp17_);
5931 _vala_ccode_node_unref0 (_tmp17_);
5932 _tmp18_ = function;
5933 _tmp19_ = vala_ccode_parameter_new ("error", "GError**");
5934 _tmp20_ = _tmp19_;
5935 vala_ccode_function_add_parameter (_tmp18_, _tmp20_);
5936 _vala_ccode_node_unref0 (_tmp20_);
5937 _tmp21_ = function;
5938 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp21_);
5939 _tmp22_ = vala_ccode_identifier_new ("g_quark_from_static_string");
5940 _tmp23_ = _tmp22_;
5941 _tmp24_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp23_);
5942 _tmp25_ = _tmp24_;
5943 _vala_ccode_node_unref0 (_tmp23_);
5944 quark = _tmp25_;
5945 _tmp26_ = quark;
5946 _tmp27_ = vala_ccode_constant_new ("\"vala-dbus-register-object\"");
5947 _tmp28_ = _tmp27_;
5948 vala_ccode_function_call_add_argument (_tmp26_, (ValaCCodeExpression*) _tmp28_);
5949 _vala_ccode_node_unref0 (_tmp28_);
5950 _tmp29_ = vala_ccode_identifier_new ("g_type_get_qdata");
5951 _tmp30_ = _tmp29_;
5952 _tmp31_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp30_);
5953 _tmp32_ = _tmp31_;
5954 _vala_ccode_node_unref0 (_tmp30_);
5955 get_qdata = _tmp32_;
5956 _tmp33_ = get_qdata;
5957 _tmp34_ = vala_ccode_identifier_new ("type");
5958 _tmp35_ = _tmp34_;
5959 vala_ccode_function_call_add_argument (_tmp33_, (ValaCCodeExpression*) _tmp35_);
5960 _vala_ccode_node_unref0 (_tmp35_);
5961 _tmp36_ = get_qdata;
5962 _tmp37_ = quark;
5963 vala_ccode_function_call_add_argument (_tmp36_, (ValaCCodeExpression*) _tmp37_);
5964 _tmp38_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5965 _tmp39_ = _tmp38_;
5966 _tmp40_ = vala_ccode_variable_declarator_new ("*func", NULL, NULL);
5967 _tmp41_ = _tmp40_;
5968 vala_ccode_function_add_declaration (_tmp39_, "void", (ValaCCodeDeclarator*) _tmp41_, 0);
5969 _vala_ccode_node_unref0 (_tmp41_);
5970 _tmp42_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5971 _tmp43_ = _tmp42_;
5972 _tmp44_ = vala_ccode_identifier_new ("func");
5973 _tmp45_ = _tmp44_;
5974 _tmp46_ = get_qdata;
5975 vala_ccode_function_add_assignment (_tmp43_, (ValaCCodeExpression*) _tmp45_, (ValaCCodeExpression*) _tmp46_);
5976 _vala_ccode_node_unref0 (_tmp45_);
5977 _tmp47_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
5978 _tmp48_ = _tmp47_;
5979 _tmp49_ = vala_ccode_identifier_new ("func");
5980 _tmp50_ = _tmp49_;
5981 _tmp51_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp50_);
5982 _tmp52_ = _tmp51_;
5983 vala_ccode_function_open_if (_tmp48_, (ValaCCodeExpression*) _tmp52_);
5984 _vala_ccode_node_unref0 (_tmp52_);
5985 _vala_ccode_node_unref0 (_tmp50_);
5986 _tmp53_ = vala_ccode_identifier_new ("g_set_error_literal");
5987 _tmp54_ = _tmp53_;
5988 _tmp55_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp54_);
5989 _tmp56_ = _tmp55_;
5990 _vala_ccode_node_unref0 (_tmp54_);
5991 set_error = _tmp56_;
5992 _tmp57_ = set_error;
5993 _tmp58_ = vala_ccode_identifier_new ("error");
5994 _tmp59_ = _tmp58_;
5995 vala_ccode_function_call_add_argument (_tmp57_, (ValaCCodeExpression*) _tmp59_);
5996 _vala_ccode_node_unref0 (_tmp59_);
5997 _tmp60_ = set_error;
5998 _tmp61_ = vala_ccode_identifier_new ("G_IO_ERROR");
5999 _tmp62_ = _tmp61_;
6000 vala_ccode_function_call_add_argument (_tmp60_, (ValaCCodeExpression*) _tmp62_);
6001 _vala_ccode_node_unref0 (_tmp62_);
6002 _tmp63_ = set_error;
6003 _tmp64_ = vala_ccode_identifier_new ("G_IO_ERROR_FAILED");
6004 _tmp65_ = _tmp64_;
6005 vala_ccode_function_call_add_argument (_tmp63_, (ValaCCodeExpression*) _tmp65_);
6006 _vala_ccode_node_unref0 (_tmp65_);
6007 _tmp66_ = set_error;
6008 _tmp67_ = vala_ccode_constant_new ("\"The specified type does not support D-Bus registration\"");
6009 _tmp68_ = _tmp67_;
6010 vala_ccode_function_call_add_argument (_tmp66_, (ValaCCodeExpression*) _tmp68_);
6011 _vala_ccode_node_unref0 (_tmp68_);
6012 _tmp69_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6013 _tmp70_ = _tmp69_;
6014 _tmp71_ = set_error;
6015 vala_ccode_function_add_expression (_tmp70_, (ValaCCodeExpression*) _tmp71_);
6016 _tmp72_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6017 _tmp73_ = _tmp72_;
6018 _tmp74_ = vala_ccode_constant_new ("0");
6019 _tmp75_ = _tmp74_;
6020 vala_ccode_function_add_return (_tmp73_, (ValaCCodeExpression*) _tmp75_);
6021 _vala_ccode_node_unref0 (_tmp75_);
6022 _tmp76_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6023 _tmp77_ = _tmp76_;
6024 vala_ccode_function_close (_tmp77_);
6025 _tmp78_ = vala_ccode_identifier_new ("func");
6026 _tmp79_ = _tmp78_;
6027 _tmp80_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp79_, "guint (*) (void *, GDBusConnection *, const gchar *, GError **)");
6028 _tmp81_ = _tmp80_;
6029 _vala_ccode_node_unref0 (_tmp79_);
6030 register_object = _tmp81_;
6031 _tmp82_ = register_object;
6032 _tmp83_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp82_);
6033 ccall = _tmp83_;
6034 _tmp84_ = ccall;
6035 _tmp85_ = vala_ccode_identifier_new ("object");
6036 _tmp86_ = _tmp85_;
6037 vala_ccode_function_call_add_argument (_tmp84_, (ValaCCodeExpression*) _tmp86_);
6038 _vala_ccode_node_unref0 (_tmp86_);
6039 _tmp87_ = ccall;
6040 _tmp88_ = vala_ccode_identifier_new ("connection");
6041 _tmp89_ = _tmp88_;
6042 vala_ccode_function_call_add_argument (_tmp87_, (ValaCCodeExpression*) _tmp89_);
6043 _vala_ccode_node_unref0 (_tmp89_);
6044 _tmp90_ = ccall;
6045 _tmp91_ = vala_ccode_identifier_new ("path");
6046 _tmp92_ = _tmp91_;
6047 vala_ccode_function_call_add_argument (_tmp90_, (ValaCCodeExpression*) _tmp92_);
6048 _vala_ccode_node_unref0 (_tmp92_);
6049 _tmp93_ = ccall;
6050 _tmp94_ = vala_ccode_identifier_new ("error");
6051 _tmp95_ = _tmp94_;
6052 vala_ccode_function_call_add_argument (_tmp93_, (ValaCCodeExpression*) _tmp95_);
6053 _vala_ccode_node_unref0 (_tmp95_);
6054 _tmp96_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6055 _tmp97_ = _tmp96_;
6056 _tmp98_ = ccall;
6057 vala_ccode_function_add_return (_tmp97_, (ValaCCodeExpression*) _tmp98_);
6058 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
6059 _tmp99_ = ((ValaCCodeBaseModule*) self)->cfile;
6060 _tmp100_ = function;
6061 vala_ccode_file_add_function_declaration (_tmp99_, _tmp100_);
6062 _tmp101_ = ((ValaCCodeBaseModule*) self)->cfile;
6063 _tmp102_ = function;
6064 vala_ccode_file_add_function (_tmp101_, _tmp102_);
6065 result = register_object_func;
6066 _vala_ccode_node_unref0 (ccall);
6067 _vala_ccode_node_unref0 (register_object);
6068 _vala_ccode_node_unref0 (set_error);
6069 _vala_ccode_node_unref0 (get_qdata);
6070 _vala_ccode_node_unref0 (quark);
6071 _vala_ccode_node_unref0 (function);
6072 return result;
6073 }
6074
6075 static void
vala_gd_bus_server_module_real_visit_method_call(ValaCodeVisitor * base,ValaMethodCall * expr)6076 vala_gd_bus_server_module_real_visit_method_call (ValaCodeVisitor* base,
6077 ValaMethodCall* expr)
6078 {
6079 ValaGDBusServerModule * self;
6080 ValaMethodType* mtype = NULL;
6081 ValaExpression* _tmp0_;
6082 ValaExpression* _tmp1_;
6083 ValaDataType* _tmp2_;
6084 ValaDataType* _tmp3_;
6085 ValaMethodType* _tmp4_;
6086 gboolean _tmp5_ = FALSE;
6087 ValaMethodType* _tmp6_;
6088 ValaMemberAccess* ma = NULL;
6089 ValaExpression* _tmp12_;
6090 ValaExpression* _tmp13_;
6091 ValaMemberAccess* _tmp14_;
6092 ValaDataType* type_arg = NULL;
6093 ValaMemberAccess* _tmp15_;
6094 ValaList* _tmp16_;
6095 gpointer _tmp17_;
6096 ValaCCodeFunctionCall* cregister = NULL;
6097 ValaObjectType* object_type = NULL;
6098 ValaDataType* _tmp18_;
6099 ValaObjectType* _tmp19_;
6100 ValaObjectType* _tmp20_;
6101 ValaList* args = NULL;
6102 ValaList* _tmp48_;
6103 ValaList* _tmp49_;
6104 ValaExpression* path_arg = NULL;
6105 ValaList* _tmp50_;
6106 gpointer _tmp51_;
6107 ValaExpression* obj_arg = NULL;
6108 ValaList* _tmp52_;
6109 gpointer _tmp53_;
6110 ValaCCodeFunctionCall* _tmp54_;
6111 ValaExpression* _tmp55_;
6112 ValaCCodeExpression* _tmp56_;
6113 ValaCCodeFunctionCall* _tmp57_;
6114 ValaMemberAccess* _tmp58_;
6115 ValaExpression* _tmp59_;
6116 ValaExpression* _tmp60_;
6117 ValaCCodeExpression* _tmp61_;
6118 ValaCCodeFunctionCall* _tmp62_;
6119 ValaExpression* _tmp63_;
6120 ValaCCodeExpression* _tmp64_;
6121 ValaCCodeFunctionCall* _tmp65_;
6122 ValaCCodeExpression* _tmp66_;
6123 ValaCCodeExpression* _tmp67_;
6124 ValaCCodeUnaryExpression* _tmp68_;
6125 ValaCCodeUnaryExpression* _tmp69_;
6126 ValaCodeNode* _tmp70_;
6127 ValaCodeNode* _tmp71_;
6128 self = (ValaGDBusServerModule*) base;
6129 g_return_if_fail (expr != NULL);
6130 _tmp0_ = vala_method_call_get_call (expr);
6131 _tmp1_ = _tmp0_;
6132 _tmp2_ = vala_expression_get_value_type (_tmp1_);
6133 _tmp3_ = _tmp2_;
6134 _tmp4_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, VALA_TYPE_METHOD_TYPE) ? ((ValaMethodType*) _tmp3_) : NULL);
6135 mtype = _tmp4_;
6136 _tmp6_ = mtype;
6137 if (_tmp6_ == NULL) {
6138 _tmp5_ = TRUE;
6139 } else {
6140 ValaMethodType* _tmp7_;
6141 ValaMethod* _tmp8_;
6142 ValaMethod* _tmp9_;
6143 gchar* _tmp10_;
6144 gchar* _tmp11_;
6145 _tmp7_ = mtype;
6146 _tmp8_ = vala_method_type_get_method_symbol (_tmp7_);
6147 _tmp9_ = _tmp8_;
6148 _tmp10_ = vala_get_ccode_name ((ValaCodeNode*) _tmp9_);
6149 _tmp11_ = _tmp10_;
6150 _tmp5_ = g_strcmp0 (_tmp11_, "g_dbus_connection_register_object") != 0;
6151 _g_free0 (_tmp11_);
6152 }
6153 if (_tmp5_) {
6154 VALA_CODE_VISITOR_CLASS (vala_gd_bus_server_module_parent_class)->visit_method_call ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), expr);
6155 _vala_code_node_unref0 (mtype);
6156 return;
6157 }
6158 _tmp12_ = vala_method_call_get_call (expr);
6159 _tmp13_ = _tmp12_;
6160 _tmp14_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess));
6161 ma = _tmp14_;
6162 _tmp15_ = ma;
6163 _tmp16_ = vala_member_access_get_type_arguments (_tmp15_);
6164 _tmp17_ = vala_list_get (_tmp16_, 0);
6165 type_arg = (ValaDataType*) _tmp17_;
6166 _tmp18_ = type_arg;
6167 _tmp19_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp18_, VALA_TYPE_OBJECT_TYPE) ? ((ValaObjectType*) _tmp18_) : NULL);
6168 object_type = _tmp19_;
6169 _tmp20_ = object_type;
6170 if (_tmp20_ != NULL) {
6171 ValaObjectType* _tmp21_;
6172 ValaTypeSymbol* _tmp22_;
6173 ValaTypeSymbol* _tmp23_;
6174 gchar* _tmp24_;
6175 gchar* _tmp25_;
6176 gboolean _tmp26_;
6177 ValaObjectType* _tmp29_;
6178 ValaTypeSymbol* _tmp30_;
6179 ValaTypeSymbol* _tmp31_;
6180 gchar* _tmp32_;
6181 gchar* _tmp33_;
6182 gchar* _tmp34_;
6183 gchar* _tmp35_;
6184 ValaCCodeIdentifier* _tmp36_;
6185 ValaCCodeIdentifier* _tmp37_;
6186 ValaCCodeFunctionCall* _tmp38_;
6187 _tmp21_ = object_type;
6188 _tmp22_ = vala_data_type_get_type_symbol ((ValaDataType*) _tmp21_);
6189 _tmp23_ = _tmp22_;
6190 _tmp24_ = vala_gd_bus_module_get_dbus_name (_tmp23_);
6191 _tmp25_ = _tmp24_;
6192 _tmp26_ = _tmp25_ == NULL;
6193 _g_free0 (_tmp25_);
6194 if (_tmp26_) {
6195 ValaSourceReference* _tmp27_;
6196 ValaSourceReference* _tmp28_;
6197 _tmp27_ = vala_code_node_get_source_reference ((ValaCodeNode*) expr);
6198 _tmp28_ = _tmp27_;
6199 vala_report_error (_tmp28_, "DBusConnection.register_object requires type argument with [DBus (name" \
6200 " = ...)] attribute");
6201 _vala_code_node_unref0 (object_type);
6202 _vala_ccode_node_unref0 (cregister);
6203 _vala_code_node_unref0 (type_arg);
6204 _vala_code_node_unref0 (ma);
6205 _vala_code_node_unref0 (mtype);
6206 return;
6207 }
6208 _tmp29_ = object_type;
6209 _tmp30_ = vala_data_type_get_type_symbol ((ValaDataType*) _tmp29_);
6210 _tmp31_ = _tmp30_;
6211 _tmp32_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp31_);
6212 _tmp33_ = _tmp32_;
6213 _tmp34_ = g_strdup_printf ("%sregister_object", _tmp33_);
6214 _tmp35_ = _tmp34_;
6215 _tmp36_ = vala_ccode_identifier_new (_tmp35_);
6216 _tmp37_ = _tmp36_;
6217 _tmp38_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp37_);
6218 _vala_ccode_node_unref0 (cregister);
6219 cregister = _tmp38_;
6220 _vala_ccode_node_unref0 (_tmp37_);
6221 _g_free0 (_tmp35_);
6222 _g_free0 (_tmp33_);
6223 } else {
6224 gchar* _tmp39_;
6225 gchar* _tmp40_;
6226 ValaCCodeIdentifier* _tmp41_;
6227 ValaCCodeIdentifier* _tmp42_;
6228 ValaCCodeFunctionCall* _tmp43_;
6229 ValaCCodeFunctionCall* _tmp44_;
6230 ValaDataType* _tmp45_;
6231 ValaCCodeExpression* _tmp46_;
6232 ValaCCodeExpression* _tmp47_;
6233 _tmp39_ = vala_gd_bus_server_module_generate_register_object_function (self);
6234 _tmp40_ = _tmp39_;
6235 _tmp41_ = vala_ccode_identifier_new (_tmp40_);
6236 _tmp42_ = _tmp41_;
6237 _tmp43_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp42_);
6238 _vala_ccode_node_unref0 (cregister);
6239 cregister = _tmp43_;
6240 _vala_ccode_node_unref0 (_tmp42_);
6241 _g_free0 (_tmp40_);
6242 _tmp44_ = cregister;
6243 _tmp45_ = type_arg;
6244 _tmp46_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp45_, FALSE);
6245 _tmp47_ = _tmp46_;
6246 vala_ccode_function_call_add_argument (_tmp44_, _tmp47_);
6247 _vala_ccode_node_unref0 (_tmp47_);
6248 }
6249 _tmp48_ = vala_method_call_get_argument_list (expr);
6250 _tmp49_ = _vala_iterable_ref0 (_tmp48_);
6251 args = _tmp49_;
6252 _tmp50_ = args;
6253 _tmp51_ = vala_list_get (_tmp50_, 0);
6254 path_arg = (ValaExpression*) _tmp51_;
6255 _tmp52_ = args;
6256 _tmp53_ = vala_list_get (_tmp52_, 1);
6257 obj_arg = (ValaExpression*) _tmp53_;
6258 vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
6259 _tmp54_ = cregister;
6260 _tmp55_ = obj_arg;
6261 _tmp56_ = vala_get_cvalue (_tmp55_);
6262 vala_ccode_function_call_add_argument (_tmp54_, _tmp56_);
6263 _tmp57_ = cregister;
6264 _tmp58_ = ma;
6265 _tmp59_ = vala_member_access_get_inner (_tmp58_);
6266 _tmp60_ = _tmp59_;
6267 _tmp61_ = vala_get_cvalue (_tmp60_);
6268 vala_ccode_function_call_add_argument (_tmp57_, _tmp61_);
6269 _tmp62_ = cregister;
6270 _tmp63_ = path_arg;
6271 _tmp64_ = vala_get_cvalue (_tmp63_);
6272 vala_ccode_function_call_add_argument (_tmp62_, _tmp64_);
6273 _tmp65_ = cregister;
6274 _tmp66_ = vala_ccode_base_module_get_inner_error_cexpression ((ValaCCodeBaseModule*) self);
6275 _tmp67_ = _tmp66_;
6276 _tmp68_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp67_);
6277 _tmp69_ = _tmp68_;
6278 vala_ccode_function_call_add_argument (_tmp65_, (ValaCCodeExpression*) _tmp69_);
6279 _vala_ccode_node_unref0 (_tmp69_);
6280 _vala_ccode_node_unref0 (_tmp67_);
6281 _tmp70_ = vala_code_node_get_parent_node ((ValaCodeNode*) expr);
6282 _tmp71_ = _tmp70_;
6283 if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp71_, VALA_TYPE_EXPRESSION_STATEMENT)) {
6284 ValaCCodeFunction* _tmp72_;
6285 ValaCCodeFunction* _tmp73_;
6286 ValaCCodeFunctionCall* _tmp74_;
6287 _tmp72_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6288 _tmp73_ = _tmp72_;
6289 _tmp74_ = cregister;
6290 vala_ccode_function_add_expression (_tmp73_, (ValaCCodeExpression*) _tmp74_);
6291 } else {
6292 ValaLocalVariable* temp_var = NULL;
6293 ValaDataType* _tmp75_;
6294 ValaDataType* _tmp76_;
6295 ValaDataType* _tmp77_;
6296 ValaDataType* _tmp78_;
6297 gboolean _tmp79_;
6298 gboolean _tmp80_;
6299 ValaLocalVariable* _tmp81_;
6300 ValaCCodeExpression* temp_ref = NULL;
6301 ValaLocalVariable* _tmp82_;
6302 const gchar* _tmp83_;
6303 const gchar* _tmp84_;
6304 ValaCCodeExpression* _tmp85_;
6305 ValaLocalVariable* _tmp86_;
6306 ValaCCodeFunction* _tmp87_;
6307 ValaCCodeFunction* _tmp88_;
6308 ValaCCodeExpression* _tmp89_;
6309 ValaCCodeFunctionCall* _tmp90_;
6310 ValaCCodeExpression* _tmp91_;
6311 _tmp75_ = vala_expression_get_value_type ((ValaExpression*) expr);
6312 _tmp76_ = _tmp75_;
6313 _tmp77_ = vala_expression_get_value_type ((ValaExpression*) expr);
6314 _tmp78_ = _tmp77_;
6315 _tmp79_ = vala_data_type_get_value_owned (_tmp78_);
6316 _tmp80_ = _tmp79_;
6317 _tmp81_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp76_, _tmp80_, NULL, FALSE);
6318 temp_var = _tmp81_;
6319 _tmp82_ = temp_var;
6320 _tmp83_ = vala_symbol_get_name ((ValaSymbol*) _tmp82_);
6321 _tmp84_ = _tmp83_;
6322 _tmp85_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp84_);
6323 temp_ref = _tmp85_;
6324 _tmp86_ = temp_var;
6325 vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp86_, FALSE);
6326 _tmp87_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6327 _tmp88_ = _tmp87_;
6328 _tmp89_ = temp_ref;
6329 _tmp90_ = cregister;
6330 vala_ccode_function_add_assignment (_tmp88_, _tmp89_, (ValaCCodeExpression*) _tmp90_);
6331 _tmp91_ = temp_ref;
6332 vala_set_cvalue ((ValaExpression*) expr, _tmp91_);
6333 _vala_ccode_node_unref0 (temp_ref);
6334 _vala_code_node_unref0 (temp_var);
6335 }
6336 _vala_code_node_unref0 (obj_arg);
6337 _vala_code_node_unref0 (path_arg);
6338 _vala_iterable_unref0 (args);
6339 _vala_code_node_unref0 (object_type);
6340 _vala_ccode_node_unref0 (cregister);
6341 _vala_code_node_unref0 (type_arg);
6342 _vala_code_node_unref0 (ma);
6343 _vala_code_node_unref0 (mtype);
6344 }
6345
6346 static void
vala_gd_bus_server_module_real_generate_class_declaration(ValaCCodeBaseModule * base,ValaClass * cl,ValaCCodeFile * decl_space)6347 vala_gd_bus_server_module_real_generate_class_declaration (ValaCCodeBaseModule* base,
6348 ValaClass* cl,
6349 ValaCCodeFile* decl_space)
6350 {
6351 ValaGDBusServerModule * self;
6352 self = (ValaGDBusServerModule*) base;
6353 g_return_if_fail (cl != NULL);
6354 g_return_if_fail (decl_space != NULL);
6355 VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_server_module_parent_class)->generate_class_declaration ((ValaCCodeBaseModule*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), cl, decl_space);
6356 vala_gd_bus_server_module_generate_object_type_symbol_declaration (self, (ValaObjectTypeSymbol*) cl, decl_space);
6357 }
6358
6359 static void
vala_gd_bus_server_module_real_generate_interface_declaration(ValaCCodeBaseModule * base,ValaInterface * iface,ValaCCodeFile * decl_space)6360 vala_gd_bus_server_module_real_generate_interface_declaration (ValaCCodeBaseModule* base,
6361 ValaInterface* iface,
6362 ValaCCodeFile* decl_space)
6363 {
6364 ValaGDBusServerModule * self;
6365 self = (ValaGDBusServerModule*) base;
6366 g_return_if_fail (iface != NULL);
6367 g_return_if_fail (decl_space != NULL);
6368 VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_server_module_parent_class)->generate_interface_declaration ((ValaCCodeBaseModule*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), iface, decl_space);
6369 vala_gd_bus_server_module_generate_object_type_symbol_declaration (self, (ValaObjectTypeSymbol*) iface, decl_space);
6370 }
6371
6372 static void
vala_gd_bus_server_module_real_visit_class(ValaCodeVisitor * base,ValaClass * cl)6373 vala_gd_bus_server_module_real_visit_class (ValaCodeVisitor* base,
6374 ValaClass* cl)
6375 {
6376 ValaGDBusServerModule * self;
6377 self = (ValaGDBusServerModule*) base;
6378 g_return_if_fail (cl != NULL);
6379 VALA_CODE_VISITOR_CLASS (vala_gd_bus_server_module_parent_class)->visit_class ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), cl);
6380 vala_gd_bus_server_module_visit_object_type_symbol (self, (ValaObjectTypeSymbol*) cl);
6381 }
6382
6383 static void
vala_gd_bus_server_module_real_visit_interface(ValaCodeVisitor * base,ValaInterface * iface)6384 vala_gd_bus_server_module_real_visit_interface (ValaCodeVisitor* base,
6385 ValaInterface* iface)
6386 {
6387 ValaGDBusServerModule * self;
6388 self = (ValaGDBusServerModule*) base;
6389 g_return_if_fail (iface != NULL);
6390 VALA_CODE_VISITOR_CLASS (vala_gd_bus_server_module_parent_class)->visit_interface ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), iface);
6391 vala_gd_bus_server_module_visit_object_type_symbol (self, (ValaObjectTypeSymbol*) iface);
6392 }
6393
6394 static void
vala_gd_bus_server_module_generate_object_type_symbol_declaration(ValaGDBusServerModule * self,ValaObjectTypeSymbol * sym,ValaCCodeFile * decl_space)6395 vala_gd_bus_server_module_generate_object_type_symbol_declaration (ValaGDBusServerModule* self,
6396 ValaObjectTypeSymbol* sym,
6397 ValaCCodeFile* decl_space)
6398 {
6399 gchar* dbus_iface_name = NULL;
6400 gchar* _tmp0_;
6401 const gchar* _tmp1_;
6402 gchar* register_object_name = NULL;
6403 gchar* _tmp2_;
6404 gchar* _tmp3_;
6405 gchar* _tmp4_;
6406 gchar* _tmp5_;
6407 const gchar* _tmp6_;
6408 ValaCCodeFunction* cfunc = NULL;
6409 const gchar* _tmp7_;
6410 ValaCCodeFunction* _tmp8_;
6411 ValaCCodeFunction* _tmp9_;
6412 ValaCCodeParameter* _tmp10_;
6413 ValaCCodeParameter* _tmp11_;
6414 ValaCCodeFunction* _tmp12_;
6415 ValaCCodeParameter* _tmp13_;
6416 ValaCCodeParameter* _tmp14_;
6417 ValaCCodeFunction* _tmp15_;
6418 ValaCCodeParameter* _tmp16_;
6419 ValaCCodeParameter* _tmp17_;
6420 ValaCCodeFunction* _tmp18_;
6421 ValaCCodeParameter* _tmp19_;
6422 ValaCCodeParameter* _tmp20_;
6423 ValaCCodeFunction* _tmp34_;
6424 g_return_if_fail (self != NULL);
6425 g_return_if_fail (sym != NULL);
6426 g_return_if_fail (decl_space != NULL);
6427 _tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) sym);
6428 dbus_iface_name = _tmp0_;
6429 _tmp1_ = dbus_iface_name;
6430 if (_tmp1_ == NULL) {
6431 _g_free0 (dbus_iface_name);
6432 return;
6433 }
6434 _tmp2_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
6435 _tmp3_ = _tmp2_;
6436 _tmp4_ = g_strdup_printf ("%sregister_object", _tmp3_);
6437 _tmp5_ = _tmp4_;
6438 _g_free0 (_tmp3_);
6439 register_object_name = _tmp5_;
6440 _tmp6_ = register_object_name;
6441 if (vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, decl_space, (ValaSymbol*) sym, _tmp6_)) {
6442 _g_free0 (register_object_name);
6443 _g_free0 (dbus_iface_name);
6444 return;
6445 }
6446 vala_ccode_file_add_include (decl_space, "gio/gio.h", FALSE);
6447 _tmp7_ = register_object_name;
6448 _tmp8_ = vala_ccode_function_new (_tmp7_, "guint");
6449 cfunc = _tmp8_;
6450 _tmp9_ = cfunc;
6451 _tmp10_ = vala_ccode_parameter_new ("object", "void*");
6452 _tmp11_ = _tmp10_;
6453 vala_ccode_function_add_parameter (_tmp9_, _tmp11_);
6454 _vala_ccode_node_unref0 (_tmp11_);
6455 _tmp12_ = cfunc;
6456 _tmp13_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
6457 _tmp14_ = _tmp13_;
6458 vala_ccode_function_add_parameter (_tmp12_, _tmp14_);
6459 _vala_ccode_node_unref0 (_tmp14_);
6460 _tmp15_ = cfunc;
6461 _tmp16_ = vala_ccode_parameter_new ("path", "const gchar*");
6462 _tmp17_ = _tmp16_;
6463 vala_ccode_function_add_parameter (_tmp15_, _tmp17_);
6464 _vala_ccode_node_unref0 (_tmp17_);
6465 _tmp18_ = cfunc;
6466 _tmp19_ = vala_ccode_parameter_new ("error", "GError**");
6467 _tmp20_ = _tmp19_;
6468 vala_ccode_function_add_parameter (_tmp18_, _tmp20_);
6469 _vala_ccode_node_unref0 (_tmp20_);
6470 if (vala_symbol_is_private_symbol ((ValaSymbol*) sym)) {
6471 ValaCCodeFunction* _tmp21_;
6472 ValaCCodeFunction* _tmp22_;
6473 ValaCCodeModifiers _tmp23_;
6474 ValaCCodeModifiers _tmp24_;
6475 _tmp21_ = cfunc;
6476 _tmp22_ = cfunc;
6477 _tmp23_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp22_);
6478 _tmp24_ = _tmp23_;
6479 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp22_, _tmp24_ | VALA_CCODE_MODIFIERS_STATIC);
6480 } else {
6481 gboolean _tmp25_ = FALSE;
6482 ValaCodeContext* _tmp26_;
6483 ValaCodeContext* _tmp27_;
6484 gboolean _tmp28_;
6485 gboolean _tmp29_;
6486 _tmp26_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
6487 _tmp27_ = _tmp26_;
6488 _tmp28_ = vala_code_context_get_hide_internal (_tmp27_);
6489 _tmp29_ = _tmp28_;
6490 if (_tmp29_) {
6491 _tmp25_ = vala_symbol_is_internal_symbol ((ValaSymbol*) sym);
6492 } else {
6493 _tmp25_ = FALSE;
6494 }
6495 if (_tmp25_) {
6496 ValaCCodeFunction* _tmp30_;
6497 ValaCCodeFunction* _tmp31_;
6498 ValaCCodeModifiers _tmp32_;
6499 ValaCCodeModifiers _tmp33_;
6500 _tmp30_ = cfunc;
6501 _tmp31_ = cfunc;
6502 _tmp32_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp31_);
6503 _tmp33_ = _tmp32_;
6504 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp31_, _tmp33_ | VALA_CCODE_MODIFIERS_INTERNAL);
6505 }
6506 }
6507 _tmp34_ = cfunc;
6508 vala_ccode_file_add_function_declaration (decl_space, _tmp34_);
6509 _vala_ccode_node_unref0 (cfunc);
6510 _g_free0 (register_object_name);
6511 _g_free0 (dbus_iface_name);
6512 }
6513
6514 static void
vala_gd_bus_server_module_visit_object_type_symbol(ValaGDBusServerModule * self,ValaObjectTypeSymbol * sym)6515 vala_gd_bus_server_module_visit_object_type_symbol (ValaGDBusServerModule* self,
6516 ValaObjectTypeSymbol* sym)
6517 {
6518 gchar* dbus_iface_name = NULL;
6519 gchar* _tmp0_;
6520 const gchar* _tmp1_;
6521 ValaCCodeFile* _tmp2_;
6522 ValaCCodeFunction* cfunc = NULL;
6523 gchar* _tmp3_;
6524 gchar* _tmp4_;
6525 gchar* _tmp5_;
6526 gchar* _tmp6_;
6527 ValaCCodeFunction* _tmp7_;
6528 ValaCCodeFunction* _tmp8_;
6529 ValaCCodeFunction* _tmp9_;
6530 ValaCCodeParameter* _tmp10_;
6531 ValaCCodeParameter* _tmp11_;
6532 ValaCCodeFunction* _tmp12_;
6533 ValaCCodeParameter* _tmp13_;
6534 ValaCCodeParameter* _tmp14_;
6535 ValaCCodeFunction* _tmp15_;
6536 ValaCCodeParameter* _tmp16_;
6537 ValaCCodeParameter* _tmp17_;
6538 ValaCCodeFunction* _tmp18_;
6539 ValaCCodeParameter* _tmp19_;
6540 ValaCCodeParameter* _tmp20_;
6541 ValaCCodeFunction* _tmp34_;
6542 ValaCCodeFunction* _tmp35_;
6543 ValaCCodeFunction* _tmp36_;
6544 ValaCCodeVariableDeclarator* _tmp37_;
6545 ValaCCodeVariableDeclarator* _tmp38_;
6546 ValaCCodeFunction* _tmp39_;
6547 ValaCCodeFunction* _tmp40_;
6548 ValaCCodeVariableDeclarator* _tmp41_;
6549 ValaCCodeVariableDeclarator* _tmp42_;
6550 ValaCCodeFunctionCall* alloc_data = NULL;
6551 ValaCCodeIdentifier* _tmp43_;
6552 ValaCCodeIdentifier* _tmp44_;
6553 ValaCCodeFunctionCall* _tmp45_;
6554 ValaCCodeFunctionCall* _tmp46_;
6555 ValaCCodeFunctionCall* _tmp47_;
6556 ValaCCodeIdentifier* _tmp48_;
6557 ValaCCodeIdentifier* _tmp49_;
6558 ValaCCodeFunctionCall* _tmp50_;
6559 ValaCCodeConstant* _tmp51_;
6560 ValaCCodeConstant* _tmp52_;
6561 ValaCCodeFunction* _tmp53_;
6562 ValaCCodeFunction* _tmp54_;
6563 ValaCCodeIdentifier* _tmp55_;
6564 ValaCCodeIdentifier* _tmp56_;
6565 ValaCCodeFunctionCall* _tmp57_;
6566 gchar* ref_function = NULL;
6567 gchar* _tmp58_;
6568 gboolean _tmp59_ = FALSE;
6569 ValaCCodeFunctionCall* ref_object = NULL;
6570 const gchar* _tmp67_;
6571 ValaCCodeIdentifier* _tmp68_;
6572 ValaCCodeIdentifier* _tmp69_;
6573 ValaCCodeFunctionCall* _tmp70_;
6574 ValaCCodeFunctionCall* _tmp71_;
6575 ValaCCodeFunctionCall* _tmp72_;
6576 ValaCCodeIdentifier* _tmp73_;
6577 ValaCCodeIdentifier* _tmp74_;
6578 ValaCCodeFunction* _tmp75_;
6579 ValaCCodeFunction* _tmp76_;
6580 ValaCCodeIdentifier* _tmp77_;
6581 ValaCCodeIdentifier* _tmp78_;
6582 ValaCCodeConstant* _tmp79_;
6583 ValaCCodeConstant* _tmp80_;
6584 ValaCCodeElementAccess* _tmp81_;
6585 ValaCCodeElementAccess* _tmp82_;
6586 ValaCCodeFunctionCall* _tmp83_;
6587 ValaCCodeIdentifier* _tmp84_;
6588 ValaCCodeIdentifier* _tmp85_;
6589 ValaCCodeFunctionCall* _tmp86_;
6590 ValaCCodeFunctionCall* _tmp87_;
6591 ValaCCodeIdentifier* _tmp88_;
6592 ValaCCodeIdentifier* _tmp89_;
6593 ValaCCodeFunction* _tmp90_;
6594 ValaCCodeFunction* _tmp91_;
6595 ValaCCodeIdentifier* _tmp92_;
6596 ValaCCodeIdentifier* _tmp93_;
6597 ValaCCodeConstant* _tmp94_;
6598 ValaCCodeConstant* _tmp95_;
6599 ValaCCodeElementAccess* _tmp96_;
6600 ValaCCodeElementAccess* _tmp97_;
6601 ValaCCodeFunctionCall* _tmp98_;
6602 ValaCCodeFunctionCall* dup_path = NULL;
6603 ValaCCodeIdentifier* _tmp99_;
6604 ValaCCodeIdentifier* _tmp100_;
6605 ValaCCodeFunctionCall* _tmp101_;
6606 ValaCCodeFunctionCall* _tmp102_;
6607 ValaCCodeFunctionCall* _tmp103_;
6608 ValaCCodeIdentifier* _tmp104_;
6609 ValaCCodeIdentifier* _tmp105_;
6610 ValaCCodeFunction* _tmp106_;
6611 ValaCCodeFunction* _tmp107_;
6612 ValaCCodeIdentifier* _tmp108_;
6613 ValaCCodeIdentifier* _tmp109_;
6614 ValaCCodeConstant* _tmp110_;
6615 ValaCCodeConstant* _tmp111_;
6616 ValaCCodeElementAccess* _tmp112_;
6617 ValaCCodeElementAccess* _tmp113_;
6618 ValaCCodeFunctionCall* _tmp114_;
6619 ValaCCodeFunctionCall* cregister = NULL;
6620 ValaCCodeIdentifier* _tmp115_;
6621 ValaCCodeIdentifier* _tmp116_;
6622 ValaCCodeFunctionCall* _tmp117_;
6623 ValaCCodeFunctionCall* _tmp118_;
6624 ValaCCodeFunctionCall* _tmp119_;
6625 ValaCCodeIdentifier* _tmp120_;
6626 ValaCCodeIdentifier* _tmp121_;
6627 ValaCCodeFunctionCall* _tmp122_;
6628 ValaCCodeIdentifier* _tmp123_;
6629 ValaCCodeIdentifier* _tmp124_;
6630 ValaCCodeFunctionCall* _tmp125_;
6631 ValaCCodeExpression* _tmp126_;
6632 ValaCCodeExpression* _tmp127_;
6633 ValaCCodeUnaryExpression* _tmp128_;
6634 ValaCCodeUnaryExpression* _tmp129_;
6635 ValaCCodeCastExpression* _tmp130_;
6636 ValaCCodeCastExpression* _tmp131_;
6637 ValaCCodeFunctionCall* _tmp132_;
6638 ValaCCodeExpression* _tmp133_;
6639 ValaCCodeExpression* _tmp134_;
6640 ValaCCodeUnaryExpression* _tmp135_;
6641 ValaCCodeUnaryExpression* _tmp136_;
6642 ValaCCodeFunctionCall* _tmp137_;
6643 ValaCCodeIdentifier* _tmp138_;
6644 ValaCCodeIdentifier* _tmp139_;
6645 ValaCCodeFunctionCall* _tmp140_;
6646 gchar* _tmp141_;
6647 gchar* _tmp142_;
6648 gchar* _tmp143_;
6649 gchar* _tmp144_;
6650 gchar* _tmp145_;
6651 gchar* _tmp146_;
6652 ValaCCodeIdentifier* _tmp147_;
6653 ValaCCodeIdentifier* _tmp148_;
6654 ValaCCodeFunctionCall* _tmp149_;
6655 ValaCCodeIdentifier* _tmp150_;
6656 ValaCCodeIdentifier* _tmp151_;
6657 ValaCCodeFunction* _tmp152_;
6658 ValaCCodeFunction* _tmp153_;
6659 ValaCCodeIdentifier* _tmp154_;
6660 ValaCCodeIdentifier* _tmp155_;
6661 ValaCCodeFunctionCall* _tmp156_;
6662 ValaCCodeFunction* _tmp157_;
6663 ValaCCodeFunction* _tmp158_;
6664 ValaCCodeIdentifier* _tmp159_;
6665 ValaCCodeIdentifier* _tmp160_;
6666 ValaCCodeUnaryExpression* _tmp161_;
6667 ValaCCodeUnaryExpression* _tmp162_;
6668 ValaCCodeFunction* _tmp163_;
6669 ValaCCodeFunction* _tmp164_;
6670 ValaCCodeConstant* _tmp165_;
6671 ValaCCodeConstant* _tmp166_;
6672 ValaCCodeFunction* _tmp167_;
6673 ValaCCodeFunction* _tmp168_;
6674 ValaCCodeFunction* _tmp169_;
6675 ValaCCodeFunction* _tmp170_;
6676 ValaCCodeIdentifier* _tmp171_;
6677 ValaCCodeIdentifier* _tmp172_;
6678 ValaCCodeFile* _tmp173_;
6679 ValaCCodeFunction* _tmp174_;
6680 gchar* _tmp175_;
6681 gchar* _tmp176_;
6682 gchar* _tmp177_;
6683 gchar* _tmp178_;
6684 gchar* _tmp179_;
6685 gchar* _tmp180_;
6686 ValaCCodeFunction* _tmp181_;
6687 ValaCCodeFunction* _tmp182_;
6688 ValaCCodeParameter* _tmp183_;
6689 ValaCCodeParameter* _tmp184_;
6690 ValaCCodeFunction* _tmp185_;
6691 ValaCCodeFunction* _tmp186_;
6692 ValaCCodeModifiers _tmp187_;
6693 ValaCCodeModifiers _tmp188_;
6694 ValaCCodeFunction* _tmp189_;
6695 ValaCCodeFunction* _tmp190_;
6696 ValaCCodeFunction* _tmp191_;
6697 ValaCCodeIdentifier* _tmp192_;
6698 ValaCCodeIdentifier* _tmp193_;
6699 ValaCCodeVariableDeclarator* _tmp194_;
6700 ValaCCodeVariableDeclarator* _tmp195_;
6701 ValaCCodeFunctionCall* unref_object = NULL;
6702 gchar* _tmp196_;
6703 gchar* _tmp197_;
6704 ValaCCodeIdentifier* _tmp198_;
6705 ValaCCodeIdentifier* _tmp199_;
6706 ValaCCodeFunctionCall* _tmp200_;
6707 ValaCCodeFunctionCall* _tmp201_;
6708 ValaCCodeFunctionCall* _tmp202_;
6709 ValaCCodeIdentifier* _tmp203_;
6710 ValaCCodeIdentifier* _tmp204_;
6711 ValaCCodeConstant* _tmp205_;
6712 ValaCCodeConstant* _tmp206_;
6713 ValaCCodeElementAccess* _tmp207_;
6714 ValaCCodeElementAccess* _tmp208_;
6715 ValaCCodeFunction* _tmp209_;
6716 ValaCCodeFunction* _tmp210_;
6717 ValaCCodeFunctionCall* _tmp211_;
6718 ValaCCodeIdentifier* _tmp212_;
6719 ValaCCodeIdentifier* _tmp213_;
6720 ValaCCodeFunctionCall* _tmp214_;
6721 ValaCCodeFunctionCall* _tmp215_;
6722 ValaCCodeIdentifier* _tmp216_;
6723 ValaCCodeIdentifier* _tmp217_;
6724 ValaCCodeConstant* _tmp218_;
6725 ValaCCodeConstant* _tmp219_;
6726 ValaCCodeElementAccess* _tmp220_;
6727 ValaCCodeElementAccess* _tmp221_;
6728 ValaCCodeFunction* _tmp222_;
6729 ValaCCodeFunction* _tmp223_;
6730 ValaCCodeFunctionCall* _tmp224_;
6731 ValaCCodeFunctionCall* free_path = NULL;
6732 ValaCCodeIdentifier* _tmp225_;
6733 ValaCCodeIdentifier* _tmp226_;
6734 ValaCCodeFunctionCall* _tmp227_;
6735 ValaCCodeFunctionCall* _tmp228_;
6736 ValaCCodeFunctionCall* _tmp229_;
6737 ValaCCodeIdentifier* _tmp230_;
6738 ValaCCodeIdentifier* _tmp231_;
6739 ValaCCodeConstant* _tmp232_;
6740 ValaCCodeConstant* _tmp233_;
6741 ValaCCodeElementAccess* _tmp234_;
6742 ValaCCodeElementAccess* _tmp235_;
6743 ValaCCodeFunction* _tmp236_;
6744 ValaCCodeFunction* _tmp237_;
6745 ValaCCodeFunctionCall* _tmp238_;
6746 ValaCCodeFunctionCall* free_data = NULL;
6747 ValaCCodeIdentifier* _tmp239_;
6748 ValaCCodeIdentifier* _tmp240_;
6749 ValaCCodeFunctionCall* _tmp241_;
6750 ValaCCodeFunctionCall* _tmp242_;
6751 ValaCCodeFunctionCall* _tmp243_;
6752 ValaCCodeIdentifier* _tmp244_;
6753 ValaCCodeIdentifier* _tmp245_;
6754 ValaCCodeFunction* _tmp246_;
6755 ValaCCodeFunction* _tmp247_;
6756 ValaCCodeFunctionCall* _tmp248_;
6757 ValaCCodeFile* _tmp249_;
6758 ValaCCodeFunction* _tmp250_;
6759 ValaCCodeFile* _tmp251_;
6760 ValaCCodeFunction* _tmp252_;
6761 g_return_if_fail (self != NULL);
6762 g_return_if_fail (sym != NULL);
6763 _tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) sym);
6764 dbus_iface_name = _tmp0_;
6765 _tmp1_ = dbus_iface_name;
6766 if (_tmp1_ == NULL) {
6767 _g_free0 (dbus_iface_name);
6768 return;
6769 }
6770 _tmp2_ = ((ValaCCodeBaseModule*) self)->cfile;
6771 vala_ccode_file_add_include (_tmp2_, "gio/gio.h", FALSE);
6772 _tmp3_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
6773 _tmp4_ = _tmp3_;
6774 _tmp5_ = g_strconcat (_tmp4_, "register_object", NULL);
6775 _tmp6_ = _tmp5_;
6776 _tmp7_ = vala_ccode_function_new (_tmp6_, "guint");
6777 _tmp8_ = _tmp7_;
6778 _g_free0 (_tmp6_);
6779 _g_free0 (_tmp4_);
6780 cfunc = _tmp8_;
6781 _tmp9_ = cfunc;
6782 _tmp10_ = vala_ccode_parameter_new ("object", "gpointer");
6783 _tmp11_ = _tmp10_;
6784 vala_ccode_function_add_parameter (_tmp9_, _tmp11_);
6785 _vala_ccode_node_unref0 (_tmp11_);
6786 _tmp12_ = cfunc;
6787 _tmp13_ = vala_ccode_parameter_new ("connection", "GDBusConnection*");
6788 _tmp14_ = _tmp13_;
6789 vala_ccode_function_add_parameter (_tmp12_, _tmp14_);
6790 _vala_ccode_node_unref0 (_tmp14_);
6791 _tmp15_ = cfunc;
6792 _tmp16_ = vala_ccode_parameter_new ("path", "const gchar*");
6793 _tmp17_ = _tmp16_;
6794 vala_ccode_function_add_parameter (_tmp15_, _tmp17_);
6795 _vala_ccode_node_unref0 (_tmp17_);
6796 _tmp18_ = cfunc;
6797 _tmp19_ = vala_ccode_parameter_new ("error", "GError**");
6798 _tmp20_ = _tmp19_;
6799 vala_ccode_function_add_parameter (_tmp18_, _tmp20_);
6800 _vala_ccode_node_unref0 (_tmp20_);
6801 if (vala_symbol_is_private_symbol ((ValaSymbol*) sym)) {
6802 ValaCCodeFunction* _tmp21_;
6803 ValaCCodeFunction* _tmp22_;
6804 ValaCCodeModifiers _tmp23_;
6805 ValaCCodeModifiers _tmp24_;
6806 _tmp21_ = cfunc;
6807 _tmp22_ = cfunc;
6808 _tmp23_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp22_);
6809 _tmp24_ = _tmp23_;
6810 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp22_, _tmp24_ | VALA_CCODE_MODIFIERS_STATIC);
6811 } else {
6812 gboolean _tmp25_ = FALSE;
6813 ValaCodeContext* _tmp26_;
6814 ValaCodeContext* _tmp27_;
6815 gboolean _tmp28_;
6816 gboolean _tmp29_;
6817 _tmp26_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
6818 _tmp27_ = _tmp26_;
6819 _tmp28_ = vala_code_context_get_hide_internal (_tmp27_);
6820 _tmp29_ = _tmp28_;
6821 if (_tmp29_) {
6822 _tmp25_ = vala_symbol_is_internal_symbol ((ValaSymbol*) sym);
6823 } else {
6824 _tmp25_ = FALSE;
6825 }
6826 if (_tmp25_) {
6827 ValaCCodeFunction* _tmp30_;
6828 ValaCCodeFunction* _tmp31_;
6829 ValaCCodeModifiers _tmp32_;
6830 ValaCCodeModifiers _tmp33_;
6831 _tmp30_ = cfunc;
6832 _tmp31_ = cfunc;
6833 _tmp32_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp31_);
6834 _tmp33_ = _tmp32_;
6835 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp31_, _tmp33_ | VALA_CCODE_MODIFIERS_INTERNAL);
6836 }
6837 }
6838 _tmp34_ = cfunc;
6839 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp34_);
6840 _tmp35_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6841 _tmp36_ = _tmp35_;
6842 _tmp37_ = vala_ccode_variable_declarator_new ("result", NULL, NULL);
6843 _tmp38_ = _tmp37_;
6844 vala_ccode_function_add_declaration (_tmp36_, "guint", (ValaCCodeDeclarator*) _tmp38_, 0);
6845 _vala_ccode_node_unref0 (_tmp38_);
6846 _tmp39_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6847 _tmp40_ = _tmp39_;
6848 _tmp41_ = vala_ccode_variable_declarator_new ("*data", NULL, NULL);
6849 _tmp42_ = _tmp41_;
6850 vala_ccode_function_add_declaration (_tmp40_, "gpointer", (ValaCCodeDeclarator*) _tmp42_, 0);
6851 _vala_ccode_node_unref0 (_tmp42_);
6852 _tmp43_ = vala_ccode_identifier_new ("g_new");
6853 _tmp44_ = _tmp43_;
6854 _tmp45_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp44_);
6855 _tmp46_ = _tmp45_;
6856 _vala_ccode_node_unref0 (_tmp44_);
6857 alloc_data = _tmp46_;
6858 _tmp47_ = alloc_data;
6859 _tmp48_ = vala_ccode_identifier_new ("gpointer");
6860 _tmp49_ = _tmp48_;
6861 vala_ccode_function_call_add_argument (_tmp47_, (ValaCCodeExpression*) _tmp49_);
6862 _vala_ccode_node_unref0 (_tmp49_);
6863 _tmp50_ = alloc_data;
6864 _tmp51_ = vala_ccode_constant_new ("3");
6865 _tmp52_ = _tmp51_;
6866 vala_ccode_function_call_add_argument (_tmp50_, (ValaCCodeExpression*) _tmp52_);
6867 _vala_ccode_node_unref0 (_tmp52_);
6868 _tmp53_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6869 _tmp54_ = _tmp53_;
6870 _tmp55_ = vala_ccode_identifier_new ("data");
6871 _tmp56_ = _tmp55_;
6872 _tmp57_ = alloc_data;
6873 vala_ccode_function_add_assignment (_tmp54_, (ValaCCodeExpression*) _tmp56_, (ValaCCodeExpression*) _tmp57_);
6874 _vala_ccode_node_unref0 (_tmp56_);
6875 _tmp58_ = vala_get_ccode_ref_function ((ValaTypeSymbol*) sym);
6876 ref_function = _tmp58_;
6877 if (G_TYPE_CHECK_INSTANCE_TYPE (sym, VALA_TYPE_INTERFACE)) {
6878 const gchar* _tmp60_;
6879 _tmp60_ = ref_function;
6880 _tmp59_ = _tmp60_ == NULL;
6881 } else {
6882 _tmp59_ = FALSE;
6883 }
6884 if (_tmp59_) {
6885 ValaSourceReference* _tmp61_;
6886 ValaSourceReference* _tmp62_;
6887 gchar* _tmp63_;
6888 gchar* _tmp64_;
6889 gchar* _tmp65_;
6890 gchar* _tmp66_;
6891 _tmp61_ = vala_code_node_get_source_reference ((ValaCodeNode*) sym);
6892 _tmp62_ = _tmp61_;
6893 _tmp63_ = vala_symbol_get_full_name ((ValaSymbol*) sym);
6894 _tmp64_ = _tmp63_;
6895 _tmp65_ = g_strdup_printf ("missing class prerequisite for interface `%s', add GLib.Object to inte" \
6896 "rface declaration if unsure", _tmp64_);
6897 _tmp66_ = _tmp65_;
6898 vala_report_error (_tmp62_, _tmp66_);
6899 _g_free0 (_tmp66_);
6900 _g_free0 (_tmp64_);
6901 _g_free0 (ref_function);
6902 _vala_ccode_node_unref0 (alloc_data);
6903 _vala_ccode_node_unref0 (cfunc);
6904 _g_free0 (dbus_iface_name);
6905 return;
6906 }
6907 _tmp67_ = ref_function;
6908 _tmp68_ = vala_ccode_identifier_new (_tmp67_);
6909 _tmp69_ = _tmp68_;
6910 _tmp70_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp69_);
6911 _tmp71_ = _tmp70_;
6912 _vala_ccode_node_unref0 (_tmp69_);
6913 ref_object = _tmp71_;
6914 _tmp72_ = ref_object;
6915 _tmp73_ = vala_ccode_identifier_new ("object");
6916 _tmp74_ = _tmp73_;
6917 vala_ccode_function_call_add_argument (_tmp72_, (ValaCCodeExpression*) _tmp74_);
6918 _vala_ccode_node_unref0 (_tmp74_);
6919 _tmp75_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6920 _tmp76_ = _tmp75_;
6921 _tmp77_ = vala_ccode_identifier_new ("data");
6922 _tmp78_ = _tmp77_;
6923 _tmp79_ = vala_ccode_constant_new ("0");
6924 _tmp80_ = _tmp79_;
6925 _tmp81_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp78_, (ValaCCodeExpression*) _tmp80_);
6926 _tmp82_ = _tmp81_;
6927 _tmp83_ = ref_object;
6928 vala_ccode_function_add_assignment (_tmp76_, (ValaCCodeExpression*) _tmp82_, (ValaCCodeExpression*) _tmp83_);
6929 _vala_ccode_node_unref0 (_tmp82_);
6930 _vala_ccode_node_unref0 (_tmp80_);
6931 _vala_ccode_node_unref0 (_tmp78_);
6932 _tmp84_ = vala_ccode_identifier_new ("g_object_ref");
6933 _tmp85_ = _tmp84_;
6934 _tmp86_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp85_);
6935 _vala_ccode_node_unref0 (ref_object);
6936 ref_object = _tmp86_;
6937 _vala_ccode_node_unref0 (_tmp85_);
6938 _tmp87_ = ref_object;
6939 _tmp88_ = vala_ccode_identifier_new ("connection");
6940 _tmp89_ = _tmp88_;
6941 vala_ccode_function_call_add_argument (_tmp87_, (ValaCCodeExpression*) _tmp89_);
6942 _vala_ccode_node_unref0 (_tmp89_);
6943 _tmp90_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6944 _tmp91_ = _tmp90_;
6945 _tmp92_ = vala_ccode_identifier_new ("data");
6946 _tmp93_ = _tmp92_;
6947 _tmp94_ = vala_ccode_constant_new ("1");
6948 _tmp95_ = _tmp94_;
6949 _tmp96_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp93_, (ValaCCodeExpression*) _tmp95_);
6950 _tmp97_ = _tmp96_;
6951 _tmp98_ = ref_object;
6952 vala_ccode_function_add_assignment (_tmp91_, (ValaCCodeExpression*) _tmp97_, (ValaCCodeExpression*) _tmp98_);
6953 _vala_ccode_node_unref0 (_tmp97_);
6954 _vala_ccode_node_unref0 (_tmp95_);
6955 _vala_ccode_node_unref0 (_tmp93_);
6956 _tmp99_ = vala_ccode_identifier_new ("g_strdup");
6957 _tmp100_ = _tmp99_;
6958 _tmp101_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp100_);
6959 _tmp102_ = _tmp101_;
6960 _vala_ccode_node_unref0 (_tmp100_);
6961 dup_path = _tmp102_;
6962 _tmp103_ = dup_path;
6963 _tmp104_ = vala_ccode_identifier_new ("path");
6964 _tmp105_ = _tmp104_;
6965 vala_ccode_function_call_add_argument (_tmp103_, (ValaCCodeExpression*) _tmp105_);
6966 _vala_ccode_node_unref0 (_tmp105_);
6967 _tmp106_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
6968 _tmp107_ = _tmp106_;
6969 _tmp108_ = vala_ccode_identifier_new ("data");
6970 _tmp109_ = _tmp108_;
6971 _tmp110_ = vala_ccode_constant_new ("2");
6972 _tmp111_ = _tmp110_;
6973 _tmp112_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp109_, (ValaCCodeExpression*) _tmp111_);
6974 _tmp113_ = _tmp112_;
6975 _tmp114_ = dup_path;
6976 vala_ccode_function_add_assignment (_tmp107_, (ValaCCodeExpression*) _tmp113_, (ValaCCodeExpression*) _tmp114_);
6977 _vala_ccode_node_unref0 (_tmp113_);
6978 _vala_ccode_node_unref0 (_tmp111_);
6979 _vala_ccode_node_unref0 (_tmp109_);
6980 _tmp115_ = vala_ccode_identifier_new ("g_dbus_connection_register_object");
6981 _tmp116_ = _tmp115_;
6982 _tmp117_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp116_);
6983 _tmp118_ = _tmp117_;
6984 _vala_ccode_node_unref0 (_tmp116_);
6985 cregister = _tmp118_;
6986 _tmp119_ = cregister;
6987 _tmp120_ = vala_ccode_identifier_new ("connection");
6988 _tmp121_ = _tmp120_;
6989 vala_ccode_function_call_add_argument (_tmp119_, (ValaCCodeExpression*) _tmp121_);
6990 _vala_ccode_node_unref0 (_tmp121_);
6991 _tmp122_ = cregister;
6992 _tmp123_ = vala_ccode_identifier_new ("path");
6993 _tmp124_ = _tmp123_;
6994 vala_ccode_function_call_add_argument (_tmp122_, (ValaCCodeExpression*) _tmp124_);
6995 _vala_ccode_node_unref0 (_tmp124_);
6996 _tmp125_ = cregister;
6997 _tmp126_ = vala_gd_bus_module_get_interface_info ((ValaGDBusModule*) self, sym);
6998 _tmp127_ = _tmp126_;
6999 _tmp128_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp127_);
7000 _tmp129_ = _tmp128_;
7001 _tmp130_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp129_, "GDBusInterfaceInfo *");
7002 _tmp131_ = _tmp130_;
7003 vala_ccode_function_call_add_argument (_tmp125_, (ValaCCodeExpression*) _tmp131_);
7004 _vala_ccode_node_unref0 (_tmp131_);
7005 _vala_ccode_node_unref0 (_tmp129_);
7006 _vala_ccode_node_unref0 (_tmp127_);
7007 _tmp132_ = cregister;
7008 _tmp133_ = vala_gd_bus_server_module_get_interface_vtable (self, sym);
7009 _tmp134_ = _tmp133_;
7010 _tmp135_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp134_);
7011 _tmp136_ = _tmp135_;
7012 vala_ccode_function_call_add_argument (_tmp132_, (ValaCCodeExpression*) _tmp136_);
7013 _vala_ccode_node_unref0 (_tmp136_);
7014 _vala_ccode_node_unref0 (_tmp134_);
7015 _tmp137_ = cregister;
7016 _tmp138_ = vala_ccode_identifier_new ("data");
7017 _tmp139_ = _tmp138_;
7018 vala_ccode_function_call_add_argument (_tmp137_, (ValaCCodeExpression*) _tmp139_);
7019 _vala_ccode_node_unref0 (_tmp139_);
7020 _tmp140_ = cregister;
7021 _tmp141_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
7022 _tmp142_ = _tmp141_;
7023 _tmp143_ = g_strconcat ("_", _tmp142_, NULL);
7024 _tmp144_ = _tmp143_;
7025 _tmp145_ = g_strconcat (_tmp144_, "unregister_object", NULL);
7026 _tmp146_ = _tmp145_;
7027 _tmp147_ = vala_ccode_identifier_new (_tmp146_);
7028 _tmp148_ = _tmp147_;
7029 vala_ccode_function_call_add_argument (_tmp140_, (ValaCCodeExpression*) _tmp148_);
7030 _vala_ccode_node_unref0 (_tmp148_);
7031 _g_free0 (_tmp146_);
7032 _g_free0 (_tmp144_);
7033 _g_free0 (_tmp142_);
7034 _tmp149_ = cregister;
7035 _tmp150_ = vala_ccode_identifier_new ("error");
7036 _tmp151_ = _tmp150_;
7037 vala_ccode_function_call_add_argument (_tmp149_, (ValaCCodeExpression*) _tmp151_);
7038 _vala_ccode_node_unref0 (_tmp151_);
7039 _tmp152_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7040 _tmp153_ = _tmp152_;
7041 _tmp154_ = vala_ccode_identifier_new ("result");
7042 _tmp155_ = _tmp154_;
7043 _tmp156_ = cregister;
7044 vala_ccode_function_add_assignment (_tmp153_, (ValaCCodeExpression*) _tmp155_, (ValaCCodeExpression*) _tmp156_);
7045 _vala_ccode_node_unref0 (_tmp155_);
7046 _tmp157_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7047 _tmp158_ = _tmp157_;
7048 _tmp159_ = vala_ccode_identifier_new ("result");
7049 _tmp160_ = _tmp159_;
7050 _tmp161_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp160_);
7051 _tmp162_ = _tmp161_;
7052 vala_ccode_function_open_if (_tmp158_, (ValaCCodeExpression*) _tmp162_);
7053 _vala_ccode_node_unref0 (_tmp162_);
7054 _vala_ccode_node_unref0 (_tmp160_);
7055 _tmp163_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7056 _tmp164_ = _tmp163_;
7057 _tmp165_ = vala_ccode_constant_new ("0");
7058 _tmp166_ = _tmp165_;
7059 vala_ccode_function_add_return (_tmp164_, (ValaCCodeExpression*) _tmp166_);
7060 _vala_ccode_node_unref0 (_tmp166_);
7061 _tmp167_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7062 _tmp168_ = _tmp167_;
7063 vala_ccode_function_close (_tmp168_);
7064 vala_gd_bus_server_module_handle_signals (self, sym, TRUE);
7065 _tmp169_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7066 _tmp170_ = _tmp169_;
7067 _tmp171_ = vala_ccode_identifier_new ("result");
7068 _tmp172_ = _tmp171_;
7069 vala_ccode_function_add_return (_tmp170_, (ValaCCodeExpression*) _tmp172_);
7070 _vala_ccode_node_unref0 (_tmp172_);
7071 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
7072 _tmp173_ = ((ValaCCodeBaseModule*) self)->cfile;
7073 _tmp174_ = cfunc;
7074 vala_ccode_file_add_function (_tmp173_, _tmp174_);
7075 _tmp175_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
7076 _tmp176_ = _tmp175_;
7077 _tmp177_ = g_strconcat ("_", _tmp176_, NULL);
7078 _tmp178_ = _tmp177_;
7079 _tmp179_ = g_strconcat (_tmp178_, "unregister_object", NULL);
7080 _tmp180_ = _tmp179_;
7081 _tmp181_ = vala_ccode_function_new (_tmp180_, "void");
7082 _vala_ccode_node_unref0 (cfunc);
7083 cfunc = _tmp181_;
7084 _g_free0 (_tmp180_);
7085 _g_free0 (_tmp178_);
7086 _g_free0 (_tmp176_);
7087 _tmp182_ = cfunc;
7088 _tmp183_ = vala_ccode_parameter_new ("user_data", "gpointer");
7089 _tmp184_ = _tmp183_;
7090 vala_ccode_function_add_parameter (_tmp182_, _tmp184_);
7091 _vala_ccode_node_unref0 (_tmp184_);
7092 _tmp185_ = cfunc;
7093 _tmp186_ = cfunc;
7094 _tmp187_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp186_);
7095 _tmp188_ = _tmp187_;
7096 vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp186_, _tmp188_ | VALA_CCODE_MODIFIERS_STATIC);
7097 _tmp189_ = cfunc;
7098 vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp189_);
7099 _tmp190_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7100 _tmp191_ = _tmp190_;
7101 _tmp192_ = vala_ccode_identifier_new ("user_data");
7102 _tmp193_ = _tmp192_;
7103 _tmp194_ = vala_ccode_variable_declarator_new ("data", (ValaCCodeExpression*) _tmp193_, NULL);
7104 _tmp195_ = _tmp194_;
7105 vala_ccode_function_add_declaration (_tmp191_, "gpointer*", (ValaCCodeDeclarator*) _tmp195_, 0);
7106 _vala_ccode_node_unref0 (_tmp195_);
7107 _vala_ccode_node_unref0 (_tmp193_);
7108 vala_gd_bus_server_module_handle_signals (self, sym, FALSE);
7109 _tmp196_ = vala_get_ccode_unref_function (sym);
7110 _tmp197_ = _tmp196_;
7111 _tmp198_ = vala_ccode_identifier_new (_tmp197_);
7112 _tmp199_ = _tmp198_;
7113 _tmp200_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp199_);
7114 _tmp201_ = _tmp200_;
7115 _vala_ccode_node_unref0 (_tmp199_);
7116 _g_free0 (_tmp197_);
7117 unref_object = _tmp201_;
7118 _tmp202_ = unref_object;
7119 _tmp203_ = vala_ccode_identifier_new ("data");
7120 _tmp204_ = _tmp203_;
7121 _tmp205_ = vala_ccode_constant_new ("0");
7122 _tmp206_ = _tmp205_;
7123 _tmp207_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp204_, (ValaCCodeExpression*) _tmp206_);
7124 _tmp208_ = _tmp207_;
7125 vala_ccode_function_call_add_argument (_tmp202_, (ValaCCodeExpression*) _tmp208_);
7126 _vala_ccode_node_unref0 (_tmp208_);
7127 _vala_ccode_node_unref0 (_tmp206_);
7128 _vala_ccode_node_unref0 (_tmp204_);
7129 _tmp209_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7130 _tmp210_ = _tmp209_;
7131 _tmp211_ = unref_object;
7132 vala_ccode_function_add_expression (_tmp210_, (ValaCCodeExpression*) _tmp211_);
7133 _tmp212_ = vala_ccode_identifier_new ("g_object_unref");
7134 _tmp213_ = _tmp212_;
7135 _tmp214_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp213_);
7136 _vala_ccode_node_unref0 (unref_object);
7137 unref_object = _tmp214_;
7138 _vala_ccode_node_unref0 (_tmp213_);
7139 _tmp215_ = unref_object;
7140 _tmp216_ = vala_ccode_identifier_new ("data");
7141 _tmp217_ = _tmp216_;
7142 _tmp218_ = vala_ccode_constant_new ("1");
7143 _tmp219_ = _tmp218_;
7144 _tmp220_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp217_, (ValaCCodeExpression*) _tmp219_);
7145 _tmp221_ = _tmp220_;
7146 vala_ccode_function_call_add_argument (_tmp215_, (ValaCCodeExpression*) _tmp221_);
7147 _vala_ccode_node_unref0 (_tmp221_);
7148 _vala_ccode_node_unref0 (_tmp219_);
7149 _vala_ccode_node_unref0 (_tmp217_);
7150 _tmp222_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7151 _tmp223_ = _tmp222_;
7152 _tmp224_ = unref_object;
7153 vala_ccode_function_add_expression (_tmp223_, (ValaCCodeExpression*) _tmp224_);
7154 _tmp225_ = vala_ccode_identifier_new ("g_free");
7155 _tmp226_ = _tmp225_;
7156 _tmp227_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp226_);
7157 _tmp228_ = _tmp227_;
7158 _vala_ccode_node_unref0 (_tmp226_);
7159 free_path = _tmp228_;
7160 _tmp229_ = free_path;
7161 _tmp230_ = vala_ccode_identifier_new ("data");
7162 _tmp231_ = _tmp230_;
7163 _tmp232_ = vala_ccode_constant_new ("2");
7164 _tmp233_ = _tmp232_;
7165 _tmp234_ = vala_ccode_element_access_new ((ValaCCodeExpression*) _tmp231_, (ValaCCodeExpression*) _tmp233_);
7166 _tmp235_ = _tmp234_;
7167 vala_ccode_function_call_add_argument (_tmp229_, (ValaCCodeExpression*) _tmp235_);
7168 _vala_ccode_node_unref0 (_tmp235_);
7169 _vala_ccode_node_unref0 (_tmp233_);
7170 _vala_ccode_node_unref0 (_tmp231_);
7171 _tmp236_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7172 _tmp237_ = _tmp236_;
7173 _tmp238_ = free_path;
7174 vala_ccode_function_add_expression (_tmp237_, (ValaCCodeExpression*) _tmp238_);
7175 _tmp239_ = vala_ccode_identifier_new ("g_free");
7176 _tmp240_ = _tmp239_;
7177 _tmp241_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp240_);
7178 _tmp242_ = _tmp241_;
7179 _vala_ccode_node_unref0 (_tmp240_);
7180 free_data = _tmp242_;
7181 _tmp243_ = free_data;
7182 _tmp244_ = vala_ccode_identifier_new ("data");
7183 _tmp245_ = _tmp244_;
7184 vala_ccode_function_call_add_argument (_tmp243_, (ValaCCodeExpression*) _tmp245_);
7185 _vala_ccode_node_unref0 (_tmp245_);
7186 _tmp246_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
7187 _tmp247_ = _tmp246_;
7188 _tmp248_ = free_data;
7189 vala_ccode_function_add_expression (_tmp247_, (ValaCCodeExpression*) _tmp248_);
7190 vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
7191 _tmp249_ = ((ValaCCodeBaseModule*) self)->cfile;
7192 _tmp250_ = cfunc;
7193 vala_ccode_file_add_function_declaration (_tmp249_, _tmp250_);
7194 _tmp251_ = ((ValaCCodeBaseModule*) self)->cfile;
7195 _tmp252_ = cfunc;
7196 vala_ccode_file_add_function (_tmp251_, _tmp252_);
7197 _vala_ccode_node_unref0 (free_data);
7198 _vala_ccode_node_unref0 (free_path);
7199 _vala_ccode_node_unref0 (unref_object);
7200 _vala_ccode_node_unref0 (cregister);
7201 _vala_ccode_node_unref0 (dup_path);
7202 _vala_ccode_node_unref0 (ref_object);
7203 _g_free0 (ref_function);
7204 _vala_ccode_node_unref0 (alloc_data);
7205 _vala_ccode_node_unref0 (cfunc);
7206 _g_free0 (dbus_iface_name);
7207 }
7208
7209 static void
vala_gd_bus_server_module_real_register_dbus_info(ValaCCodeBaseModule * base,ValaCCodeBlock * block,ValaObjectTypeSymbol * sym)7210 vala_gd_bus_server_module_real_register_dbus_info (ValaCCodeBaseModule* base,
7211 ValaCCodeBlock* block,
7212 ValaObjectTypeSymbol* sym)
7213 {
7214 ValaGDBusServerModule * self;
7215 gchar* dbus_iface_name = NULL;
7216 gchar* _tmp0_;
7217 const gchar* _tmp1_;
7218 ValaCCodeFunctionCall* quark = NULL;
7219 ValaCCodeIdentifier* _tmp2_;
7220 ValaCCodeIdentifier* _tmp3_;
7221 ValaCCodeFunctionCall* _tmp4_;
7222 ValaCCodeFunctionCall* _tmp5_;
7223 ValaCCodeFunctionCall* _tmp6_;
7224 ValaCCodeConstant* _tmp7_;
7225 ValaCCodeConstant* _tmp8_;
7226 ValaCCodeFunctionCall* set_qdata = NULL;
7227 ValaCCodeIdentifier* _tmp9_;
7228 ValaCCodeIdentifier* _tmp10_;
7229 ValaCCodeFunctionCall* _tmp11_;
7230 ValaCCodeFunctionCall* _tmp12_;
7231 ValaCCodeFunctionCall* _tmp13_;
7232 gchar* _tmp14_;
7233 gchar* _tmp15_;
7234 gchar* _tmp16_;
7235 gchar* _tmp17_;
7236 ValaCCodeIdentifier* _tmp18_;
7237 ValaCCodeIdentifier* _tmp19_;
7238 ValaCCodeFunctionCall* _tmp20_;
7239 ValaCCodeFunctionCall* _tmp21_;
7240 ValaCCodeFunctionCall* _tmp22_;
7241 gchar* _tmp23_;
7242 gchar* _tmp24_;
7243 gchar* _tmp25_;
7244 gchar* _tmp26_;
7245 ValaCCodeIdentifier* _tmp27_;
7246 ValaCCodeIdentifier* _tmp28_;
7247 ValaCCodeCastExpression* _tmp29_;
7248 ValaCCodeCastExpression* _tmp30_;
7249 ValaCCodeFunctionCall* _tmp31_;
7250 ValaCCodeExpressionStatement* _tmp32_;
7251 ValaCCodeExpressionStatement* _tmp33_;
7252 self = (ValaGDBusServerModule*) base;
7253 g_return_if_fail (block != NULL);
7254 g_return_if_fail (sym != NULL);
7255 _tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) sym);
7256 dbus_iface_name = _tmp0_;
7257 _tmp1_ = dbus_iface_name;
7258 if (_tmp1_ == NULL) {
7259 _g_free0 (dbus_iface_name);
7260 return;
7261 }
7262 VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_server_module_parent_class)->register_dbus_info ((ValaCCodeBaseModule*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule), block, sym);
7263 _tmp2_ = vala_ccode_identifier_new ("g_quark_from_static_string");
7264 _tmp3_ = _tmp2_;
7265 _tmp4_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp3_);
7266 _tmp5_ = _tmp4_;
7267 _vala_ccode_node_unref0 (_tmp3_);
7268 quark = _tmp5_;
7269 _tmp6_ = quark;
7270 _tmp7_ = vala_ccode_constant_new ("\"vala-dbus-register-object\"");
7271 _tmp8_ = _tmp7_;
7272 vala_ccode_function_call_add_argument (_tmp6_, (ValaCCodeExpression*) _tmp8_);
7273 _vala_ccode_node_unref0 (_tmp8_);
7274 _tmp9_ = vala_ccode_identifier_new ("g_type_set_qdata");
7275 _tmp10_ = _tmp9_;
7276 _tmp11_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp10_);
7277 _tmp12_ = _tmp11_;
7278 _vala_ccode_node_unref0 (_tmp10_);
7279 set_qdata = _tmp12_;
7280 _tmp13_ = set_qdata;
7281 _tmp14_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) sym, NULL);
7282 _tmp15_ = _tmp14_;
7283 _tmp16_ = g_strdup_printf ("%s_type_id", _tmp15_);
7284 _tmp17_ = _tmp16_;
7285 _tmp18_ = vala_ccode_identifier_new (_tmp17_);
7286 _tmp19_ = _tmp18_;
7287 vala_ccode_function_call_add_argument (_tmp13_, (ValaCCodeExpression*) _tmp19_);
7288 _vala_ccode_node_unref0 (_tmp19_);
7289 _g_free0 (_tmp17_);
7290 _g_free0 (_tmp15_);
7291 _tmp20_ = set_qdata;
7292 _tmp21_ = quark;
7293 vala_ccode_function_call_add_argument (_tmp20_, (ValaCCodeExpression*) _tmp21_);
7294 _tmp22_ = set_qdata;
7295 _tmp23_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) sym);
7296 _tmp24_ = _tmp23_;
7297 _tmp25_ = g_strconcat (_tmp24_, "register_object", NULL);
7298 _tmp26_ = _tmp25_;
7299 _tmp27_ = vala_ccode_identifier_new (_tmp26_);
7300 _tmp28_ = _tmp27_;
7301 _tmp29_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp28_, "void*");
7302 _tmp30_ = _tmp29_;
7303 vala_ccode_function_call_add_argument (_tmp22_, (ValaCCodeExpression*) _tmp30_);
7304 _vala_ccode_node_unref0 (_tmp30_);
7305 _vala_ccode_node_unref0 (_tmp28_);
7306 _g_free0 (_tmp26_);
7307 _g_free0 (_tmp24_);
7308 _tmp31_ = set_qdata;
7309 _tmp32_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp31_);
7310 _tmp33_ = _tmp32_;
7311 vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp33_);
7312 _vala_ccode_node_unref0 (_tmp33_);
7313 _vala_ccode_node_unref0 (set_qdata);
7314 _vala_ccode_node_unref0 (quark);
7315 _g_free0 (dbus_iface_name);
7316 }
7317
7318 ValaGDBusServerModule*
vala_gd_bus_server_module_construct(GType object_type)7319 vala_gd_bus_server_module_construct (GType object_type)
7320 {
7321 ValaGDBusServerModule* self = NULL;
7322 self = (ValaGDBusServerModule*) vala_gd_bus_client_module_construct (object_type);
7323 return self;
7324 }
7325
7326 ValaGDBusServerModule*
vala_gd_bus_server_module_new(void)7327 vala_gd_bus_server_module_new (void)
7328 {
7329 return vala_gd_bus_server_module_construct (VALA_TYPE_GD_BUS_SERVER_MODULE);
7330 }
7331
7332 static void
vala_gd_bus_server_module_class_init(ValaGDBusServerModuleClass * klass,gpointer klass_data)7333 vala_gd_bus_server_module_class_init (ValaGDBusServerModuleClass * klass,
7334 gpointer klass_data)
7335 {
7336 vala_gd_bus_server_module_parent_class = g_type_class_peek_parent (klass);
7337 ((ValaCodeVisitorClass *) klass)->visit_method_call = (void (*) (ValaCodeVisitor*, ValaMethodCall*)) vala_gd_bus_server_module_real_visit_method_call;
7338 ((ValaCCodeBaseModuleClass *) klass)->generate_class_declaration = (void (*) (ValaCCodeBaseModule*, ValaClass*, ValaCCodeFile*)) vala_gd_bus_server_module_real_generate_class_declaration;
7339 ((ValaCCodeBaseModuleClass *) klass)->generate_interface_declaration = (void (*) (ValaCCodeBaseModule*, ValaInterface*, ValaCCodeFile*)) vala_gd_bus_server_module_real_generate_interface_declaration;
7340 ((ValaCodeVisitorClass *) klass)->visit_class = (void (*) (ValaCodeVisitor*, ValaClass*)) vala_gd_bus_server_module_real_visit_class;
7341 ((ValaCodeVisitorClass *) klass)->visit_interface = (void (*) (ValaCodeVisitor*, ValaInterface*)) vala_gd_bus_server_module_real_visit_interface;
7342 ((ValaCCodeBaseModuleClass *) klass)->register_dbus_info = (void (*) (ValaCCodeBaseModule*, ValaCCodeBlock*, ValaObjectTypeSymbol*)) vala_gd_bus_server_module_real_register_dbus_info;
7343 }
7344
7345 static void
vala_gd_bus_server_module_instance_init(ValaGDBusServerModule * self,gpointer klass)7346 vala_gd_bus_server_module_instance_init (ValaGDBusServerModule * self,
7347 gpointer klass)
7348 {
7349 }
7350
7351 static GType
vala_gd_bus_server_module_get_type_once(void)7352 vala_gd_bus_server_module_get_type_once (void)
7353 {
7354 static const GTypeInfo g_define_type_info = { sizeof (ValaGDBusServerModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_gd_bus_server_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaGDBusServerModule), 0, (GInstanceInitFunc) vala_gd_bus_server_module_instance_init, NULL };
7355 GType vala_gd_bus_server_module_type_id;
7356 vala_gd_bus_server_module_type_id = g_type_register_static (VALA_TYPE_GD_BUS_CLIENT_MODULE, "ValaGDBusServerModule", &g_define_type_info, 0);
7357 return vala_gd_bus_server_module_type_id;
7358 }
7359
7360 GType
vala_gd_bus_server_module_get_type(void)7361 vala_gd_bus_server_module_get_type (void)
7362 {
7363 static volatile gsize vala_gd_bus_server_module_type_id__volatile = 0;
7364 if (g_once_init_enter (&vala_gd_bus_server_module_type_id__volatile)) {
7365 GType vala_gd_bus_server_module_type_id;
7366 vala_gd_bus_server_module_type_id = vala_gd_bus_server_module_get_type_once ();
7367 g_once_init_leave (&vala_gd_bus_server_module_type_id__volatile, vala_gd_bus_server_module_type_id);
7368 }
7369 return vala_gd_bus_server_module_type_id__volatile;
7370 }
7371
7372