|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 01 of 23] libxl: Document _init/_dispose/_setdefault functions
Ian Campbell writes ("[Xen-devel] [PATCH 01 of 23] libxl: Document
_init/_dispose/_setdefault functions"):
> + * void libxl_<type>_init_<subfield>(<type> *p, subfield):
> + *
> + * Initialise those parts of "p" which are not initialised by the
> + * main init function due to the unknown value of "subfield". Sets
> + * p->subfield as well as initialising any fields to their default
> + * values.
> + *
> + * p->subfield must not have been previously initialised.
> + *
> + * This method is provided for any aggregate type which is used as
> + * an input parameter.
This final sentence needs a qualification I think.
> + * void libxl_<type>_dispose(instance *p):
> + *
> + * Frees any dynamically allocated memory used by the members of
> + * "p" but not the storage used by "p" itself (this allows for the
> + * allocation of arrays of types and for the composition of types).
> + *
> + * In general this method is only provided for types where memory
> + * can be dynamically allocated as part of that type.
Is whether dynamic allocation may happen a very stable part of the
libxl API ? If we add a dynamically allocated member to one of these
structs, don't we inevitably introduce a memory leak into all
callers ?
I think it would be better to provide a dispose function corresponding
to every init function.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |