diff options
author | Alessandro Bono <alessandro.bono369@gmail.com> | 2022-11-09 11:04:07 +0100 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2023-04-28 19:41:28 +0000 |
commit | 681b6f03e7762ed411a281cf1adfc7216c88549c (patch) | |
tree | f5b0116cce2465eaeca2cd267d36a31e3bd4215b /daemon | |
parent | f0252728e9ef2a23b0d98a4fe2c697fdc673d254 (diff) | |
download | gdm-681b6f03e7762ed411a281cf1adfc7216c88549c.tar.gz |
gdm-session-worker-job: Use g_auto*
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/gdm-session-worker-job.c | 41 |
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); } |