diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2011-04-04 12:48:02 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2011-04-04 12:48:02 +0100 |
commit | afa17809599f3ebc82c3feef025ca812fb26c9fe (patch) | |
tree | 37aa7c00df2f77617c88e6e16857293fec9f665d /generator | |
parent | 8e61d636bb621e5e2bf6a2f4eb95329ceb2b9890 (diff) | |
download | libguestfs-afa17809599f3ebc82c3feef025ca812fb26c9fe.tar.gz libguestfs-afa17809599f3ebc82c3feef025ca812fb26c9fe.tar.xz libguestfs-afa17809599f3ebc82c3feef025ca812fb26c9fe.zip |
python: Convert any iterable argument to a list (RHBZ#693324).
Thanks to Erez Shinan.
Diffstat (limited to 'generator')
-rw-r--r-- | generator/generator_python.ml | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/generator/generator_python.ml b/generator/generator_python.ml index 937c092d..9514e4ad 100644 --- a/generator/generator_python.ml +++ b/generator/generator_python.ml @@ -1,5 +1,5 @@ (* libguestfs - * Copyright (C) 2009-2010 Red Hat Inc. + * Copyright (C) 2009-2011 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -647,6 +647,18 @@ class GuestFS: let doc = String.concat "\n " doc in pr " u\"\"\"%s\"\"\"\n" doc; ); + (* Callers might pass in iterables instead of plain lists; + * convert those to plain lists because the C side of things + * cannot deal with iterables. (RHBZ#693306). + *) + List.iter ( + function + | Pathname _ | Device _ | Dev_or_Path _ | String _ | Key _ + | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ | Int64 _ + | BufferIn _ | Pointer _ -> () + | StringList n | DeviceList n -> + pr " %s = list (%s)\n" n n + ) args; pr " return libguestfsmod.%s (self._o" name; List.iter (fun arg -> pr ", %s" (name_of_argt arg)) (args@optargs); pr ")\n\n"; |