|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4/6] libxl_qmp: Use qmp_parameters_* functions for param list of a QMP command.
Anthony PERARD writes ("[PATCH 4/6] libxl_qmp: Use qmp_parameters_* functions
for param list of a QMP command."):
> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
Thanks:
> - parameters = flexarray_make(6, 1);
> - flexarray_append_pair(parameters, "driver", "xen-pci-passthrough");
> - flexarray_append_pair(parameters, "id",
> + args = qmp_parameters_add_string(gc, NULL, "driver",
> "xen-pci-passthrough");
> + if (!args)
> + goto error_nomem;
This is a rather clumsy use pattern, threading args through all the
time. If nothing else it might lead to mistakes because the first
call takes NULL whereas subsequent calls take args:
> + args = qmp_parameters_add_string(gc, args, "id",
> libxl__sprintf(gc, PCI_PT_QDEV_ID,
> pcidev->bus, pcidev->dev,
> pcidev->func));
How about inventing functions that would allow
libxl__json_object *args = NULL;
libxl__qmp_param_add(gc, &args, "id", libxl__qmp_sprintf(gc, ....);
with perhaps a helper macro that allows
QMP_PARAM_SPRINTF(args, "id", PCI_PT_QDEV_ID,
pcidev->bus, pcidev->dev, pcidev->func));
?
And again there's a lot of unnecessary error handling.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |