diff --git a/src/clipboard.c b/src/clipboard.c index edf1358ce..8dab05611 100644 --- a/src/clipboard.c +++ b/src/clipboard.c @@ -113,7 +113,7 @@ handle_set_selection (XdpDbusClipboard *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -156,7 +156,7 @@ handle_set_selection (XdpDbusClipboard *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_clipboard_call_set_selection ( impl, arg_session_handle, options, NULL, NULL, NULL); diff --git a/src/dynamic-launcher.c b/src/dynamic-launcher.c index 4ea92bfe4..50357126b 100644 --- a/src/dynamic-launcher.c +++ b/src/dynamic-launcher.c @@ -451,7 +451,7 @@ set_launcher_data_for_token (const char *token, { g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&transient_permissions_lock); guint timeout_id; - GVariant *launcher_data_wrapped; + g_autoptr(GVariant) launcher_data_wrapped = NULL; if (!transient_permissions) { @@ -464,11 +464,12 @@ set_launcher_data_for_token (const char *token, */ timeout_id = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, 300, install_token_timeout, g_strdup (token), g_free); - launcher_data_wrapped = g_variant_new ("(vu)", launcher_data, timeout_id); + launcher_data_wrapped = + g_variant_ref_sink (g_variant_new ("(vu)", launcher_data, timeout_id)); g_hash_table_insert (transient_permissions, g_strdup (token), - g_variant_ref_sink (launcher_data_wrapped)); + g_steal_pointer (&launcher_data_wrapped)); } static void @@ -477,7 +478,6 @@ prepare_install_done (GObject *source, gpointer data) { g_autoptr(Request) request = data; - GVariant *launcher_data; guint response = 2; g_autoptr(GVariant) results = NULL; g_autoptr(GError) error = NULL; @@ -524,6 +524,8 @@ prepare_install_done (GObject *source, } else { + GVariant *launcher_data; + /* Save the token in memory and return it to the caller */ launcher_data = g_variant_new ("(svss)", chosen_name, chosen_icon, icon_format, icon_size); set_launcher_data_for_token (token, launcher_data); @@ -686,7 +688,6 @@ handle_request_install_token (XdpDbusDynamicLauncher *object, Call *call = call_from_invocation (invocation); const char *app_id = xdp_app_info_get_id (call->app_info); g_autoptr(GError) error = NULL; - GVariant *launcher_data; g_autofree char *token = NULL; g_autofree char *icon_format = NULL; g_autofree char *icon_size = NULL; @@ -716,6 +717,8 @@ handle_request_install_token (XdpDbusDynamicLauncher *object, if (response == 0) { + GVariant *launcher_data; + /* Do some validation on the icon before saving it */ if (!validate_serialized_icon (arg_icon_v, &icon_format, &icon_size)) { diff --git a/src/global-shortcuts.c b/src/global-shortcuts.c index 8e40fd69a..a9a04c5aa 100644 --- a/src/global-shortcuts.c +++ b/src/global-shortcuts.c @@ -235,7 +235,7 @@ handle_create_session (XdpDbusGlobalShortcuts *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); impl_request = xdp_dbus_impl_request_proxy_new_sync (g_dbus_proxy_get_connection (G_DBUS_PROXY (impl)), G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, @@ -390,7 +390,7 @@ handle_bind_shortcuts (XdpDbusGlobalShortcuts *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); g_variant_builder_init (&shortcuts_builder, G_VARIANT_TYPE_ARRAY); if (!xdp_verify_shortcuts (arg_shortcuts, &shortcuts_builder, @@ -400,7 +400,7 @@ handle_bind_shortcuts (XdpDbusGlobalShortcuts *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - shortcuts = g_variant_builder_end (&shortcuts_builder); + shortcuts = g_variant_ref_sink (g_variant_builder_end (&shortcuts_builder)); session = acquire_session (arg_session_handle, request); if (!session) @@ -517,7 +517,7 @@ handle_list_shortcuts (XdpDbusGlobalShortcuts *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); session = acquire_session (arg_session_handle, request); if (!session) diff --git a/src/input-capture.c b/src/input-capture.c index 06eaad581..018a7e28c 100644 --- a/src/input-capture.c +++ b/src/input-capture.c @@ -233,7 +233,7 @@ handle_create_session (XdpDbusInputCapture *object, g_autoptr(XdpDbusImplRequest) impl_request = NULL; g_autoptr(GError) error = NULL; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; Session *session; REQUEST_AUTOLOCK (request); @@ -269,7 +269,7 @@ handle_create_session (XdpDbusInputCapture *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); g_object_set_qdata_full (G_OBJECT (request), quark_request_session, @@ -325,12 +325,12 @@ get_zones_done (GObject *source_object, if (request->exported) { - if (response != 0) + if (!results) { GVariantBuilder results_builder; g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT); - results = g_variant_builder_end (&results_builder); + results = g_variant_ref_sink (g_variant_builder_end (&results_builder)); } xdp_dbus_request_emit_response (XDP_DBUS_REQUEST (request), response, results); @@ -357,7 +357,7 @@ handle_get_zones (XdpDbusInputCapture *object, InputCaptureSession *input_capture_session; g_autoptr(GError) error = NULL; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; Session *session; REQUEST_AUTOLOCK (request); @@ -425,7 +425,7 @@ handle_get_zones (XdpDbusInputCapture *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); g_object_set_qdata_full (G_OBJECT (request), quark_request_session, @@ -486,7 +486,7 @@ set_pointer_barriers_done (GObject *source_object, GVariantBuilder results_builder; g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT); - results = g_variant_builder_end (&results_builder); + results = g_variant_ref_sink (g_variant_builder_end (&results_builder)); } xdp_dbus_request_emit_response (XDP_DBUS_REQUEST (request), response, results); @@ -513,7 +513,7 @@ handle_set_pointer_barriers (XdpDbusInputCapture *object, InputCaptureSession *input_capture_session; g_autoptr(GError) error = NULL; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; Session *session; REQUEST_AUTOLOCK (request); @@ -581,7 +581,7 @@ handle_set_pointer_barriers (XdpDbusInputCapture *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); g_object_set_qdata_full (G_OBJECT (request), quark_request_session, diff --git a/src/remote-desktop.c b/src/remote-desktop.c index 04a1a199d..472453878 100644 --- a/src/remote-desktop.c +++ b/src/remote-desktop.c @@ -307,7 +307,7 @@ handle_create_session (XdpDbusRemoteDesktop *object, g_autoptr(XdpDbusImplRequest) impl_request = NULL; Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; REQUEST_AUTOLOCK (request); @@ -334,7 +334,7 @@ handle_create_session (XdpDbusRemoteDesktop *object, } g_variant_builder_init (&options_builder, G_VARIANT_TYPE_VARDICT); - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); g_object_set_qdata_full (G_OBJECT (request), quark_request_session, @@ -512,7 +512,7 @@ handle_select_devices (XdpDbusRemoteDesktop *object, g_autoptr(GError) error = NULL; g_autoptr(XdpDbusImplRequest) impl_request = NULL; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; REQUEST_AUTOLOCK (request); @@ -564,7 +564,7 @@ handle_select_devices (XdpDbusRemoteDesktop *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); /* If 'restore_token' is passed, lookup the corresponding data in the * permission store and / or the GHashTable with transient permissions. @@ -645,7 +645,7 @@ start_done (GObject *source_object, RemoteDesktopSession *remote_desktop_session; guint response = 2; gboolean should_close_session; - GVariant *results = NULL; + g_autoptr(GVariant) results = NULL; g_autoptr(GError) error = NULL; REQUEST_AUTOLOCK (request); @@ -688,7 +688,7 @@ start_done (GObject *source_object, GVariantBuilder results_builder; g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT); - results = g_variant_builder_end (&results_builder); + results = g_variant_ref_sink (g_variant_builder_end (&results_builder)); } xdp_dbus_request_emit_response (XDP_DBUS_REQUEST (request), @@ -720,7 +720,7 @@ handle_start (XdpDbusRemoteDesktop *object, g_autoptr(GError) error = NULL; g_autoptr(XdpDbusImplRequest) impl_request = NULL; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; REQUEST_AUTOLOCK (request); @@ -774,7 +774,7 @@ handle_start (XdpDbusRemoteDesktop *object, request_export (request, g_dbus_method_invocation_get_connection (invocation)); g_variant_builder_init (&options_builder, G_VARIANT_TYPE_VARDICT); - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); g_object_set_qdata_full (G_OBJECT (request), quark_request_session, @@ -858,7 +858,7 @@ handle_notify_pointer_motion (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -891,7 +891,7 @@ handle_notify_pointer_motion (XdpDbusRemoteDesktop *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_pointer_motion (impl, session->id, @@ -916,7 +916,7 @@ handle_notify_pointer_motion_absolute (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -959,7 +959,7 @@ handle_notify_pointer_motion_absolute (XdpDbusRemoteDesktop *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_pointer_motion_absolute (impl, session->id, @@ -984,7 +984,7 @@ handle_notify_pointer_button (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -1018,7 +1018,7 @@ handle_notify_pointer_button (XdpDbusRemoteDesktop *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_pointer_button (impl, session->id, @@ -1047,7 +1047,7 @@ handle_notify_pointer_axis (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -1081,7 +1081,7 @@ handle_notify_pointer_axis (XdpDbusRemoteDesktop *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_pointer_axis (impl, session->id, @@ -1105,7 +1105,7 @@ handle_notify_pointer_axis_discrete (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -1138,7 +1138,7 @@ handle_notify_pointer_axis_discrete (XdpDbusRemoteDesktop *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_pointer_axis_discrete (impl, session->id, @@ -1163,7 +1163,7 @@ handle_notify_keyboard_keycode (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -1196,7 +1196,7 @@ handle_notify_keyboard_keycode (XdpDbusRemoteDesktop *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_keyboard_keycode (impl, session->id, @@ -1221,7 +1221,7 @@ handle_notify_keyboard_keysym (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -1254,7 +1254,7 @@ handle_notify_keyboard_keysym (XdpDbusRemoteDesktop *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_keyboard_keysym (impl, session->id, @@ -1281,7 +1281,7 @@ handle_notify_touch_down (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -1323,7 +1323,7 @@ handle_notify_touch_down (XdpDbusRemoteDesktop *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_touch_down (impl, session->id, @@ -1351,7 +1351,7 @@ handle_notify_touch_motion (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -1393,7 +1393,7 @@ handle_notify_touch_motion (XdpDbusRemoteDesktop *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_touch_motion (impl, session->id, @@ -1418,7 +1418,7 @@ handle_notify_touch_up (XdpDbusRemoteDesktop *object, Call *call = call_from_invocation (invocation); Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; g_autoptr(GError) error = NULL; session = acquire_session_from_call (arg_session_handle, call); @@ -1451,7 +1451,7 @@ handle_notify_touch_up (XdpDbusRemoteDesktop *object, g_dbus_method_invocation_return_gerror (invocation, error); return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); xdp_dbus_impl_remote_desktop_call_notify_touch_up (impl, session->id, diff --git a/src/restore-token.c b/src/restore-token.c index cbe26c8de..d343f6c45 100644 --- a/src/restore-token.c +++ b/src/restore-token.c @@ -248,7 +248,7 @@ xdp_session_persistence_replace_restore_token_with_data (Session *session, g_clear_pointer (&value, g_variant_unref); } - *in_out_options = g_variant_builder_end (&options_builder); + *in_out_options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); } void @@ -374,5 +374,5 @@ xdp_session_persistence_replace_restore_data_with_token (Session *session, *in_out_persist_mode = PERSIST_MODE_NONE; } - *in_out_results = g_variant_builder_end (&results_builder); + *in_out_results = g_variant_ref_sink (g_variant_builder_end (&results_builder)); } diff --git a/src/screen-cast.c b/src/screen-cast.c index 21281cb81..65fb3bbbc 100644 --- a/src/screen-cast.c +++ b/src/screen-cast.c @@ -225,7 +225,7 @@ handle_create_session (XdpDbusScreenCast *object, g_autoptr(XdpDbusImplRequest) impl_request = NULL; Session *session; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; REQUEST_AUTOLOCK (request); @@ -252,7 +252,7 @@ handle_create_session (XdpDbusScreenCast *object, } g_variant_builder_init (&options_builder, G_VARIANT_TYPE_VARDICT); - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); g_object_set_qdata_full (G_OBJECT (request), quark_request_session, @@ -484,7 +484,7 @@ handle_select_sources (XdpDbusScreenCast *object, g_autoptr(GError) error = NULL; g_autoptr(XdpDbusImplRequest) impl_request = NULL; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; REQUEST_AUTOLOCK (request); @@ -578,7 +578,7 @@ handle_select_sources (XdpDbusScreenCast *object, return G_DBUS_METHOD_INVOCATION_HANDLED; } - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); /* If 'restore_token' is passed, lookup the corresponding data in the * permission store and / or the GHashTable with transient permissions. @@ -769,7 +769,7 @@ start_done (GObject *source_object, ScreenCastSession *screen_cast_session; guint response = 2; gboolean should_close_session; - GVariant *results = NULL; + g_autoptr(GVariant) results = NULL; g_autoptr(GError) error = NULL; REQUEST_AUTOLOCK (request); @@ -786,6 +786,7 @@ start_done (GObject *source_object, { g_dbus_error_strip_remote_error (error); g_warning ("A backend call failed: %s", error->message); + g_clear_error (&error); } should_close_session = !request->exported || response != 0; @@ -811,7 +812,7 @@ start_done (GObject *source_object, GVariantBuilder results_builder; g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT); - results = g_variant_builder_end (&results_builder); + results = g_variant_ref_sink (g_variant_builder_end (&results_builder)); } xdp_dbus_request_emit_response (XDP_DBUS_REQUEST (request), response, results); @@ -844,7 +845,7 @@ handle_start (XdpDbusScreenCast *object, g_autoptr(GError) error = NULL; g_autoptr(XdpDbusImplRequest) impl_request = NULL; GVariantBuilder options_builder; - GVariant *options; + g_autoptr(GVariant) options = NULL; REQUEST_AUTOLOCK (request); @@ -906,7 +907,7 @@ handle_start (XdpDbusScreenCast *object, request_export (request, g_dbus_method_invocation_get_connection (invocation)); g_variant_builder_init (&options_builder, G_VARIANT_TYPE_VARDICT); - options = g_variant_builder_end (&options_builder); + options = g_variant_ref_sink (g_variant_builder_end (&options_builder)); g_object_set_qdata_full (G_OBJECT (request), quark_request_session,