1 /* GObject - GLib Type, Object, Parameter and Signal Library
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
13 * You should have received a copy of the GNU Lesser General
14 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
22 #include "gvaluetypes.h"
26 #define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
27 #define g_marshal_value_peek_char(v) g_value_get_schar (v)
28 #define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
29 #define g_marshal_value_peek_int(v) g_value_get_int (v)
30 #define g_marshal_value_peek_uint(v) g_value_get_uint (v)
31 #define g_marshal_value_peek_long(v) g_value_get_long (v)
32 #define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
33 #define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
34 #define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
35 #define g_marshal_value_peek_enum(v) g_value_get_enum (v)
36 #define g_marshal_value_peek_flags(v) g_value_get_flags (v)
37 #define g_marshal_value_peek_float(v) g_value_get_float (v)
38 #define g_marshal_value_peek_double(v) g_value_get_double (v)
39 #define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
40 #define g_marshal_value_peek_param(v) g_value_get_param (v)
41 #define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
42 #define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
43 #define g_marshal_value_peek_object(v) g_value_get_object (v)
44 #define g_marshal_value_peek_variant(v) g_value_get_variant (v)
45 #else /* !G_ENABLE_DEBUG */
46 /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
47 * Do not access GValues directly in your code. Instead, use the
48 * g_value_get_*() functions
50 #define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
51 #define g_marshal_value_peek_char(v) (v)->data[0].v_int
52 #define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
53 #define g_marshal_value_peek_int(v) (v)->data[0].v_int
54 #define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
55 #define g_marshal_value_peek_long(v) (v)->data[0].v_long
56 #define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
57 #define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
58 #define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
59 #define g_marshal_value_peek_enum(v) (v)->data[0].v_long
60 #define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
61 #define g_marshal_value_peek_float(v) (v)->data[0].v_float
62 #define g_marshal_value_peek_double(v) (v)->data[0].v_double
63 #define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
64 #define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
65 #define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
66 #define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
67 #define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
68 #define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
69 #endif /* !G_ENABLE_DEBUG */
73 * g_cclosure_marshal_VOID__VOID:
74 * @closure: A #GClosure.
75 * @return_value: A #GValue to store the return value. May be %NULL
76 * if the callback of closure doesn't return a value.
77 * @n_param_values: The length of the @param_values array.
78 * @param_values: An array of #GValues holding the arguments
79 * on which to invoke the callback of closure.
80 * @invocation_hint: The invocation hint given as the last argument to
82 * @marshal_data: Additional data specified when registering the
83 * marshaller, see g_closure_set_marshal() and
84 * g_closure_set_meta_marshal()
86 * A #GClosureMarshal function for use with signals with no arguments.
90 g_cclosure_marshal_VOID__VOID (GClosure *closure,
91 GValue *return_value G_GNUC_UNUSED,
93 const GValue *param_values,
94 gpointer invocation_hint G_GNUC_UNUSED,
95 gpointer marshal_data)
97 typedef void (*GMarshalFunc_VOID__VOID) (gpointer data1,
99 GMarshalFunc_VOID__VOID callback;
100 GCClosure *cc = (GCClosure*) closure;
101 gpointer data1, data2;
103 g_return_if_fail (n_param_values == 1);
105 if (G_CCLOSURE_SWAP_DATA (closure))
107 data1 = closure->data;
108 data2 = g_value_peek_pointer (param_values + 0);
112 data1 = g_value_peek_pointer (param_values + 0);
113 data2 = closure->data;
115 callback = (GMarshalFunc_VOID__VOID) (marshal_data ? marshal_data : cc->callback);
122 * g_cclosure_marshal_VOID__VOIDv:
123 * @closure: the #GClosure to which the marshaller belongs
124 * @return_value: (nullable): a #GValue to store the return
125 * value. May be %NULL if the callback of @closure doesn't return a
127 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
128 * @args: va_list of arguments to be passed to the closure.
129 * @marshal_data: (nullable): additional data specified when
130 * registering the marshaller, see g_closure_set_marshal() and
131 * g_closure_set_meta_marshal()
132 * @n_params: the length of the @param_types array
133 * @param_types: (array length=n_params): the #GType of each argument from
136 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__VOID().
139 g_cclosure_marshal_VOID__VOIDv (GClosure *closure,
140 GValue *return_value,
143 gpointer marshal_data,
147 typedef void (*GMarshalFunc_VOID__VOID) (gpointer instance,
149 GCClosure *cc = (GCClosure*) closure;
150 gpointer data1, data2;
151 GMarshalFunc_VOID__VOID callback;
153 if (G_CCLOSURE_SWAP_DATA (closure))
155 data1 = closure->data;
161 data2 = closure->data;
163 callback = (GMarshalFunc_VOID__VOID) (marshal_data ? marshal_data : cc->callback);
170 * g_cclosure_marshal_VOID__BOOLEAN:
171 * @closure: A #GClosure.
172 * @return_value: A #GValue to store the return value. May be %NULL
173 * if the callback of closure doesn't return a value.
174 * @n_param_values: The length of the @param_values array.
175 * @param_values: An array of #GValues holding the arguments
176 * on which to invoke the callback of closure.
177 * @invocation_hint: The invocation hint given as the last argument to
178 * g_closure_invoke().
179 * @marshal_data: Additional data specified when registering the
180 * marshaller, see g_closure_set_marshal() and
181 * g_closure_set_meta_marshal()
183 * A #GClosureMarshal function for use with signals with a single
188 g_cclosure_marshal_VOID__BOOLEAN (GClosure *closure,
189 GValue *return_value G_GNUC_UNUSED,
190 guint n_param_values,
191 const GValue *param_values,
192 gpointer invocation_hint G_GNUC_UNUSED,
193 gpointer marshal_data)
195 typedef void (*GMarshalFunc_VOID__BOOLEAN) (gpointer data1,
198 GMarshalFunc_VOID__BOOLEAN callback;
199 GCClosure *cc = (GCClosure*) closure;
200 gpointer data1, data2;
202 g_return_if_fail (n_param_values == 2);
204 if (G_CCLOSURE_SWAP_DATA (closure))
206 data1 = closure->data;
207 data2 = g_value_peek_pointer (param_values + 0);
211 data1 = g_value_peek_pointer (param_values + 0);
212 data2 = closure->data;
214 callback = (GMarshalFunc_VOID__BOOLEAN) (marshal_data ? marshal_data : cc->callback);
217 g_marshal_value_peek_boolean (param_values + 1),
222 * g_cclosure_marshal_VOID__BOOLEANv:
223 * @closure: the #GClosure to which the marshaller belongs
224 * @return_value: (nullable): a #GValue to store the return
225 * value. May be %NULL if the callback of @closure doesn't return a
227 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
228 * @args: va_list of arguments to be passed to the closure.
229 * @marshal_data: (nullable): additional data specified when
230 * registering the marshaller, see g_closure_set_marshal() and
231 * g_closure_set_meta_marshal()
232 * @n_params: the length of the @param_types array
233 * @param_types: (array length=n_params): the #GType of each argument from
236 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__BOOLEAN().
239 g_cclosure_marshal_VOID__BOOLEANv (GClosure *closure,
240 GValue *return_value,
243 gpointer marshal_data,
247 typedef void (*GMarshalFunc_VOID__BOOLEAN) (gpointer instance,
250 GCClosure *cc = (GCClosure*) closure;
251 gpointer data1, data2;
252 GMarshalFunc_VOID__BOOLEAN callback;
256 va_copy (args_copy, args);
257 arg0 = (gboolean) va_arg (args_copy, gboolean);
260 if (G_CCLOSURE_SWAP_DATA (closure))
262 data1 = closure->data;
268 data2 = closure->data;
270 callback = (GMarshalFunc_VOID__BOOLEAN) (marshal_data ? marshal_data : cc->callback);
278 * g_cclosure_marshal_VOID__CHAR:
279 * @closure: A #GClosure.
280 * @return_value: A #GValue to store the return value. May be %NULL
281 * if the callback of closure doesn't return a value.
282 * @n_param_values: The length of the @param_values array.
283 * @param_values: An array of #GValues holding the arguments
284 * on which to invoke the callback of closure.
285 * @invocation_hint: The invocation hint given as the last argument to
286 * g_closure_invoke().
287 * @marshal_data: Additional data specified when registering the
288 * marshaller, see g_closure_set_marshal() and
289 * g_closure_set_meta_marshal()
291 * A #GClosureMarshal function for use with signals with a single
292 * character argument.
296 g_cclosure_marshal_VOID__CHAR (GClosure *closure,
297 GValue *return_value G_GNUC_UNUSED,
298 guint n_param_values,
299 const GValue *param_values,
300 gpointer invocation_hint G_GNUC_UNUSED,
301 gpointer marshal_data)
303 typedef void (*GMarshalFunc_VOID__CHAR) (gpointer data1,
306 GMarshalFunc_VOID__CHAR callback;
307 GCClosure *cc = (GCClosure*) closure;
308 gpointer data1, data2;
310 g_return_if_fail (n_param_values == 2);
312 if (G_CCLOSURE_SWAP_DATA (closure))
314 data1 = closure->data;
315 data2 = g_value_peek_pointer (param_values + 0);
319 data1 = g_value_peek_pointer (param_values + 0);
320 data2 = closure->data;
322 callback = (GMarshalFunc_VOID__CHAR) (marshal_data ? marshal_data : cc->callback);
325 g_marshal_value_peek_char (param_values + 1),
330 * g_cclosure_marshal_VOID__CHARv:
331 * @closure: the #GClosure to which the marshaller belongs
332 * @return_value: (nullable): a #GValue to store the return
333 * value. May be %NULL if the callback of @closure doesn't return a
335 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
336 * @args: va_list of arguments to be passed to the closure.
337 * @marshal_data: (nullable): additional data specified when
338 * registering the marshaller, see g_closure_set_marshal() and
339 * g_closure_set_meta_marshal()
340 * @n_params: the length of the @param_types array
341 * @param_types: (array length=n_params): the #GType of each argument from
344 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__CHAR().
347 g_cclosure_marshal_VOID__CHARv (GClosure *closure,
348 GValue *return_value,
351 gpointer marshal_data,
355 typedef void (*GMarshalFunc_VOID__CHAR) (gpointer instance,
358 GCClosure *cc = (GCClosure*) closure;
359 gpointer data1, data2;
360 GMarshalFunc_VOID__CHAR callback;
364 va_copy (args_copy, args);
365 arg0 = (gchar) va_arg (args_copy, gint);
368 if (G_CCLOSURE_SWAP_DATA (closure))
370 data1 = closure->data;
376 data2 = closure->data;
378 callback = (GMarshalFunc_VOID__CHAR) (marshal_data ? marshal_data : cc->callback);
386 * g_cclosure_marshal_VOID__UCHAR:
387 * @closure: A #GClosure.
388 * @return_value: A #GValue to store the return value. May be %NULL
389 * if the callback of closure doesn't return a value.
390 * @n_param_values: The length of the @param_values array.
391 * @param_values: An array of #GValues holding the arguments
392 * on which to invoke the callback of closure.
393 * @invocation_hint: The invocation hint given as the last argument to
394 * g_closure_invoke().
395 * @marshal_data: Additional data specified when registering the
396 * marshaller, see g_closure_set_marshal() and
397 * g_closure_set_meta_marshal()
399 * A #GClosureMarshal function for use with signals with a single
400 * unsigned character argument.
404 g_cclosure_marshal_VOID__UCHAR (GClosure *closure,
405 GValue *return_value G_GNUC_UNUSED,
406 guint n_param_values,
407 const GValue *param_values,
408 gpointer invocation_hint G_GNUC_UNUSED,
409 gpointer marshal_data)
411 typedef void (*GMarshalFunc_VOID__UCHAR) (gpointer data1,
414 GMarshalFunc_VOID__UCHAR callback;
415 GCClosure *cc = (GCClosure*) closure;
416 gpointer data1, data2;
418 g_return_if_fail (n_param_values == 2);
420 if (G_CCLOSURE_SWAP_DATA (closure))
422 data1 = closure->data;
423 data2 = g_value_peek_pointer (param_values + 0);
427 data1 = g_value_peek_pointer (param_values + 0);
428 data2 = closure->data;
430 callback = (GMarshalFunc_VOID__UCHAR) (marshal_data ? marshal_data : cc->callback);
433 g_marshal_value_peek_uchar (param_values + 1),
438 * g_cclosure_marshal_VOID__UCHARv:
439 * @closure: the #GClosure to which the marshaller belongs
440 * @return_value: (nullable): a #GValue to store the return
441 * value. May be %NULL if the callback of @closure doesn't return a
443 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
444 * @args: va_list of arguments to be passed to the closure.
445 * @marshal_data: (nullable): additional data specified when
446 * registering the marshaller, see g_closure_set_marshal() and
447 * g_closure_set_meta_marshal()
448 * @n_params: the length of the @param_types array
449 * @param_types: (array length=n_params): the #GType of each argument from
452 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__UCHAR().
455 g_cclosure_marshal_VOID__UCHARv (GClosure *closure,
456 GValue *return_value,
459 gpointer marshal_data,
463 typedef void (*GMarshalFunc_VOID__UCHAR) (gpointer instance,
466 GCClosure *cc = (GCClosure*) closure;
467 gpointer data1, data2;
468 GMarshalFunc_VOID__UCHAR callback;
472 va_copy (args_copy, args);
473 arg0 = (guchar) va_arg (args_copy, guint);
476 if (G_CCLOSURE_SWAP_DATA (closure))
478 data1 = closure->data;
484 data2 = closure->data;
486 callback = (GMarshalFunc_VOID__UCHAR) (marshal_data ? marshal_data : cc->callback);
494 * g_cclosure_marshal_VOID__INT:
495 * @closure: A #GClosure.
496 * @return_value: A #GValue to store the return value. May be %NULL
497 * if the callback of closure doesn't return a value.
498 * @n_param_values: The length of the @param_values array.
499 * @param_values: An array of #GValues holding the arguments
500 * on which to invoke the callback of closure.
501 * @invocation_hint: The invocation hint given as the last argument to
502 * g_closure_invoke().
503 * @marshal_data: Additional data specified when registering the
504 * marshaller, see g_closure_set_marshal() and
505 * g_closure_set_meta_marshal()
507 * A #GClosureMarshal function for use with signals with a single
512 g_cclosure_marshal_VOID__INT (GClosure *closure,
513 GValue *return_value G_GNUC_UNUSED,
514 guint n_param_values,
515 const GValue *param_values,
516 gpointer invocation_hint G_GNUC_UNUSED,
517 gpointer marshal_data)
519 typedef void (*GMarshalFunc_VOID__INT) (gpointer data1,
522 GMarshalFunc_VOID__INT callback;
523 GCClosure *cc = (GCClosure*) closure;
524 gpointer data1, data2;
526 g_return_if_fail (n_param_values == 2);
528 if (G_CCLOSURE_SWAP_DATA (closure))
530 data1 = closure->data;
531 data2 = g_value_peek_pointer (param_values + 0);
535 data1 = g_value_peek_pointer (param_values + 0);
536 data2 = closure->data;
538 callback = (GMarshalFunc_VOID__INT) (marshal_data ? marshal_data : cc->callback);
541 g_marshal_value_peek_int (param_values + 1),
546 * g_cclosure_marshal_VOID__INTv:
547 * @closure: the #GClosure to which the marshaller belongs
548 * @return_value: (nullable): a #GValue to store the return
549 * value. May be %NULL if the callback of @closure doesn't return a
551 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
552 * @args: va_list of arguments to be passed to the closure.
553 * @marshal_data: (nullable): additional data specified when
554 * registering the marshaller, see g_closure_set_marshal() and
555 * g_closure_set_meta_marshal()
556 * @n_params: the length of the @param_types array
557 * @param_types: (array length=n_params): the #GType of each argument from
560 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__INT().
563 g_cclosure_marshal_VOID__INTv (GClosure *closure,
564 GValue *return_value,
567 gpointer marshal_data,
571 typedef void (*GMarshalFunc_VOID__INT) (gpointer instance,
574 GCClosure *cc = (GCClosure*) closure;
575 gpointer data1, data2;
576 GMarshalFunc_VOID__INT callback;
580 va_copy (args_copy, args);
581 arg0 = (gint) va_arg (args_copy, gint);
584 if (G_CCLOSURE_SWAP_DATA (closure))
586 data1 = closure->data;
592 data2 = closure->data;
594 callback = (GMarshalFunc_VOID__INT) (marshal_data ? marshal_data : cc->callback);
602 * g_cclosure_marshal_VOID__UINT:
603 * @closure: A #GClosure.
604 * @return_value: A #GValue to store the return value. May be %NULL
605 * if the callback of closure doesn't return a value.
606 * @n_param_values: The length of the @param_values array.
607 * @param_values: An array of #GValues holding the arguments
608 * on which to invoke the callback of closure.
609 * @invocation_hint: The invocation hint given as the last argument to
610 * g_closure_invoke().
611 * @marshal_data: Additional data specified when registering the
612 * marshaller, see g_closure_set_marshal() and
613 * g_closure_set_meta_marshal()
615 * A #GClosureMarshal function for use with signals with with a single
616 * unsigned integer argument.
620 g_cclosure_marshal_VOID__UINT (GClosure *closure,
621 GValue *return_value G_GNUC_UNUSED,
622 guint n_param_values,
623 const GValue *param_values,
624 gpointer invocation_hint G_GNUC_UNUSED,
625 gpointer marshal_data)
627 typedef void (*GMarshalFunc_VOID__UINT) (gpointer data1,
630 GMarshalFunc_VOID__UINT callback;
631 GCClosure *cc = (GCClosure*) closure;
632 gpointer data1, data2;
634 g_return_if_fail (n_param_values == 2);
636 if (G_CCLOSURE_SWAP_DATA (closure))
638 data1 = closure->data;
639 data2 = g_value_peek_pointer (param_values + 0);
643 data1 = g_value_peek_pointer (param_values + 0);
644 data2 = closure->data;
646 callback = (GMarshalFunc_VOID__UINT) (marshal_data ? marshal_data : cc->callback);
649 g_marshal_value_peek_uint (param_values + 1),
654 * g_cclosure_marshal_VOID__UINTv:
655 * @closure: the #GClosure to which the marshaller belongs
656 * @return_value: (nullable): a #GValue to store the return
657 * value. May be %NULL if the callback of @closure doesn't return a
659 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
660 * @args: va_list of arguments to be passed to the closure.
661 * @marshal_data: (nullable): additional data specified when
662 * registering the marshaller, see g_closure_set_marshal() and
663 * g_closure_set_meta_marshal()
664 * @n_params: the length of the @param_types array
665 * @param_types: (array length=n_params): the #GType of each argument from
668 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__UINT().
671 g_cclosure_marshal_VOID__UINTv (GClosure *closure,
672 GValue *return_value,
675 gpointer marshal_data,
679 typedef void (*GMarshalFunc_VOID__UINT) (gpointer instance,
682 GCClosure *cc = (GCClosure*) closure;
683 gpointer data1, data2;
684 GMarshalFunc_VOID__UINT callback;
688 va_copy (args_copy, args);
689 arg0 = (guint) va_arg (args_copy, guint);
692 if (G_CCLOSURE_SWAP_DATA (closure))
694 data1 = closure->data;
700 data2 = closure->data;
702 callback = (GMarshalFunc_VOID__UINT) (marshal_data ? marshal_data : cc->callback);
710 * g_cclosure_marshal_VOID__LONG:
711 * @closure: A #GClosure.
712 * @return_value: A #GValue to store the return value. May be %NULL
713 * if the callback of closure doesn't return a value.
714 * @n_param_values: The length of the @param_values array.
715 * @param_values: An array of #GValues holding the arguments
716 * on which to invoke the callback of closure.
717 * @invocation_hint: The invocation hint given as the last argument to
718 * g_closure_invoke().
719 * @marshal_data: Additional data specified when registering the
720 * marshaller, see g_closure_set_marshal() and
721 * g_closure_set_meta_marshal()
723 * A #GClosureMarshal function for use with signals with with a single
724 * long integer argument.
728 g_cclosure_marshal_VOID__LONG (GClosure *closure,
729 GValue *return_value G_GNUC_UNUSED,
730 guint n_param_values,
731 const GValue *param_values,
732 gpointer invocation_hint G_GNUC_UNUSED,
733 gpointer marshal_data)
735 typedef void (*GMarshalFunc_VOID__LONG) (gpointer data1,
738 GMarshalFunc_VOID__LONG callback;
739 GCClosure *cc = (GCClosure*) closure;
740 gpointer data1, data2;
742 g_return_if_fail (n_param_values == 2);
744 if (G_CCLOSURE_SWAP_DATA (closure))
746 data1 = closure->data;
747 data2 = g_value_peek_pointer (param_values + 0);
751 data1 = g_value_peek_pointer (param_values + 0);
752 data2 = closure->data;
754 callback = (GMarshalFunc_VOID__LONG) (marshal_data ? marshal_data : cc->callback);
757 g_marshal_value_peek_long (param_values + 1),
762 * g_cclosure_marshal_VOID__LONGv:
763 * @closure: the #GClosure to which the marshaller belongs
764 * @return_value: (nullable): a #GValue to store the return
765 * value. May be %NULL if the callback of @closure doesn't return a
767 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
768 * @args: va_list of arguments to be passed to the closure.
769 * @marshal_data: (nullable): additional data specified when
770 * registering the marshaller, see g_closure_set_marshal() and
771 * g_closure_set_meta_marshal()
772 * @n_params: the length of the @param_types array
773 * @param_types: (array length=n_params): the #GType of each argument from
776 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__LONG().
779 g_cclosure_marshal_VOID__LONGv (GClosure *closure,
780 GValue *return_value,
783 gpointer marshal_data,
787 typedef void (*GMarshalFunc_VOID__LONG) (gpointer instance,
790 GCClosure *cc = (GCClosure*) closure;
791 gpointer data1, data2;
792 GMarshalFunc_VOID__LONG callback;
796 va_copy (args_copy, args);
797 arg0 = (glong) va_arg (args_copy, glong);
800 if (G_CCLOSURE_SWAP_DATA (closure))
802 data1 = closure->data;
808 data2 = closure->data;
810 callback = (GMarshalFunc_VOID__LONG) (marshal_data ? marshal_data : cc->callback);
818 * g_cclosure_marshal_VOID__ULONG:
819 * @closure: A #GClosure.
820 * @return_value: A #GValue to store the return value. May be %NULL
821 * if the callback of closure doesn't return a value.
822 * @n_param_values: The length of the @param_values array.
823 * @param_values: An array of #GValues holding the arguments
824 * on which to invoke the callback of closure.
825 * @invocation_hint: The invocation hint given as the last argument to
826 * g_closure_invoke().
827 * @marshal_data: Additional data specified when registering the
828 * marshaller, see g_closure_set_marshal() and
829 * g_closure_set_meta_marshal()
831 * A #GClosureMarshal function for use with signals with a single
832 * unsigned long integer argument.
836 g_cclosure_marshal_VOID__ULONG (GClosure *closure,
837 GValue *return_value G_GNUC_UNUSED,
838 guint n_param_values,
839 const GValue *param_values,
840 gpointer invocation_hint G_GNUC_UNUSED,
841 gpointer marshal_data)
843 typedef void (*GMarshalFunc_VOID__ULONG) (gpointer data1,
846 GMarshalFunc_VOID__ULONG callback;
847 GCClosure *cc = (GCClosure*) closure;
848 gpointer data1, data2;
850 g_return_if_fail (n_param_values == 2);
852 if (G_CCLOSURE_SWAP_DATA (closure))
854 data1 = closure->data;
855 data2 = g_value_peek_pointer (param_values + 0);
859 data1 = g_value_peek_pointer (param_values + 0);
860 data2 = closure->data;
862 callback = (GMarshalFunc_VOID__ULONG) (marshal_data ? marshal_data : cc->callback);
865 g_marshal_value_peek_ulong (param_values + 1),
870 * g_cclosure_marshal_VOID__ULONGv:
871 * @closure: the #GClosure to which the marshaller belongs
872 * @return_value: (nullable): a #GValue to store the return
873 * value. May be %NULL if the callback of @closure doesn't return a
875 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
876 * @args: va_list of arguments to be passed to the closure.
877 * @marshal_data: (nullable): additional data specified when
878 * registering the marshaller, see g_closure_set_marshal() and
879 * g_closure_set_meta_marshal()
880 * @n_params: the length of the @param_types array
881 * @param_types: (array length=n_params): the #GType of each argument from
884 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__ULONG().
887 g_cclosure_marshal_VOID__ULONGv (GClosure *closure,
888 GValue *return_value,
891 gpointer marshal_data,
895 typedef void (*GMarshalFunc_VOID__ULONG) (gpointer instance,
898 GCClosure *cc = (GCClosure*) closure;
899 gpointer data1, data2;
900 GMarshalFunc_VOID__ULONG callback;
904 va_copy (args_copy, args);
905 arg0 = (gulong) va_arg (args_copy, gulong);
908 if (G_CCLOSURE_SWAP_DATA (closure))
910 data1 = closure->data;
916 data2 = closure->data;
918 callback = (GMarshalFunc_VOID__ULONG) (marshal_data ? marshal_data : cc->callback);
926 * g_cclosure_marshal_VOID__ENUM:
927 * @closure: A #GClosure.
928 * @return_value: A #GValue to store the return value. May be %NULL
929 * if the callback of closure doesn't return a value.
930 * @n_param_values: The length of the @param_values array.
931 * @param_values: An array of #GValues holding the arguments
932 * on which to invoke the callback of closure.
933 * @invocation_hint: The invocation hint given as the last argument to
934 * g_closure_invoke().
935 * @marshal_data: Additional data specified when registering the
936 * marshaller, see g_closure_set_marshal() and
937 * g_closure_set_meta_marshal()
939 * A #GClosureMarshal function for use with signals with a single
940 * argument with an enumerated type.
944 g_cclosure_marshal_VOID__ENUM (GClosure *closure,
945 GValue *return_value G_GNUC_UNUSED,
946 guint n_param_values,
947 const GValue *param_values,
948 gpointer invocation_hint G_GNUC_UNUSED,
949 gpointer marshal_data)
951 typedef void (*GMarshalFunc_VOID__ENUM) (gpointer data1,
954 GMarshalFunc_VOID__ENUM callback;
955 GCClosure *cc = (GCClosure*) closure;
956 gpointer data1, data2;
958 g_return_if_fail (n_param_values == 2);
960 if (G_CCLOSURE_SWAP_DATA (closure))
962 data1 = closure->data;
963 data2 = g_value_peek_pointer (param_values + 0);
967 data1 = g_value_peek_pointer (param_values + 0);
968 data2 = closure->data;
970 callback = (GMarshalFunc_VOID__ENUM) (marshal_data ? marshal_data : cc->callback);
973 g_marshal_value_peek_enum (param_values + 1),
978 * g_cclosure_marshal_VOID__ENUMv:
979 * @closure: the #GClosure to which the marshaller belongs
980 * @return_value: (nullable): a #GValue to store the return
981 * value. May be %NULL if the callback of @closure doesn't return a
983 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
984 * @args: va_list of arguments to be passed to the closure.
985 * @marshal_data: (nullable): additional data specified when
986 * registering the marshaller, see g_closure_set_marshal() and
987 * g_closure_set_meta_marshal()
988 * @n_params: the length of the @param_types array
989 * @param_types: (array length=n_params): the #GType of each argument from
992 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__ENUM().
995 g_cclosure_marshal_VOID__ENUMv (GClosure *closure,
996 GValue *return_value,
999 gpointer marshal_data,
1003 typedef void (*GMarshalFunc_VOID__ENUM) (gpointer instance,
1006 GCClosure *cc = (GCClosure*) closure;
1007 gpointer data1, data2;
1008 GMarshalFunc_VOID__ENUM callback;
1012 va_copy (args_copy, args);
1013 arg0 = (gint) va_arg (args_copy, gint);
1016 if (G_CCLOSURE_SWAP_DATA (closure))
1018 data1 = closure->data;
1024 data2 = closure->data;
1026 callback = (GMarshalFunc_VOID__ENUM) (marshal_data ? marshal_data : cc->callback);
1034 * g_cclosure_marshal_VOID__FLAGS:
1035 * @closure: A #GClosure.
1036 * @return_value: A #GValue to store the return value. May be %NULL
1037 * if the callback of closure doesn't return a value.
1038 * @n_param_values: The length of the @param_values array.
1039 * @param_values: An array of #GValues holding the arguments
1040 * on which to invoke the callback of closure.
1041 * @invocation_hint: The invocation hint given as the last argument to
1042 * g_closure_invoke().
1043 * @marshal_data: Additional data specified when registering the
1044 * marshaller, see g_closure_set_marshal() and
1045 * g_closure_set_meta_marshal()
1047 * A #GClosureMarshal function for use with signals with a single
1048 * argument with a flags types.
1052 g_cclosure_marshal_VOID__FLAGS (GClosure *closure,
1053 GValue *return_value G_GNUC_UNUSED,
1054 guint n_param_values,
1055 const GValue *param_values,
1056 gpointer invocation_hint G_GNUC_UNUSED,
1057 gpointer marshal_data)
1059 typedef void (*GMarshalFunc_VOID__FLAGS) (gpointer data1,
1062 GMarshalFunc_VOID__FLAGS callback;
1063 GCClosure *cc = (GCClosure*) closure;
1064 gpointer data1, data2;
1066 g_return_if_fail (n_param_values == 2);
1068 if (G_CCLOSURE_SWAP_DATA (closure))
1070 data1 = closure->data;
1071 data2 = g_value_peek_pointer (param_values + 0);
1075 data1 = g_value_peek_pointer (param_values + 0);
1076 data2 = closure->data;
1078 callback = (GMarshalFunc_VOID__FLAGS) (marshal_data ? marshal_data : cc->callback);
1081 g_marshal_value_peek_flags (param_values + 1),
1086 * g_cclosure_marshal_VOID__FLAGSv:
1087 * @closure: the #GClosure to which the marshaller belongs
1088 * @return_value: (nullable): a #GValue to store the return
1089 * value. May be %NULL if the callback of @closure doesn't return a
1091 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
1092 * @args: va_list of arguments to be passed to the closure.
1093 * @marshal_data: (nullable): additional data specified when
1094 * registering the marshaller, see g_closure_set_marshal() and
1095 * g_closure_set_meta_marshal()
1096 * @n_params: the length of the @param_types array
1097 * @param_types: (array length=n_params): the #GType of each argument from
1100 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__FLAGS().
1103 g_cclosure_marshal_VOID__FLAGSv (GClosure *closure,
1104 GValue *return_value,
1107 gpointer marshal_data,
1111 typedef void (*GMarshalFunc_VOID__FLAGS) (gpointer instance,
1114 GCClosure *cc = (GCClosure*) closure;
1115 gpointer data1, data2;
1116 GMarshalFunc_VOID__FLAGS callback;
1120 va_copy (args_copy, args);
1121 arg0 = (guint) va_arg (args_copy, guint);
1124 if (G_CCLOSURE_SWAP_DATA (closure))
1126 data1 = closure->data;
1132 data2 = closure->data;
1134 callback = (GMarshalFunc_VOID__FLAGS) (marshal_data ? marshal_data : cc->callback);
1142 * g_cclosure_marshal_VOID__FLOAT:
1143 * @closure: A #GClosure.
1144 * @return_value: A #GValue to store the return value. May be %NULL
1145 * if the callback of closure doesn't return a value.
1146 * @n_param_values: The length of the @param_values array.
1147 * @param_values: An array of #GValues holding the arguments
1148 * on which to invoke the callback of closure.
1149 * @invocation_hint: The invocation hint given as the last argument to
1150 * g_closure_invoke().
1151 * @marshal_data: Additional data specified when registering the
1152 * marshaller, see g_closure_set_marshal() and
1153 * g_closure_set_meta_marshal()
1155 * A #GClosureMarshal function for use with signals with one
1156 * single-precision floating point argument.
1160 g_cclosure_marshal_VOID__FLOAT (GClosure *closure,
1161 GValue *return_value G_GNUC_UNUSED,
1162 guint n_param_values,
1163 const GValue *param_values,
1164 gpointer invocation_hint G_GNUC_UNUSED,
1165 gpointer marshal_data)
1167 typedef void (*GMarshalFunc_VOID__FLOAT) (gpointer data1,
1170 GMarshalFunc_VOID__FLOAT callback;
1171 GCClosure *cc = (GCClosure*) closure;
1172 gpointer data1, data2;
1174 g_return_if_fail (n_param_values == 2);
1176 if (G_CCLOSURE_SWAP_DATA (closure))
1178 data1 = closure->data;
1179 data2 = g_value_peek_pointer (param_values + 0);
1183 data1 = g_value_peek_pointer (param_values + 0);
1184 data2 = closure->data;
1186 callback = (GMarshalFunc_VOID__FLOAT) (marshal_data ? marshal_data : cc->callback);
1189 g_marshal_value_peek_float (param_values + 1),
1194 * g_cclosure_marshal_VOID__FLOATv:
1195 * @closure: the #GClosure to which the marshaller belongs
1196 * @return_value: (nullable): a #GValue to store the return
1197 * value. May be %NULL if the callback of @closure doesn't return a
1199 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
1200 * @args: va_list of arguments to be passed to the closure.
1201 * @marshal_data: (nullable): additional data specified when
1202 * registering the marshaller, see g_closure_set_marshal() and
1203 * g_closure_set_meta_marshal()
1204 * @n_params: the length of the @param_types array
1205 * @param_types: (array length=n_params): the #GType of each argument from
1208 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__FLOAT().
1211 g_cclosure_marshal_VOID__FLOATv (GClosure *closure,
1212 GValue *return_value,
1215 gpointer marshal_data,
1219 typedef void (*GMarshalFunc_VOID__FLOAT) (gpointer instance,
1222 GCClosure *cc = (GCClosure*) closure;
1223 gpointer data1, data2;
1224 GMarshalFunc_VOID__FLOAT callback;
1228 va_copy (args_copy, args);
1229 arg0 = (gfloat) va_arg (args_copy, gdouble);
1232 if (G_CCLOSURE_SWAP_DATA (closure))
1234 data1 = closure->data;
1240 data2 = closure->data;
1242 callback = (GMarshalFunc_VOID__FLOAT) (marshal_data ? marshal_data : cc->callback);
1250 * g_cclosure_marshal_VOID__DOUBLE:
1251 * @closure: A #GClosure.
1252 * @return_value: A #GValue to store the return value. May be %NULL
1253 * if the callback of closure doesn't return a value.
1254 * @n_param_values: The length of the @param_values array.
1255 * @param_values: An array of #GValues holding the arguments
1256 * on which to invoke the callback of closure.
1257 * @invocation_hint: The invocation hint given as the last argument to
1258 * g_closure_invoke().
1259 * @marshal_data: Additional data specified when registering the
1260 * marshaller, see g_closure_set_marshal() and
1261 * g_closure_set_meta_marshal()
1263 * A #GClosureMarshal function for use with signals with one
1264 * double-precision floating point argument.
1268 g_cclosure_marshal_VOID__DOUBLE (GClosure *closure,
1269 GValue *return_value G_GNUC_UNUSED,
1270 guint n_param_values,
1271 const GValue *param_values,
1272 gpointer invocation_hint G_GNUC_UNUSED,
1273 gpointer marshal_data)
1275 typedef void (*GMarshalFunc_VOID__DOUBLE) (gpointer data1,
1278 GMarshalFunc_VOID__DOUBLE callback;
1279 GCClosure *cc = (GCClosure*) closure;
1280 gpointer data1, data2;
1282 g_return_if_fail (n_param_values == 2);
1284 if (G_CCLOSURE_SWAP_DATA (closure))
1286 data1 = closure->data;
1287 data2 = g_value_peek_pointer (param_values + 0);
1291 data1 = g_value_peek_pointer (param_values + 0);
1292 data2 = closure->data;
1294 callback = (GMarshalFunc_VOID__DOUBLE) (marshal_data ? marshal_data : cc->callback);
1297 g_marshal_value_peek_double (param_values + 1),
1302 * g_cclosure_marshal_VOID__DOUBLEv:
1303 * @closure: the #GClosure to which the marshaller belongs
1304 * @return_value: (nullable): a #GValue to store the return
1305 * value. May be %NULL if the callback of @closure doesn't return a
1307 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
1308 * @args: va_list of arguments to be passed to the closure.
1309 * @marshal_data: (nullable): additional data specified when
1310 * registering the marshaller, see g_closure_set_marshal() and
1311 * g_closure_set_meta_marshal()
1312 * @n_params: the length of the @param_types array
1313 * @param_types: (array length=n_params): the #GType of each argument from
1316 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__DOUBLE().
1319 g_cclosure_marshal_VOID__DOUBLEv (GClosure *closure,
1320 GValue *return_value,
1323 gpointer marshal_data,
1327 typedef void (*GMarshalFunc_VOID__DOUBLE) (gpointer instance,
1330 GCClosure *cc = (GCClosure*) closure;
1331 gpointer data1, data2;
1332 GMarshalFunc_VOID__DOUBLE callback;
1336 va_copy (args_copy, args);
1337 arg0 = (gdouble) va_arg (args_copy, gdouble);
1340 if (G_CCLOSURE_SWAP_DATA (closure))
1342 data1 = closure->data;
1348 data2 = closure->data;
1350 callback = (GMarshalFunc_VOID__DOUBLE) (marshal_data ? marshal_data : cc->callback);
1358 * g_cclosure_marshal_VOID__STRING:
1359 * @closure: A #GClosure.
1360 * @return_value: A #GValue to store the return value. May be %NULL
1361 * if the callback of closure doesn't return a value.
1362 * @n_param_values: The length of the @param_values array.
1363 * @param_values: An array of #GValues holding the arguments
1364 * on which to invoke the callback of closure.
1365 * @invocation_hint: The invocation hint given as the last argument to
1366 * g_closure_invoke().
1367 * @marshal_data: Additional data specified when registering the
1368 * marshaller, see g_closure_set_marshal() and
1369 * g_closure_set_meta_marshal()
1371 * A #GClosureMarshal function for use with signals with a single string
1376 g_cclosure_marshal_VOID__STRING (GClosure *closure,
1377 GValue *return_value G_GNUC_UNUSED,
1378 guint n_param_values,
1379 const GValue *param_values,
1380 gpointer invocation_hint G_GNUC_UNUSED,
1381 gpointer marshal_data)
1383 typedef void (*GMarshalFunc_VOID__STRING) (gpointer data1,
1386 GMarshalFunc_VOID__STRING callback;
1387 GCClosure *cc = (GCClosure*) closure;
1388 gpointer data1, data2;
1390 g_return_if_fail (n_param_values == 2);
1392 if (G_CCLOSURE_SWAP_DATA (closure))
1394 data1 = closure->data;
1395 data2 = g_value_peek_pointer (param_values + 0);
1399 data1 = g_value_peek_pointer (param_values + 0);
1400 data2 = closure->data;
1402 callback = (GMarshalFunc_VOID__STRING) (marshal_data ? marshal_data : cc->callback);
1405 g_marshal_value_peek_string (param_values + 1),
1410 * g_cclosure_marshal_VOID__STRINGv:
1411 * @closure: the #GClosure to which the marshaller belongs
1412 * @return_value: (nullable): a #GValue to store the return
1413 * value. May be %NULL if the callback of @closure doesn't return a
1415 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
1416 * @args: va_list of arguments to be passed to the closure.
1417 * @marshal_data: (nullable): additional data specified when
1418 * registering the marshaller, see g_closure_set_marshal() and
1419 * g_closure_set_meta_marshal()
1420 * @n_params: the length of the @param_types array
1421 * @param_types: (array length=n_params): the #GType of each argument from
1424 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__STRING().
1427 g_cclosure_marshal_VOID__STRINGv (GClosure *closure,
1428 GValue *return_value,
1431 gpointer marshal_data,
1435 typedef void (*GMarshalFunc_VOID__STRING) (gpointer instance,
1438 GCClosure *cc = (GCClosure*) closure;
1439 gpointer data1, data2;
1440 GMarshalFunc_VOID__STRING callback;
1444 va_copy (args_copy, args);
1445 arg0 = (gpointer) va_arg (args_copy, gpointer);
1446 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
1447 arg0 = g_strdup (arg0);
1450 if (G_CCLOSURE_SWAP_DATA (closure))
1452 data1 = closure->data;
1458 data2 = closure->data;
1460 callback = (GMarshalFunc_VOID__STRING) (marshal_data ? marshal_data : cc->callback);
1465 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
1470 * g_cclosure_marshal_VOID__PARAM:
1471 * @closure: A #GClosure.
1472 * @return_value: A #GValue to store the return value. May be %NULL
1473 * if the callback of closure doesn't return a value.
1474 * @n_param_values: The length of the @param_values array.
1475 * @param_values: An array of #GValues holding the arguments
1476 * on which to invoke the callback of closure.
1477 * @invocation_hint: The invocation hint given as the last argument to
1478 * g_closure_invoke().
1479 * @marshal_data: Additional data specified when registering the
1480 * marshaller, see g_closure_set_marshal() and
1481 * g_closure_set_meta_marshal()
1483 * A #GClosureMarshal function for use with signals with a single
1484 * argument of type #GParamSpec.
1488 g_cclosure_marshal_VOID__PARAM (GClosure *closure,
1489 GValue *return_value G_GNUC_UNUSED,
1490 guint n_param_values,
1491 const GValue *param_values,
1492 gpointer invocation_hint G_GNUC_UNUSED,
1493 gpointer marshal_data)
1495 typedef void (*GMarshalFunc_VOID__PARAM) (gpointer data1,
1498 GMarshalFunc_VOID__PARAM callback;
1499 GCClosure *cc = (GCClosure*) closure;
1500 gpointer data1, data2;
1502 g_return_if_fail (n_param_values == 2);
1504 if (G_CCLOSURE_SWAP_DATA (closure))
1506 data1 = closure->data;
1507 data2 = g_value_peek_pointer (param_values + 0);
1511 data1 = g_value_peek_pointer (param_values + 0);
1512 data2 = closure->data;
1514 callback = (GMarshalFunc_VOID__PARAM) (marshal_data ? marshal_data : cc->callback);
1517 g_marshal_value_peek_param (param_values + 1),
1522 * g_cclosure_marshal_VOID__PARAMv:
1523 * @closure: the #GClosure to which the marshaller belongs
1524 * @return_value: (nullable): a #GValue to store the return
1525 * value. May be %NULL if the callback of @closure doesn't return a
1527 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
1528 * @args: va_list of arguments to be passed to the closure.
1529 * @marshal_data: (nullable): additional data specified when
1530 * registering the marshaller, see g_closure_set_marshal() and
1531 * g_closure_set_meta_marshal()
1532 * @n_params: the length of the @param_types array
1533 * @param_types: (array length=n_params): the #GType of each argument from
1536 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__PARAM().
1539 g_cclosure_marshal_VOID__PARAMv (GClosure *closure,
1540 GValue *return_value,
1543 gpointer marshal_data,
1547 typedef void (*GMarshalFunc_VOID__PARAM) (gpointer instance,
1550 GCClosure *cc = (GCClosure*) closure;
1551 gpointer data1, data2;
1552 GMarshalFunc_VOID__PARAM callback;
1556 va_copy (args_copy, args);
1557 arg0 = (gpointer) va_arg (args_copy, gpointer);
1558 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
1559 arg0 = g_param_spec_ref (arg0);
1562 if (G_CCLOSURE_SWAP_DATA (closure))
1564 data1 = closure->data;
1570 data2 = closure->data;
1572 callback = (GMarshalFunc_VOID__PARAM) (marshal_data ? marshal_data : cc->callback);
1577 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
1578 g_param_spec_unref (arg0);
1582 * g_cclosure_marshal_VOID__BOXED:
1583 * @closure: A #GClosure.
1584 * @return_value: A #GValue to store the return value. May be %NULL
1585 * if the callback of closure doesn't return a value.
1586 * @n_param_values: The length of the @param_values array.
1587 * @param_values: An array of #GValues holding the arguments
1588 * on which to invoke the callback of closure.
1589 * @invocation_hint: The invocation hint given as the last argument to
1590 * g_closure_invoke().
1591 * @marshal_data: Additional data specified when registering the
1592 * marshaller, see g_closure_set_marshal() and
1593 * g_closure_set_meta_marshal()
1595 * A #GClosureMarshal function for use with signals with a single
1596 * argument which is any boxed pointer type.
1600 g_cclosure_marshal_VOID__BOXED (GClosure *closure,
1601 GValue *return_value G_GNUC_UNUSED,
1602 guint n_param_values,
1603 const GValue *param_values,
1604 gpointer invocation_hint G_GNUC_UNUSED,
1605 gpointer marshal_data)
1607 typedef void (*GMarshalFunc_VOID__BOXED) (gpointer data1,
1610 GMarshalFunc_VOID__BOXED callback;
1611 GCClosure *cc = (GCClosure*) closure;
1612 gpointer data1, data2;
1614 g_return_if_fail (n_param_values == 2);
1616 if (G_CCLOSURE_SWAP_DATA (closure))
1618 data1 = closure->data;
1619 data2 = g_value_peek_pointer (param_values + 0);
1623 data1 = g_value_peek_pointer (param_values + 0);
1624 data2 = closure->data;
1626 callback = (GMarshalFunc_VOID__BOXED) (marshal_data ? marshal_data : cc->callback);
1629 g_marshal_value_peek_boxed (param_values + 1),
1634 * g_cclosure_marshal_VOID__BOXEDv:
1635 * @closure: the #GClosure to which the marshaller belongs
1636 * @return_value: (nullable): a #GValue to store the return
1637 * value. May be %NULL if the callback of @closure doesn't return a
1639 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
1640 * @args: va_list of arguments to be passed to the closure.
1641 * @marshal_data: (nullable): additional data specified when
1642 * registering the marshaller, see g_closure_set_marshal() and
1643 * g_closure_set_meta_marshal()
1644 * @n_params: the length of the @param_types array
1645 * @param_types: (array length=n_params): the #GType of each argument from
1648 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__BOXED().
1651 g_cclosure_marshal_VOID__BOXEDv (GClosure *closure,
1652 GValue *return_value,
1655 gpointer marshal_data,
1659 typedef void (*GMarshalFunc_VOID__BOXED) (gpointer instance,
1662 GCClosure *cc = (GCClosure*) closure;
1663 gpointer data1, data2;
1664 GMarshalFunc_VOID__BOXED callback;
1668 va_copy (args_copy, args);
1669 arg0 = (gpointer) va_arg (args_copy, gpointer);
1670 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
1671 arg0 = g_boxed_copy (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg0);
1674 if (G_CCLOSURE_SWAP_DATA (closure))
1676 data1 = closure->data;
1682 data2 = closure->data;
1684 callback = (GMarshalFunc_VOID__BOXED) (marshal_data ? marshal_data : cc->callback);
1689 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
1690 g_boxed_free (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg0);
1694 * g_cclosure_marshal_VOID__POINTER:
1695 * @closure: A #GClosure.
1696 * @return_value: A #GValue to store the return value. May be %NULL
1697 * if the callback of closure doesn't return a value.
1698 * @n_param_values: The length of the @param_values array.
1699 * @param_values: An array of #GValues holding the arguments
1700 * on which to invoke the callback of closure.
1701 * @invocation_hint: The invocation hint given as the last argument to
1702 * g_closure_invoke().
1703 * @marshal_data: Additional data specified when registering the
1704 * marshaller, see g_closure_set_marshal() and
1705 * g_closure_set_meta_marshal()
1707 * A #GClosureMarshal function for use with signals with a single raw
1708 * pointer argument type.
1710 * If it is possible, it is better to use one of the more specific
1711 * functions such as g_cclosure_marshal_VOID__OBJECT() or
1712 * g_cclosure_marshal_VOID__OBJECT().
1716 g_cclosure_marshal_VOID__POINTER (GClosure *closure,
1717 GValue *return_value G_GNUC_UNUSED,
1718 guint n_param_values,
1719 const GValue *param_values,
1720 gpointer invocation_hint G_GNUC_UNUSED,
1721 gpointer marshal_data)
1723 typedef void (*GMarshalFunc_VOID__POINTER) (gpointer data1,
1726 GMarshalFunc_VOID__POINTER callback;
1727 GCClosure *cc = (GCClosure*) closure;
1728 gpointer data1, data2;
1730 g_return_if_fail (n_param_values == 2);
1732 if (G_CCLOSURE_SWAP_DATA (closure))
1734 data1 = closure->data;
1735 data2 = g_value_peek_pointer (param_values + 0);
1739 data1 = g_value_peek_pointer (param_values + 0);
1740 data2 = closure->data;
1742 callback = (GMarshalFunc_VOID__POINTER) (marshal_data ? marshal_data : cc->callback);
1745 g_marshal_value_peek_pointer (param_values + 1),
1750 * g_cclosure_marshal_VOID__POINTERv:
1751 * @closure: the #GClosure to which the marshaller belongs
1752 * @return_value: (nullable): a #GValue to store the return
1753 * value. May be %NULL if the callback of @closure doesn't return a
1755 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
1756 * @args: va_list of arguments to be passed to the closure.
1757 * @marshal_data: (nullable): additional data specified when
1758 * registering the marshaller, see g_closure_set_marshal() and
1759 * g_closure_set_meta_marshal()
1760 * @n_params: the length of the @param_types array
1761 * @param_types: (array length=n_params): the #GType of each argument from
1764 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__POINTER().
1767 g_cclosure_marshal_VOID__POINTERv (GClosure *closure,
1768 GValue *return_value,
1771 gpointer marshal_data,
1775 typedef void (*GMarshalFunc_VOID__POINTER) (gpointer instance,
1778 GCClosure *cc = (GCClosure*) closure;
1779 gpointer data1, data2;
1780 GMarshalFunc_VOID__POINTER callback;
1784 va_copy (args_copy, args);
1785 arg0 = (gpointer) va_arg (args_copy, gpointer);
1788 if (G_CCLOSURE_SWAP_DATA (closure))
1790 data1 = closure->data;
1796 data2 = closure->data;
1798 callback = (GMarshalFunc_VOID__POINTER) (marshal_data ? marshal_data : cc->callback);
1806 * g_cclosure_marshal_VOID__OBJECT:
1807 * @closure: A #GClosure.
1808 * @return_value: A #GValue to store the return value. May be %NULL
1809 * if the callback of closure doesn't return a value.
1810 * @n_param_values: The length of the @param_values array.
1811 * @param_values: An array of #GValues holding the arguments
1812 * on which to invoke the callback of closure.
1813 * @invocation_hint: The invocation hint given as the last argument to
1814 * g_closure_invoke().
1815 * @marshal_data: Additional data specified when registering the
1816 * marshaller, see g_closure_set_marshal() and
1817 * g_closure_set_meta_marshal()
1819 * A #GClosureMarshal function for use with signals with a single
1820 * #GObject argument.
1824 g_cclosure_marshal_VOID__OBJECT (GClosure *closure,
1825 GValue *return_value G_GNUC_UNUSED,
1826 guint n_param_values,
1827 const GValue *param_values,
1828 gpointer invocation_hint G_GNUC_UNUSED,
1829 gpointer marshal_data)
1831 typedef void (*GMarshalFunc_VOID__OBJECT) (gpointer data1,
1834 GMarshalFunc_VOID__OBJECT callback;
1835 GCClosure *cc = (GCClosure*) closure;
1836 gpointer data1, data2;
1838 g_return_if_fail (n_param_values == 2);
1840 if (G_CCLOSURE_SWAP_DATA (closure))
1842 data1 = closure->data;
1843 data2 = g_value_peek_pointer (param_values + 0);
1847 data1 = g_value_peek_pointer (param_values + 0);
1848 data2 = closure->data;
1850 callback = (GMarshalFunc_VOID__OBJECT) (marshal_data ? marshal_data : cc->callback);
1853 g_marshal_value_peek_object (param_values + 1),
1858 * g_cclosure_marshal_VOID__OBJECTv:
1859 * @closure: the #GClosure to which the marshaller belongs
1860 * @return_value: (nullable): a #GValue to store the return
1861 * value. May be %NULL if the callback of @closure doesn't return a
1863 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
1864 * @args: va_list of arguments to be passed to the closure.
1865 * @marshal_data: (nullable): additional data specified when
1866 * registering the marshaller, see g_closure_set_marshal() and
1867 * g_closure_set_meta_marshal()
1868 * @n_params: the length of the @param_types array
1869 * @param_types: (array length=n_params): the #GType of each argument from
1872 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__OBJECT().
1875 g_cclosure_marshal_VOID__OBJECTv (GClosure *closure,
1876 GValue *return_value,
1879 gpointer marshal_data,
1883 typedef void (*GMarshalFunc_VOID__OBJECT) (gpointer instance,
1886 GCClosure *cc = (GCClosure*) closure;
1887 gpointer data1, data2;
1888 GMarshalFunc_VOID__OBJECT callback;
1892 va_copy (args_copy, args);
1893 arg0 = (gpointer) va_arg (args_copy, gpointer);
1895 arg0 = g_object_ref (arg0);
1898 if (G_CCLOSURE_SWAP_DATA (closure))
1900 data1 = closure->data;
1906 data2 = closure->data;
1908 callback = (GMarshalFunc_VOID__OBJECT) (marshal_data ? marshal_data : cc->callback);
1914 g_object_unref (arg0);
1918 * g_cclosure_marshal_VOID__VARIANT:
1919 * @closure: A #GClosure.
1920 * @return_value: A #GValue to store the return value. May be %NULL
1921 * if the callback of closure doesn't return a value.
1922 * @n_param_values: The length of the @param_values array.
1923 * @param_values: An array of #GValues holding the arguments
1924 * on which to invoke the callback of closure.
1925 * @invocation_hint: The invocation hint given as the last argument to
1926 * g_closure_invoke().
1927 * @marshal_data: Additional data specified when registering the
1928 * marshaller, see g_closure_set_marshal() and
1929 * g_closure_set_meta_marshal()
1931 * A #GClosureMarshal function for use with signals with a single
1932 * #GVariant argument.
1936 g_cclosure_marshal_VOID__VARIANT (GClosure *closure,
1937 GValue *return_value G_GNUC_UNUSED,
1938 guint n_param_values,
1939 const GValue *param_values,
1940 gpointer invocation_hint G_GNUC_UNUSED,
1941 gpointer marshal_data)
1943 typedef void (*GMarshalFunc_VOID__VARIANT) (gpointer data1,
1946 GMarshalFunc_VOID__VARIANT callback;
1947 GCClosure *cc = (GCClosure*) closure;
1948 gpointer data1, data2;
1950 g_return_if_fail (n_param_values == 2);
1952 if (G_CCLOSURE_SWAP_DATA (closure))
1954 data1 = closure->data;
1955 data2 = g_value_peek_pointer (param_values + 0);
1959 data1 = g_value_peek_pointer (param_values + 0);
1960 data2 = closure->data;
1962 callback = (GMarshalFunc_VOID__VARIANT) (marshal_data ? marshal_data : cc->callback);
1965 g_marshal_value_peek_variant (param_values + 1),
1970 * g_cclosure_marshal_VOID__VARIANTv:
1971 * @closure: the #GClosure to which the marshaller belongs
1972 * @return_value: (nullable): a #GValue to store the return
1973 * value. May be %NULL if the callback of @closure doesn't return a
1975 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
1976 * @args: va_list of arguments to be passed to the closure.
1977 * @marshal_data: (nullable): additional data specified when
1978 * registering the marshaller, see g_closure_set_marshal() and
1979 * g_closure_set_meta_marshal()
1980 * @n_params: the length of the @param_types array
1981 * @param_types: (array length=n_params): the #GType of each argument from
1984 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__VARIANT().
1987 g_cclosure_marshal_VOID__VARIANTv (GClosure *closure,
1988 GValue *return_value,
1991 gpointer marshal_data,
1995 typedef void (*GMarshalFunc_VOID__VARIANT) (gpointer instance,
1998 GCClosure *cc = (GCClosure*) closure;
1999 gpointer data1, data2;
2000 GMarshalFunc_VOID__VARIANT callback;
2004 va_copy (args_copy, args);
2005 arg0 = (gpointer) va_arg (args_copy, gpointer);
2006 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
2007 arg0 = g_variant_ref_sink (arg0);
2010 if (G_CCLOSURE_SWAP_DATA (closure))
2012 data1 = closure->data;
2018 data2 = closure->data;
2020 callback = (GMarshalFunc_VOID__VARIANT) (marshal_data ? marshal_data : cc->callback);
2025 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
2026 g_variant_unref (arg0);
2030 * g_cclosure_marshal_VOID__UINT_POINTER:
2031 * @closure: A #GClosure.
2032 * @return_value: A #GValue to store the return value. May be %NULL
2033 * if the callback of closure doesn't return a value.
2034 * @n_param_values: The length of the @param_values array.
2035 * @param_values: An array of #GValues holding the arguments
2036 * on which to invoke the callback of closure.
2037 * @invocation_hint: The invocation hint given as the last argument to
2038 * g_closure_invoke().
2039 * @marshal_data: Additional data specified when registering the
2040 * marshaller, see g_closure_set_marshal() and
2041 * g_closure_set_meta_marshal()
2043 * A #GClosureMarshal function for use with signals with an unsigned int
2044 * and a pointer as arguments.
2046 /* VOID:UINT,POINTER */
2048 g_cclosure_marshal_VOID__UINT_POINTER (GClosure *closure,
2049 GValue *return_value G_GNUC_UNUSED,
2050 guint n_param_values,
2051 const GValue *param_values,
2052 gpointer invocation_hint G_GNUC_UNUSED,
2053 gpointer marshal_data)
2055 typedef void (*GMarshalFunc_VOID__UINT_POINTER) (gpointer data1,
2059 GMarshalFunc_VOID__UINT_POINTER callback;
2060 GCClosure *cc = (GCClosure*) closure;
2061 gpointer data1, data2;
2063 g_return_if_fail (n_param_values == 3);
2065 if (G_CCLOSURE_SWAP_DATA (closure))
2067 data1 = closure->data;
2068 data2 = g_value_peek_pointer (param_values + 0);
2072 data1 = g_value_peek_pointer (param_values + 0);
2073 data2 = closure->data;
2075 callback = (GMarshalFunc_VOID__UINT_POINTER) (marshal_data ? marshal_data : cc->callback);
2078 g_marshal_value_peek_uint (param_values + 1),
2079 g_marshal_value_peek_pointer (param_values + 2),
2084 * g_cclosure_marshal_VOID__UINT_POINTERv:
2085 * @closure: the #GClosure to which the marshaller belongs
2086 * @return_value: (nullable): a #GValue to store the return
2087 * value. May be %NULL if the callback of @closure doesn't return a
2089 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
2090 * @args: va_list of arguments to be passed to the closure.
2091 * @marshal_data: (nullable): additional data specified when
2092 * registering the marshaller, see g_closure_set_marshal() and
2093 * g_closure_set_meta_marshal()
2094 * @n_params: the length of the @param_types array
2095 * @param_types: (array length=n_params): the #GType of each argument from
2098 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__UINT_POINTER().
2101 g_cclosure_marshal_VOID__UINT_POINTERv (GClosure *closure,
2102 GValue *return_value,
2105 gpointer marshal_data,
2109 typedef void (*GMarshalFunc_VOID__UINT_POINTER) (gpointer instance,
2113 GCClosure *cc = (GCClosure*) closure;
2114 gpointer data1, data2;
2115 GMarshalFunc_VOID__UINT_POINTER callback;
2120 va_copy (args_copy, args);
2121 arg0 = (guint) va_arg (args_copy, guint);
2122 arg1 = (gpointer) va_arg (args_copy, gpointer);
2125 if (G_CCLOSURE_SWAP_DATA (closure))
2127 data1 = closure->data;
2133 data2 = closure->data;
2135 callback = (GMarshalFunc_VOID__UINT_POINTER) (marshal_data ? marshal_data : cc->callback);
2144 * g_cclosure_marshal_BOOLEAN__FLAGS:
2145 * @closure: A #GClosure.
2146 * @return_value: A #GValue to store the return value. May be %NULL
2147 * if the callback of closure doesn't return a value.
2148 * @n_param_values: The length of the @param_values array.
2149 * @param_values: An array of #GValues holding the arguments
2150 * on which to invoke the callback of closure.
2151 * @invocation_hint: The invocation hint given as the last argument to
2152 * g_closure_invoke().
2153 * @marshal_data: Additional data specified when registering the
2154 * marshaller, see g_closure_set_marshal() and
2155 * g_closure_set_meta_marshal()
2157 * A #GClosureMarshal function for use with signals with handlers that
2158 * take a flags type as an argument and return a boolean. If you have
2159 * such a signal, you will probably also need to use an accumulator,
2160 * such as g_signal_accumulator_true_handled().
2164 g_cclosure_marshal_BOOLEAN__FLAGS (GClosure *closure,
2165 GValue *return_value G_GNUC_UNUSED,
2166 guint n_param_values,
2167 const GValue *param_values,
2168 gpointer invocation_hint G_GNUC_UNUSED,
2169 gpointer marshal_data)
2171 typedef gboolean (*GMarshalFunc_BOOLEAN__FLAGS) (gpointer data1,
2174 GMarshalFunc_BOOLEAN__FLAGS callback;
2175 GCClosure *cc = (GCClosure*) closure;
2176 gpointer data1, data2;
2179 g_return_if_fail (return_value != NULL);
2180 g_return_if_fail (n_param_values == 2);
2182 if (G_CCLOSURE_SWAP_DATA (closure))
2184 data1 = closure->data;
2185 data2 = g_value_peek_pointer (param_values + 0);
2189 data1 = g_value_peek_pointer (param_values + 0);
2190 data2 = closure->data;
2192 callback = (GMarshalFunc_BOOLEAN__FLAGS) (marshal_data ? marshal_data : cc->callback);
2194 v_return = callback (data1,
2195 g_marshal_value_peek_flags (param_values + 1),
2198 g_value_set_boolean (return_value, v_return);
2202 * g_cclosure_marshal_BOOLEAN__FLAGSv:
2203 * @closure: the #GClosure to which the marshaller belongs
2204 * @return_value: (nullable): a #GValue to store the return
2205 * value. May be %NULL if the callback of @closure doesn't return a
2207 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
2208 * @args: va_list of arguments to be passed to the closure.
2209 * @marshal_data: (nullable): additional data specified when
2210 * registering the marshaller, see g_closure_set_marshal() and
2211 * g_closure_set_meta_marshal()
2212 * @n_params: the length of the @param_types array
2213 * @param_types: (array length=n_params): the #GType of each argument from
2216 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_BOOLEAN__FLAGS().
2219 g_cclosure_marshal_BOOLEAN__FLAGSv (GClosure *closure,
2220 GValue *return_value,
2223 gpointer marshal_data,
2227 typedef gboolean (*GMarshalFunc_BOOLEAN__FLAGS) (gpointer instance,
2230 GCClosure *cc = (GCClosure*) closure;
2231 gpointer data1, data2;
2232 GMarshalFunc_BOOLEAN__FLAGS callback;
2237 g_return_if_fail (return_value != NULL);
2239 va_copy (args_copy, args);
2240 arg0 = (guint) va_arg (args_copy, guint);
2243 if (G_CCLOSURE_SWAP_DATA (closure))
2245 data1 = closure->data;
2251 data2 = closure->data;
2253 callback = (GMarshalFunc_BOOLEAN__FLAGS) (marshal_data ? marshal_data : cc->callback);
2255 v_return = callback (data1,
2259 g_value_set_boolean (return_value, v_return);
2263 * g_cclosure_marshal_STRING__OBJECT_POINTER:
2264 * @closure: A #GClosure.
2265 * @return_value: A #GValue to store the return value. May be %NULL
2266 * if the callback of closure doesn't return a value.
2267 * @n_param_values: The length of the @param_values array.
2268 * @param_values: An array of #GValues holding the arguments
2269 * on which to invoke the callback of closure.
2270 * @invocation_hint: The invocation hint given as the last argument to
2271 * g_closure_invoke().
2272 * @marshal_data: Additional data specified when registering the
2273 * marshaller, see g_closure_set_marshal() and
2274 * g_closure_set_meta_marshal()
2276 * A #GClosureMarshal function for use with signals with handlers that
2277 * take a #GObject and a pointer and produce a string. It is highly
2278 * unlikely that your signal handler fits this description.
2280 /* STRING:OBJECT,POINTER */
2282 g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure *closure,
2283 GValue *return_value G_GNUC_UNUSED,
2284 guint n_param_values,
2285 const GValue *param_values,
2286 gpointer invocation_hint G_GNUC_UNUSED,
2287 gpointer marshal_data)
2289 typedef gchar* (*GMarshalFunc_STRING__OBJECT_POINTER) (gpointer data1,
2293 GMarshalFunc_STRING__OBJECT_POINTER callback;
2294 GCClosure *cc = (GCClosure*) closure;
2295 gpointer data1, data2;
2298 g_return_if_fail (return_value != NULL);
2299 g_return_if_fail (n_param_values == 3);
2301 if (G_CCLOSURE_SWAP_DATA (closure))
2303 data1 = closure->data;
2304 data2 = g_value_peek_pointer (param_values + 0);
2308 data1 = g_value_peek_pointer (param_values + 0);
2309 data2 = closure->data;
2311 callback = (GMarshalFunc_STRING__OBJECT_POINTER) (marshal_data ? marshal_data : cc->callback);
2313 v_return = callback (data1,
2314 g_marshal_value_peek_object (param_values + 1),
2315 g_marshal_value_peek_pointer (param_values + 2),
2318 g_value_take_string (return_value, v_return);
2322 * g_cclosure_marshal_STRING__OBJECT_POINTERv:
2323 * @closure: the #GClosure to which the marshaller belongs
2324 * @return_value: (nullable): a #GValue to store the return
2325 * value. May be %NULL if the callback of @closure doesn't return a
2327 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
2328 * @args: va_list of arguments to be passed to the closure.
2329 * @marshal_data: (nullable): additional data specified when
2330 * registering the marshaller, see g_closure_set_marshal() and
2331 * g_closure_set_meta_marshal()
2332 * @n_params: the length of the @param_types array
2333 * @param_types: (array length=n_params): the #GType of each argument from
2336 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_STRING__OBJECT_POINTER().
2339 g_cclosure_marshal_STRING__OBJECT_POINTERv (GClosure *closure,
2340 GValue *return_value,
2343 gpointer marshal_data,
2347 typedef gchar* (*GMarshalFunc_STRING__OBJECT_POINTER) (gpointer instance,
2351 GCClosure *cc = (GCClosure*) closure;
2352 gpointer data1, data2;
2353 GMarshalFunc_STRING__OBJECT_POINTER callback;
2359 g_return_if_fail (return_value != NULL);
2361 va_copy (args_copy, args);
2362 arg0 = (gpointer) va_arg (args_copy, gpointer);
2364 arg0 = g_object_ref (arg0);
2365 arg1 = (gpointer) va_arg (args_copy, gpointer);
2368 if (G_CCLOSURE_SWAP_DATA (closure))
2370 data1 = closure->data;
2376 data2 = closure->data;
2378 callback = (GMarshalFunc_STRING__OBJECT_POINTER) (marshal_data ? marshal_data : cc->callback);
2380 v_return = callback (data1,
2385 g_object_unref (arg0);
2387 g_value_take_string (return_value, v_return);
2391 * g_cclosure_marshal_BOOLEAN__BOXED_BOXED:
2392 * @closure: A #GClosure.
2393 * @return_value: A #GValue to store the return value. May be %NULL
2394 * if the callback of closure doesn't return a value.
2395 * @n_param_values: The length of the @param_values array.
2396 * @param_values: An array of #GValues holding the arguments
2397 * on which to invoke the callback of closure.
2398 * @invocation_hint: The invocation hint given as the last argument to
2399 * g_closure_invoke().
2400 * @marshal_data: Additional data specified when registering the
2401 * marshaller, see g_closure_set_marshal() and
2402 * g_closure_set_meta_marshal()
2404 * A #GClosureMarshal function for use with signals with handlers that
2405 * take two boxed pointers as arguments and return a boolean. If you
2406 * have such a signal, you will probably also need to use an
2407 * accumulator, such as g_signal_accumulator_true_handled().
2409 /* BOOL:BOXED,BOXED */
2411 g_cclosure_marshal_BOOLEAN__BOXED_BOXED (GClosure *closure,
2412 GValue *return_value G_GNUC_UNUSED,
2413 guint n_param_values,
2414 const GValue *param_values,
2415 gpointer invocation_hint G_GNUC_UNUSED,
2416 gpointer marshal_data)
2418 typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED) (gpointer data1,
2422 GMarshalFunc_BOOLEAN__BOXED_BOXED callback;
2423 GCClosure *cc = (GCClosure*) closure;
2424 gpointer data1, data2;
2427 g_return_if_fail (return_value != NULL);
2428 g_return_if_fail (n_param_values == 3);
2430 if (G_CCLOSURE_SWAP_DATA (closure))
2432 data1 = closure->data;
2433 data2 = g_value_peek_pointer (param_values + 0);
2437 data1 = g_value_peek_pointer (param_values + 0);
2438 data2 = closure->data;
2440 callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED) (marshal_data ? marshal_data : cc->callback);
2442 v_return = callback (data1,
2443 g_marshal_value_peek_boxed (param_values + 1),
2444 g_marshal_value_peek_boxed (param_values + 2),
2447 g_value_set_boolean (return_value, v_return);
2451 * g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv:
2452 * @closure: the #GClosure to which the marshaller belongs
2453 * @return_value: (nullable): a #GValue to store the return
2454 * value. May be %NULL if the callback of @closure doesn't return a
2456 * @instance: (type GObject.TypeInstance): the instance on which the closure is invoked.
2457 * @args: va_list of arguments to be passed to the closure.
2458 * @marshal_data: (nullable): additional data specified when
2459 * registering the marshaller, see g_closure_set_marshal() and
2460 * g_closure_set_meta_marshal()
2461 * @n_params: the length of the @param_types array
2462 * @param_types: (array length=n_params): the #GType of each argument from
2465 * The #GVaClosureMarshal equivalent to g_cclosure_marshal_BOOLEAN__BOXED_BOXED().
2468 g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv (GClosure *closure,
2469 GValue *return_value,
2472 gpointer marshal_data,
2476 typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED) (gpointer instance,
2480 GCClosure *cc = (GCClosure*) closure;
2481 gpointer data1, data2;
2482 GMarshalFunc_BOOLEAN__BOXED_BOXED callback;
2488 g_return_if_fail (return_value != NULL);
2490 va_copy (args_copy, args);
2491 arg0 = (gpointer) va_arg (args_copy, gpointer);
2492 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
2493 arg0 = g_boxed_copy (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg0);
2494 arg1 = (gpointer) va_arg (args_copy, gpointer);
2495 if ((param_types[1] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg1 != NULL)
2496 arg1 = g_boxed_copy (param_types[1] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg1);
2499 if (G_CCLOSURE_SWAP_DATA (closure))
2501 data1 = closure->data;
2507 data2 = closure->data;
2509 callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED) (marshal_data ? marshal_data : cc->callback);
2511 v_return = callback (data1,
2515 if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
2516 g_boxed_free (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg0);
2517 if ((param_types[1] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg1 != NULL)
2518 g_boxed_free (param_types[1] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg1);
2520 g_value_set_boolean (return_value, v_return);