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,6 +59,39 @@ | ||
| 59 | #include <gtk/gtk.h> | 59 | #include <gtk/gtk.h> |
| 60 | #include <lib3270.h> | 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 | G_BEGIN_DECLS | 95 | G_BEGIN_DECLS |
| 63 | 96 | ||
| 64 | #define GLIB_TYPE_IPC3270_RESPONSE (ipc3270Response_get_type ()) | 97 | #define GLIB_TYPE_IPC3270_RESPONSE (ipc3270Response_get_type ()) |