1 /* girwriter.c generated by valac, the Vala compiler
2 * generated from girwriter.vala, do not modify */
3
4 /* girwriter.vala
5 *
6 * Copyright (C) 2011 Florian Brosch
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 * Florian Brosch <flo.brosch@gmail.com>
24 */
25
26 #include <valacodegen.h>
27 #include <glib-object.h>
28 #include <valadoc.h>
29 #include <vala.h>
30 #include <stdlib.h>
31 #include <string.h>
32 #include <glib.h>
33 #include <valagee.h>
34
35 #define VALADOC_TYPE_GIR_WRITER (valadoc_gir_writer_get_type ())
36 #define VALADOC_GIR_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALADOC_TYPE_GIR_WRITER, ValadocGirWriter))
37 #define VALADOC_GIR_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALADOC_TYPE_GIR_WRITER, ValadocGirWriterClass))
38 #define VALADOC_IS_GIR_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALADOC_TYPE_GIR_WRITER))
39 #define VALADOC_IS_GIR_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALADOC_TYPE_GIR_WRITER))
40 #define VALADOC_GIR_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALADOC_TYPE_GIR_WRITER, ValadocGirWriterClass))
41
42 typedef struct _ValadocGirWriter ValadocGirWriter;
43 typedef struct _ValadocGirWriterClass ValadocGirWriterClass;
44 typedef struct _ValadocGirWriterPrivate ValadocGirWriterPrivate;
45
46 #define VALADOC_TYPE_SYMBOL_RESOLVER (valadoc_symbol_resolver_get_type ())
47 #define VALADOC_SYMBOL_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALADOC_TYPE_SYMBOL_RESOLVER, ValadocSymbolResolver))
48 #define VALADOC_SYMBOL_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALADOC_TYPE_SYMBOL_RESOLVER, ValadocSymbolResolverClass))
49 #define VALADOC_IS_SYMBOL_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALADOC_TYPE_SYMBOL_RESOLVER))
50 #define VALADOC_IS_SYMBOL_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALADOC_TYPE_SYMBOL_RESOLVER))
51 #define VALADOC_SYMBOL_RESOLVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALADOC_TYPE_SYMBOL_RESOLVER, ValadocSymbolResolverClass))
52
53 typedef struct _ValadocSymbolResolver ValadocSymbolResolver;
54 typedef struct _ValadocSymbolResolverClass ValadocSymbolResolverClass;
55 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
56 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
57
58 struct _ValadocGirWriter {
59 ValaGIRWriter parent_instance;
60 ValadocGirWriterPrivate * priv;
61 };
62
63 struct _ValadocGirWriterClass {
64 ValaGIRWriterClass parent_class;
65 };
66
67 struct _ValadocGirWriterPrivate {
68 ValadocGtkdocRenderer* renderer;
69 ValadocSymbolResolver* resolver;
70 };
71
72 static gint ValadocGirWriter_private_offset;
73 static gpointer valadoc_gir_writer_parent_class = NULL;
74
75 GType valadoc_gir_writer_get_type (void) G_GNUC_CONST;
76 G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValadocGirWriter, vala_code_visitor_unref)
77 GType valadoc_symbol_resolver_get_type (void) G_GNUC_CONST;
78 G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValadocSymbolResolver, g_object_unref)
79 ValadocGirWriter* valadoc_gir_writer_new (ValadocSymbolResolver* resolver);
80 ValadocGirWriter* valadoc_gir_writer_construct (GType object_type,
81 ValadocSymbolResolver* resolver);
82 static gchar* valadoc_gir_writer_translate (ValadocGirWriter* self,
83 ValadocContentComment* documentation);
84 static gchar* valadoc_gir_writer_translate_taglet (ValadocGirWriter* self,
85 ValadocContentTaglet* taglet);
86 static gchar* valadoc_gir_writer_real_get_interface_comment (ValaGIRWriter* base,
87 ValaInterface* viface);
88 ValadocApiSymbol* valadoc_symbol_resolver_resolve (ValadocSymbolResolver* self,
89 ValaSymbol* symbol);
90 static gchar* valadoc_gir_writer_real_get_struct_comment (ValaGIRWriter* base,
91 ValaStruct* vst);
92 static gchar* valadoc_gir_writer_real_get_enum_comment (ValaGIRWriter* base,
93 ValaEnum* ven);
94 static gchar* valadoc_gir_writer_real_get_class_comment (ValaGIRWriter* base,
95 ValaClass* vc);
96 static gchar* valadoc_gir_writer_real_get_error_code_comment (ValaGIRWriter* base,
97 ValaErrorCode* vecode);
98 static gchar* valadoc_gir_writer_real_get_enum_value_comment (ValaGIRWriter* base,
99 ValaEnumValue* vev);
100 static gchar* valadoc_gir_writer_real_get_constant_comment (ValaGIRWriter* base,
101 ValaConstant* vc);
102 static gchar* valadoc_gir_writer_real_get_error_domain_comment (ValaGIRWriter* base,
103 ValaErrorDomain* vedomain);
104 static gchar* valadoc_gir_writer_real_get_field_comment (ValaGIRWriter* base,
105 ValaField* vf);
106 static gchar* valadoc_gir_writer_real_get_delegate_comment (ValaGIRWriter* base,
107 ValaDelegate* vcb);
108 static gchar* valadoc_gir_writer_real_get_method_comment (ValaGIRWriter* base,
109 ValaMethod* vm);
110 static gchar* valadoc_gir_writer_real_get_property_comment (ValaGIRWriter* base,
111 ValaProperty* vprop);
112 static gchar* valadoc_gir_writer_real_get_delegate_return_comment (ValaGIRWriter* base,
113 ValaDelegate* vcb);
114 static gchar* valadoc_gir_writer_real_get_signal_return_comment (ValaGIRWriter* base,
115 ValaSignal* vsig);
116 static gchar* valadoc_gir_writer_real_get_method_return_comment (ValaGIRWriter* base,
117 ValaMethod* vm);
118 static gchar* valadoc_gir_writer_real_get_signal_comment (ValaGIRWriter* base,
119 ValaSignal* vsig);
120 static gchar* valadoc_gir_writer_real_get_parameter_comment (ValaGIRWriter* base,
121 ValaParameter* param);
122 static void valadoc_gir_writer_finalize (ValaCodeVisitor * obj);
123 static GType valadoc_gir_writer_get_type_once (void);
124
125 static inline gpointer
valadoc_gir_writer_get_instance_private(ValadocGirWriter * self)126 valadoc_gir_writer_get_instance_private (ValadocGirWriter* self)
127 {
128 return G_STRUCT_MEMBER_P (self, ValadocGirWriter_private_offset);
129 }
130
131 static gpointer
_g_object_ref0(gpointer self)132 _g_object_ref0 (gpointer self)
133 {
134 return self ? g_object_ref (self) : NULL;
135 }
136
137 ValadocGirWriter*
valadoc_gir_writer_construct(GType object_type,ValadocSymbolResolver * resolver)138 valadoc_gir_writer_construct (GType object_type,
139 ValadocSymbolResolver* resolver)
140 {
141 ValadocGirWriter* self = NULL;
142 ValadocGtkdocRenderer* _tmp0_;
143 ValadocSymbolResolver* _tmp1_;
144 g_return_val_if_fail (resolver != NULL, NULL);
145 self = (ValadocGirWriter*) vala_gir_writer_construct (object_type);
146 _tmp0_ = valadoc_gtkdoc_renderer_new ();
147 _g_object_unref0 (self->priv->renderer);
148 self->priv->renderer = _tmp0_;
149 _tmp1_ = _g_object_ref0 (resolver);
150 _g_object_unref0 (self->priv->resolver);
151 self->priv->resolver = _tmp1_;
152 return self;
153 }
154
155 ValadocGirWriter*
valadoc_gir_writer_new(ValadocSymbolResolver * resolver)156 valadoc_gir_writer_new (ValadocSymbolResolver* resolver)
157 {
158 return valadoc_gir_writer_construct (VALADOC_TYPE_GIR_WRITER, resolver);
159 }
160
161 static gchar*
valadoc_gir_writer_translate(ValadocGirWriter * self,ValadocContentComment * documentation)162 valadoc_gir_writer_translate (ValadocGirWriter* self,
163 ValadocContentComment* documentation)
164 {
165 ValadocGtkdocRenderer* _tmp0_;
166 ValadocGtkdocRenderer* _tmp1_;
167 const gchar* _tmp2_;
168 const gchar* _tmp3_;
169 gchar* _tmp4_;
170 gchar* result = NULL;
171 g_return_val_if_fail (self != NULL, NULL);
172 if (documentation == NULL) {
173 result = NULL;
174 return result;
175 }
176 _tmp0_ = self->priv->renderer;
177 valadoc_gtkdoc_renderer_render_symbol (_tmp0_, documentation);
178 _tmp1_ = self->priv->renderer;
179 _tmp2_ = valadoc_gtkdoc_renderer_get_content (_tmp1_);
180 _tmp3_ = _tmp2_;
181 _tmp4_ = valadoc_markup_writer_escape (_tmp3_);
182 result = _tmp4_;
183 return result;
184 }
185
186 static gchar*
valadoc_gir_writer_translate_taglet(ValadocGirWriter * self,ValadocContentTaglet * taglet)187 valadoc_gir_writer_translate_taglet (ValadocGirWriter* self,
188 ValadocContentTaglet* taglet)
189 {
190 ValadocGtkdocRenderer* _tmp0_;
191 ValadocGtkdocRenderer* _tmp1_;
192 const gchar* _tmp2_;
193 const gchar* _tmp3_;
194 gchar* _tmp4_;
195 gchar* result = NULL;
196 g_return_val_if_fail (self != NULL, NULL);
197 if (taglet == NULL) {
198 result = NULL;
199 return result;
200 }
201 _tmp0_ = self->priv->renderer;
202 valadoc_content_content_renderer_render_children ((ValadocContentContentRenderer*) _tmp0_, (ValadocContentContentElement*) taglet);
203 _tmp1_ = self->priv->renderer;
204 _tmp2_ = valadoc_gtkdoc_renderer_get_content (_tmp1_);
205 _tmp3_ = _tmp2_;
206 _tmp4_ = valadoc_markup_writer_escape (_tmp3_);
207 result = _tmp4_;
208 return result;
209 }
210
211 static gchar*
valadoc_gir_writer_real_get_interface_comment(ValaGIRWriter * base,ValaInterface * viface)212 valadoc_gir_writer_real_get_interface_comment (ValaGIRWriter* base,
213 ValaInterface* viface)
214 {
215 ValadocGirWriter * self;
216 ValadocApiInterface* iface = NULL;
217 ValadocSymbolResolver* _tmp0_;
218 ValadocApiSymbol* _tmp1_;
219 ValadocApiInterface* _tmp2_;
220 ValadocContentComment* _tmp3_;
221 ValadocContentComment* _tmp4_;
222 gchar* _tmp5_;
223 gchar* result = NULL;
224 self = (ValadocGirWriter*) base;
225 g_return_val_if_fail (viface != NULL, NULL);
226 _tmp0_ = self->priv->resolver;
227 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) viface);
228 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_INTERFACE) ? ((ValadocApiInterface*) _tmp1_) : NULL;
229 if (_tmp2_ == NULL) {
230 _g_object_unref0 (_tmp1_);
231 }
232 iface = _tmp2_;
233 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) iface);
234 _tmp4_ = _tmp3_;
235 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
236 result = _tmp5_;
237 _g_object_unref0 (iface);
238 return result;
239 }
240
241 static gchar*
valadoc_gir_writer_real_get_struct_comment(ValaGIRWriter * base,ValaStruct * vst)242 valadoc_gir_writer_real_get_struct_comment (ValaGIRWriter* base,
243 ValaStruct* vst)
244 {
245 ValadocGirWriter * self;
246 ValadocApiStruct* st = NULL;
247 ValadocSymbolResolver* _tmp0_;
248 ValadocApiSymbol* _tmp1_;
249 ValadocApiStruct* _tmp2_;
250 ValadocContentComment* _tmp3_;
251 ValadocContentComment* _tmp4_;
252 gchar* _tmp5_;
253 gchar* result = NULL;
254 self = (ValadocGirWriter*) base;
255 g_return_val_if_fail (vst != NULL, NULL);
256 _tmp0_ = self->priv->resolver;
257 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vst);
258 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_STRUCT) ? ((ValadocApiStruct*) _tmp1_) : NULL;
259 if (_tmp2_ == NULL) {
260 _g_object_unref0 (_tmp1_);
261 }
262 st = _tmp2_;
263 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) st);
264 _tmp4_ = _tmp3_;
265 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
266 result = _tmp5_;
267 _g_object_unref0 (st);
268 return result;
269 }
270
271 static gchar*
valadoc_gir_writer_real_get_enum_comment(ValaGIRWriter * base,ValaEnum * ven)272 valadoc_gir_writer_real_get_enum_comment (ValaGIRWriter* base,
273 ValaEnum* ven)
274 {
275 ValadocGirWriter * self;
276 ValadocApiEnum* en = NULL;
277 ValadocSymbolResolver* _tmp0_;
278 ValadocApiSymbol* _tmp1_;
279 ValadocApiEnum* _tmp2_;
280 ValadocContentComment* _tmp3_;
281 ValadocContentComment* _tmp4_;
282 gchar* _tmp5_;
283 gchar* result = NULL;
284 self = (ValadocGirWriter*) base;
285 g_return_val_if_fail (ven != NULL, NULL);
286 _tmp0_ = self->priv->resolver;
287 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) ven);
288 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_ENUM) ? ((ValadocApiEnum*) _tmp1_) : NULL;
289 if (_tmp2_ == NULL) {
290 _g_object_unref0 (_tmp1_);
291 }
292 en = _tmp2_;
293 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) en);
294 _tmp4_ = _tmp3_;
295 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
296 result = _tmp5_;
297 _g_object_unref0 (en);
298 return result;
299 }
300
301 static gchar*
valadoc_gir_writer_real_get_class_comment(ValaGIRWriter * base,ValaClass * vc)302 valadoc_gir_writer_real_get_class_comment (ValaGIRWriter* base,
303 ValaClass* vc)
304 {
305 ValadocGirWriter * self;
306 ValadocApiClass* c = NULL;
307 ValadocSymbolResolver* _tmp0_;
308 ValadocApiSymbol* _tmp1_;
309 ValadocApiClass* _tmp2_;
310 ValadocContentComment* _tmp3_;
311 ValadocContentComment* _tmp4_;
312 gchar* _tmp5_;
313 gchar* result = NULL;
314 self = (ValadocGirWriter*) base;
315 g_return_val_if_fail (vc != NULL, NULL);
316 _tmp0_ = self->priv->resolver;
317 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vc);
318 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_CLASS) ? ((ValadocApiClass*) _tmp1_) : NULL;
319 if (_tmp2_ == NULL) {
320 _g_object_unref0 (_tmp1_);
321 }
322 c = _tmp2_;
323 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) c);
324 _tmp4_ = _tmp3_;
325 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
326 result = _tmp5_;
327 _g_object_unref0 (c);
328 return result;
329 }
330
331 static gchar*
valadoc_gir_writer_real_get_error_code_comment(ValaGIRWriter * base,ValaErrorCode * vecode)332 valadoc_gir_writer_real_get_error_code_comment (ValaGIRWriter* base,
333 ValaErrorCode* vecode)
334 {
335 ValadocGirWriter * self;
336 ValadocApiErrorCode* ecode = NULL;
337 ValadocSymbolResolver* _tmp0_;
338 ValadocApiSymbol* _tmp1_;
339 ValadocApiErrorCode* _tmp2_;
340 ValadocContentComment* _tmp3_;
341 ValadocContentComment* _tmp4_;
342 gchar* _tmp5_;
343 gchar* result = NULL;
344 self = (ValadocGirWriter*) base;
345 g_return_val_if_fail (vecode != NULL, NULL);
346 _tmp0_ = self->priv->resolver;
347 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vecode);
348 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_ERROR_CODE) ? ((ValadocApiErrorCode*) _tmp1_) : NULL;
349 if (_tmp2_ == NULL) {
350 _g_object_unref0 (_tmp1_);
351 }
352 ecode = _tmp2_;
353 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) ecode);
354 _tmp4_ = _tmp3_;
355 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
356 result = _tmp5_;
357 _g_object_unref0 (ecode);
358 return result;
359 }
360
361 static gchar*
valadoc_gir_writer_real_get_enum_value_comment(ValaGIRWriter * base,ValaEnumValue * vev)362 valadoc_gir_writer_real_get_enum_value_comment (ValaGIRWriter* base,
363 ValaEnumValue* vev)
364 {
365 ValadocGirWriter * self;
366 ValadocApiEnumValue* ev = NULL;
367 ValadocSymbolResolver* _tmp0_;
368 ValadocApiSymbol* _tmp1_;
369 ValadocApiEnumValue* _tmp2_;
370 ValadocContentComment* _tmp3_;
371 ValadocContentComment* _tmp4_;
372 gchar* _tmp5_;
373 gchar* result = NULL;
374 self = (ValadocGirWriter*) base;
375 g_return_val_if_fail (vev != NULL, NULL);
376 _tmp0_ = self->priv->resolver;
377 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vev);
378 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_ENUM_VALUE) ? ((ValadocApiEnumValue*) _tmp1_) : NULL;
379 if (_tmp2_ == NULL) {
380 _g_object_unref0 (_tmp1_);
381 }
382 ev = _tmp2_;
383 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) ev);
384 _tmp4_ = _tmp3_;
385 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
386 result = _tmp5_;
387 _g_object_unref0 (ev);
388 return result;
389 }
390
391 static gchar*
valadoc_gir_writer_real_get_constant_comment(ValaGIRWriter * base,ValaConstant * vc)392 valadoc_gir_writer_real_get_constant_comment (ValaGIRWriter* base,
393 ValaConstant* vc)
394 {
395 ValadocGirWriter * self;
396 ValadocApiConstant* c = NULL;
397 ValadocSymbolResolver* _tmp0_;
398 ValadocApiSymbol* _tmp1_;
399 ValadocApiConstant* _tmp2_;
400 ValadocContentComment* _tmp3_;
401 ValadocContentComment* _tmp4_;
402 gchar* _tmp5_;
403 gchar* result = NULL;
404 self = (ValadocGirWriter*) base;
405 g_return_val_if_fail (vc != NULL, NULL);
406 _tmp0_ = self->priv->resolver;
407 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vc);
408 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_CONSTANT) ? ((ValadocApiConstant*) _tmp1_) : NULL;
409 if (_tmp2_ == NULL) {
410 _g_object_unref0 (_tmp1_);
411 }
412 c = _tmp2_;
413 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) c);
414 _tmp4_ = _tmp3_;
415 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
416 result = _tmp5_;
417 _g_object_unref0 (c);
418 return result;
419 }
420
421 static gchar*
valadoc_gir_writer_real_get_error_domain_comment(ValaGIRWriter * base,ValaErrorDomain * vedomain)422 valadoc_gir_writer_real_get_error_domain_comment (ValaGIRWriter* base,
423 ValaErrorDomain* vedomain)
424 {
425 ValadocGirWriter * self;
426 ValadocApiErrorDomain* edomain = NULL;
427 ValadocSymbolResolver* _tmp0_;
428 ValadocApiSymbol* _tmp1_;
429 ValadocApiErrorDomain* _tmp2_;
430 ValadocContentComment* _tmp3_;
431 ValadocContentComment* _tmp4_;
432 gchar* _tmp5_;
433 gchar* result = NULL;
434 self = (ValadocGirWriter*) base;
435 g_return_val_if_fail (vedomain != NULL, NULL);
436 _tmp0_ = self->priv->resolver;
437 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vedomain);
438 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_ERROR_DOMAIN) ? ((ValadocApiErrorDomain*) _tmp1_) : NULL;
439 if (_tmp2_ == NULL) {
440 _g_object_unref0 (_tmp1_);
441 }
442 edomain = _tmp2_;
443 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) edomain);
444 _tmp4_ = _tmp3_;
445 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
446 result = _tmp5_;
447 _g_object_unref0 (edomain);
448 return result;
449 }
450
451 static gchar*
valadoc_gir_writer_real_get_field_comment(ValaGIRWriter * base,ValaField * vf)452 valadoc_gir_writer_real_get_field_comment (ValaGIRWriter* base,
453 ValaField* vf)
454 {
455 ValadocGirWriter * self;
456 ValadocApiField* f = NULL;
457 ValadocSymbolResolver* _tmp0_;
458 ValadocApiSymbol* _tmp1_;
459 ValadocApiField* _tmp2_;
460 ValadocContentComment* _tmp3_;
461 ValadocContentComment* _tmp4_;
462 gchar* _tmp5_;
463 gchar* result = NULL;
464 self = (ValadocGirWriter*) base;
465 g_return_val_if_fail (vf != NULL, NULL);
466 _tmp0_ = self->priv->resolver;
467 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vf);
468 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_FIELD) ? ((ValadocApiField*) _tmp1_) : NULL;
469 if (_tmp2_ == NULL) {
470 _g_object_unref0 (_tmp1_);
471 }
472 f = _tmp2_;
473 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) f);
474 _tmp4_ = _tmp3_;
475 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
476 result = _tmp5_;
477 _g_object_unref0 (f);
478 return result;
479 }
480
481 static gchar*
valadoc_gir_writer_real_get_delegate_comment(ValaGIRWriter * base,ValaDelegate * vcb)482 valadoc_gir_writer_real_get_delegate_comment (ValaGIRWriter* base,
483 ValaDelegate* vcb)
484 {
485 ValadocGirWriter * self;
486 ValadocApiDelegate* cb = NULL;
487 ValadocSymbolResolver* _tmp0_;
488 ValadocApiSymbol* _tmp1_;
489 ValadocApiDelegate* _tmp2_;
490 ValadocContentComment* _tmp3_;
491 ValadocContentComment* _tmp4_;
492 gchar* _tmp5_;
493 gchar* result = NULL;
494 self = (ValadocGirWriter*) base;
495 g_return_val_if_fail (vcb != NULL, NULL);
496 _tmp0_ = self->priv->resolver;
497 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vcb);
498 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_DELEGATE) ? ((ValadocApiDelegate*) _tmp1_) : NULL;
499 if (_tmp2_ == NULL) {
500 _g_object_unref0 (_tmp1_);
501 }
502 cb = _tmp2_;
503 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) cb);
504 _tmp4_ = _tmp3_;
505 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
506 result = _tmp5_;
507 _g_object_unref0 (cb);
508 return result;
509 }
510
511 static gchar*
valadoc_gir_writer_real_get_method_comment(ValaGIRWriter * base,ValaMethod * vm)512 valadoc_gir_writer_real_get_method_comment (ValaGIRWriter* base,
513 ValaMethod* vm)
514 {
515 ValadocGirWriter * self;
516 ValadocApiMethod* m = NULL;
517 ValadocSymbolResolver* _tmp0_;
518 ValadocApiSymbol* _tmp1_;
519 ValadocApiMethod* _tmp2_;
520 ValadocContentComment* _tmp3_;
521 ValadocContentComment* _tmp4_;
522 gchar* _tmp5_;
523 gchar* result = NULL;
524 self = (ValadocGirWriter*) base;
525 g_return_val_if_fail (vm != NULL, NULL);
526 _tmp0_ = self->priv->resolver;
527 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vm);
528 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_METHOD) ? ((ValadocApiMethod*) _tmp1_) : NULL;
529 if (_tmp2_ == NULL) {
530 _g_object_unref0 (_tmp1_);
531 }
532 m = _tmp2_;
533 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) m);
534 _tmp4_ = _tmp3_;
535 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
536 result = _tmp5_;
537 _g_object_unref0 (m);
538 return result;
539 }
540
541 static gchar*
valadoc_gir_writer_real_get_property_comment(ValaGIRWriter * base,ValaProperty * vprop)542 valadoc_gir_writer_real_get_property_comment (ValaGIRWriter* base,
543 ValaProperty* vprop)
544 {
545 ValadocGirWriter * self;
546 ValadocApiProperty* prop = NULL;
547 ValadocSymbolResolver* _tmp0_;
548 ValadocApiSymbol* _tmp1_;
549 ValadocApiProperty* _tmp2_;
550 ValadocContentComment* _tmp3_;
551 ValadocContentComment* _tmp4_;
552 gchar* _tmp5_;
553 gchar* result = NULL;
554 self = (ValadocGirWriter*) base;
555 g_return_val_if_fail (vprop != NULL, NULL);
556 _tmp0_ = self->priv->resolver;
557 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vprop);
558 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_PROPERTY) ? ((ValadocApiProperty*) _tmp1_) : NULL;
559 if (_tmp2_ == NULL) {
560 _g_object_unref0 (_tmp1_);
561 }
562 prop = _tmp2_;
563 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) prop);
564 _tmp4_ = _tmp3_;
565 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
566 result = _tmp5_;
567 _g_object_unref0 (prop);
568 return result;
569 }
570
571 static gpointer
_vala_iterable_ref0(gpointer self)572 _vala_iterable_ref0 (gpointer self)
573 {
574 return self ? vala_iterable_ref (self) : NULL;
575 }
576
577 static gchar*
valadoc_gir_writer_real_get_delegate_return_comment(ValaGIRWriter * base,ValaDelegate * vcb)578 valadoc_gir_writer_real_get_delegate_return_comment (ValaGIRWriter* base,
579 ValaDelegate* vcb)
580 {
581 ValadocGirWriter * self;
582 ValadocApiDelegate* cb = NULL;
583 ValadocSymbolResolver* _tmp0_;
584 ValadocApiSymbol* _tmp1_;
585 ValadocApiDelegate* _tmp2_;
586 ValadocApiDelegate* _tmp3_;
587 ValadocContentComment* _tmp4_;
588 ValadocContentComment* _tmp5_;
589 ValadocContentComment* documentation = NULL;
590 ValadocApiDelegate* _tmp6_;
591 ValadocContentComment* _tmp7_;
592 ValadocContentComment* _tmp8_;
593 ValadocContentComment* _tmp9_;
594 ValadocContentComment* _tmp10_;
595 ValaList* taglets = NULL;
596 ValadocContentComment* _tmp11_;
597 ValadocApiDelegate* _tmp12_;
598 ValaList* _tmp13_;
599 gchar* result = NULL;
600 self = (ValadocGirWriter*) base;
601 g_return_val_if_fail (vcb != NULL, NULL);
602 _tmp0_ = self->priv->resolver;
603 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vcb);
604 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_DELEGATE) ? ((ValadocApiDelegate*) _tmp1_) : NULL;
605 if (_tmp2_ == NULL) {
606 _g_object_unref0 (_tmp1_);
607 }
608 cb = _tmp2_;
609 _tmp3_ = cb;
610 _tmp4_ = valadoc_api_node_get_documentation ((ValadocApiNode*) _tmp3_);
611 _tmp5_ = _tmp4_;
612 if (_tmp5_ == NULL) {
613 result = NULL;
614 _g_object_unref0 (cb);
615 return result;
616 }
617 _tmp6_ = cb;
618 _tmp7_ = valadoc_api_node_get_documentation ((ValadocApiNode*) _tmp6_);
619 _tmp8_ = _tmp7_;
620 _tmp9_ = _g_object_ref0 (_tmp8_);
621 documentation = _tmp9_;
622 _tmp10_ = documentation;
623 if (_tmp10_ == NULL) {
624 result = NULL;
625 _g_object_unref0 (documentation);
626 _g_object_unref0 (cb);
627 return result;
628 }
629 _tmp11_ = documentation;
630 _tmp12_ = cb;
631 _tmp13_ = valadoc_content_comment_find_taglets (_tmp11_, (ValadocApiNode*) _tmp12_, VALADOC_TAGLETS_TYPE_RETURN);
632 taglets = _tmp13_;
633 {
634 ValaList* _taglet_list = NULL;
635 ValaList* _tmp14_;
636 ValaList* _tmp15_;
637 gint _taglet_size = 0;
638 ValaList* _tmp16_;
639 gint _tmp17_;
640 gint _tmp18_;
641 gint _taglet_index = 0;
642 _tmp14_ = taglets;
643 _tmp15_ = _vala_iterable_ref0 (_tmp14_);
644 _taglet_list = _tmp15_;
645 _tmp16_ = _taglet_list;
646 _tmp17_ = vala_collection_get_size ((ValaCollection*) _tmp16_);
647 _tmp18_ = _tmp17_;
648 _taglet_size = _tmp18_;
649 _taglet_index = -1;
650 while (TRUE) {
651 gint _tmp19_;
652 gint _tmp20_;
653 ValadocContentTaglet* taglet = NULL;
654 ValaList* _tmp21_;
655 gpointer _tmp22_;
656 ValadocContentTaglet* _tmp23_;
657 gchar* _tmp24_;
658 _taglet_index = _taglet_index + 1;
659 _tmp19_ = _taglet_index;
660 _tmp20_ = _taglet_size;
661 if (!(_tmp19_ < _tmp20_)) {
662 break;
663 }
664 _tmp21_ = _taglet_list;
665 _tmp22_ = vala_list_get (_tmp21_, _taglet_index);
666 taglet = (ValadocContentTaglet*) _tmp22_;
667 _tmp23_ = taglet;
668 _tmp24_ = valadoc_gir_writer_translate_taglet (self, _tmp23_);
669 result = _tmp24_;
670 _g_object_unref0 (taglet);
671 _vala_iterable_unref0 (_taglet_list);
672 _vala_iterable_unref0 (taglets);
673 _g_object_unref0 (documentation);
674 _g_object_unref0 (cb);
675 return result;
676 }
677 _vala_iterable_unref0 (_taglet_list);
678 }
679 result = NULL;
680 _vala_iterable_unref0 (taglets);
681 _g_object_unref0 (documentation);
682 _g_object_unref0 (cb);
683 return result;
684 }
685
686 static gchar*
valadoc_gir_writer_real_get_signal_return_comment(ValaGIRWriter * base,ValaSignal * vsig)687 valadoc_gir_writer_real_get_signal_return_comment (ValaGIRWriter* base,
688 ValaSignal* vsig)
689 {
690 ValadocGirWriter * self;
691 ValadocApiSignal* sig = NULL;
692 ValadocSymbolResolver* _tmp0_;
693 ValadocApiSymbol* _tmp1_;
694 ValadocApiSignal* _tmp2_;
695 ValadocApiSignal* _tmp3_;
696 ValadocContentComment* _tmp4_;
697 ValadocContentComment* _tmp5_;
698 ValadocContentComment* documentation = NULL;
699 ValadocApiSignal* _tmp6_;
700 ValadocContentComment* _tmp7_;
701 ValadocContentComment* _tmp8_;
702 ValadocContentComment* _tmp9_;
703 ValadocContentComment* _tmp10_;
704 ValaList* taglets = NULL;
705 ValadocContentComment* _tmp11_;
706 ValadocApiSignal* _tmp12_;
707 ValaList* _tmp13_;
708 gchar* result = NULL;
709 self = (ValadocGirWriter*) base;
710 g_return_val_if_fail (vsig != NULL, NULL);
711 _tmp0_ = self->priv->resolver;
712 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vsig);
713 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_SIGNAL) ? ((ValadocApiSignal*) _tmp1_) : NULL;
714 if (_tmp2_ == NULL) {
715 _g_object_unref0 (_tmp1_);
716 }
717 sig = _tmp2_;
718 _tmp3_ = sig;
719 _tmp4_ = valadoc_api_node_get_documentation ((ValadocApiNode*) _tmp3_);
720 _tmp5_ = _tmp4_;
721 if (_tmp5_ == NULL) {
722 result = NULL;
723 _g_object_unref0 (sig);
724 return result;
725 }
726 _tmp6_ = sig;
727 _tmp7_ = valadoc_api_node_get_documentation ((ValadocApiNode*) _tmp6_);
728 _tmp8_ = _tmp7_;
729 _tmp9_ = _g_object_ref0 (_tmp8_);
730 documentation = _tmp9_;
731 _tmp10_ = documentation;
732 if (_tmp10_ == NULL) {
733 result = NULL;
734 _g_object_unref0 (documentation);
735 _g_object_unref0 (sig);
736 return result;
737 }
738 _tmp11_ = documentation;
739 _tmp12_ = sig;
740 _tmp13_ = valadoc_content_comment_find_taglets (_tmp11_, (ValadocApiNode*) _tmp12_, VALADOC_TAGLETS_TYPE_RETURN);
741 taglets = _tmp13_;
742 {
743 ValaList* _taglet_list = NULL;
744 ValaList* _tmp14_;
745 ValaList* _tmp15_;
746 gint _taglet_size = 0;
747 ValaList* _tmp16_;
748 gint _tmp17_;
749 gint _tmp18_;
750 gint _taglet_index = 0;
751 _tmp14_ = taglets;
752 _tmp15_ = _vala_iterable_ref0 (_tmp14_);
753 _taglet_list = _tmp15_;
754 _tmp16_ = _taglet_list;
755 _tmp17_ = vala_collection_get_size ((ValaCollection*) _tmp16_);
756 _tmp18_ = _tmp17_;
757 _taglet_size = _tmp18_;
758 _taglet_index = -1;
759 while (TRUE) {
760 gint _tmp19_;
761 gint _tmp20_;
762 ValadocContentTaglet* taglet = NULL;
763 ValaList* _tmp21_;
764 gpointer _tmp22_;
765 ValadocContentTaglet* _tmp23_;
766 gchar* _tmp24_;
767 _taglet_index = _taglet_index + 1;
768 _tmp19_ = _taglet_index;
769 _tmp20_ = _taglet_size;
770 if (!(_tmp19_ < _tmp20_)) {
771 break;
772 }
773 _tmp21_ = _taglet_list;
774 _tmp22_ = vala_list_get (_tmp21_, _taglet_index);
775 taglet = (ValadocContentTaglet*) _tmp22_;
776 _tmp23_ = taglet;
777 _tmp24_ = valadoc_gir_writer_translate_taglet (self, _tmp23_);
778 result = _tmp24_;
779 _g_object_unref0 (taglet);
780 _vala_iterable_unref0 (_taglet_list);
781 _vala_iterable_unref0 (taglets);
782 _g_object_unref0 (documentation);
783 _g_object_unref0 (sig);
784 return result;
785 }
786 _vala_iterable_unref0 (_taglet_list);
787 }
788 result = NULL;
789 _vala_iterable_unref0 (taglets);
790 _g_object_unref0 (documentation);
791 _g_object_unref0 (sig);
792 return result;
793 }
794
795 static gchar*
valadoc_gir_writer_real_get_method_return_comment(ValaGIRWriter * base,ValaMethod * vm)796 valadoc_gir_writer_real_get_method_return_comment (ValaGIRWriter* base,
797 ValaMethod* vm)
798 {
799 ValadocGirWriter * self;
800 ValadocApiMethod* m = NULL;
801 ValadocSymbolResolver* _tmp0_;
802 ValadocApiSymbol* _tmp1_;
803 ValadocApiMethod* _tmp2_;
804 ValadocApiMethod* _tmp3_;
805 ValadocContentComment* _tmp4_;
806 ValadocContentComment* _tmp5_;
807 ValadocContentComment* documentation = NULL;
808 ValadocApiMethod* _tmp6_;
809 ValadocContentComment* _tmp7_;
810 ValadocContentComment* _tmp8_;
811 ValadocContentComment* _tmp9_;
812 ValadocContentComment* _tmp10_;
813 ValaList* taglets = NULL;
814 ValadocContentComment* _tmp11_;
815 ValadocApiMethod* _tmp12_;
816 ValaList* _tmp13_;
817 gchar* result = NULL;
818 self = (ValadocGirWriter*) base;
819 g_return_val_if_fail (vm != NULL, NULL);
820 _tmp0_ = self->priv->resolver;
821 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vm);
822 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_METHOD) ? ((ValadocApiMethod*) _tmp1_) : NULL;
823 if (_tmp2_ == NULL) {
824 _g_object_unref0 (_tmp1_);
825 }
826 m = _tmp2_;
827 _tmp3_ = m;
828 _tmp4_ = valadoc_api_node_get_documentation ((ValadocApiNode*) _tmp3_);
829 _tmp5_ = _tmp4_;
830 if (_tmp5_ == NULL) {
831 result = NULL;
832 _g_object_unref0 (m);
833 return result;
834 }
835 _tmp6_ = m;
836 _tmp7_ = valadoc_api_node_get_documentation ((ValadocApiNode*) _tmp6_);
837 _tmp8_ = _tmp7_;
838 _tmp9_ = _g_object_ref0 (_tmp8_);
839 documentation = _tmp9_;
840 _tmp10_ = documentation;
841 if (_tmp10_ == NULL) {
842 result = NULL;
843 _g_object_unref0 (documentation);
844 _g_object_unref0 (m);
845 return result;
846 }
847 _tmp11_ = documentation;
848 _tmp12_ = m;
849 _tmp13_ = valadoc_content_comment_find_taglets (_tmp11_, (ValadocApiNode*) _tmp12_, VALADOC_TAGLETS_TYPE_RETURN);
850 taglets = _tmp13_;
851 {
852 ValaList* _taglet_list = NULL;
853 ValaList* _tmp14_;
854 ValaList* _tmp15_;
855 gint _taglet_size = 0;
856 ValaList* _tmp16_;
857 gint _tmp17_;
858 gint _tmp18_;
859 gint _taglet_index = 0;
860 _tmp14_ = taglets;
861 _tmp15_ = _vala_iterable_ref0 (_tmp14_);
862 _taglet_list = _tmp15_;
863 _tmp16_ = _taglet_list;
864 _tmp17_ = vala_collection_get_size ((ValaCollection*) _tmp16_);
865 _tmp18_ = _tmp17_;
866 _taglet_size = _tmp18_;
867 _taglet_index = -1;
868 while (TRUE) {
869 gint _tmp19_;
870 gint _tmp20_;
871 ValadocContentTaglet* taglet = NULL;
872 ValaList* _tmp21_;
873 gpointer _tmp22_;
874 ValadocContentTaglet* _tmp23_;
875 gchar* _tmp24_;
876 _taglet_index = _taglet_index + 1;
877 _tmp19_ = _taglet_index;
878 _tmp20_ = _taglet_size;
879 if (!(_tmp19_ < _tmp20_)) {
880 break;
881 }
882 _tmp21_ = _taglet_list;
883 _tmp22_ = vala_list_get (_tmp21_, _taglet_index);
884 taglet = (ValadocContentTaglet*) _tmp22_;
885 _tmp23_ = taglet;
886 _tmp24_ = valadoc_gir_writer_translate_taglet (self, _tmp23_);
887 result = _tmp24_;
888 _g_object_unref0 (taglet);
889 _vala_iterable_unref0 (_taglet_list);
890 _vala_iterable_unref0 (taglets);
891 _g_object_unref0 (documentation);
892 _g_object_unref0 (m);
893 return result;
894 }
895 _vala_iterable_unref0 (_taglet_list);
896 }
897 result = NULL;
898 _vala_iterable_unref0 (taglets);
899 _g_object_unref0 (documentation);
900 _g_object_unref0 (m);
901 return result;
902 }
903
904 static gchar*
valadoc_gir_writer_real_get_signal_comment(ValaGIRWriter * base,ValaSignal * vsig)905 valadoc_gir_writer_real_get_signal_comment (ValaGIRWriter* base,
906 ValaSignal* vsig)
907 {
908 ValadocGirWriter * self;
909 ValadocApiSignal* sig = NULL;
910 ValadocSymbolResolver* _tmp0_;
911 ValadocApiSymbol* _tmp1_;
912 ValadocApiSignal* _tmp2_;
913 ValadocContentComment* _tmp3_;
914 ValadocContentComment* _tmp4_;
915 gchar* _tmp5_;
916 gchar* result = NULL;
917 self = (ValadocGirWriter*) base;
918 g_return_val_if_fail (vsig != NULL, NULL);
919 _tmp0_ = self->priv->resolver;
920 _tmp1_ = valadoc_symbol_resolver_resolve (_tmp0_, (ValaSymbol*) vsig);
921 _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, VALADOC_API_TYPE_SIGNAL) ? ((ValadocApiSignal*) _tmp1_) : NULL;
922 if (_tmp2_ == NULL) {
923 _g_object_unref0 (_tmp1_);
924 }
925 sig = _tmp2_;
926 _tmp3_ = valadoc_api_node_get_documentation ((ValadocApiNode*) sig);
927 _tmp4_ = _tmp3_;
928 _tmp5_ = valadoc_gir_writer_translate (self, _tmp4_);
929 result = _tmp5_;
930 _g_object_unref0 (sig);
931 return result;
932 }
933
934 static gchar*
valadoc_gir_writer_real_get_parameter_comment(ValaGIRWriter * base,ValaParameter * param)935 valadoc_gir_writer_real_get_parameter_comment (ValaGIRWriter* base,
936 ValaParameter* param)
937 {
938 ValadocGirWriter * self;
939 ValadocApiSymbol* symbol = NULL;
940 ValadocSymbolResolver* _tmp0_;
941 ValaSymbol* _tmp1_;
942 ValaSymbol* _tmp2_;
943 ValadocApiSymbol* _tmp3_;
944 ValadocApiSymbol* _tmp4_;
945 ValadocContentComment* documentation = NULL;
946 ValadocApiSymbol* _tmp5_;
947 ValadocContentComment* _tmp6_;
948 ValadocContentComment* _tmp7_;
949 ValadocContentComment* _tmp8_;
950 ValadocContentComment* _tmp9_;
951 ValaList* taglets = NULL;
952 ValadocContentComment* _tmp10_;
953 ValadocApiSymbol* _tmp11_;
954 ValaList* _tmp12_;
955 gchar* result = NULL;
956 self = (ValadocGirWriter*) base;
957 g_return_val_if_fail (param != NULL, NULL);
958 _tmp0_ = self->priv->resolver;
959 _tmp1_ = vala_symbol_get_parent_symbol ((ValaSymbol*) param);
960 _tmp2_ = _tmp1_;
961 _tmp3_ = valadoc_symbol_resolver_resolve (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, VALA_TYPE_SYMBOL, ValaSymbol));
962 symbol = _tmp3_;
963 _tmp4_ = symbol;
964 if (_tmp4_ == NULL) {
965 result = NULL;
966 _g_object_unref0 (symbol);
967 return result;
968 }
969 _tmp5_ = symbol;
970 _tmp6_ = valadoc_api_node_get_documentation ((ValadocApiNode*) _tmp5_);
971 _tmp7_ = _tmp6_;
972 _tmp8_ = _g_object_ref0 (_tmp7_);
973 documentation = _tmp8_;
974 _tmp9_ = documentation;
975 if (_tmp9_ == NULL) {
976 result = NULL;
977 _g_object_unref0 (documentation);
978 _g_object_unref0 (symbol);
979 return result;
980 }
981 _tmp10_ = documentation;
982 _tmp11_ = symbol;
983 _tmp12_ = valadoc_content_comment_find_taglets (_tmp10_, (ValadocApiNode*) _tmp11_, VALADOC_TAGLETS_TYPE_PARAM);
984 taglets = _tmp12_;
985 {
986 ValaList* __taglet_list = NULL;
987 ValaList* _tmp13_;
988 ValaList* _tmp14_;
989 gint __taglet_size = 0;
990 ValaList* _tmp15_;
991 gint _tmp16_;
992 gint _tmp17_;
993 gint __taglet_index = 0;
994 _tmp13_ = taglets;
995 _tmp14_ = _vala_iterable_ref0 (_tmp13_);
996 __taglet_list = _tmp14_;
997 _tmp15_ = __taglet_list;
998 _tmp16_ = vala_collection_get_size ((ValaCollection*) _tmp15_);
999 _tmp17_ = _tmp16_;
1000 __taglet_size = _tmp17_;
1001 __taglet_index = -1;
1002 while (TRUE) {
1003 gint _tmp18_;
1004 gint _tmp19_;
1005 ValadocContentTaglet* _taglet = NULL;
1006 ValaList* _tmp20_;
1007 gpointer _tmp21_;
1008 ValadocTagletsParam* taglet = NULL;
1009 ValadocContentTaglet* _tmp22_;
1010 ValadocTagletsParam* _tmp23_;
1011 ValadocTagletsParam* _tmp24_;
1012 const gchar* _tmp25_;
1013 const gchar* _tmp26_;
1014 const gchar* _tmp27_;
1015 const gchar* _tmp28_;
1016 __taglet_index = __taglet_index + 1;
1017 _tmp18_ = __taglet_index;
1018 _tmp19_ = __taglet_size;
1019 if (!(_tmp18_ < _tmp19_)) {
1020 break;
1021 }
1022 _tmp20_ = __taglet_list;
1023 _tmp21_ = vala_list_get (_tmp20_, __taglet_index);
1024 _taglet = (ValadocContentTaglet*) _tmp21_;
1025 _tmp22_ = _taglet;
1026 _tmp23_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, VALADOC_TAGLETS_TYPE_PARAM, ValadocTagletsParam));
1027 taglet = _tmp23_;
1028 _tmp24_ = taglet;
1029 _tmp25_ = valadoc_taglets_param_get_parameter_name (_tmp24_);
1030 _tmp26_ = _tmp25_;
1031 _tmp27_ = vala_symbol_get_name ((ValaSymbol*) param);
1032 _tmp28_ = _tmp27_;
1033 if (g_strcmp0 (_tmp26_, _tmp28_) == 0) {
1034 ValadocTagletsParam* _tmp29_;
1035 gchar* _tmp30_;
1036 _tmp29_ = taglet;
1037 _tmp30_ = valadoc_gir_writer_translate_taglet (self, (ValadocContentTaglet*) _tmp29_);
1038 result = _tmp30_;
1039 _g_object_unref0 (taglet);
1040 _g_object_unref0 (_taglet);
1041 _vala_iterable_unref0 (__taglet_list);
1042 _vala_iterable_unref0 (taglets);
1043 _g_object_unref0 (documentation);
1044 _g_object_unref0 (symbol);
1045 return result;
1046 }
1047 _g_object_unref0 (taglet);
1048 _g_object_unref0 (_taglet);
1049 }
1050 _vala_iterable_unref0 (__taglet_list);
1051 }
1052 result = NULL;
1053 _vala_iterable_unref0 (taglets);
1054 _g_object_unref0 (documentation);
1055 _g_object_unref0 (symbol);
1056 return result;
1057 }
1058
1059 static void
valadoc_gir_writer_class_init(ValadocGirWriterClass * klass,gpointer klass_data)1060 valadoc_gir_writer_class_init (ValadocGirWriterClass * klass,
1061 gpointer klass_data)
1062 {
1063 valadoc_gir_writer_parent_class = g_type_class_peek_parent (klass);
1064 ((ValaCodeVisitorClass *) klass)->finalize = valadoc_gir_writer_finalize;
1065 g_type_class_adjust_private_offset (klass, &ValadocGirWriter_private_offset);
1066 ((ValaGIRWriterClass *) klass)->get_interface_comment = (gchar* (*) (ValaGIRWriter*, ValaInterface*)) valadoc_gir_writer_real_get_interface_comment;
1067 ((ValaGIRWriterClass *) klass)->get_struct_comment = (gchar* (*) (ValaGIRWriter*, ValaStruct*)) valadoc_gir_writer_real_get_struct_comment;
1068 ((ValaGIRWriterClass *) klass)->get_enum_comment = (gchar* (*) (ValaGIRWriter*, ValaEnum*)) valadoc_gir_writer_real_get_enum_comment;
1069 ((ValaGIRWriterClass *) klass)->get_class_comment = (gchar* (*) (ValaGIRWriter*, ValaClass*)) valadoc_gir_writer_real_get_class_comment;
1070 ((ValaGIRWriterClass *) klass)->get_error_code_comment = (gchar* (*) (ValaGIRWriter*, ValaErrorCode*)) valadoc_gir_writer_real_get_error_code_comment;
1071 ((ValaGIRWriterClass *) klass)->get_enum_value_comment = (gchar* (*) (ValaGIRWriter*, ValaEnumValue*)) valadoc_gir_writer_real_get_enum_value_comment;
1072 ((ValaGIRWriterClass *) klass)->get_constant_comment = (gchar* (*) (ValaGIRWriter*, ValaConstant*)) valadoc_gir_writer_real_get_constant_comment;
1073 ((ValaGIRWriterClass *) klass)->get_error_domain_comment = (gchar* (*) (ValaGIRWriter*, ValaErrorDomain*)) valadoc_gir_writer_real_get_error_domain_comment;
1074 ((ValaGIRWriterClass *) klass)->get_field_comment = (gchar* (*) (ValaGIRWriter*, ValaField*)) valadoc_gir_writer_real_get_field_comment;
1075 ((ValaGIRWriterClass *) klass)->get_delegate_comment = (gchar* (*) (ValaGIRWriter*, ValaDelegate*)) valadoc_gir_writer_real_get_delegate_comment;
1076 ((ValaGIRWriterClass *) klass)->get_method_comment = (gchar* (*) (ValaGIRWriter*, ValaMethod*)) valadoc_gir_writer_real_get_method_comment;
1077 ((ValaGIRWriterClass *) klass)->get_property_comment = (gchar* (*) (ValaGIRWriter*, ValaProperty*)) valadoc_gir_writer_real_get_property_comment;
1078 ((ValaGIRWriterClass *) klass)->get_delegate_return_comment = (gchar* (*) (ValaGIRWriter*, ValaDelegate*)) valadoc_gir_writer_real_get_delegate_return_comment;
1079 ((ValaGIRWriterClass *) klass)->get_signal_return_comment = (gchar* (*) (ValaGIRWriter*, ValaSignal*)) valadoc_gir_writer_real_get_signal_return_comment;
1080 ((ValaGIRWriterClass *) klass)->get_method_return_comment = (gchar* (*) (ValaGIRWriter*, ValaMethod*)) valadoc_gir_writer_real_get_method_return_comment;
1081 ((ValaGIRWriterClass *) klass)->get_signal_comment = (gchar* (*) (ValaGIRWriter*, ValaSignal*)) valadoc_gir_writer_real_get_signal_comment;
1082 ((ValaGIRWriterClass *) klass)->get_parameter_comment = (gchar* (*) (ValaGIRWriter*, ValaParameter*)) valadoc_gir_writer_real_get_parameter_comment;
1083 }
1084
1085 static void
valadoc_gir_writer_instance_init(ValadocGirWriter * self,gpointer klass)1086 valadoc_gir_writer_instance_init (ValadocGirWriter * self,
1087 gpointer klass)
1088 {
1089 self->priv = valadoc_gir_writer_get_instance_private (self);
1090 }
1091
1092 static void
valadoc_gir_writer_finalize(ValaCodeVisitor * obj)1093 valadoc_gir_writer_finalize (ValaCodeVisitor * obj)
1094 {
1095 ValadocGirWriter * self;
1096 self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_TYPE_GIR_WRITER, ValadocGirWriter);
1097 _g_object_unref0 (self->priv->renderer);
1098 _g_object_unref0 (self->priv->resolver);
1099 VALA_CODE_VISITOR_CLASS (valadoc_gir_writer_parent_class)->finalize (obj);
1100 }
1101
1102 /**
1103 * Code visitor generating .gir file for the public interface.
1104 */
1105 static GType
valadoc_gir_writer_get_type_once(void)1106 valadoc_gir_writer_get_type_once (void)
1107 {
1108 static const GTypeInfo g_define_type_info = { sizeof (ValadocGirWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_gir_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocGirWriter), 0, (GInstanceInitFunc) valadoc_gir_writer_instance_init, NULL };
1109 GType valadoc_gir_writer_type_id;
1110 valadoc_gir_writer_type_id = g_type_register_static (VALA_TYPE_GIR_WRITER, "ValadocGirWriter", &g_define_type_info, 0);
1111 ValadocGirWriter_private_offset = g_type_add_instance_private (valadoc_gir_writer_type_id, sizeof (ValadocGirWriterPrivate));
1112 return valadoc_gir_writer_type_id;
1113 }
1114
1115 GType
valadoc_gir_writer_get_type(void)1116 valadoc_gir_writer_get_type (void)
1117 {
1118 static volatile gsize valadoc_gir_writer_type_id__volatile = 0;
1119 if (g_once_init_enter (&valadoc_gir_writer_type_id__volatile)) {
1120 GType valadoc_gir_writer_type_id;
1121 valadoc_gir_writer_type_id = valadoc_gir_writer_get_type_once ();
1122 g_once_init_leave (&valadoc_gir_writer_type_id__volatile, valadoc_gir_writer_type_id);
1123 }
1124 return valadoc_gir_writer_type_id__volatile;
1125 }
1126
1127