[Libguestfs] [PATCH] python: Fix bug in code generator
Richard W.M. Jones
rjones at redhat.com
Fri Apr 1 16:15:33 UTC 2016
On Fri, Apr 01, 2016 at 06:59:39PM +0300, Matteo Cafasso wrote:
> When a struct containing FChar fields is defined
> in generator/structs.ml, the Python code generator will generate
> code referencing a dirent struct instead of the correct one
> thus breaking at compile time.
>
> This bug was left unnoticed because the dirent struct is the only
> one using FChar fields. Yet it prevents any other struct
> from using such fields.
>
> Signed-off-by: Matteo Cafasso <noxdafox at gmail.com>
> ---
> generator/python.ml | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/generator/python.ml b/generator/python.ml
> index 9663fb4..9d9dc4a 100644
> --- a/generator/python.ml
> +++ b/generator/python.ml
> @@ -225,10 +225,12 @@ put_table (char * const * const argv)
> | name, FChar ->
> pr "#ifdef HAVE_PYSTRING_ASSTRING\n";
> pr " PyDict_SetItemString (dict, \"%s\",\n" name;
> - pr " PyString_FromStringAndSize (&dirent->%s, 1));\n" name;
> + pr " PyString_FromStringAndSize (&%s->%s, 1));\n"
> + typ name;
> pr "#else\n";
> pr " PyDict_SetItemString (dict, \"%s\",\n" name;
> - pr " PyUnicode_FromStringAndSize (&dirent->%s, 1));\n" name;
> + pr " PyUnicode_FromStringAndSize (&%s->%s, 1));\n"
> + typ name;
> pr "#endif\n"
> ) cols;
> pr " return dict;\n";
Oops. Thanks - I've pushed this.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
More information about the Libguestfs
mailing list