[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 04/18] tests/qtest: simplify qtest_process_inbuf
From: |
Alex Bennée |
Subject: |
[PATCH 04/18] tests/qtest: simplify qtest_process_inbuf |
Date: |
Mon, 3 Feb 2025 14:40:34 +0000 |
Don't both creating a GString to temporarily hold our qtest command.
Instead do a simpler g_strndup and use autofree to clean up
afterwards.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
system/qtest.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/system/qtest.c b/system/qtest.c
index e68ed0f2a8..bb1efba9fd 100644
--- a/system/qtest.c
+++ b/system/qtest.c
@@ -763,25 +763,21 @@ static void qtest_process_command(CharBackend *chr, gchar
**words)
}
}
+/*
+ * Process as much of @inbuf as we can in newline terminated chunks.
+ * Remove the processed commands from @inbuf as we go.
+ */
static void qtest_process_inbuf(CharBackend *chr, GString *inbuf)
{
char *end;
while ((end = strchr(inbuf->str, '\n')) != NULL) {
- size_t offset;
- GString *cmd;
- gchar **words;
-
- offset = end - inbuf->str;
+ size_t len = end - inbuf->str;
+ g_autofree char *cmd = g_strndup(inbuf->str, len);
+ g_auto(GStrv) words = g_strsplit(cmd, " ", 0);
- cmd = g_string_new_len(inbuf->str, offset);
- g_string_erase(inbuf, 0, offset + 1);
-
- words = g_strsplit(cmd->str, " ", 0);
+ g_string_erase(inbuf, 0, len + 1);
qtest_process_command(chr, words);
- g_strfreev(words);
-
- g_string_free(cmd, TRUE);
}
}
--
2.39.5
- [PATCH 00/18] maintainer updates for feb25 (qtest, gdbstub, plugins), Alex Bennée, 2025/02/03
- [PATCH 03/18] tests/qtest: don't step clock at start of npcm7xx periodic IRQ test, Alex Bennée, 2025/02/03
- [PATCH 01/18] tests/docker: replicate the check-rust-tools-nightly CI job, Alex Bennée, 2025/02/03
- [PATCH 02/18] tests/qtest: don't attempt to clock_step while waiting for virtio ISR, Alex Bennée, 2025/02/03
- [PATCH 05/18] tests/qtest: rename qtest_send_prefix and roll-up into qtest_send, Alex Bennée, 2025/02/03
- [PATCH 06/18] tests/qtest: tighten up the checks on clock_step, Alex Bennée, 2025/02/03
- [PATCH 08/18] tests/qtest/migration: Add --full option, Alex Bennée, 2025/02/03
- [PATCH 07/18] Revert "util/timer: avoid deadlock when shutting down", Alex Bennée, 2025/02/03
- [PATCH 04/18] tests/qtest: simplify qtest_process_inbuf,
Alex Bennée <=
- [PATCH 09/18] tests/qtest/migration: Pick smoke tests, Alex Bennée, 2025/02/03
- [PATCH 15/18] gdbstub: Allow late attachment, Alex Bennée, 2025/02/03
- [PATCH 10/18] gdbstub: Allow the %d placeholder in the socket path, Alex Bennée, 2025/02/03
- [PATCH 14/18] osdep: Introduce qemu_kill_thread(), Alex Bennée, 2025/02/03
- [PATCH 12/18] user: Introduce user/signal.h, Alex Bennée, 2025/02/03
- [PATCH 11/18] gdbstub: Try unlinking the unix socket before binding, Alex Bennée, 2025/02/03
- [PATCH 13/18] user: Introduce host_interrupt_signal, Alex Bennée, 2025/02/03
- [PATCH 16/18] docs/user: Document the %d placeholder and suspend=n QEMU_GDB features, Alex Bennée, 2025/02/03
- [PATCH 18/18] plugins: fix -Werror=maybe-uninitialized false-positive, Alex Bennée, 2025/02/03