From 6fd0197481f30b0c8a3adce25be1cdd95fa32319 Mon Sep 17 00:00:00 2001 From: Michal Bloch Date: Mon, 7 Oct 2019 11:45:26 +0200 Subject: [PATCH] Avoid heap allocation Change-Id: I5b5b8ca8d8a8c58c2bff05d265b742de02d86111 Signed-off-by: Michal Bloch --- src/action.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/action.c b/src/action.c index 677a7d9..5831074 100644 --- a/src/action.c +++ b/src/action.c @@ -50,7 +50,7 @@ static void action_finish(struct action_data *ad) char objpath[PATH_MAX]; char interface[PATH_MAX]; char format[20]; - GVariantBuilder *builder; + GVariantBuilder builder; GVariant *signal_params = NULL; if (snprintf(format, 20, "(is@%s@%s@a{sv})", g_variant_get_type_string(ad->actual_value), @@ -68,20 +68,20 @@ static void action_finish(struct action_data *ad) goto skip_dbus_signal; } - builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}")); - g_variant_builder_add(builder, "{sv}", + g_variant_builder_init(&builder, G_VARIANT_TYPE("a{sv}")); + g_variant_builder_add(&builder, "{sv}", "report_path", g_variant_new_string(ad->report_path ? ad->report_path : "")); - g_variant_builder_add(builder, "{sv}", + g_variant_builder_add(&builder, "{sv}", "killed", g_variant_new_boolean(ad->ds->process->kill)); - g_variant_builder_add(builder, "{sv}", + g_variant_builder_add(&builder, "{sv}", "process_name", g_variant_new_string(ad->ds->process->name)); - g_variant_builder_add(builder, "{sv}", + g_variant_builder_add(&builder, "{sv}", "process_state", g_variant_new_string(process_is_foreground(ad->ds->process) ? "foreground" : "background")); @@ -91,9 +91,7 @@ static void action_finish(struct action_data *ad) limit_type_to_string(ad->lt), ad->actual_value, ad->allowed_value, - g_variant_builder_end(builder)); - - g_variant_builder_unref(builder); + g_variant_builder_end(&builder)); skip_dbus_signal: -- 2.34.1