On 11/17/20 6:51 AM, Markus Armbruster wrote: > Eric Blake <ebl...@redhat.com> writes: > >> Similar to the existing QAPI_LIST_PREPEND, but designed for use where >> we want to preserve insertion order. Callers will be added in >> upcoming patches. Note the difference in signature: PREPEND takes >> List*, APPEND takes List**. >> >> Signed-off-by: Eric Blake <ebl...@redhat.com>
>> +#define QAPI_LIST_APPEND(tail, element) do { \ >> + *(tail) = g_malloc0(sizeof(**(tail))); \ >> + (*(tail))->value = (element); \ >> + (tail) = &(*tail)->next; \ Hmm; I'm inconsistent on whether to spell things '*tail' or '*(tail)'. I don't think any of the callers converted in patches 6 or 7 care about the difference, but for maximal copy-paste portability, the use of the macro parameter should be surrounded by () anywhere that could otherwise cause a mis-parse on some arbitrary expression with an operator at higher precedence than unary * (hmm, the only such operators are all suffix operators; so maybe the *(tail) is overkill...) > > Reviewed-by: Markus Armbruster <arm...@redhat.com> > -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org