Matthew Booth
2012-Jan-17 13:48 UTC
[Libguestfs] [PATCH 1/2] c: NFC Remove redundant parentheses
---
generator/generator_c.ml | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/generator/generator_c.ml b/generator/generator_c.ml
index 4324ec0..9cfb2b7 100644
--- a/generator/generator_c.ml
+++ b/generator/generator_c.ml
@@ -1187,7 +1187,7 @@ trace_send_line (guestfs_h *g)
let n = name_of_optargt argt in
let uc_shortname = String.uppercase shortname in
let uc_n = String.uppercase n in
- pr " if ((optargs->bitmask &
GUESTFS_%s_%s_BITMASK))\n"
+ pr " if (optargs->bitmask &
GUESTFS_%s_%s_BITMASK)\n"
uc_shortname uc_n;
(match argt with
| OBool n
--
1.7.7.5
Matthew Booth
2012-Jan-17 13:48 UTC
[Libguestfs] [PATCH 2/2] c: Allow NULL optargs to be passed to _argv calls
Previously, passing NULL optargs to an _argv call resulted in a segfault. This
change causes NULL optargs to be interpreted as no optargs, and to be correctly
handled accordingly.
---
generator/generator_c.ml | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/generator/generator_c.ml b/generator/generator_c.ml
index 9cfb2b7..c6962f5 100644
--- a/generator/generator_c.ml
+++ b/generator/generator_c.ml
@@ -994,6 +994,16 @@ trace_send_line (guestfs_h *g)
indent shortname (string_of_errcode errcode)
in
+ let handle_null_optargs optargs shortname + if optargs <> [] then (
+ pr " struct guestfs_%s_argv optargs_null;\n" shortname;
+ pr " if (!optargs) {\n";
+ pr " optargs_null.bitmask = 0;\n";
+ pr " optargs = &optargs_null;\n";
+ pr " }\n\n";
+ )
+ in
+
(* For non-daemon functions, generate a wrapper around each function. *)
List.iter (
fun (shortname, (ret, _, optargs as style), _, _, _, _, _) ->
@@ -1006,6 +1016,9 @@ trace_send_line (guestfs_h *g)
~handle:"g" ~prefix:"guestfs_"
~suffix:"_argv" ~optarg_proto:Argv
shortname style;
pr "{\n";
+
+ handle_null_optargs optargs shortname;
+
pr " int trace_flag = g->trace;\n";
pr " FILE *trace_fp;\n";
(match ret with
@@ -1071,6 +1084,8 @@ trace_send_line (guestfs_h *g)
pr "{\n";
+ handle_null_optargs optargs shortname;
+
(match args with
| [] -> ()
| _ -> pr " struct %s_args args;\n" name
--
1.7.7.5
Richard W.M. Jones
2012-Jan-17 14:01 UTC
[Libguestfs] [PATCH 1/2] c: NFC Remove redundant parentheses
On Tue, Jan 17, 2012 at 01:48:47PM +0000, Matthew Booth wrote:> --- > generator/generator_c.ml | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/generator/generator_c.ml b/generator/generator_c.ml > index 4324ec0..9cfb2b7 100644 > --- a/generator/generator_c.ml > +++ b/generator/generator_c.ml > @@ -1187,7 +1187,7 @@ trace_send_line (guestfs_h *g) > let n = name_of_optargt argt in > let uc_shortname = String.uppercase shortname in > let uc_n = String.uppercase n in > - pr " if ((optargs->bitmask & GUESTFS_%s_%s_BITMASK))\n" > + pr " if (optargs->bitmask & GUESTFS_%s_%s_BITMASK)\n" > uc_shortname uc_n; > (match argt with > | OBool nNACK. I believe this avoids a gcc warning where it's complaining that you've "mistakenly" written if (a & b) instead of if (a && b). Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones New in Fedora 11: Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 70 libraries supprt'd http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw
Possibly Parallel Threads
- [PATCH 0/6] Allow non-optargs functions to gain optional arguments.
- [PATCH 1/2] generator: Rename java_structs to camel_structs to better reflect their purpose
- [PATCH 1/2] gobject: Use generator_built macro to ensure generated files are rebuilt properly.
- [PATCH 0/7] Add tar compress, numericowner, excludes flags.
- [PATCH 1/4] ocaml: Add -Wno-missing-field-initializers to avoid a warning.