libsysprof-profile: remove use of g_alloca in recording fibers

This commit is contained in:
Christian Hergert
2023-06-27 13:18:22 -07:00
parent 4bb6b588bf
commit 30dc327f02
2 changed files with 14 additions and 14 deletions

View File

@ -107,14 +107,14 @@ static DexFuture *
sysprof_battery_charge_record_fiber (gpointer user_data) sysprof_battery_charge_record_fiber (gpointer user_data)
{ {
const int invalid_fd = -1; const int invalid_fd = -1;
SysprofCaptureCounterValue *values; g_autofree guint *ids = NULL;
SysprofCaptureCounter *counters; g_autofree SysprofCaptureCounterValue *values = NULL;
g_autofree SysprofCaptureCounter *counters = NULL;
g_autofree ReadBuffer *bufs = NULL;
SysprofCaptureWriter *writer; SysprofCaptureWriter *writer;
Record *record = user_data; Record *record = user_data;
g_autoptr(GArray) charge_fds = NULL; g_autoptr(GArray) charge_fds = NULL;
g_auto(GStrv) names = NULL; g_auto(GStrv) names = NULL;
ReadBuffer *bufs;
guint *ids;
guint n_names; guint n_names;
guint n_counters = 1; guint n_counters = 1;
@ -127,10 +127,10 @@ sysprof_battery_charge_record_fiber (gpointer user_data)
n_names = g_strv_length (names); n_names = g_strv_length (names);
/* Use some stack space for our counters and values. */ /* Use some stack space for our counters and values. */
ids = g_alloca0 (sizeof *ids * (n_names + 1)); ids = g_new0 (guint, n_names + 1);
counters = g_alloca0 (sizeof *counters * (n_names + 1)); counters = g_new0 (SysprofCaptureCounter, n_names + 1);
values = g_alloca0 (sizeof *values * (n_names + 1)); values = g_new0 (SysprofCaptureCounterValue, n_names + 1);
bufs = g_alloca0 (sizeof (ReadBuffer) * (n_names + 1)); bufs = g_new0 (ReadBuffer, n_names + 1);
/* Setup the combined counter which is the total charge of all of /* Setup the combined counter which is the total charge of all of
* the batteries we discover on the system. * the batteries we discover on the system.

View File

@ -127,11 +127,11 @@ sysprof_cpu_usage_record_fiber (gpointer user_data)
g_autoptr(GArray) freq_info = NULL; g_autoptr(GArray) freq_info = NULL;
g_autofd int stat_fd = -1; g_autofd int stat_fd = -1;
g_autofree char *read_buffer = NULL; g_autofree char *read_buffer = NULL;
SysprofCaptureCounterValue *values; g_autofree SysprofCaptureCounterValue *values = NULL;
SysprofCaptureCounter *counters; g_autofree SysprofCaptureCounter *counters = NULL;
g_autofree guint *ids = NULL;
SysprofCaptureCounter *counter; SysprofCaptureCounter *counter;
SysprofCaptureWriter *writer; SysprofCaptureWriter *writer;
guint *ids;
guint n_cpu; guint n_cpu;
g_assert (record != NULL); g_assert (record != NULL);
@ -144,9 +144,9 @@ sysprof_cpu_usage_record_fiber (gpointer user_data)
g_unix_set_fd_nonblocking (stat_fd, TRUE, NULL); g_unix_set_fd_nonblocking (stat_fd, TRUE, NULL);
read_buffer = g_malloc (PROC_STAT_BUF_SIZE); read_buffer = g_malloc (PROC_STAT_BUF_SIZE);
counters = g_alloca (sizeof *counters * ((n_cpu * 2) + 1)); counters = g_new0 (SysprofCaptureCounter, (n_cpu * 2) + 1);
ids = g_alloca (sizeof *ids * ((n_cpu * 2) + 1)); ids = g_new0 (guint, (n_cpu * 2) + 1);
values = g_alloca (sizeof *values * ((n_cpu * 2) + 1)); values = g_new0 (SysprofCaptureCounterValue, (n_cpu * 2) + 1);
cpu_info = g_array_new (FALSE, TRUE, sizeof (CpuInfo)); cpu_info = g_array_new (FALSE, TRUE, sizeof (CpuInfo));
g_array_set_size (cpu_info, n_cpu); g_array_set_size (cpu_info, n_cpu);