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.