[Libguestfs] [libnbd PATCH 04/23] generator: split "int64_from_uint32_array" calls in "ocaml/nbd-c.c"

Laszlo Ersek lersek at redhat.com
Tue Apr 25 07:10:48 UTC 2023


Best explained with the diff that results in the generated "ocaml/nbd-c.c"
source file:

> --- old 2023-04-21 10:44:30.192602608 +0200
> +++ new 2023-04-21 10:51:46.582658399 +0200
> @@ -205,7 +205,10 @@ extent_wrapper_locked (void *user_data,
>
>    metacontextv = caml_copy_string (metacontext);
>    offsetv = caml_copy_int64 (offset);
> -  entriesv = nbd_internal_ocaml_alloc_int64_from_uint32_array (entries, nr_entries);
> +  entriesv = nbd_internal_ocaml_alloc_i64_from_u32_array (
> +               entries,
> +               nr_entries
> +             );
>    errorv = caml_alloc_tuple (1);
>    Store_field (errorv, 0, Val_int (*error));
>    args[0] = metacontextv;

(1) "entries" is an API parameter name (of CBArrayAndLen type), so it can
    be arbitrarily long; pre-patch, it is embedded three times in the same
    line. Place each occurrence on a separate line.

(2) nbd_internal_ocaml_alloc_int64_from_uint32_array() is a humongous
    function name even for libnbd standards, and even after change (1), it
    will share a generated line with one instance of the API parameter
    name. Rename "int64" to "i64" and "uint32" to "u32" in the function's
    name, to save some characters.

While at it, drop a superfluous (harmless) semicolon, dating back to
commit 9564dc52abac ("generator: Add OCaml bindings.", 2019-05-30).

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2172516
Signed-off-by: Laszlo Ersek <lersek at redhat.com>
---
 generator/OCaml.ml | 9 +++++++--
 ocaml/helpers.c    | 2 +-
 ocaml/nbd-c.h      | 3 +--
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/generator/OCaml.ml b/generator/OCaml.ml
index fc29a6a43281..94ab1d589738 100644
--- a/generator/OCaml.ml
+++ b/generator/OCaml.ml
@@ -524,8 +524,13 @@ let
   List.iter (
     function
     | CBArrayAndLen (UInt32 n, count) ->
-       pr "  %sv = nbd_internal_ocaml_alloc_int64_from_uint32_array (%s, %s);\n"
-         n n count;
+       pr "  %sv = " n;
+       let fncol = output_column () in
+       let indent = spaces fncol in
+       pr "nbd_internal_ocaml_alloc_i64_from_u32_array (\n";
+       pr "%s  %s,\n" indent n;
+       pr "%s  %s\n" indent count;
+       pr "%s);\n" indent
     | CBBytesIn (n, len) ->
        pr "  %sv = caml_alloc_initialized_string (%s, %s);\n" n len n
     | CBInt n | CBUInt n ->
diff --git a/ocaml/helpers.c b/ocaml/helpers.c
index 8b4b6693a8f1..3361a6968a23 100644
--- a/ocaml/helpers.c
+++ b/ocaml/helpers.c
@@ -118,7 +118,7 @@ nbd_internal_ocaml_string_list (value ssv)
 }
 
 value
-nbd_internal_ocaml_alloc_int64_from_uint32_array (uint32_t *a, size_t len)
+nbd_internal_ocaml_alloc_i64_from_u32_array (uint32_t *a, size_t len)
 {
   CAMLparam0 ();
   CAMLlocal2 (v, rv);
diff --git a/ocaml/nbd-c.h b/ocaml/nbd-c.h
index 8f46415ab16f..f853c84a7756 100644
--- a/ocaml/nbd-c.h
+++ b/ocaml/nbd-c.h
@@ -61,8 +61,7 @@ extern void nbd_internal_ocaml_raise_error (void) Noreturn;
 extern void nbd_internal_ocaml_raise_closed (const char *func) Noreturn;
 
 extern const char **nbd_internal_ocaml_string_list (value);
-extern value nbd_internal_ocaml_alloc_int64_from_uint32_array (uint32_t *,
-                                                               size_t);
+extern value nbd_internal_ocaml_alloc_i64_from_u32_array (uint32_t *, size_t);
 extern void nbd_internal_unix_sockaddr_to_sa (value, struct sockaddr_storage *,
                                               socklen_t *);
 extern void nbd_internal_ocaml_exception_in_wrapper (const char *, value);



More information about the Libguestfs mailing list