Version 0.3.14 for release.
[perl4caml.git] / perl_c.c
index 3214e34..f11a2b5 100644 (file)
--- a/perl_c.c
+++ b/perl_c.c
@@ -1,6 +1,6 @@
 /* Interface to Perl from OCaml.
  * Copyright (C) 2003 Merjis Ltd.
- * $Id: perl_c.c,v 1.14 2004-02-03 12:38:57 rich Exp $
+ * $Id: perl_c.c,v 1.16 2004-11-03 14:15:18 rich Exp $
  */
 
 #include <stdio.h>
@@ -233,7 +233,7 @@ perl4caml_deref (value svv)
   CAMLlocal1 (rsvv);
   SV *sv = Sv_val (svv);
 
-  if (SvTYPE (sv) != SVt_RV)
+  if (!SvROK (sv))
     invalid_argument ("deref: SV is not a reference");
   switch (SvTYPE (SvRV (sv))) {
   case SVt_IV:
@@ -256,7 +256,7 @@ perl4caml_deref_array (value svv)
   CAMLlocal1 (ravv);
   SV *sv = Sv_val (svv);
 
-  if (SvTYPE (sv) != SVt_RV)
+  if (!SvROK (sv))
     invalid_argument ("deref_array: SV is not a reference");
   switch (SvTYPE (SvRV (sv))) {
   case SVt_PVAV:
@@ -275,13 +275,13 @@ perl4caml_deref_hash (value svv)
   CAMLlocal1 (rhvv);
   SV *sv = Sv_val (svv);
 
-  if (SvTYPE (sv) != SVt_RV)
-    invalid_argument ("deref_array: SV is not a reference");
+  if (!SvROK (sv))
+    invalid_argument ("deref_hash: SV is not a reference");
   switch (SvTYPE (SvRV (sv))) {
   case SVt_PVHV:
     break;
   default:
-    invalid_argument ("deref_array: SV is not a reference to a hash");
+    invalid_argument ("deref_hash: SV is not a reference to a hash");
   }
   rhvv = Val_hv ((HV *) SvRV (sv));
   CAMLreturn (rhvv);