[Libguestfs] [PATCH v3 1/3] Revert "Revert "daemon: implement OptString for OCaml APIs""

Pino Toscano ptoscano at redhat.com
Mon Mar 9 17:14:06 UTC 2020


Val_optstring will be used by the next commit.  Unfortunately, this
breaks bisection when building with -Werror.

This reverts commit ca8f8afcc5b5b77be69f5b353ed8aef3fae1883d.
---
 generator/daemon.ml | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/generator/daemon.ml b/generator/daemon.ml
index 9edef462c..8f3ee08a0 100644
--- a/generator/daemon.ml
+++ b/generator/daemon.ml
@@ -600,6 +600,22 @@ let generate_daemon_caml_stubs () =
 #include \"actions.h\"
 #include \"daemon-c.h\"
 
+static CAMLprim value
+Val_optstring (const char *s)
+{
+  CAMLparam0 ();
+  CAMLlocal2 (optv, v);
+
+  if (s) {		/* Return Some val */
+    v = caml_copy_string (s);
+    optv = caml_alloc (1, 0);
+    Field (optv, 0) = v;
+  } else		/* Return None */
+    optv = Val_int (0);
+
+  CAMLreturn (optv);
+}
+
 ";
 
   (* Implement code for returning structs and struct lists. *)
@@ -797,7 +813,7 @@ let generate_daemon_caml_stubs () =
            | String ((Mountable|Mountable_or_Path), n) ->
               pr "guestfs_int_daemon_copy_mountable (%s)" n
            | String _ -> assert false
-           | OptString _ -> assert false
+           | OptString n -> pr "Val_optstring (%s)" n
            | StringList _ -> assert false
            | BufferIn _ -> assert false
            | Pointer _ -> assert false
-- 
2.24.1




More information about the Libguestfs mailing list