mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-09-09 00:07:57 -06:00
qapi: Use QAPI_LIST_PREPEND() where possible
Anywhere we create a list of just one item or by prepending items (typically because order doesn't matter), we can use QAPI_LIST_PREPEND(). But places where we must keep the list in order by appending remain open-coded until later patches. Note that as a side effect, this also performs a cleanup of two minor issues in qga/commands-posix.c: the old code was performing new = g_malloc0(sizeof(*ret)); which 1) is confusing because you have to verify whether 'new' and 'ret' are variables with the same type, and 2) would conflict with C++ compilation (not an actual problem for this file, but makes copy-and-paste harder). Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <20201113011340.463563-5-eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> [Straightforward conflicts due to commita8aa94b5f8
"qga: update schema for guest-get-disks 'dependents' field" and commita10b453a52
"target/mips: Move mips_cpu_add_definition() from helper.c to cpu.c" resolved. Commit message tweaked.] Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
eaedde5255
commit
54aa3de72e
32 changed files with 158 additions and 421 deletions
|
@ -223,7 +223,8 @@ static void test_visitor_out_list(TestOutputVisitorData *data,
|
|||
const void *unused)
|
||||
{
|
||||
const char *value_str = "list value";
|
||||
TestStructList *p, *head = NULL;
|
||||
TestStruct *value;
|
||||
TestStructList *head = NULL;
|
||||
const int max_items = 10;
|
||||
bool value_bool = true;
|
||||
int value_int = 10;
|
||||
|
@ -233,14 +234,12 @@ static void test_visitor_out_list(TestOutputVisitorData *data,
|
|||
|
||||
/* Build the list in reverse order... */
|
||||
for (i = 0; i < max_items; i++) {
|
||||
p = g_malloc0(sizeof(*p));
|
||||
p->value = g_malloc0(sizeof(*p->value));
|
||||
p->value->integer = value_int + (max_items - i - 1);
|
||||
p->value->boolean = value_bool;
|
||||
p->value->string = g_strdup(value_str);
|
||||
value = g_malloc0(sizeof(*value));
|
||||
value->integer = value_int + (max_items - i - 1);
|
||||
value->boolean = value_bool;
|
||||
value->string = g_strdup(value_str);
|
||||
|
||||
p->next = head;
|
||||
head = p;
|
||||
QAPI_LIST_PREPEND(head, value);
|
||||
}
|
||||
|
||||
visit_type_TestStructList(data->ov, NULL, &head, &error_abort);
|
||||
|
@ -270,26 +269,25 @@ static void test_visitor_out_list(TestOutputVisitorData *data,
|
|||
static void test_visitor_out_list_qapi_free(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
UserDefTwoList *p, *head = NULL;
|
||||
UserDefTwo *value;
|
||||
UserDefTwoList *head = NULL;
|
||||
const char string[] = "foo bar";
|
||||
int i, max_count = 1024;
|
||||
|
||||
for (i = 0; i < max_count; i++) {
|
||||
p = g_malloc0(sizeof(*p));
|
||||
p->value = g_malloc0(sizeof(*p->value));
|
||||
value = g_malloc0(sizeof(*value));
|
||||
|
||||
p->value->string0 = g_strdup(string);
|
||||
p->value->dict1 = g_new0(UserDefTwoDict, 1);
|
||||
p->value->dict1->string1 = g_strdup(string);
|
||||
p->value->dict1->dict2 = g_new0(UserDefTwoDictDict, 1);
|
||||
p->value->dict1->dict2->userdef = g_new0(UserDefOne, 1);
|
||||
p->value->dict1->dict2->userdef->string = g_strdup(string);
|
||||
p->value->dict1->dict2->userdef->integer = 42;
|
||||
p->value->dict1->dict2->string = g_strdup(string);
|
||||
p->value->dict1->has_dict3 = false;
|
||||
value->string0 = g_strdup(string);
|
||||
value->dict1 = g_new0(UserDefTwoDict, 1);
|
||||
value->dict1->string1 = g_strdup(string);
|
||||
value->dict1->dict2 = g_new0(UserDefTwoDictDict, 1);
|
||||
value->dict1->dict2->userdef = g_new0(UserDefOne, 1);
|
||||
value->dict1->dict2->userdef->string = g_strdup(string);
|
||||
value->dict1->dict2->userdef->integer = 42;
|
||||
value->dict1->dict2->string = g_strdup(string);
|
||||
value->dict1->has_dict3 = false;
|
||||
|
||||
p->next = head;
|
||||
head = p;
|
||||
QAPI_LIST_PREPEND(head, value);
|
||||
}
|
||||
|
||||
qapi_free_UserDefTwoList(head);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue