On 07/01/2015 02:22 PM, Markus Armbruster wrote: > is_c_ptr() looks whether the end of the C text for the type looks like > a pointer. Works, but is fragile. > > We now have a better tool: use QAPISchemaType method c_null(). The > initializers for non-pointers become prettier: 0, false or the > enumeration constant with the value 0 instead of {0}. > > One place looks suspicious: we initialize pointers, but not > non-pointers. Either the initialization is superfluous and should be > deleted, or the non-pointers need it as well, or something subtle is > going on and needs a comment. Since I lack the time to figure it out > now, mark it FIXME. I commented on that in another mail - either we have a leak on failure (and need the initializer only for pointers), or we should add an assert (and don't need the initializer at all), depending on what semantics we want to enforce on all handler functions that set their error parameter. Probably worth cleaning that up in a separate pre-req patch. > > Signed-off-by: Markus Armbruster > --- > scripts/qapi-commands.py | 19 +++++++------------ > scripts/qapi.py | 3 --- > 2 files changed, 7 insertions(+), 15 deletions(-) > Nice reduction in size. If the marshal code FIXME disappears due to a separate cleanup, then the rest of this commit is good to go: Reviewed-by: Eric Blake -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org