mirror of
https://github.com/mii443/qemu.git
synced 2025-08-22 15:15:46 +00: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:
committed by
Markus Armbruster
parent
eaedde5255
commit
54aa3de72e
@ -1255,7 +1255,8 @@ void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict)
|
||||
const char *cap = qdict_get_str(qdict, "capability");
|
||||
bool state = qdict_get_bool(qdict, "state");
|
||||
Error *err = NULL;
|
||||
MigrationCapabilityStatusList *caps = g_malloc0(sizeof(*caps));
|
||||
MigrationCapabilityStatusList *caps = NULL;
|
||||
MigrationCapabilityStatus *value;
|
||||
int val;
|
||||
|
||||
val = qapi_enum_parse(&MigrationCapability_lookup, cap, -1, &err);
|
||||
@ -1263,14 +1264,14 @@ void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict)
|
||||
goto end;
|
||||
}
|
||||
|
||||
caps->value = g_malloc0(sizeof(*caps->value));
|
||||
caps->value->capability = val;
|
||||
caps->value->state = state;
|
||||
caps->next = NULL;
|
||||
value = g_malloc0(sizeof(*value));
|
||||
value->capability = val;
|
||||
value->state = state;
|
||||
QAPI_LIST_PREPEND(caps, value);
|
||||
qmp_migrate_set_capabilities(caps, &err);
|
||||
qapi_free_MigrationCapabilityStatusList(caps);
|
||||
|
||||
end:
|
||||
qapi_free_MigrationCapabilityStatusList(caps);
|
||||
hmp_handle_error(mon, err);
|
||||
}
|
||||
|
||||
|
@ -1430,33 +1430,26 @@ FdsetInfoList *qmp_query_fdsets(Error **errp)
|
||||
|
||||
QEMU_LOCK_GUARD(&mon_fdsets_lock);
|
||||
QLIST_FOREACH(mon_fdset, &mon_fdsets, next) {
|
||||
FdsetInfoList *fdset_info = g_malloc0(sizeof(*fdset_info));
|
||||
FdsetFdInfoList *fdsetfd_list = NULL;
|
||||
FdsetInfo *fdset_info = g_malloc0(sizeof(*fdset_info));
|
||||
|
||||
fdset_info->value = g_malloc0(sizeof(*fdset_info->value));
|
||||
fdset_info->value->fdset_id = mon_fdset->id;
|
||||
fdset_info->fdset_id = mon_fdset->id;
|
||||
|
||||
QLIST_FOREACH(mon_fdset_fd, &mon_fdset->fds, next) {
|
||||
FdsetFdInfoList *fdsetfd_info;
|
||||
FdsetFdInfo *fdsetfd_info;
|
||||
|
||||
fdsetfd_info = g_malloc0(sizeof(*fdsetfd_info));
|
||||
fdsetfd_info->value = g_malloc0(sizeof(*fdsetfd_info->value));
|
||||
fdsetfd_info->value->fd = mon_fdset_fd->fd;
|
||||
fdsetfd_info->fd = mon_fdset_fd->fd;
|
||||
if (mon_fdset_fd->opaque) {
|
||||
fdsetfd_info->value->has_opaque = true;
|
||||
fdsetfd_info->value->opaque = g_strdup(mon_fdset_fd->opaque);
|
||||
fdsetfd_info->has_opaque = true;
|
||||
fdsetfd_info->opaque = g_strdup(mon_fdset_fd->opaque);
|
||||
} else {
|
||||
fdsetfd_info->value->has_opaque = false;
|
||||
fdsetfd_info->has_opaque = false;
|
||||
}
|
||||
|
||||
fdsetfd_info->next = fdsetfd_list;
|
||||
fdsetfd_list = fdsetfd_info;
|
||||
QAPI_LIST_PREPEND(fdset_info->fds, fdsetfd_info);
|
||||
}
|
||||
|
||||
fdset_info->value->fds = fdsetfd_list;
|
||||
|
||||
fdset_info->next = fdset_list;
|
||||
fdset_list = fdset_info;
|
||||
QAPI_LIST_PREPEND(fdset_list, fdset_info);
|
||||
}
|
||||
|
||||
return fdset_list;
|
||||
|
@ -138,18 +138,18 @@ EventInfoList *qmp_query_events(Error **errp)
|
||||
* QAPIEvent_str() and QAPIEvent_lookup[]. When the command goes,
|
||||
* they should go, too.
|
||||
*/
|
||||
EventInfoList *info, *ev_list = NULL;
|
||||
EventInfoList *ev_list = NULL;
|
||||
QAPIEvent e;
|
||||
|
||||
for (e = 0 ; e < QAPI_EVENT__MAX ; e++) {
|
||||
const char *event_name = QAPIEvent_str(e);
|
||||
EventInfo *info;
|
||||
|
||||
assert(event_name != NULL);
|
||||
info = g_malloc0(sizeof(*info));
|
||||
info->value = g_malloc0(sizeof(*info->value));
|
||||
info->value->name = g_strdup(event_name);
|
||||
info->name = g_strdup(event_name);
|
||||
|
||||
info->next = ev_list;
|
||||
ev_list = info;
|
||||
QAPI_LIST_PREPEND(ev_list, info);
|
||||
}
|
||||
|
||||
return ev_list;
|
||||
|
Reference in New Issue
Block a user