X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=perl_c.c;h=f11a2b5535553a588d81bdfcbd2f8d5c4c3cacdc;hb=f71f13bd5e85b5cca4e9c2e63bf9d9c3283d66cf;hp=3214e34bf8653eff826c664f7f71949ee9db1427;hpb=da563c98dbb391c4343bb3749ccd3b47a3cc425f;p=perl4caml.git diff --git a/perl_c.c b/perl_c.c index 3214e34..f11a2b5 100644 --- 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 @@ -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);