Wrap the long list of (short) arguments in the byte-code compat function
bodies that we generate for methods with more than 5 parameters.
Effect on "ocaml/nbd-c.c":
@@ -3920,7 +3920,9 @@
value
nbd_internal_ocaml_nbd_aio_pread_structured_byte (value *argv, int argn)
{
- return nbd_internal_ocaml_nbd_aio_pread_structured (argv[0], argv[1], argv[2],
argv[3], argv[4], argv[5]);
+ return nbd_internal_ocaml_nbd_aio_pread_structured (argv[0], argv[1],
+ argv[2], argv[3],
+ argv[4], argv[5]);
}
value
@@ -4242,7 +4244,8 @@
value
nbd_internal_ocaml_nbd_aio_block_status_byte (value *argv, int argn)
{
- return nbd_internal_ocaml_nbd_aio_block_status (argv[0], argv[1], argv[2], argv[3],
argv[4], argv[5]);
+ return nbd_internal_ocaml_nbd_aio_block_status (argv[0], argv[1], argv[2],
+ argv[3], argv[4], argv[5]);
}
value
The patch is easiest to review with "git show -b".
Bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=2172516
Signed-off-by: Laszlo Ersek <lersek(a)redhat.com>
---
generator/OCaml.ml | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/generator/OCaml.ml b/generator/OCaml.ml
index a854afd56171..300c8a70d716 100644
--- a/generator/OCaml.ml
+++ b/generator/OCaml.ml
@@ -806,10 +806,13 @@ let
pr "nbd_internal_ocaml_nbd_%s_byte (value *argv, int argn)\n" name;
pr "{\n";
pr " return nbd_internal_ocaml_nbd_%s (" name;
- for i = 0 to num_args - 1 do
- if i > 0 then pr ", ";
- pr "argv[%d]" i
- done;
+ let print_args () =
+ for i = 0 to num_args - 1 do
+ if i > 0 then pr ", ";
+ pr "argv[%d]" i
+ done
+ in
+ pr_wrap ',' print_args;
pr ");\n";
pr "}\n";
pr "\n"