sysprof-greeter: refactor environment variable handling in profiler creation

Signed-off-by: varun-r-mallya <varunrmallya@gmail.com>
This commit is contained in:
2025-02-26 23:24:20 +05:30
parent 05f78de383
commit 775d7ae5eb

View File

@ -205,23 +205,23 @@ sysprof_greeter_create_profiler (SysprofGreeter *self,
g_autoptr(GFile) dir = NULL; g_autoptr(GFile) dir = NULL;
GtkStringObject *strobj; GtkStringObject *strobj;
const char *str; const char *str;
guint envvars_n_items;
g_autoptr(GStrvBuilder) envvars_builder = NULL;
g_autofree GStrv envvars_list = NULL;
g_assert (SYSPROF_IS_GREETER (self)); g_assert (SYSPROF_IS_GREETER (self));
if (self->envvars) if ((envvars_n_items = g_list_model_get_n_items (G_LIST_MODEL (self->envvars))))
{ {
guint n_items = g_list_model_get_n_items (G_LIST_MODEL (self->envvars)); envvars_builder = g_strv_builder_new ();
g_autofree char **envvars = g_new0 (char *, n_items + 1); for (guint i = 0; i < envvars_n_items; i++)
for (guint i = 0; i < n_items; i++)
{ {
GtkStringObject *str_obj = g_list_model_get_item (G_LIST_MODEL (self->envvars), i); strobj = g_list_model_get_item (G_LIST_MODEL (self->envvars), i);
g_strv_builder_add (envvars_builder, gtk_string_object_get_string (strobj));
envvars[i] = g_strdup (gtk_string_object_get_string (str_obj));
} }
envvars_list = g_strv_builder_end (envvars_builder);
g_object_set (self->recording_template, g_object_set (self->recording_template,
"environ", envvars, "environ", envvars_list,
NULL); NULL);
} }