| 128 g_value_get_pointer(param_values + 1) , |
128 g_value_get_pointer(param_values + 1) , |
| 129 g_value_get_pointer(param_values + 2) , |
129 g_value_get_pointer(param_values + 2) , |
| 130 data2); |
130 data2); |
| 131 } |
131 } |
| 132 |
132 |
| |
133 void gnt_closure_marshal_BOOLEAN__INT_INT(GClosure *closure, |
| |
134 GValue *ret_value, |
| |
135 guint n_param_values, |
| |
136 const GValue *param_values, |
| |
137 gpointer invocation_hint, |
| |
138 gpointer marshal_data) |
| |
139 { |
| |
140 typedef gboolean (*func) (gpointer data1, int, int, gpointer data2); |
| |
141 register func callback; |
| |
142 register GCClosure *cc = (GCClosure*)closure; |
| |
143 register gpointer data1, data2; |
| |
144 gboolean ret; |
| |
145 |
| |
146 g_return_if_fail(ret_value != NULL); |
| |
147 g_return_if_fail(n_param_values == 3); |
| |
148 |
| |
149 if (G_CCLOSURE_SWAP_DATA(closure)) |
| |
150 { |
| |
151 data1 = closure->data; |
| |
152 data2 = g_value_peek_pointer(param_values + 0); |
| |
153 } |
| |
154 else |
| |
155 { |
| |
156 data1 = g_value_peek_pointer(param_values + 0); |
| |
157 data2 = closure->data; |
| |
158 } |
| |
159 |
| |
160 callback = (func) (marshal_data ? marshal_data : cc->callback); |
| |
161 ret = callback(data1, |
| |
162 g_value_get_int(param_values + 1) , |
| |
163 g_value_get_int(param_values + 2) , |
| |
164 data2); |
| |
165 g_value_set_boolean(ret_value, ret); |
| |
166 } |
| |
167 |
| |
168 |