1 /* functions.c generated by valac 0.46.6, the Vala compiler
2 * generated from functions.vala, do not modify */
3
4 /* functions.vala
5 *
6 * Copyright (C) 2009 Didier Villevalois, Maciej Piechotka
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 * Didier 'Ptitjes' Villevalois <ptitjes@free.fr>
24 * Maciej Piechotka <uzytkownik2@gmail.com>
25 */
26
27 #include <glib-object.h>
28 #include <glib.h>
29 #include <stdlib.h>
30 #include <string.h>
31 #include <gobject/gvaluecollector.h>
32
33 typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data);
34
35 #define GEE_TYPE_HASHABLE (gee_hashable_get_type ())
36 #define GEE_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASHABLE, GeeHashable))
37 #define GEE_IS_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASHABLE))
38 #define GEE_HASHABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_HASHABLE, GeeHashableIface))
39
40 typedef struct _GeeHashable GeeHashable;
41 typedef struct _GeeHashableIface GeeHashableIface;
42
43 #define GEE_TYPE_COMPARABLE (gee_comparable_get_type ())
44 #define GEE_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COMPARABLE, GeeComparable))
45 #define GEE_IS_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COMPARABLE))
46 #define GEE_COMPARABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COMPARABLE, GeeComparableIface))
47
48 typedef struct _GeeComparable GeeComparable;
49 typedef struct _GeeComparableIface GeeComparableIface;
50 typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data);
51
52 #define GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE (gee_functions_equal_data_func_closure_get_type ())
53 #define GEE_FUNCTIONS_EQUAL_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE, GeeFunctionsEqualDataFuncClosure))
54 #define GEE_FUNCTIONS_EQUAL_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE, GeeFunctionsEqualDataFuncClosureClass))
55 #define GEE_FUNCTIONS_IS_EQUAL_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE))
56 #define GEE_FUNCTIONS_IS_EQUAL_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE))
57 #define GEE_FUNCTIONS_EQUAL_DATA_FUNC_CLOSURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE, GeeFunctionsEqualDataFuncClosureClass))
58
59 typedef struct _GeeFunctionsEqualDataFuncClosure GeeFunctionsEqualDataFuncClosure;
60 typedef struct _GeeFunctionsEqualDataFuncClosureClass GeeFunctionsEqualDataFuncClosureClass;
61 typedef struct _GeeFunctionsEqualDataFuncClosurePrivate GeeFunctionsEqualDataFuncClosurePrivate;
62 typedef struct _GeeFunctionsParamSpecEqualDataFuncClosure GeeFunctionsParamSpecEqualDataFuncClosure;
63
64 #define GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE (gee_functions_hash_data_func_closure_get_type ())
65 #define GEE_FUNCTIONS_HASH_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE, GeeFunctionsHashDataFuncClosure))
66 #define GEE_FUNCTIONS_HASH_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE, GeeFunctionsHashDataFuncClosureClass))
67 #define GEE_FUNCTIONS_IS_HASH_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE))
68 #define GEE_FUNCTIONS_IS_HASH_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE))
69 #define GEE_FUNCTIONS_HASH_DATA_FUNC_CLOSURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE, GeeFunctionsHashDataFuncClosureClass))
70
71 typedef struct _GeeFunctionsHashDataFuncClosure GeeFunctionsHashDataFuncClosure;
72 typedef struct _GeeFunctionsHashDataFuncClosureClass GeeFunctionsHashDataFuncClosureClass;
73 typedef struct _GeeFunctionsHashDataFuncClosurePrivate GeeFunctionsHashDataFuncClosurePrivate;
74 typedef struct _GeeFunctionsParamSpecHashDataFuncClosure GeeFunctionsParamSpecHashDataFuncClosure;
75
76 #define GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE (gee_functions_compare_data_func_closure_get_type ())
77 #define GEE_FUNCTIONS_COMPARE_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE, GeeFunctionsCompareDataFuncClosure))
78 #define GEE_FUNCTIONS_COMPARE_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE, GeeFunctionsCompareDataFuncClosureClass))
79 #define GEE_FUNCTIONS_IS_COMPARE_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE))
80 #define GEE_FUNCTIONS_IS_COMPARE_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE))
81 #define GEE_FUNCTIONS_COMPARE_DATA_FUNC_CLOSURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE, GeeFunctionsCompareDataFuncClosureClass))
82
83 typedef struct _GeeFunctionsCompareDataFuncClosure GeeFunctionsCompareDataFuncClosure;
84 typedef struct _GeeFunctionsCompareDataFuncClosureClass GeeFunctionsCompareDataFuncClosureClass;
85 typedef struct _GeeFunctionsCompareDataFuncClosurePrivate GeeFunctionsCompareDataFuncClosurePrivate;
86 typedef struct _GeeFunctionsParamSpecCompareDataFuncClosure GeeFunctionsParamSpecCompareDataFuncClosure;
87
88 struct _GeeHashableIface {
89 GTypeInterface parent_iface;
90 guint (*hash) (GeeHashable* self);
91 gboolean (*equal_to) (GeeHashable* self, gconstpointer object);
92 };
93
94 struct _GeeComparableIface {
95 GTypeInterface parent_iface;
96 gint (*compare_to) (GeeComparable* self, gconstpointer object);
97 };
98
99 struct _GeeFunctionsEqualDataFuncClosure {
100 GTypeInstance parent_instance;
101 volatile int ref_count;
102 GeeFunctionsEqualDataFuncClosurePrivate * priv;
103 GeeEqualDataFunc func;
104 gpointer func_target;
105 GDestroyNotify func_target_destroy_notify;
106 };
107
108 struct _GeeFunctionsEqualDataFuncClosureClass {
109 GTypeClass parent_class;
110 void (*finalize) (GeeFunctionsEqualDataFuncClosure *self);
111 };
112
113 struct _GeeFunctionsEqualDataFuncClosurePrivate {
114 GType g_type;
115 GBoxedCopyFunc g_dup_func;
116 GDestroyNotify g_destroy_func;
117 };
118
119 struct _GeeFunctionsParamSpecEqualDataFuncClosure {
120 GParamSpec parent_instance;
121 };
122
123 struct _GeeFunctionsHashDataFuncClosure {
124 GTypeInstance parent_instance;
125 volatile int ref_count;
126 GeeFunctionsHashDataFuncClosurePrivate * priv;
127 GeeHashDataFunc func;
128 gpointer func_target;
129 GDestroyNotify func_target_destroy_notify;
130 };
131
132 struct _GeeFunctionsHashDataFuncClosureClass {
133 GTypeClass parent_class;
134 void (*finalize) (GeeFunctionsHashDataFuncClosure *self);
135 };
136
137 struct _GeeFunctionsHashDataFuncClosurePrivate {
138 GType g_type;
139 GBoxedCopyFunc g_dup_func;
140 GDestroyNotify g_destroy_func;
141 };
142
143 struct _GeeFunctionsParamSpecHashDataFuncClosure {
144 GParamSpec parent_instance;
145 };
146
147 struct _GeeFunctionsCompareDataFuncClosure {
148 GTypeInstance parent_instance;
149 volatile int ref_count;
150 GeeFunctionsCompareDataFuncClosurePrivate * priv;
151 GCompareDataFunc func;
152 gpointer func_target;
153 GDestroyNotify func_target_destroy_notify;
154 };
155
156 struct _GeeFunctionsCompareDataFuncClosureClass {
157 GTypeClass parent_class;
158 void (*finalize) (GeeFunctionsCompareDataFuncClosure *self);
159 };
160
161 struct _GeeFunctionsCompareDataFuncClosurePrivate {
162 GType g_type;
163 GBoxedCopyFunc g_dup_func;
164 GDestroyNotify g_destroy_func;
165 };
166
167 struct _GeeFunctionsParamSpecCompareDataFuncClosure {
168 GParamSpec parent_instance;
169 };
170
171 static gint GeeFunctionsEqualDataFuncClosure_private_offset;
172 static gpointer gee_functions_equal_data_func_closure_parent_class = NULL;
173 static gint GeeFunctionsHashDataFuncClosure_private_offset;
174 static gpointer gee_functions_hash_data_func_closure_parent_class = NULL;
175 static gint GeeFunctionsCompareDataFuncClosure_private_offset;
176 static gpointer gee_functions_compare_data_func_closure_parent_class = NULL;
177
178 GeeEqualDataFunc gee_functions_get_equal_func_for (GType t,
179 gpointer* result_target,
180 GDestroyNotify* result_target_destroy_notify);
181 static gboolean ___lambda30_ (gconstpointer a,
182 gconstpointer b);
183 static gboolean ____lambda30__gee_equal_data_func (gconstpointer a,
184 gconstpointer b,
185 gpointer self);
186 GType gee_hashable_get_type (void) G_GNUC_CONST;
187 static gboolean ____lambda31_ (gconstpointer a,
188 gconstpointer b);
189 gboolean gee_hashable_equal_to (GeeHashable* self,
190 gconstpointer object);
191 static gboolean _____lambda31__gee_equal_data_func (gconstpointer a,
192 gconstpointer b,
193 gpointer self);
194 GType gee_comparable_get_type (void) G_GNUC_CONST;
195 static gboolean _____lambda32_ (gconstpointer a,
196 gconstpointer b);
197 gint gee_comparable_compare_to (GeeComparable* self,
198 gconstpointer object);
199 static gboolean ______lambda32__gee_equal_data_func (gconstpointer a,
200 gconstpointer b,
201 gpointer self);
202 static gboolean _____lambda33_ (gconstpointer a,
203 gconstpointer b);
204 static gboolean ______lambda33__gee_equal_data_func (gconstpointer a,
205 gconstpointer b,
206 gpointer self);
207 GeeHashDataFunc gee_functions_get_hash_func_for (GType t,
208 gpointer* result_target,
209 GDestroyNotify* result_target_destroy_notify);
210 static guint ___lambda41_ (gconstpointer a);
211 static guint ____lambda41__gee_hash_data_func (gconstpointer v,
212 gpointer self);
213 static guint ____lambda42_ (gconstpointer a);
214 guint gee_hashable_hash (GeeHashable* self);
215 static guint _____lambda42__gee_hash_data_func (gconstpointer v,
216 gpointer self);
217 static guint ____lambda43_ (gconstpointer a);
218 static guint _____lambda43__gee_hash_data_func (gconstpointer v,
219 gpointer self);
220 GCompareDataFunc gee_functions_get_compare_func_for (GType t,
221 gpointer* result_target,
222 GDestroyNotify* result_target_destroy_notify);
223 static gint ___lambda44_ (gconstpointer a,
224 gconstpointer b);
225 static gint ____lambda44__gcompare_data_func (gconstpointer a,
226 gconstpointer b,
227 gpointer self);
228 static gint ____lambda45_ (gconstpointer a,
229 gconstpointer b);
230 static gint _____lambda45__gcompare_data_func (gconstpointer a,
231 gconstpointer b,
232 gpointer self);
233 static gint ____lambda46_ (gconstpointer _val1,
234 gconstpointer _val2);
235 static gint _____lambda46__gcompare_data_func (gconstpointer a,
236 gconstpointer b,
237 gpointer self);
238 G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance);
239 G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance);
240 G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name,
241 const gchar* nick,
242 const gchar* blurb,
243 GType object_type,
244 GParamFlags flags);
245 G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value,
246 gpointer v_object) G_GNUC_UNUSED;
247 G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value,
248 gpointer v_object);
249 G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED;
250 G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
251 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref)
252 G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type,
253 GBoxedCopyFunc g_dup_func,
254 GDestroyNotify g_destroy_func,
255 GeeEqualDataFunc func,
256 gpointer func_target,
257 GDestroyNotify func_target_destroy_notify);
258 G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type,
259 GType g_type,
260 GBoxedCopyFunc g_dup_func,
261 GDestroyNotify g_destroy_func,
262 GeeEqualDataFunc func,
263 gpointer func_target,
264 GDestroyNotify func_target_destroy_notify);
265 G_GNUC_INTERNAL GeeEqualDataFunc gee_functions_equal_data_func_closure_clone_func (GeeFunctionsEqualDataFuncClosure* self,
266 gpointer* result_target,
267 GDestroyNotify* result_target_destroy_notify);
268 static gboolean __lambda29_ (GeeFunctionsEqualDataFuncClosure* self,
269 gconstpointer a,
270 gconstpointer b);
271 static gboolean ___lambda29__gee_equal_data_func (gconstpointer a,
272 gconstpointer b,
273 gpointer self);
274 static void gee_functions_equal_data_func_closure_finalize (GeeFunctionsEqualDataFuncClosure * obj);
275 G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance);
276 G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance);
277 G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name,
278 const gchar* nick,
279 const gchar* blurb,
280 GType object_type,
281 GParamFlags flags);
282 G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value,
283 gpointer v_object) G_GNUC_UNUSED;
284 G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value,
285 gpointer v_object);
286 G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED;
287 G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
288 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsHashDataFuncClosure, gee_functions_hash_data_func_closure_unref)
289 G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type,
290 GBoxedCopyFunc g_dup_func,
291 GDestroyNotify g_destroy_func,
292 GeeHashDataFunc func,
293 gpointer func_target,
294 GDestroyNotify func_target_destroy_notify);
295 G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type,
296 GType g_type,
297 GBoxedCopyFunc g_dup_func,
298 GDestroyNotify g_destroy_func,
299 GeeHashDataFunc func,
300 gpointer func_target,
301 GDestroyNotify func_target_destroy_notify);
302 G_GNUC_INTERNAL GeeHashDataFunc gee_functions_hash_data_func_closure_clone_func (GeeFunctionsHashDataFuncClosure* self,
303 gpointer* result_target,
304 GDestroyNotify* result_target_destroy_notify);
305 static guint __lambda40_ (GeeFunctionsHashDataFuncClosure* self,
306 gconstpointer a);
307 static guint ___lambda40__gee_hash_data_func (gconstpointer v,
308 gpointer self);
309 static void gee_functions_hash_data_func_closure_finalize (GeeFunctionsHashDataFuncClosure * obj);
310 G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance);
311 G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance);
312 G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name,
313 const gchar* nick,
314 const gchar* blurb,
315 GType object_type,
316 GParamFlags flags);
317 G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value,
318 gpointer v_object) G_GNUC_UNUSED;
319 G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value,
320 gpointer v_object);
321 G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED;
322 G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
323 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsCompareDataFuncClosure, gee_functions_compare_data_func_closure_unref)
324 G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type,
325 GBoxedCopyFunc g_dup_func,
326 GDestroyNotify g_destroy_func,
327 GCompareDataFunc func,
328 gpointer func_target,
329 GDestroyNotify func_target_destroy_notify);
330 G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type,
331 GType g_type,
332 GBoxedCopyFunc g_dup_func,
333 GDestroyNotify g_destroy_func,
334 GCompareDataFunc func,
335 gpointer func_target,
336 GDestroyNotify func_target_destroy_notify);
337 G_GNUC_INTERNAL GCompareDataFunc gee_functions_compare_data_func_closure_clone_func (GeeFunctionsCompareDataFuncClosure* self,
338 gpointer* result_target,
339 GDestroyNotify* result_target_destroy_notify);
340 static gint __lambda49_ (GeeFunctionsCompareDataFuncClosure* self,
341 gconstpointer a,
342 gconstpointer b);
343 static gint ___lambda49__gcompare_data_func (gconstpointer a,
344 gconstpointer b,
345 gpointer self);
346 static void gee_functions_compare_data_func_closure_finalize (GeeFunctionsCompareDataFuncClosure * obj);
347
348 /**
349 * Get a equality testing function for a given type.
350 *
351 * @param t the type which to get an equality testing function for.
352 *
353 * @return the equality testing function corresponding to the given type.
354 */
355 static gboolean
___lambda30_(gconstpointer a,gconstpointer b)356 ___lambda30_ (gconstpointer a,
357 gconstpointer b)
358 {
359 gboolean result = FALSE;
360 if (a == b) {
361 result = TRUE;
362 return result;
363 } else {
364 gboolean _tmp0_ = FALSE;
365 if (a == NULL) {
366 _tmp0_ = TRUE;
367 } else {
368 _tmp0_ = b == NULL;
369 }
370 if (_tmp0_) {
371 result = FALSE;
372 return result;
373 } else {
374 GEqualFunc _tmp1_;
375 _tmp1_ = g_str_equal;
376 result = _tmp1_ ((const gchar*) a, (const gchar*) b);
377 return result;
378 }
379 }
380 }
381
382 static gboolean
____lambda30__gee_equal_data_func(gconstpointer a,gconstpointer b,gpointer self)383 ____lambda30__gee_equal_data_func (gconstpointer a,
384 gconstpointer b,
385 gpointer self)
386 {
387 gboolean result;
388 result = ___lambda30_ (a, b);
389 return result;
390 }
391
392 static gboolean
____lambda31_(gconstpointer a,gconstpointer b)393 ____lambda31_ (gconstpointer a,
394 gconstpointer b)
395 {
396 gboolean result = FALSE;
397 if (a == b) {
398 result = TRUE;
399 return result;
400 } else {
401 gboolean _tmp0_ = FALSE;
402 if (a == NULL) {
403 _tmp0_ = TRUE;
404 } else {
405 _tmp0_ = b == NULL;
406 }
407 if (_tmp0_) {
408 result = FALSE;
409 return result;
410 } else {
411 result = gee_hashable_equal_to (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_HASHABLE, GeeHashable), G_TYPE_CHECK_INSTANCE_CAST (b, GEE_TYPE_HASHABLE, GeeHashable));
412 return result;
413 }
414 }
415 }
416
417 static gboolean
_____lambda31__gee_equal_data_func(gconstpointer a,gconstpointer b,gpointer self)418 _____lambda31__gee_equal_data_func (gconstpointer a,
419 gconstpointer b,
420 gpointer self)
421 {
422 gboolean result;
423 result = ____lambda31_ (a, b);
424 return result;
425 }
426
427 static gboolean
_____lambda32_(gconstpointer a,gconstpointer b)428 _____lambda32_ (gconstpointer a,
429 gconstpointer b)
430 {
431 gboolean result = FALSE;
432 if (a == b) {
433 result = TRUE;
434 return result;
435 } else {
436 gboolean _tmp0_ = FALSE;
437 if (a == NULL) {
438 _tmp0_ = TRUE;
439 } else {
440 _tmp0_ = b == NULL;
441 }
442 if (_tmp0_) {
443 result = FALSE;
444 return result;
445 } else {
446 result = gee_comparable_compare_to (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_COMPARABLE, GeeComparable), G_TYPE_CHECK_INSTANCE_CAST (b, GEE_TYPE_COMPARABLE, GeeComparable)) == 0;
447 return result;
448 }
449 }
450 }
451
452 static gboolean
______lambda32__gee_equal_data_func(gconstpointer a,gconstpointer b,gpointer self)453 ______lambda32__gee_equal_data_func (gconstpointer a,
454 gconstpointer b,
455 gpointer self)
456 {
457 gboolean result;
458 result = _____lambda32_ (a, b);
459 return result;
460 }
461
462 static gboolean
_____lambda33_(gconstpointer a,gconstpointer b)463 _____lambda33_ (gconstpointer a,
464 gconstpointer b)
465 {
466 GEqualFunc _tmp0_;
467 gboolean result = FALSE;
468 _tmp0_ = g_direct_equal;
469 result = _tmp0_ (a, b);
470 return result;
471 }
472
473 static gboolean
______lambda33__gee_equal_data_func(gconstpointer a,gconstpointer b,gpointer self)474 ______lambda33__gee_equal_data_func (gconstpointer a,
475 gconstpointer b,
476 gpointer self)
477 {
478 gboolean result;
479 result = _____lambda33_ (a, b);
480 return result;
481 }
482
483 GeeEqualDataFunc
gee_functions_get_equal_func_for(GType t,gpointer * result_target,GDestroyNotify * result_target_destroy_notify)484 gee_functions_get_equal_func_for (GType t,
485 gpointer* result_target,
486 GDestroyNotify* result_target_destroy_notify)
487 {
488 GeeEqualDataFunc result = NULL;
489 if (t == G_TYPE_STRING) {
490 GeeEqualDataFunc _tmp0_;
491 gpointer _tmp0__target;
492 GDestroyNotify _tmp0__target_destroy_notify;
493 _tmp0_ = ____lambda30__gee_equal_data_func;
494 _tmp0__target = NULL;
495 _tmp0__target_destroy_notify = NULL;
496 *result_target = _tmp0__target;
497 *result_target_destroy_notify = _tmp0__target_destroy_notify;
498 result = _tmp0_;
499 return result;
500 } else {
501 if (g_type_is_a (t, GEE_TYPE_HASHABLE)) {
502 GeeEqualDataFunc _tmp1_;
503 gpointer _tmp1__target;
504 GDestroyNotify _tmp1__target_destroy_notify;
505 _tmp1_ = _____lambda31__gee_equal_data_func;
506 _tmp1__target = NULL;
507 _tmp1__target_destroy_notify = NULL;
508 *result_target = _tmp1__target;
509 *result_target_destroy_notify = _tmp1__target_destroy_notify;
510 result = _tmp1_;
511 return result;
512 } else {
513 if (g_type_is_a (t, GEE_TYPE_COMPARABLE)) {
514 GeeEqualDataFunc _tmp2_;
515 gpointer _tmp2__target;
516 GDestroyNotify _tmp2__target_destroy_notify;
517 _tmp2_ = ______lambda32__gee_equal_data_func;
518 _tmp2__target = NULL;
519 _tmp2__target_destroy_notify = NULL;
520 *result_target = _tmp2__target;
521 *result_target_destroy_notify = _tmp2__target_destroy_notify;
522 result = _tmp2_;
523 return result;
524 } else {
525 GeeEqualDataFunc _tmp3_;
526 gpointer _tmp3__target;
527 GDestroyNotify _tmp3__target_destroy_notify;
528 _tmp3_ = ______lambda33__gee_equal_data_func;
529 _tmp3__target = NULL;
530 _tmp3__target_destroy_notify = NULL;
531 *result_target = _tmp3__target;
532 *result_target_destroy_notify = _tmp3__target_destroy_notify;
533 result = _tmp3_;
534 return result;
535 }
536 }
537 }
538 }
539
540 /**
541 * Get a hash function for a given type.
542 *
543 * @param t the type which to get the hash function for.
544 *
545 * @return the hash function corresponding to the given type.
546 */
547 static guint
___lambda41_(gconstpointer a)548 ___lambda41_ (gconstpointer a)
549 {
550 guint result = 0U;
551 if (a == NULL) {
552 result = (guint) 0xdeadbeefLL;
553 return result;
554 } else {
555 GHashFunc _tmp0_;
556 _tmp0_ = g_str_hash;
557 result = _tmp0_ ((const gchar*) a);
558 return result;
559 }
560 }
561
562 static guint
____lambda41__gee_hash_data_func(gconstpointer v,gpointer self)563 ____lambda41__gee_hash_data_func (gconstpointer v,
564 gpointer self)
565 {
566 guint result;
567 result = ___lambda41_ (v);
568 return result;
569 }
570
571 static guint
____lambda42_(gconstpointer a)572 ____lambda42_ (gconstpointer a)
573 {
574 guint result = 0U;
575 if (a == NULL) {
576 result = (guint) 0xdeadbeefLL;
577 return result;
578 } else {
579 result = gee_hashable_hash (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_HASHABLE, GeeHashable));
580 return result;
581 }
582 }
583
584 static guint
_____lambda42__gee_hash_data_func(gconstpointer v,gpointer self)585 _____lambda42__gee_hash_data_func (gconstpointer v,
586 gpointer self)
587 {
588 guint result;
589 result = ____lambda42_ (v);
590 return result;
591 }
592
593 static guint
____lambda43_(gconstpointer a)594 ____lambda43_ (gconstpointer a)
595 {
596 GHashFunc _tmp0_;
597 guint result = 0U;
598 _tmp0_ = g_direct_hash;
599 result = _tmp0_ (a);
600 return result;
601 }
602
603 static guint
_____lambda43__gee_hash_data_func(gconstpointer v,gpointer self)604 _____lambda43__gee_hash_data_func (gconstpointer v,
605 gpointer self)
606 {
607 guint result;
608 result = ____lambda43_ (v);
609 return result;
610 }
611
612 GeeHashDataFunc
gee_functions_get_hash_func_for(GType t,gpointer * result_target,GDestroyNotify * result_target_destroy_notify)613 gee_functions_get_hash_func_for (GType t,
614 gpointer* result_target,
615 GDestroyNotify* result_target_destroy_notify)
616 {
617 GeeHashDataFunc result = NULL;
618 if (t == G_TYPE_STRING) {
619 GeeHashDataFunc _tmp0_;
620 gpointer _tmp0__target;
621 GDestroyNotify _tmp0__target_destroy_notify;
622 _tmp0_ = ____lambda41__gee_hash_data_func;
623 _tmp0__target = NULL;
624 _tmp0__target_destroy_notify = NULL;
625 *result_target = _tmp0__target;
626 *result_target_destroy_notify = _tmp0__target_destroy_notify;
627 result = _tmp0_;
628 return result;
629 } else {
630 if (g_type_is_a (t, GEE_TYPE_HASHABLE)) {
631 GeeHashDataFunc _tmp1_;
632 gpointer _tmp1__target;
633 GDestroyNotify _tmp1__target_destroy_notify;
634 _tmp1_ = _____lambda42__gee_hash_data_func;
635 _tmp1__target = NULL;
636 _tmp1__target_destroy_notify = NULL;
637 *result_target = _tmp1__target;
638 *result_target_destroy_notify = _tmp1__target_destroy_notify;
639 result = _tmp1_;
640 return result;
641 } else {
642 GeeHashDataFunc _tmp2_;
643 gpointer _tmp2__target;
644 GDestroyNotify _tmp2__target_destroy_notify;
645 _tmp2_ = _____lambda43__gee_hash_data_func;
646 _tmp2__target = NULL;
647 _tmp2__target_destroy_notify = NULL;
648 *result_target = _tmp2__target;
649 *result_target_destroy_notify = _tmp2__target_destroy_notify;
650 result = _tmp2_;
651 return result;
652 }
653 }
654 }
655
656 /**
657 * Get a comparator function for a given type.
658 *
659 * @param t the type which to get a comparator function for.
660 *
661 * @return the comparator function corresponding to the given type.
662 */
663 static gint
___lambda44_(gconstpointer a,gconstpointer b)664 ___lambda44_ (gconstpointer a,
665 gconstpointer b)
666 {
667 gint result = 0;
668 if (a == b) {
669 result = 0;
670 return result;
671 } else {
672 if (a == NULL) {
673 result = -1;
674 return result;
675 } else {
676 if (b == NULL) {
677 result = 1;
678 return result;
679 } else {
680 GCompareFunc _tmp0_;
681 _tmp0_ = ((GCompareFunc) g_strcmp0);
682 result = _tmp0_ ((const gchar*) a, (const gchar*) b);
683 return result;
684 }
685 }
686 }
687 }
688
689 static gint
____lambda44__gcompare_data_func(gconstpointer a,gconstpointer b,gpointer self)690 ____lambda44__gcompare_data_func (gconstpointer a,
691 gconstpointer b,
692 gpointer self)
693 {
694 gint result;
695 result = ___lambda44_ (a, b);
696 return result;
697 }
698
699 static gint
____lambda45_(gconstpointer a,gconstpointer b)700 ____lambda45_ (gconstpointer a,
701 gconstpointer b)
702 {
703 gint result = 0;
704 if (a == b) {
705 result = 0;
706 return result;
707 } else {
708 if (a == NULL) {
709 result = -1;
710 return result;
711 } else {
712 if (b == NULL) {
713 result = 1;
714 return result;
715 } else {
716 result = gee_comparable_compare_to (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_COMPARABLE, GeeComparable), G_TYPE_CHECK_INSTANCE_CAST (b, GEE_TYPE_COMPARABLE, GeeComparable));
717 return result;
718 }
719 }
720 }
721 }
722
723 static gint
_____lambda45__gcompare_data_func(gconstpointer a,gconstpointer b,gpointer self)724 _____lambda45__gcompare_data_func (gconstpointer a,
725 gconstpointer b,
726 gpointer self)
727 {
728 gint result;
729 result = ____lambda45_ (a, b);
730 return result;
731 }
732
733 static gint
____lambda46_(gconstpointer _val1,gconstpointer _val2)734 ____lambda46_ (gconstpointer _val1,
735 gconstpointer _val2)
736 {
737 glong val1 = 0L;
738 glong val2 = 0L;
739 gint result = 0;
740 val1 = (glong) _val1;
741 val2 = (glong) _val2;
742 if (val1 > val2) {
743 result = 1;
744 return result;
745 } else {
746 if (val1 == val2) {
747 result = 0;
748 return result;
749 } else {
750 result = -1;
751 return result;
752 }
753 }
754 }
755
756 static gint
_____lambda46__gcompare_data_func(gconstpointer a,gconstpointer b,gpointer self)757 _____lambda46__gcompare_data_func (gconstpointer a,
758 gconstpointer b,
759 gpointer self)
760 {
761 gint result;
762 result = ____lambda46_ (a, b);
763 return result;
764 }
765
766 GCompareDataFunc
gee_functions_get_compare_func_for(GType t,gpointer * result_target,GDestroyNotify * result_target_destroy_notify)767 gee_functions_get_compare_func_for (GType t,
768 gpointer* result_target,
769 GDestroyNotify* result_target_destroy_notify)
770 {
771 GCompareDataFunc result = NULL;
772 if (t == G_TYPE_STRING) {
773 GCompareDataFunc _tmp0_;
774 gpointer _tmp0__target;
775 GDestroyNotify _tmp0__target_destroy_notify;
776 _tmp0_ = ____lambda44__gcompare_data_func;
777 _tmp0__target = NULL;
778 _tmp0__target_destroy_notify = NULL;
779 *result_target = _tmp0__target;
780 *result_target_destroy_notify = _tmp0__target_destroy_notify;
781 result = _tmp0_;
782 return result;
783 } else {
784 if (g_type_is_a (t, GEE_TYPE_COMPARABLE)) {
785 GCompareDataFunc _tmp1_;
786 gpointer _tmp1__target;
787 GDestroyNotify _tmp1__target_destroy_notify;
788 _tmp1_ = _____lambda45__gcompare_data_func;
789 _tmp1__target = NULL;
790 _tmp1__target_destroy_notify = NULL;
791 *result_target = _tmp1__target;
792 *result_target_destroy_notify = _tmp1__target_destroy_notify;
793 result = _tmp1_;
794 return result;
795 } else {
796 GCompareDataFunc _tmp2_;
797 gpointer _tmp2__target;
798 GDestroyNotify _tmp2__target_destroy_notify;
799 _tmp2_ = _____lambda46__gcompare_data_func;
800 _tmp2__target = NULL;
801 _tmp2__target_destroy_notify = NULL;
802 *result_target = _tmp2__target;
803 *result_target_destroy_notify = _tmp2__target_destroy_notify;
804 result = _tmp2_;
805 return result;
806 }
807 }
808 }
809
810 static inline gpointer
gee_functions_equal_data_func_closure_get_instance_private(GeeFunctionsEqualDataFuncClosure * self)811 gee_functions_equal_data_func_closure_get_instance_private (GeeFunctionsEqualDataFuncClosure* self)
812 {
813 return G_STRUCT_MEMBER_P (self, GeeFunctionsEqualDataFuncClosure_private_offset);
814 }
815
816 G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure*
gee_functions_equal_data_func_closure_construct(GType object_type,GType g_type,GBoxedCopyFunc g_dup_func,GDestroyNotify g_destroy_func,GeeEqualDataFunc func,gpointer func_target,GDestroyNotify func_target_destroy_notify)817 gee_functions_equal_data_func_closure_construct (GType object_type,
818 GType g_type,
819 GBoxedCopyFunc g_dup_func,
820 GDestroyNotify g_destroy_func,
821 GeeEqualDataFunc func,
822 gpointer func_target,
823 GDestroyNotify func_target_destroy_notify)
824 {
825 GeeFunctionsEqualDataFuncClosure* self = NULL;
826 GeeEqualDataFunc _tmp0_;
827 gpointer _tmp0__target;
828 GDestroyNotify _tmp0__target_destroy_notify;
829 self = (GeeFunctionsEqualDataFuncClosure*) g_type_create_instance (object_type);
830 self->priv->g_type = g_type;
831 self->priv->g_dup_func = g_dup_func;
832 self->priv->g_destroy_func = g_destroy_func;
833 _tmp0_ = func;
834 _tmp0__target = func_target;
835 _tmp0__target_destroy_notify = func_target_destroy_notify;
836 func = NULL;
837 func_target = NULL;
838 func_target_destroy_notify = NULL;
839 (self->func_target_destroy_notify == NULL) ? NULL : (self->func_target_destroy_notify (self->func_target), NULL);
840 self->func = NULL;
841 self->func_target = NULL;
842 self->func_target_destroy_notify = NULL;
843 self->func = _tmp0_;
844 self->func_target = _tmp0__target;
845 self->func_target_destroy_notify = _tmp0__target_destroy_notify;
846 (func_target_destroy_notify == NULL) ? NULL : (func_target_destroy_notify (func_target), NULL);
847 func = NULL;
848 func_target = NULL;
849 func_target_destroy_notify = NULL;
850 return self;
851 }
852
853 G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure*
gee_functions_equal_data_func_closure_new(GType g_type,GBoxedCopyFunc g_dup_func,GDestroyNotify g_destroy_func,GeeEqualDataFunc func,gpointer func_target,GDestroyNotify func_target_destroy_notify)854 gee_functions_equal_data_func_closure_new (GType g_type,
855 GBoxedCopyFunc g_dup_func,
856 GDestroyNotify g_destroy_func,
857 GeeEqualDataFunc func,
858 gpointer func_target,
859 GDestroyNotify func_target_destroy_notify)
860 {
861 return gee_functions_equal_data_func_closure_construct (GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE, g_type, g_dup_func, g_destroy_func, func, func_target, func_target_destroy_notify);
862 }
863
864 static gboolean
__lambda29_(GeeFunctionsEqualDataFuncClosure * self,gconstpointer a,gconstpointer b)865 __lambda29_ (GeeFunctionsEqualDataFuncClosure* self,
866 gconstpointer a,
867 gconstpointer b)
868 {
869 GeeEqualDataFunc _tmp0_;
870 gpointer _tmp0__target;
871 gboolean result = FALSE;
872 _tmp0_ = self->func;
873 _tmp0__target = self->func_target;
874 result = _tmp0_ (a, b, _tmp0__target);
875 return result;
876 }
877
878 static gboolean
___lambda29__gee_equal_data_func(gconstpointer a,gconstpointer b,gpointer self)879 ___lambda29__gee_equal_data_func (gconstpointer a,
880 gconstpointer b,
881 gpointer self)
882 {
883 gboolean result;
884 result = __lambda29_ ((GeeFunctionsEqualDataFuncClosure*) self, a, b);
885 return result;
886 }
887
888 G_GNUC_INTERNAL GeeEqualDataFunc
gee_functions_equal_data_func_closure_clone_func(GeeFunctionsEqualDataFuncClosure * self,gpointer * result_target,GDestroyNotify * result_target_destroy_notify)889 gee_functions_equal_data_func_closure_clone_func (GeeFunctionsEqualDataFuncClosure* self,
890 gpointer* result_target,
891 GDestroyNotify* result_target_destroy_notify)
892 {
893 GeeEqualDataFunc _tmp0_;
894 gpointer _tmp0__target;
895 GDestroyNotify _tmp0__target_destroy_notify;
896 GeeEqualDataFunc result = NULL;
897 g_return_val_if_fail (self != NULL, NULL);
898 _tmp0_ = ___lambda29__gee_equal_data_func;
899 _tmp0__target = gee_functions_equal_data_func_closure_ref (self);
900 _tmp0__target_destroy_notify = gee_functions_equal_data_func_closure_unref;
901 *result_target = _tmp0__target;
902 *result_target_destroy_notify = _tmp0__target_destroy_notify;
903 result = _tmp0_;
904 return result;
905 }
906
907 static void
gee_functions_value_equal_data_func_closure_init(GValue * value)908 gee_functions_value_equal_data_func_closure_init (GValue* value)
909 {
910 value->data[0].v_pointer = NULL;
911 }
912
913 static void
gee_functions_value_equal_data_func_closure_free_value(GValue * value)914 gee_functions_value_equal_data_func_closure_free_value (GValue* value)
915 {
916 if (value->data[0].v_pointer) {
917 gee_functions_equal_data_func_closure_unref (value->data[0].v_pointer);
918 }
919 }
920
921 static void
gee_functions_value_equal_data_func_closure_copy_value(const GValue * src_value,GValue * dest_value)922 gee_functions_value_equal_data_func_closure_copy_value (const GValue* src_value,
923 GValue* dest_value)
924 {
925 if (src_value->data[0].v_pointer) {
926 dest_value->data[0].v_pointer = gee_functions_equal_data_func_closure_ref (src_value->data[0].v_pointer);
927 } else {
928 dest_value->data[0].v_pointer = NULL;
929 }
930 }
931
932 static gpointer
gee_functions_value_equal_data_func_closure_peek_pointer(const GValue * value)933 gee_functions_value_equal_data_func_closure_peek_pointer (const GValue* value)
934 {
935 return value->data[0].v_pointer;
936 }
937
938 static gchar*
gee_functions_value_equal_data_func_closure_collect_value(GValue * value,guint n_collect_values,GTypeCValue * collect_values,guint collect_flags)939 gee_functions_value_equal_data_func_closure_collect_value (GValue* value,
940 guint n_collect_values,
941 GTypeCValue* collect_values,
942 guint collect_flags)
943 {
944 if (collect_values[0].v_pointer) {
945 GeeFunctionsEqualDataFuncClosure * object;
946 object = collect_values[0].v_pointer;
947 if (object->parent_instance.g_class == NULL) {
948 return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
949 } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
950 return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
951 }
952 value->data[0].v_pointer = gee_functions_equal_data_func_closure_ref (object);
953 } else {
954 value->data[0].v_pointer = NULL;
955 }
956 return NULL;
957 }
958
959 static gchar*
gee_functions_value_equal_data_func_closure_lcopy_value(const GValue * value,guint n_collect_values,GTypeCValue * collect_values,guint collect_flags)960 gee_functions_value_equal_data_func_closure_lcopy_value (const GValue* value,
961 guint n_collect_values,
962 GTypeCValue* collect_values,
963 guint collect_flags)
964 {
965 GeeFunctionsEqualDataFuncClosure ** object_p;
966 object_p = collect_values[0].v_pointer;
967 if (!object_p) {
968 return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
969 }
970 if (!value->data[0].v_pointer) {
971 *object_p = NULL;
972 } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
973 *object_p = value->data[0].v_pointer;
974 } else {
975 *object_p = gee_functions_equal_data_func_closure_ref (value->data[0].v_pointer);
976 }
977 return NULL;
978 }
979
980 G_GNUC_INTERNAL GParamSpec*
gee_functions_param_spec_equal_data_func_closure(const gchar * name,const gchar * nick,const gchar * blurb,GType object_type,GParamFlags flags)981 gee_functions_param_spec_equal_data_func_closure (const gchar* name,
982 const gchar* nick,
983 const gchar* blurb,
984 GType object_type,
985 GParamFlags flags)
986 {
987 GeeFunctionsParamSpecEqualDataFuncClosure* spec;
988 g_return_val_if_fail (g_type_is_a (object_type, GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE), NULL);
989 spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
990 G_PARAM_SPEC (spec)->value_type = object_type;
991 return G_PARAM_SPEC (spec);
992 }
993
994 G_GNUC_INTERNAL gpointer
gee_functions_value_get_equal_data_func_closure(const GValue * value)995 gee_functions_value_get_equal_data_func_closure (const GValue* value)
996 {
997 g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE), NULL);
998 return value->data[0].v_pointer;
999 }
1000
1001 G_GNUC_INTERNAL void
gee_functions_value_set_equal_data_func_closure(GValue * value,gpointer v_object)1002 gee_functions_value_set_equal_data_func_closure (GValue* value,
1003 gpointer v_object)
1004 {
1005 GeeFunctionsEqualDataFuncClosure * old;
1006 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE));
1007 old = value->data[0].v_pointer;
1008 if (v_object) {
1009 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE));
1010 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
1011 value->data[0].v_pointer = v_object;
1012 gee_functions_equal_data_func_closure_ref (value->data[0].v_pointer);
1013 } else {
1014 value->data[0].v_pointer = NULL;
1015 }
1016 if (old) {
1017 gee_functions_equal_data_func_closure_unref (old);
1018 }
1019 }
1020
1021 G_GNUC_INTERNAL void
gee_functions_value_take_equal_data_func_closure(GValue * value,gpointer v_object)1022 gee_functions_value_take_equal_data_func_closure (GValue* value,
1023 gpointer v_object)
1024 {
1025 GeeFunctionsEqualDataFuncClosure * old;
1026 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE));
1027 old = value->data[0].v_pointer;
1028 if (v_object) {
1029 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE));
1030 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
1031 value->data[0].v_pointer = v_object;
1032 } else {
1033 value->data[0].v_pointer = NULL;
1034 }
1035 if (old) {
1036 gee_functions_equal_data_func_closure_unref (old);
1037 }
1038 }
1039
1040 static void
gee_functions_equal_data_func_closure_class_init(GeeFunctionsEqualDataFuncClosureClass * klass,gpointer klass_data)1041 gee_functions_equal_data_func_closure_class_init (GeeFunctionsEqualDataFuncClosureClass * klass,
1042 gpointer klass_data)
1043 {
1044 gee_functions_equal_data_func_closure_parent_class = g_type_class_peek_parent (klass);
1045 ((GeeFunctionsEqualDataFuncClosureClass *) klass)->finalize = gee_functions_equal_data_func_closure_finalize;
1046 g_type_class_adjust_private_offset (klass, &GeeFunctionsEqualDataFuncClosure_private_offset);
1047 }
1048
1049 static void
gee_functions_equal_data_func_closure_instance_init(GeeFunctionsEqualDataFuncClosure * self,gpointer klass)1050 gee_functions_equal_data_func_closure_instance_init (GeeFunctionsEqualDataFuncClosure * self,
1051 gpointer klass)
1052 {
1053 self->priv = gee_functions_equal_data_func_closure_get_instance_private (self);
1054 self->ref_count = 1;
1055 }
1056
1057 static void
gee_functions_equal_data_func_closure_finalize(GeeFunctionsEqualDataFuncClosure * obj)1058 gee_functions_equal_data_func_closure_finalize (GeeFunctionsEqualDataFuncClosure * obj)
1059 {
1060 GeeFunctionsEqualDataFuncClosure * self;
1061 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE, GeeFunctionsEqualDataFuncClosure);
1062 g_signal_handlers_destroy (self);
1063 (self->func_target_destroy_notify == NULL) ? NULL : (self->func_target_destroy_notify (self->func_target), NULL);
1064 self->func = NULL;
1065 self->func_target = NULL;
1066 self->func_target_destroy_notify = NULL;
1067 }
1068
1069 G_GNUC_INTERNAL GType
gee_functions_equal_data_func_closure_get_type(void)1070 gee_functions_equal_data_func_closure_get_type (void)
1071 {
1072 static volatile gsize gee_functions_equal_data_func_closure_type_id__volatile = 0;
1073 if (g_once_init_enter (&gee_functions_equal_data_func_closure_type_id__volatile)) {
1074 static const GTypeValueTable g_define_type_value_table = { gee_functions_value_equal_data_func_closure_init, gee_functions_value_equal_data_func_closure_free_value, gee_functions_value_equal_data_func_closure_copy_value, gee_functions_value_equal_data_func_closure_peek_pointer, "p", gee_functions_value_equal_data_func_closure_collect_value, "p", gee_functions_value_equal_data_func_closure_lcopy_value };
1075 static const GTypeInfo g_define_type_info = { sizeof (GeeFunctionsEqualDataFuncClosureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_functions_equal_data_func_closure_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeFunctionsEqualDataFuncClosure), 0, (GInstanceInitFunc) gee_functions_equal_data_func_closure_instance_init, &g_define_type_value_table };
1076 static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
1077 GType gee_functions_equal_data_func_closure_type_id;
1078 gee_functions_equal_data_func_closure_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeFunctionsEqualDataFuncClosure", &g_define_type_info, &g_define_type_fundamental_info, 0);
1079 GeeFunctionsEqualDataFuncClosure_private_offset = g_type_add_instance_private (gee_functions_equal_data_func_closure_type_id, sizeof (GeeFunctionsEqualDataFuncClosurePrivate));
1080 g_once_init_leave (&gee_functions_equal_data_func_closure_type_id__volatile, gee_functions_equal_data_func_closure_type_id);
1081 }
1082 return gee_functions_equal_data_func_closure_type_id__volatile;
1083 }
1084
1085 G_GNUC_INTERNAL gpointer
gee_functions_equal_data_func_closure_ref(gpointer instance)1086 gee_functions_equal_data_func_closure_ref (gpointer instance)
1087 {
1088 GeeFunctionsEqualDataFuncClosure * self;
1089 self = instance;
1090 g_atomic_int_inc (&self->ref_count);
1091 return instance;
1092 }
1093
1094 G_GNUC_INTERNAL void
gee_functions_equal_data_func_closure_unref(gpointer instance)1095 gee_functions_equal_data_func_closure_unref (gpointer instance)
1096 {
1097 GeeFunctionsEqualDataFuncClosure * self;
1098 self = instance;
1099 if (g_atomic_int_dec_and_test (&self->ref_count)) {
1100 GEE_FUNCTIONS_EQUAL_DATA_FUNC_CLOSURE_GET_CLASS (self)->finalize (self);
1101 g_type_free_instance ((GTypeInstance *) self);
1102 }
1103 }
1104
1105 static inline gpointer
gee_functions_hash_data_func_closure_get_instance_private(GeeFunctionsHashDataFuncClosure * self)1106 gee_functions_hash_data_func_closure_get_instance_private (GeeFunctionsHashDataFuncClosure* self)
1107 {
1108 return G_STRUCT_MEMBER_P (self, GeeFunctionsHashDataFuncClosure_private_offset);
1109 }
1110
1111 G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure*
gee_functions_hash_data_func_closure_construct(GType object_type,GType g_type,GBoxedCopyFunc g_dup_func,GDestroyNotify g_destroy_func,GeeHashDataFunc func,gpointer func_target,GDestroyNotify func_target_destroy_notify)1112 gee_functions_hash_data_func_closure_construct (GType object_type,
1113 GType g_type,
1114 GBoxedCopyFunc g_dup_func,
1115 GDestroyNotify g_destroy_func,
1116 GeeHashDataFunc func,
1117 gpointer func_target,
1118 GDestroyNotify func_target_destroy_notify)
1119 {
1120 GeeFunctionsHashDataFuncClosure* self = NULL;
1121 GeeHashDataFunc _tmp0_;
1122 gpointer _tmp0__target;
1123 GDestroyNotify _tmp0__target_destroy_notify;
1124 self = (GeeFunctionsHashDataFuncClosure*) g_type_create_instance (object_type);
1125 self->priv->g_type = g_type;
1126 self->priv->g_dup_func = g_dup_func;
1127 self->priv->g_destroy_func = g_destroy_func;
1128 _tmp0_ = func;
1129 _tmp0__target = func_target;
1130 _tmp0__target_destroy_notify = func_target_destroy_notify;
1131 func = NULL;
1132 func_target = NULL;
1133 func_target_destroy_notify = NULL;
1134 (self->func_target_destroy_notify == NULL) ? NULL : (self->func_target_destroy_notify (self->func_target), NULL);
1135 self->func = NULL;
1136 self->func_target = NULL;
1137 self->func_target_destroy_notify = NULL;
1138 self->func = _tmp0_;
1139 self->func_target = _tmp0__target;
1140 self->func_target_destroy_notify = _tmp0__target_destroy_notify;
1141 (func_target_destroy_notify == NULL) ? NULL : (func_target_destroy_notify (func_target), NULL);
1142 func = NULL;
1143 func_target = NULL;
1144 func_target_destroy_notify = NULL;
1145 return self;
1146 }
1147
1148 G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure*
gee_functions_hash_data_func_closure_new(GType g_type,GBoxedCopyFunc g_dup_func,GDestroyNotify g_destroy_func,GeeHashDataFunc func,gpointer func_target,GDestroyNotify func_target_destroy_notify)1149 gee_functions_hash_data_func_closure_new (GType g_type,
1150 GBoxedCopyFunc g_dup_func,
1151 GDestroyNotify g_destroy_func,
1152 GeeHashDataFunc func,
1153 gpointer func_target,
1154 GDestroyNotify func_target_destroy_notify)
1155 {
1156 return gee_functions_hash_data_func_closure_construct (GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE, g_type, g_dup_func, g_destroy_func, func, func_target, func_target_destroy_notify);
1157 }
1158
1159 static guint
__lambda40_(GeeFunctionsHashDataFuncClosure * self,gconstpointer a)1160 __lambda40_ (GeeFunctionsHashDataFuncClosure* self,
1161 gconstpointer a)
1162 {
1163 GeeHashDataFunc _tmp0_;
1164 gpointer _tmp0__target;
1165 guint result = 0U;
1166 _tmp0_ = self->func;
1167 _tmp0__target = self->func_target;
1168 result = _tmp0_ (a, _tmp0__target);
1169 return result;
1170 }
1171
1172 static guint
___lambda40__gee_hash_data_func(gconstpointer v,gpointer self)1173 ___lambda40__gee_hash_data_func (gconstpointer v,
1174 gpointer self)
1175 {
1176 guint result;
1177 result = __lambda40_ ((GeeFunctionsHashDataFuncClosure*) self, v);
1178 return result;
1179 }
1180
1181 G_GNUC_INTERNAL GeeHashDataFunc
gee_functions_hash_data_func_closure_clone_func(GeeFunctionsHashDataFuncClosure * self,gpointer * result_target,GDestroyNotify * result_target_destroy_notify)1182 gee_functions_hash_data_func_closure_clone_func (GeeFunctionsHashDataFuncClosure* self,
1183 gpointer* result_target,
1184 GDestroyNotify* result_target_destroy_notify)
1185 {
1186 GeeHashDataFunc _tmp0_;
1187 gpointer _tmp0__target;
1188 GDestroyNotify _tmp0__target_destroy_notify;
1189 GeeHashDataFunc result = NULL;
1190 g_return_val_if_fail (self != NULL, NULL);
1191 _tmp0_ = ___lambda40__gee_hash_data_func;
1192 _tmp0__target = gee_functions_hash_data_func_closure_ref (self);
1193 _tmp0__target_destroy_notify = gee_functions_hash_data_func_closure_unref;
1194 *result_target = _tmp0__target;
1195 *result_target_destroy_notify = _tmp0__target_destroy_notify;
1196 result = _tmp0_;
1197 return result;
1198 }
1199
1200 static void
gee_functions_value_hash_data_func_closure_init(GValue * value)1201 gee_functions_value_hash_data_func_closure_init (GValue* value)
1202 {
1203 value->data[0].v_pointer = NULL;
1204 }
1205
1206 static void
gee_functions_value_hash_data_func_closure_free_value(GValue * value)1207 gee_functions_value_hash_data_func_closure_free_value (GValue* value)
1208 {
1209 if (value->data[0].v_pointer) {
1210 gee_functions_hash_data_func_closure_unref (value->data[0].v_pointer);
1211 }
1212 }
1213
1214 static void
gee_functions_value_hash_data_func_closure_copy_value(const GValue * src_value,GValue * dest_value)1215 gee_functions_value_hash_data_func_closure_copy_value (const GValue* src_value,
1216 GValue* dest_value)
1217 {
1218 if (src_value->data[0].v_pointer) {
1219 dest_value->data[0].v_pointer = gee_functions_hash_data_func_closure_ref (src_value->data[0].v_pointer);
1220 } else {
1221 dest_value->data[0].v_pointer = NULL;
1222 }
1223 }
1224
1225 static gpointer
gee_functions_value_hash_data_func_closure_peek_pointer(const GValue * value)1226 gee_functions_value_hash_data_func_closure_peek_pointer (const GValue* value)
1227 {
1228 return value->data[0].v_pointer;
1229 }
1230
1231 static gchar*
gee_functions_value_hash_data_func_closure_collect_value(GValue * value,guint n_collect_values,GTypeCValue * collect_values,guint collect_flags)1232 gee_functions_value_hash_data_func_closure_collect_value (GValue* value,
1233 guint n_collect_values,
1234 GTypeCValue* collect_values,
1235 guint collect_flags)
1236 {
1237 if (collect_values[0].v_pointer) {
1238 GeeFunctionsHashDataFuncClosure * object;
1239 object = collect_values[0].v_pointer;
1240 if (object->parent_instance.g_class == NULL) {
1241 return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
1242 } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
1243 return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
1244 }
1245 value->data[0].v_pointer = gee_functions_hash_data_func_closure_ref (object);
1246 } else {
1247 value->data[0].v_pointer = NULL;
1248 }
1249 return NULL;
1250 }
1251
1252 static gchar*
gee_functions_value_hash_data_func_closure_lcopy_value(const GValue * value,guint n_collect_values,GTypeCValue * collect_values,guint collect_flags)1253 gee_functions_value_hash_data_func_closure_lcopy_value (const GValue* value,
1254 guint n_collect_values,
1255 GTypeCValue* collect_values,
1256 guint collect_flags)
1257 {
1258 GeeFunctionsHashDataFuncClosure ** object_p;
1259 object_p = collect_values[0].v_pointer;
1260 if (!object_p) {
1261 return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
1262 }
1263 if (!value->data[0].v_pointer) {
1264 *object_p = NULL;
1265 } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
1266 *object_p = value->data[0].v_pointer;
1267 } else {
1268 *object_p = gee_functions_hash_data_func_closure_ref (value->data[0].v_pointer);
1269 }
1270 return NULL;
1271 }
1272
1273 G_GNUC_INTERNAL GParamSpec*
gee_functions_param_spec_hash_data_func_closure(const gchar * name,const gchar * nick,const gchar * blurb,GType object_type,GParamFlags flags)1274 gee_functions_param_spec_hash_data_func_closure (const gchar* name,
1275 const gchar* nick,
1276 const gchar* blurb,
1277 GType object_type,
1278 GParamFlags flags)
1279 {
1280 GeeFunctionsParamSpecHashDataFuncClosure* spec;
1281 g_return_val_if_fail (g_type_is_a (object_type, GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE), NULL);
1282 spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
1283 G_PARAM_SPEC (spec)->value_type = object_type;
1284 return G_PARAM_SPEC (spec);
1285 }
1286
1287 G_GNUC_INTERNAL gpointer
gee_functions_value_get_hash_data_func_closure(const GValue * value)1288 gee_functions_value_get_hash_data_func_closure (const GValue* value)
1289 {
1290 g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE), NULL);
1291 return value->data[0].v_pointer;
1292 }
1293
1294 G_GNUC_INTERNAL void
gee_functions_value_set_hash_data_func_closure(GValue * value,gpointer v_object)1295 gee_functions_value_set_hash_data_func_closure (GValue* value,
1296 gpointer v_object)
1297 {
1298 GeeFunctionsHashDataFuncClosure * old;
1299 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE));
1300 old = value->data[0].v_pointer;
1301 if (v_object) {
1302 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE));
1303 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
1304 value->data[0].v_pointer = v_object;
1305 gee_functions_hash_data_func_closure_ref (value->data[0].v_pointer);
1306 } else {
1307 value->data[0].v_pointer = NULL;
1308 }
1309 if (old) {
1310 gee_functions_hash_data_func_closure_unref (old);
1311 }
1312 }
1313
1314 G_GNUC_INTERNAL void
gee_functions_value_take_hash_data_func_closure(GValue * value,gpointer v_object)1315 gee_functions_value_take_hash_data_func_closure (GValue* value,
1316 gpointer v_object)
1317 {
1318 GeeFunctionsHashDataFuncClosure * old;
1319 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE));
1320 old = value->data[0].v_pointer;
1321 if (v_object) {
1322 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE));
1323 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
1324 value->data[0].v_pointer = v_object;
1325 } else {
1326 value->data[0].v_pointer = NULL;
1327 }
1328 if (old) {
1329 gee_functions_hash_data_func_closure_unref (old);
1330 }
1331 }
1332
1333 static void
gee_functions_hash_data_func_closure_class_init(GeeFunctionsHashDataFuncClosureClass * klass,gpointer klass_data)1334 gee_functions_hash_data_func_closure_class_init (GeeFunctionsHashDataFuncClosureClass * klass,
1335 gpointer klass_data)
1336 {
1337 gee_functions_hash_data_func_closure_parent_class = g_type_class_peek_parent (klass);
1338 ((GeeFunctionsHashDataFuncClosureClass *) klass)->finalize = gee_functions_hash_data_func_closure_finalize;
1339 g_type_class_adjust_private_offset (klass, &GeeFunctionsHashDataFuncClosure_private_offset);
1340 }
1341
1342 static void
gee_functions_hash_data_func_closure_instance_init(GeeFunctionsHashDataFuncClosure * self,gpointer klass)1343 gee_functions_hash_data_func_closure_instance_init (GeeFunctionsHashDataFuncClosure * self,
1344 gpointer klass)
1345 {
1346 self->priv = gee_functions_hash_data_func_closure_get_instance_private (self);
1347 self->ref_count = 1;
1348 }
1349
1350 static void
gee_functions_hash_data_func_closure_finalize(GeeFunctionsHashDataFuncClosure * obj)1351 gee_functions_hash_data_func_closure_finalize (GeeFunctionsHashDataFuncClosure * obj)
1352 {
1353 GeeFunctionsHashDataFuncClosure * self;
1354 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE, GeeFunctionsHashDataFuncClosure);
1355 g_signal_handlers_destroy (self);
1356 (self->func_target_destroy_notify == NULL) ? NULL : (self->func_target_destroy_notify (self->func_target), NULL);
1357 self->func = NULL;
1358 self->func_target = NULL;
1359 self->func_target_destroy_notify = NULL;
1360 }
1361
1362 G_GNUC_INTERNAL GType
gee_functions_hash_data_func_closure_get_type(void)1363 gee_functions_hash_data_func_closure_get_type (void)
1364 {
1365 static volatile gsize gee_functions_hash_data_func_closure_type_id__volatile = 0;
1366 if (g_once_init_enter (&gee_functions_hash_data_func_closure_type_id__volatile)) {
1367 static const GTypeValueTable g_define_type_value_table = { gee_functions_value_hash_data_func_closure_init, gee_functions_value_hash_data_func_closure_free_value, gee_functions_value_hash_data_func_closure_copy_value, gee_functions_value_hash_data_func_closure_peek_pointer, "p", gee_functions_value_hash_data_func_closure_collect_value, "p", gee_functions_value_hash_data_func_closure_lcopy_value };
1368 static const GTypeInfo g_define_type_info = { sizeof (GeeFunctionsHashDataFuncClosureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_functions_hash_data_func_closure_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeFunctionsHashDataFuncClosure), 0, (GInstanceInitFunc) gee_functions_hash_data_func_closure_instance_init, &g_define_type_value_table };
1369 static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
1370 GType gee_functions_hash_data_func_closure_type_id;
1371 gee_functions_hash_data_func_closure_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeFunctionsHashDataFuncClosure", &g_define_type_info, &g_define_type_fundamental_info, 0);
1372 GeeFunctionsHashDataFuncClosure_private_offset = g_type_add_instance_private (gee_functions_hash_data_func_closure_type_id, sizeof (GeeFunctionsHashDataFuncClosurePrivate));
1373 g_once_init_leave (&gee_functions_hash_data_func_closure_type_id__volatile, gee_functions_hash_data_func_closure_type_id);
1374 }
1375 return gee_functions_hash_data_func_closure_type_id__volatile;
1376 }
1377
1378 G_GNUC_INTERNAL gpointer
gee_functions_hash_data_func_closure_ref(gpointer instance)1379 gee_functions_hash_data_func_closure_ref (gpointer instance)
1380 {
1381 GeeFunctionsHashDataFuncClosure * self;
1382 self = instance;
1383 g_atomic_int_inc (&self->ref_count);
1384 return instance;
1385 }
1386
1387 G_GNUC_INTERNAL void
gee_functions_hash_data_func_closure_unref(gpointer instance)1388 gee_functions_hash_data_func_closure_unref (gpointer instance)
1389 {
1390 GeeFunctionsHashDataFuncClosure * self;
1391 self = instance;
1392 if (g_atomic_int_dec_and_test (&self->ref_count)) {
1393 GEE_FUNCTIONS_HASH_DATA_FUNC_CLOSURE_GET_CLASS (self)->finalize (self);
1394 g_type_free_instance ((GTypeInstance *) self);
1395 }
1396 }
1397
1398 static inline gpointer
gee_functions_compare_data_func_closure_get_instance_private(GeeFunctionsCompareDataFuncClosure * self)1399 gee_functions_compare_data_func_closure_get_instance_private (GeeFunctionsCompareDataFuncClosure* self)
1400 {
1401 return G_STRUCT_MEMBER_P (self, GeeFunctionsCompareDataFuncClosure_private_offset);
1402 }
1403
1404 G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure*
gee_functions_compare_data_func_closure_construct(GType object_type,GType g_type,GBoxedCopyFunc g_dup_func,GDestroyNotify g_destroy_func,GCompareDataFunc func,gpointer func_target,GDestroyNotify func_target_destroy_notify)1405 gee_functions_compare_data_func_closure_construct (GType object_type,
1406 GType g_type,
1407 GBoxedCopyFunc g_dup_func,
1408 GDestroyNotify g_destroy_func,
1409 GCompareDataFunc func,
1410 gpointer func_target,
1411 GDestroyNotify func_target_destroy_notify)
1412 {
1413 GeeFunctionsCompareDataFuncClosure* self = NULL;
1414 GCompareDataFunc _tmp0_;
1415 gpointer _tmp0__target;
1416 GDestroyNotify _tmp0__target_destroy_notify;
1417 self = (GeeFunctionsCompareDataFuncClosure*) g_type_create_instance (object_type);
1418 self->priv->g_type = g_type;
1419 self->priv->g_dup_func = g_dup_func;
1420 self->priv->g_destroy_func = g_destroy_func;
1421 _tmp0_ = func;
1422 _tmp0__target = func_target;
1423 _tmp0__target_destroy_notify = func_target_destroy_notify;
1424 func = NULL;
1425 func_target = NULL;
1426 func_target_destroy_notify = NULL;
1427 (self->func_target_destroy_notify == NULL) ? NULL : (self->func_target_destroy_notify (self->func_target), NULL);
1428 self->func = NULL;
1429 self->func_target = NULL;
1430 self->func_target_destroy_notify = NULL;
1431 self->func = _tmp0_;
1432 self->func_target = _tmp0__target;
1433 self->func_target_destroy_notify = _tmp0__target_destroy_notify;
1434 (func_target_destroy_notify == NULL) ? NULL : (func_target_destroy_notify (func_target), NULL);
1435 func = NULL;
1436 func_target = NULL;
1437 func_target_destroy_notify = NULL;
1438 return self;
1439 }
1440
1441 G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure*
gee_functions_compare_data_func_closure_new(GType g_type,GBoxedCopyFunc g_dup_func,GDestroyNotify g_destroy_func,GCompareDataFunc func,gpointer func_target,GDestroyNotify func_target_destroy_notify)1442 gee_functions_compare_data_func_closure_new (GType g_type,
1443 GBoxedCopyFunc g_dup_func,
1444 GDestroyNotify g_destroy_func,
1445 GCompareDataFunc func,
1446 gpointer func_target,
1447 GDestroyNotify func_target_destroy_notify)
1448 {
1449 return gee_functions_compare_data_func_closure_construct (GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE, g_type, g_dup_func, g_destroy_func, func, func_target, func_target_destroy_notify);
1450 }
1451
1452 static gint
__lambda49_(GeeFunctionsCompareDataFuncClosure * self,gconstpointer a,gconstpointer b)1453 __lambda49_ (GeeFunctionsCompareDataFuncClosure* self,
1454 gconstpointer a,
1455 gconstpointer b)
1456 {
1457 GCompareDataFunc _tmp0_;
1458 gpointer _tmp0__target;
1459 gint result = 0;
1460 _tmp0_ = self->func;
1461 _tmp0__target = self->func_target;
1462 result = _tmp0_ (a, b, _tmp0__target);
1463 return result;
1464 }
1465
1466 static gint
___lambda49__gcompare_data_func(gconstpointer a,gconstpointer b,gpointer self)1467 ___lambda49__gcompare_data_func (gconstpointer a,
1468 gconstpointer b,
1469 gpointer self)
1470 {
1471 gint result;
1472 result = __lambda49_ ((GeeFunctionsCompareDataFuncClosure*) self, a, b);
1473 return result;
1474 }
1475
1476 G_GNUC_INTERNAL GCompareDataFunc
gee_functions_compare_data_func_closure_clone_func(GeeFunctionsCompareDataFuncClosure * self,gpointer * result_target,GDestroyNotify * result_target_destroy_notify)1477 gee_functions_compare_data_func_closure_clone_func (GeeFunctionsCompareDataFuncClosure* self,
1478 gpointer* result_target,
1479 GDestroyNotify* result_target_destroy_notify)
1480 {
1481 GCompareDataFunc _tmp0_;
1482 gpointer _tmp0__target;
1483 GDestroyNotify _tmp0__target_destroy_notify;
1484 GCompareDataFunc result = NULL;
1485 g_return_val_if_fail (self != NULL, NULL);
1486 _tmp0_ = ___lambda49__gcompare_data_func;
1487 _tmp0__target = gee_functions_compare_data_func_closure_ref (self);
1488 _tmp0__target_destroy_notify = gee_functions_compare_data_func_closure_unref;
1489 *result_target = _tmp0__target;
1490 *result_target_destroy_notify = _tmp0__target_destroy_notify;
1491 result = _tmp0_;
1492 return result;
1493 }
1494
1495 static void
gee_functions_value_compare_data_func_closure_init(GValue * value)1496 gee_functions_value_compare_data_func_closure_init (GValue* value)
1497 {
1498 value->data[0].v_pointer = NULL;
1499 }
1500
1501 static void
gee_functions_value_compare_data_func_closure_free_value(GValue * value)1502 gee_functions_value_compare_data_func_closure_free_value (GValue* value)
1503 {
1504 if (value->data[0].v_pointer) {
1505 gee_functions_compare_data_func_closure_unref (value->data[0].v_pointer);
1506 }
1507 }
1508
1509 static void
gee_functions_value_compare_data_func_closure_copy_value(const GValue * src_value,GValue * dest_value)1510 gee_functions_value_compare_data_func_closure_copy_value (const GValue* src_value,
1511 GValue* dest_value)
1512 {
1513 if (src_value->data[0].v_pointer) {
1514 dest_value->data[0].v_pointer = gee_functions_compare_data_func_closure_ref (src_value->data[0].v_pointer);
1515 } else {
1516 dest_value->data[0].v_pointer = NULL;
1517 }
1518 }
1519
1520 static gpointer
gee_functions_value_compare_data_func_closure_peek_pointer(const GValue * value)1521 gee_functions_value_compare_data_func_closure_peek_pointer (const GValue* value)
1522 {
1523 return value->data[0].v_pointer;
1524 }
1525
1526 static gchar*
gee_functions_value_compare_data_func_closure_collect_value(GValue * value,guint n_collect_values,GTypeCValue * collect_values,guint collect_flags)1527 gee_functions_value_compare_data_func_closure_collect_value (GValue* value,
1528 guint n_collect_values,
1529 GTypeCValue* collect_values,
1530 guint collect_flags)
1531 {
1532 if (collect_values[0].v_pointer) {
1533 GeeFunctionsCompareDataFuncClosure * object;
1534 object = collect_values[0].v_pointer;
1535 if (object->parent_instance.g_class == NULL) {
1536 return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
1537 } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
1538 return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
1539 }
1540 value->data[0].v_pointer = gee_functions_compare_data_func_closure_ref (object);
1541 } else {
1542 value->data[0].v_pointer = NULL;
1543 }
1544 return NULL;
1545 }
1546
1547 static gchar*
gee_functions_value_compare_data_func_closure_lcopy_value(const GValue * value,guint n_collect_values,GTypeCValue * collect_values,guint collect_flags)1548 gee_functions_value_compare_data_func_closure_lcopy_value (const GValue* value,
1549 guint n_collect_values,
1550 GTypeCValue* collect_values,
1551 guint collect_flags)
1552 {
1553 GeeFunctionsCompareDataFuncClosure ** object_p;
1554 object_p = collect_values[0].v_pointer;
1555 if (!object_p) {
1556 return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
1557 }
1558 if (!value->data[0].v_pointer) {
1559 *object_p = NULL;
1560 } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
1561 *object_p = value->data[0].v_pointer;
1562 } else {
1563 *object_p = gee_functions_compare_data_func_closure_ref (value->data[0].v_pointer);
1564 }
1565 return NULL;
1566 }
1567
1568 G_GNUC_INTERNAL GParamSpec*
gee_functions_param_spec_compare_data_func_closure(const gchar * name,const gchar * nick,const gchar * blurb,GType object_type,GParamFlags flags)1569 gee_functions_param_spec_compare_data_func_closure (const gchar* name,
1570 const gchar* nick,
1571 const gchar* blurb,
1572 GType object_type,
1573 GParamFlags flags)
1574 {
1575 GeeFunctionsParamSpecCompareDataFuncClosure* spec;
1576 g_return_val_if_fail (g_type_is_a (object_type, GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE), NULL);
1577 spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
1578 G_PARAM_SPEC (spec)->value_type = object_type;
1579 return G_PARAM_SPEC (spec);
1580 }
1581
1582 G_GNUC_INTERNAL gpointer
gee_functions_value_get_compare_data_func_closure(const GValue * value)1583 gee_functions_value_get_compare_data_func_closure (const GValue* value)
1584 {
1585 g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE), NULL);
1586 return value->data[0].v_pointer;
1587 }
1588
1589 G_GNUC_INTERNAL void
gee_functions_value_set_compare_data_func_closure(GValue * value,gpointer v_object)1590 gee_functions_value_set_compare_data_func_closure (GValue* value,
1591 gpointer v_object)
1592 {
1593 GeeFunctionsCompareDataFuncClosure * old;
1594 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE));
1595 old = value->data[0].v_pointer;
1596 if (v_object) {
1597 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE));
1598 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
1599 value->data[0].v_pointer = v_object;
1600 gee_functions_compare_data_func_closure_ref (value->data[0].v_pointer);
1601 } else {
1602 value->data[0].v_pointer = NULL;
1603 }
1604 if (old) {
1605 gee_functions_compare_data_func_closure_unref (old);
1606 }
1607 }
1608
1609 G_GNUC_INTERNAL void
gee_functions_value_take_compare_data_func_closure(GValue * value,gpointer v_object)1610 gee_functions_value_take_compare_data_func_closure (GValue* value,
1611 gpointer v_object)
1612 {
1613 GeeFunctionsCompareDataFuncClosure * old;
1614 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE));
1615 old = value->data[0].v_pointer;
1616 if (v_object) {
1617 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE));
1618 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
1619 value->data[0].v_pointer = v_object;
1620 } else {
1621 value->data[0].v_pointer = NULL;
1622 }
1623 if (old) {
1624 gee_functions_compare_data_func_closure_unref (old);
1625 }
1626 }
1627
1628 static void
gee_functions_compare_data_func_closure_class_init(GeeFunctionsCompareDataFuncClosureClass * klass,gpointer klass_data)1629 gee_functions_compare_data_func_closure_class_init (GeeFunctionsCompareDataFuncClosureClass * klass,
1630 gpointer klass_data)
1631 {
1632 gee_functions_compare_data_func_closure_parent_class = g_type_class_peek_parent (klass);
1633 ((GeeFunctionsCompareDataFuncClosureClass *) klass)->finalize = gee_functions_compare_data_func_closure_finalize;
1634 g_type_class_adjust_private_offset (klass, &GeeFunctionsCompareDataFuncClosure_private_offset);
1635 }
1636
1637 static void
gee_functions_compare_data_func_closure_instance_init(GeeFunctionsCompareDataFuncClosure * self,gpointer klass)1638 gee_functions_compare_data_func_closure_instance_init (GeeFunctionsCompareDataFuncClosure * self,
1639 gpointer klass)
1640 {
1641 self->priv = gee_functions_compare_data_func_closure_get_instance_private (self);
1642 self->ref_count = 1;
1643 }
1644
1645 static void
gee_functions_compare_data_func_closure_finalize(GeeFunctionsCompareDataFuncClosure * obj)1646 gee_functions_compare_data_func_closure_finalize (GeeFunctionsCompareDataFuncClosure * obj)
1647 {
1648 GeeFunctionsCompareDataFuncClosure * self;
1649 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE, GeeFunctionsCompareDataFuncClosure);
1650 g_signal_handlers_destroy (self);
1651 (self->func_target_destroy_notify == NULL) ? NULL : (self->func_target_destroy_notify (self->func_target), NULL);
1652 self->func = NULL;
1653 self->func_target = NULL;
1654 self->func_target_destroy_notify = NULL;
1655 }
1656
1657 G_GNUC_INTERNAL GType
gee_functions_compare_data_func_closure_get_type(void)1658 gee_functions_compare_data_func_closure_get_type (void)
1659 {
1660 static volatile gsize gee_functions_compare_data_func_closure_type_id__volatile = 0;
1661 if (g_once_init_enter (&gee_functions_compare_data_func_closure_type_id__volatile)) {
1662 static const GTypeValueTable g_define_type_value_table = { gee_functions_value_compare_data_func_closure_init, gee_functions_value_compare_data_func_closure_free_value, gee_functions_value_compare_data_func_closure_copy_value, gee_functions_value_compare_data_func_closure_peek_pointer, "p", gee_functions_value_compare_data_func_closure_collect_value, "p", gee_functions_value_compare_data_func_closure_lcopy_value };
1663 static const GTypeInfo g_define_type_info = { sizeof (GeeFunctionsCompareDataFuncClosureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_functions_compare_data_func_closure_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeFunctionsCompareDataFuncClosure), 0, (GInstanceInitFunc) gee_functions_compare_data_func_closure_instance_init, &g_define_type_value_table };
1664 static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
1665 GType gee_functions_compare_data_func_closure_type_id;
1666 gee_functions_compare_data_func_closure_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeFunctionsCompareDataFuncClosure", &g_define_type_info, &g_define_type_fundamental_info, 0);
1667 GeeFunctionsCompareDataFuncClosure_private_offset = g_type_add_instance_private (gee_functions_compare_data_func_closure_type_id, sizeof (GeeFunctionsCompareDataFuncClosurePrivate));
1668 g_once_init_leave (&gee_functions_compare_data_func_closure_type_id__volatile, gee_functions_compare_data_func_closure_type_id);
1669 }
1670 return gee_functions_compare_data_func_closure_type_id__volatile;
1671 }
1672
1673 G_GNUC_INTERNAL gpointer
gee_functions_compare_data_func_closure_ref(gpointer instance)1674 gee_functions_compare_data_func_closure_ref (gpointer instance)
1675 {
1676 GeeFunctionsCompareDataFuncClosure * self;
1677 self = instance;
1678 g_atomic_int_inc (&self->ref_count);
1679 return instance;
1680 }
1681
1682 G_GNUC_INTERNAL void
gee_functions_compare_data_func_closure_unref(gpointer instance)1683 gee_functions_compare_data_func_closure_unref (gpointer instance)
1684 {
1685 GeeFunctionsCompareDataFuncClosure * self;
1686 self = instance;
1687 if (g_atomic_int_dec_and_test (&self->ref_count)) {
1688 GEE_FUNCTIONS_COMPARE_DATA_FUNC_CLOSURE_GET_CLASS (self)->finalize (self);
1689 g_type_free_instance ((GTypeInstance *) self);
1690 }
1691 }
1692
1693