Commit | Line | Data |
---|---|---|
bc26fd5e | 1 | /* |
0235b0db | 2 | * SPDX-License-Identifier: MIT |
bc26fd5e | 3 | * |
0235b0db | 4 | * Copyright (C) 2015 Michael Jeanson <mjeanson@efficios.com> |
bc26fd5e MJ |
5 | */ |
6 | ||
ae2be88d SM |
7 | #ifndef BABELTRACE_COMPAT_GLIB_H |
8 | #define BABELTRACE_COMPAT_GLIB_H | |
0235b0db | 9 | |
bc26fd5e MJ |
10 | #include <glib.h> |
11 | ||
12 | #if GLIB_CHECK_VERSION(2,31,8) | |
13 | ||
14 | static inline gboolean | |
5d5982ab | 15 | bt_g_hash_table_contains(GHashTable *hash_table, gconstpointer key) |
bc26fd5e MJ |
16 | { |
17 | return g_hash_table_contains(hash_table, key); | |
18 | } | |
19 | ||
20 | #else | |
21 | ||
22 | static inline gboolean | |
5d5982ab | 23 | bt_g_hash_table_contains(GHashTable *hash_table, gconstpointer key) |
bc26fd5e | 24 | { |
c2888a2b PP |
25 | gpointer orig_key; |
26 | gpointer value; | |
bc26fd5e | 27 | |
c2888a2b PP |
28 | return g_hash_table_lookup_extended(hash_table, key, &orig_key, |
29 | &value); | |
bc26fd5e MJ |
30 | } |
31 | ||
32 | #endif | |
33 | ||
34 | ||
35 | #if GLIB_CHECK_VERSION(2,29,16) | |
36 | ||
37 | static inline GPtrArray * | |
5d5982ab | 38 | bt_g_ptr_array_new_full(guint reserved_size, |
bc26fd5e MJ |
39 | GDestroyNotify element_free_func) |
40 | { | |
41 | return g_ptr_array_new_full(reserved_size, element_free_func); | |
42 | } | |
43 | ||
44 | #else | |
45 | ||
46 | static inline GPtrArray * | |
5d5982ab | 47 | bt_g_ptr_array_new_full(guint reserved_size, |
bc26fd5e MJ |
48 | GDestroyNotify element_free_func) |
49 | { | |
50 | GPtrArray *array; | |
51 | ||
52 | array = g_ptr_array_sized_new(reserved_size); | |
53 | if (!array) { | |
54 | goto end; | |
55 | } | |
56 | g_ptr_array_set_free_func(array, element_free_func); | |
57 | end: | |
58 | return array; | |
59 | } | |
60 | #endif | |
61 | ||
ae2be88d | 62 | #endif /* BABELTRACE_COMPAT_GLIB_H */ |