On Fri, Sep 11, 2009 at 10:56:57AM +0100, Matthew Booth wrote:
Parsed string lists are allocated by malloc, but were never freed.
+ (* XXX: There must be a cleaner way to write this *)
+ iteri (
+ fun i ->
+ function
+ | StringList name | DeviceList name ->
+ pr " char **%s_i = %s;\n" name name;
In guestfish there is a function free_strings which does what you
want, so just call:
free_strings (%s);
instead of the loop.
+ | _ -> ();
Using '_' to match anything is slightly dangerous. It means that if
we added any more list-type cases to the type in the future
[eg. PathList], then the OCaml compiler wouldn't give us a warning
about not having implemented them in this code, which could lead to
misgenerated code.
The alternative is to just list all the other cases:
| String _ | Bool _ | (*etc*) -> ()
Looks fine otherwise.
Rich.
--
Richard Jones, Emerging Technologies, Red Hat
http://et.redhat.com/~rjones
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages.
http://et.redhat.com/~rjones/libguestfs/
See what it can do:
http://et.redhat.com/~rjones/libguestfs/recipes.html