Commit 2f2beb16f67bfa6eb9576e25e43092afdbfdb1e8
1 parent
0b0e55cc
Exists in
master
and in
1 other branch
Trying to fix RHEL builds.
Showing
1 changed file
with
33 additions
and
0 deletions
Show diff stats
server/src/include/ipc-glib.h
| ... | ... | @@ -59,6 +59,39 @@ |
| 59 | 59 | #include <gtk/gtk.h> |
| 60 | 60 | #include <lib3270.h> |
| 61 | 61 | |
| 62 | +#if ! GLIB_CHECK_VERSION(2,44,0) | |
| 63 | + | |
| 64 | + LIB3270_EXPORT void ipc_3270_autoptr_cleanup_generic_gfree(void *p); | |
| 65 | + | |
| 66 | + #define g_autofree __attribute__((cleanup(ipc_3270_autoptr_cleanup_generic_gfree))) | |
| 67 | + | |
| 68 | + static inline void ipc_3270_autoptr_cleanup_GError(GError **error) { | |
| 69 | + if(*error) { | |
| 70 | + g_error_free(*error); | |
| 71 | + *error = NULL; | |
| 72 | + } | |
| 73 | + } | |
| 74 | + | |
| 75 | + static inline void ipc_3270_autoptr_cleanup_GObject(GObject **object) { | |
| 76 | + if(*object) { | |
| 77 | + g_object_unref(*object); | |
| 78 | + *object = NULL; | |
| 79 | + } | |
| 80 | + } | |
| 81 | + | |
| 82 | + static inline void ipc_3270_autoptr_cleanup_GVariant(GVariant **variant) { | |
| 83 | + if(*variant) { | |
| 84 | + g_variant_unref(*variant); | |
| 85 | + } | |
| 86 | + } | |
| 87 | + | |
| 88 | + #define IPC_3270_AUTOPTR_FUNC_NAME(TypeName) ipc_3270_autoptr_cleanup_##TypeName | |
| 89 | + #define g_autoptr(TypeName) TypeName * __attribute__ ((__cleanup__(IPC_3270_AUTOPTR_FUNC_NAME(TypeName)))) | |
| 90 | + | |
| 91 | +#endif // ! GLIB(2,44,0) | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 62 | 95 | G_BEGIN_DECLS |
| 63 | 96 | |
| 64 | 97 | #define GLIB_TYPE_IPC3270_RESPONSE (ipc3270Response_get_type ()) | ... | ... |