Avoid heap allocation 76/215376/3
authorMichal Bloch <m.bloch@samsung.com>
Mon, 7 Oct 2019 09:45:26 +0000 (11:45 +0200)
committerMichal Bloch <m.bloch@partner.samsung.com>
Mon, 21 Oct 2019 06:15:41 +0000 (06:15 +0000)
Change-Id: I5b5b8ca8d8a8c58c2bff05d265b742de02d86111
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
src/action.c

index 677a7d9..5831074 100644 (file)
@@ -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: