source: trunk/third/libsoup/libsoup/soup-marshal.c @ 21519

Revision 21519, 4.8 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21518, which included commits to RCS files with non-trunk default branches.
Line 
1#include "soup-marshal.h"
2
3#include        <glib-object.h>
4
5
6#ifdef G_ENABLE_DEBUG
7#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
8#define g_marshal_value_peek_char(v)     g_value_get_char (v)
9#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
10#define g_marshal_value_peek_int(v)      g_value_get_int (v)
11#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
12#define g_marshal_value_peek_long(v)     g_value_get_long (v)
13#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
14#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
15#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
16#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
17#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
18#define g_marshal_value_peek_float(v)    g_value_get_float (v)
19#define g_marshal_value_peek_double(v)   g_value_get_double (v)
20#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
21#define g_marshal_value_peek_param(v)    g_value_get_param (v)
22#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
23#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
24#define g_marshal_value_peek_object(v)   g_value_get_object (v)
25#else /* !G_ENABLE_DEBUG */
26/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
27 *          Do not access GValues directly in your code. Instead, use the
28 *          g_value_get_*() functions
29 */
30#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
31#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
32#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
33#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
34#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
35#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
36#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
37#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
38#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
39#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
40#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
41#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
42#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
43#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
44#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
45#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
46#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
47#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
48#endif /* !G_ENABLE_DEBUG */
49
50
51/* NONE:NONE (./soup-marshal.list:1) */
52
53/* NONE:INT (./soup-marshal.list:2) */
54
55/* NONE:OBJECT (./soup-marshal.list:3) */
56
57/* NONE:OBJECT,STRING,STRING,POINTER,POINTER (./soup-marshal.list:4) */
58void
59soup_marshal_VOID__OBJECT_STRING_STRING_POINTER_POINTER (GClosure     *closure,
60                                                         GValue       *return_value,
61                                                         guint         n_param_values,
62                                                         const GValue *param_values,
63                                                         gpointer      invocation_hint,
64                                                         gpointer      marshal_data)
65{
66  typedef void (*GMarshalFunc_VOID__OBJECT_STRING_STRING_POINTER_POINTER) (gpointer     data1,
67                                                                           gpointer     arg_1,
68                                                                           gpointer     arg_2,
69                                                                           gpointer     arg_3,
70                                                                           gpointer     arg_4,
71                                                                           gpointer     arg_5,
72                                                                           gpointer     data2);
73  register GMarshalFunc_VOID__OBJECT_STRING_STRING_POINTER_POINTER callback;
74  register GCClosure *cc = (GCClosure*) closure;
75  register gpointer data1, data2;
76
77  g_return_if_fail (n_param_values == 6);
78
79  if (G_CCLOSURE_SWAP_DATA (closure))
80    {
81      data1 = closure->data;
82      data2 = g_value_peek_pointer (param_values + 0);
83    }
84  else
85    {
86      data1 = g_value_peek_pointer (param_values + 0);
87      data2 = closure->data;
88    }
89  callback = (GMarshalFunc_VOID__OBJECT_STRING_STRING_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
90
91  callback (data1,
92            g_marshal_value_peek_object (param_values + 1),
93            g_marshal_value_peek_string (param_values + 2),
94            g_marshal_value_peek_string (param_values + 3),
95            g_marshal_value_peek_pointer (param_values + 4),
96            g_marshal_value_peek_pointer (param_values + 5),
97            data2);
98}
99
Note: See TracBrowser for help on using the repository browser.