[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH V2 1/9] libxl_json: Use libxl alloc function with NOGC.



On Mon, 2012-09-17 at 19:22 +0100, Anthony PERARD wrote:
> This patch makes use of the libxl allocation API and removes the check for
> allocation failure.
> 
> Also we don't use GC with a json_object because this structure use flexarray
> and the latter does not use the gc.

It's not an uncommon pattern in libxl for the content of the flexarray
to be gc'd but the actual array itself to be explicitly freed, often
implicitly via flexarray_contents(), if that's what you want.

If we wanted I don't think there's any reason we couldn't make the
flexarray take a gc and use it, that would probably make things simpler
here and elsewhere and reduce the manual memory management (unless you
actually want/need that for some other reason).

> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> ---
>  tools/libxl/libxl_json.c | 37 +++++++++++--------------------------
>  1 file changed, 11 insertions(+), 26 deletions(-)
> 
> diff --git a/tools/libxl/libxl_json.c b/tools/libxl/libxl_json.c
> index caa8312..9c3dca2 100644
> --- a/tools/libxl/libxl_json.c
> +++ b/tools/libxl/libxl_json.c
> @@ -210,12 +210,7 @@ static libxl__json_object *json_object_alloc(libxl__gc 
> *gc,
>  {
>      libxl__json_object *obj;
>  
> -    obj = calloc(1, sizeof (libxl__json_object));
> -    if (obj == NULL) {
> -        LIBXL__LOG_ERRNO(libxl__gc_owner(gc), LIBXL__LOG_ERROR,
> -                         "Failed to allocate a libxl__json_object");
> -        return NULL;
> -    }
> +    obj = libxl__zalloc(NOGC, sizeof(*obj));

So you now ignore the gc passed in, which in any case you have now
caused to always be NOGC? Seems a bit round-about to me, why not use the
gc parameter here?

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.