diff --git a/config.h.in b/config.h.in index ebab457..d45da15 100644 --- a/config.h.in +++ b/config.h.in @@ -9,3 +9,6 @@ /* Define to the version of this package. */ #mesondefine VERSION + +/* Whether current polkit version supports autopointers */ +#mesondefine POLKIT_HAS_AUTOPOINTERS diff --git a/meson.build b/meson.build index 90ab529..d0aa764 100644 --- a/meson.build +++ b/meson.build @@ -139,6 +139,7 @@ cdata.set_quoted('GETTEXT_PACKAGE', meson.project_name()) cdata.set_quoted('PACKAGE_VERSION', meson.project_version()) cdata.set_quoted('VERSION', meson.project_version()) cdata.set_quoted('SYSCONFDIR', sysconfdir) +cdata.set('POLKIT_HAS_AUTOPOINTERS', polkit_gobject_dep.version().version_compare('>= 0.114')) config_h = configure_file( input: 'config.h.in', diff --git a/src/device.c b/src/device.c index 8c2dc2b..0ebf4bf 100644 --- a/src/device.c +++ b/src/device.c @@ -129,6 +129,12 @@ enum fprint_device_signals { static guint32 last_id = ~0; static guint signals[NUM_SIGNALS] = { 0, }; +#ifndef POLKIT_HAS_AUTOPOINTERS +/* FIXME: Remove this once we're fine to depend on polkit 0.114 */ +G_DEFINE_AUTOPTR_CLEANUP_FUNC (PolkitAuthorizationResult, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (PolkitSubject, g_object_unref) +#endif + static void session_data_unref(SessionData *session) {