[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/6] libxl_qmp: Introduces helpers to create an argument list.
Anthony PERARD writes ("[PATCH 3/6] libxl_qmp: Introduces helpers to create an argument list."): > diff --git a/tools/libxl/libxl_qmp.c b/tools/libxl/libxl_qmp.c > index e33b130..edbd3b4 100644 > --- a/tools/libxl/libxl_qmp.c > +++ b/tools/libxl/libxl_qmp.c > @@ -623,6 +623,92 @@ static void qmp_free_handler(libxl__qmp_handler *qmp) > free(qmp); > } > > +#if 0 > +/* > + * QMP Parameters Helpers > + * If a function fail to allocate memomy for one more parameters, then > + * the param is free, even if it's come from a caller. Allocation failures are supposed to be fatal nowadays, so this case doesn't need to exit. > +static libxl__json_object *qmp_parameters_common(libxl__gc *gc, > + libxl__json_object *param, > + const char *name, > + libxl__json_object *obj) > +{ > + // check that every caller of this free the tree ! We use /* ... */. I'm not sure what the purpose of this comment is. Do you mean "this is a fixme" ? Or is that intended to be a doc comment saying that callers end up owning some object ? (The return value?) Why is this object not from the gc ? > + arg = calloc(1, sizeof (libxl__json_map_node)); These allcations should all use the appropriate libxl helpers, probably. (Throughout all your patches.) I'm not sure exactly what this function _does_, though. It prepares some "common" parameters for a qmp call, evidently, but what common parameters ? OTOH the code seems to add a single parameter to the map ? > +static libxl__json_object *qmp_parameters_add_string(libxl__gc *gc, > + libxl__json_object > *param, > + const char *name, > + const char *argument) > +{ > + libxl__json_object *obj; > + > + obj = libxl__json_object_alloc(gc, JSON_STRING); > + if (!obj) > + goto error_nomem; > + obj->u.string = strdup(argument); > + if (!obj->u.string) > + goto error_nomem; > + > + param = qmp_parameters_common(gc, param, name, obj); > + if (!param) > + goto error_nomem; > + > + return param; > +error_nomem: > + libxl__json_object_free(gc, param); > + libxl__json_object_free(gc, obj); > + return NULL; > +} This is very similar to the same function for bool. Perhaps it would be better to separate out the type-specific object creation ? Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |