gdbus-codegen: add autocleanup for FooObject

This is only enabled with `--c-generate-autocleanup all` for the
reasons discussed on https://bugzilla.gnome.org/show_bug.cgi?id=763379.
This commit is contained in:
Will Thompson 2018-10-26 11:16:13 +01:00 committed by Philip Withnall
parent 5b78c3fdff
commit 745422afac
2 changed files with 7 additions and 0 deletions

View File

@ -433,6 +433,11 @@ class HeaderCodeGenerator:
self.outfile.write('GType %sobject_get_type (void) G_GNUC_CONST;\n'
'\n'
%(self.ns_lower))
if self.generate_autocleanup == 'all':
self.outfile.write('#if GLIB_CHECK_VERSION(2, 44, 0)\n')
self.outfile.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sObject, g_object_unref)\n' % (self.namespace))
self.outfile.write('#endif\n')
self.outfile.write('\n')
for i in self.ifaces:
if i.deprecated:
self.outfile.write('G_GNUC_DEPRECATED ')

View File

@ -2398,6 +2398,7 @@ test_autocleanups (void)
g_autoptr(FooiGenBar) bar = NULL;
g_autoptr(FooiGenBarProxy) bar_proxy = NULL;
g_autoptr(FooiGenBarSkeleton) bar_skeleton = NULL;
g_autoptr(FooiGenObject) object = NULL;
g_autoptr(FooiGenObjectProxy) object_proxy = NULL;
g_autoptr(FooiGenObjectSkeleton) object_skeleton = NULL;
g_autoptr(FooiGenObjectManagerClient) object_manager_client = NULL;
@ -2405,6 +2406,7 @@ test_autocleanups (void)
(void) bar;
(void) bar_proxy;
(void) bar_skeleton;
(void) object;
(void) object_proxy;
(void) object_skeleton;
(void) object_manager_client;