summaryrefslogtreecommitdiff
path: root/daemon
diff options
context:
space:
mode:
authorAlessandro Bono <alessandro.bono369@gmail.com>2022-11-09 11:04:07 +0100
committerRay Strode <halfline@gmail.com>2023-04-28 19:41:28 +0000
commit681b6f03e7762ed411a281cf1adfc7216c88549c (patch)
treef5b0116cce2465eaeca2cd267d36a31e3bd4215b /daemon
parentf0252728e9ef2a23b0d98a4fe2c697fdc673d254 (diff)
downloadgdm-681b6f03e7762ed411a281cf1adfc7216c88549c.tar.gz
gdm-session-worker-job: Use g_auto*
Diffstat (limited to 'daemon')
-rw-r--r--daemon/gdm-session-worker-job.c41
1 files changed, 14 insertions, 27 deletions
diff --git a/daemon/gdm-session-worker-job.c b/daemon/gdm-session-worker-job.c
index 27878c02..3d4691d9 100644
--- a/daemon/gdm-session-worker-job.c
+++ b/daemon/gdm-session-worker-job.c
@@ -172,7 +172,7 @@ static void
copy_environment_to_hash (GdmSessionWorkerJob *job,
GHashTable *hash)
{
- char **environment;
+ g_auto(GStrv) environment = NULL;
gint i;
if (job->environment != NULL) {
@@ -182,36 +182,29 @@ copy_environment_to_hash (GdmSessionWorkerJob *job,
}
for (i = 0; environment[i]; i++) {
- char **parts;
+ g_auto(GStrv) parts = NULL;
parts = g_strsplit (environment[i], "=", 2);
if (parts[0] != NULL && parts[1] != NULL) {
g_hash_table_insert (hash, g_strdup (parts[0]), g_strdup (parts[1]));
}
-
- g_strfreev (parts);
}
-
- g_strfreev (environment);
}
static GPtrArray *
get_job_arguments (GdmSessionWorkerJob *job,
const char *name)
{
- GPtrArray *args;
- GError *error;
- char **argv;
+ g_autoptr(GPtrArray) args = NULL;
+ g_autoptr(GError) error = NULL;
+ g_auto(GStrv) argv = NULL;
int i;
args = NULL;
- argv = NULL;
- error = NULL;
if (!g_shell_parse_argv (job->command, NULL, &argv, &error)) {
g_warning ("Could not parse command: %s", error->message);
- g_error_free (error);
- goto out;
+ return NULL;
}
args = g_ptr_array_new ();
@@ -220,18 +213,17 @@ get_job_arguments (GdmSessionWorkerJob *job,
for (i = 1; argv[i] != NULL; i++) {
g_ptr_array_add (args, g_strdup (argv[i]));
}
- g_strfreev (argv);
g_ptr_array_add (args, NULL);
-out:
- return args;
+
+ return g_steal_pointer (&args);
}
static GPtrArray *
get_job_environment (GdmSessionWorkerJob *job)
{
- GPtrArray *env;
- GHashTable *hash;
+ g_autoptr(GPtrArray) env = NULL;
+ g_autoptr(GHashTable) hash = NULL;
env = g_ptr_array_new ();
@@ -246,21 +238,20 @@ get_job_environment (GdmSessionWorkerJob *job)
}
g_hash_table_foreach (hash, (GHFunc)listify_hash, env);
- g_hash_table_destroy (hash);
g_ptr_array_add (env, NULL);
- return env;
+ return g_steal_pointer (&env);
}
static gboolean
gdm_session_worker_job_spawn (GdmSessionWorkerJob *session_worker_job,
const char *name)
{
- GError *error;
+ g_autoptr(GError) error = NULL;
+ g_autoptr(GPtrArray) args = NULL;
+ g_autoptr(GPtrArray) env = NULL;
gboolean ret;
- GPtrArray *args;
- GPtrArray *env;
g_debug ("GdmSessionWorkerJob: Running session_worker_job process: %s %s",
name != NULL? name : "", session_worker_job->command);
@@ -272,7 +263,6 @@ gdm_session_worker_job_spawn (GdmSessionWorkerJob *session_worker_job,
}
env = get_job_environment (session_worker_job);
- error = NULL;
ret = g_spawn_async_with_pipes (NULL,
(char **) args->pdata,
(char **)env->pdata,
@@ -286,16 +276,13 @@ gdm_session_worker_job_spawn (GdmSessionWorkerJob *session_worker_job,
&error);
g_ptr_array_foreach (args, (GFunc)g_free, NULL);
- g_ptr_array_free (args, TRUE);
g_ptr_array_foreach (env, (GFunc)g_free, NULL);
- g_ptr_array_free (env, TRUE);
if (! ret) {
g_warning ("Could not start command '%s': %s",
session_worker_job->command,
error->message);
- g_error_free (error);
} else {
g_debug ("GdmSessionWorkerJob: : SessionWorkerJob on pid %d", (int)session_worker_job->pid);
}