Fix use of CAMLparam etc macros.
authorRichard W.M. Jones <rjones@redhat.com>
Sun, 6 Nov 2016 19:09:58 +0000 (19:09 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Sun, 6 Nov 2016 19:09:58 +0000 (19:09 +0000)
This was broken previously, and OCaml 4.04 revealed it.

perl_c.c

index 66f2959..ce53667 100644 (file)
--- a/perl_c.c
+++ b/perl_c.c
@@ -719,11 +719,13 @@ perl4caml_get_hv (value optcreate, value name)
 static inline void
 check_perl_failure ()
 {
+  CAMLparam0 ();
+  CAMLlocal1 (errv);
+
   SV *errsv = get_sv ("@", TRUE);
 
   if (SvTRUE (errsv))          /* Equivalent of $@ in Perl. */
     {
-      CAMLlocal1 (errv);
       STRLEN n_a;
       const char *err = SvPV (errsv, n_a);
 
@@ -731,6 +733,8 @@ check_perl_failure ()
 
       caml_raise_with_arg (*caml_named_value ("perl4caml_perl_failure"), errv);
     }
+
+  CAMLreturn0;
 }
 
 CAMLprim value