summaryrefslogtreecommitdiff
path: root/demo/gclue-service-agent.c
diff options
context:
space:
mode:
authorMaciej S. Szmigiero <maciej.szmigiero@oracle.com>2023-01-12 23:27:16 +0100
committerMaciej S. Szmigiero <maciej.szmigiero@oracle.com>2023-01-14 00:49:52 +0100
commit3fc8fe101fd93605cb3d1e301ee8e552a9601338 (patch)
tree6780659015b57a7f82b076189abf8b343b084d1d /demo/gclue-service-agent.c
parentca72db0f8b53deacb93f57f3015bc4c9ffc14335 (diff)
downloadgeoclue-3fc8fe101fd93605cb3d1e301ee8e552a9601338.tar.gz
Use automatic char* memory management where possible
Remove explicit g_free () calls and convert char* allocations to g_autofree. Fixes at least one memory leak in gclue_service_agent_handle_authorize_app ().
Diffstat (limited to 'demo/gclue-service-agent.c')
-rw-r--r--demo/gclue-service-agent.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/demo/gclue-service-agent.c b/demo/gclue-service-agent.c
index 0c5c08d..8758721 100644
--- a/demo/gclue-service-agent.c
+++ b/demo/gclue-service-agent.c
@@ -334,10 +334,10 @@ gclue_service_agent_handle_authorize_app (GClueAgent *agent,
NotifyNotification *notification;
NotificationData *data;
GError *error = NULL;
- char *desktop_file;
+ g_autofree char *desktop_file = NULL;
GDesktopAppInfo *app_info;
- char *msg;
- const char *reason;
+ g_autofree char *msg = NULL;
+ g_autofree char *reason = NULL;
desktop_file = g_strjoin (".", desktop_id, "desktop", NULL);
app_info = g_desktop_app_info_new (desktop_file);
@@ -350,18 +350,17 @@ gclue_service_agent_handle_authorize_app (GClueAgent *agent,
return TRUE;
}
- g_free (desktop_file);
msg = g_strdup_printf (_("Allow '%s' to access your location information?"),
g_app_info_get_display_name (G_APP_INFO (app_info)));
reason = g_desktop_app_info_get_string (app_info, "X-Geoclue-Reason");
if (reason != NULL) {
- char *tmp = msg;
- msg = g_strdup_printf ("%s\n\n%s", msg, reason);
- g_free (tmp);
+ char *tmp = g_strdup_printf ("%s\n\n%s", msg, reason);
+
+ g_clear_pointer (&msg, g_free);
+ msg = tmp;
}
notification = notify_notification_new (_("Geolocation"), msg, "dialog-question");
- g_free (msg);
data = g_slice_new0 (NotificationData);
data->invocation = invocation;