This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
When Gconvert is a macro around sprintf with a .* format we need
[perl5.git] / lib / ExtUtils / typemap
index 08ca108..2a53b62 100644 (file)
@@ -14,12 +14,13 @@ const char *                T_PV
 caddr_t                        T_PV
 wchar_t *              T_PV
 wchar_t                        T_IV
+# bool_t is defined in <rpc/rpc.h>
 bool_t                 T_IV
-size_t                 T_IV
+size_t                 T_UV
 ssize_t                        T_IV
 time_t                 T_NV
 unsigned long *                T_OPAQUEPTR
-char **                        T_PACKED
+char **                        T_PACKEDARRAY
 void *                 T_PTR
 Time_t *               T_PV
 SV *                   T_SV
@@ -34,7 +35,7 @@ NV                      T_NV
 I32                    T_IV
 I16                    T_IV
 I8                     T_IV
-STRLEN                 T_IV
+STRLEN                 T_UV
 U32                    T_U_LONG
 U16                    T_U_SHORT
 U8                     T_UV
@@ -99,7 +100,7 @@ T_LONG
 T_U_LONG
        $var = (unsigned long)SvUV($arg)
 T_CHAR
-       $var = (char)*SvPV($arg,PL_na)
+       $var = (char)*SvPV_nolen($arg)
 T_U_CHAR
        $var = (unsigned char)SvUV($arg)
 T_FLOAT
@@ -109,7 +110,7 @@ T_NV
 T_DOUBLE
        $var = (double)SvNV($arg)
 T_PV
-       $var = ($type)SvPV($arg,PL_na)
+       $var = ($type)SvPV_nolen($arg)
 T_PTR
        $var = INT2PTR($type,SvIV($arg))
 T_PTRREF
@@ -120,7 +121,7 @@ T_PTRREF
        else
            Perl_croak(aTHX_ \"$var is not a reference\")
 T_REF_IV_REF
-       if (sv_isa($arg, \"${type}\")) {
+       if (sv_isa($arg, \"${ntype}\")) {
            IV tmp = SvIV((SV*)SvRV($arg));
            $var = *INT2PTR($type *, tmp);
        }
@@ -163,9 +164,9 @@ T_REFOBJ
        else
            Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
 T_OPAQUE
-       $var NOT IMPLEMENTED
+       $var = *($type *)SvPV_nolen($arg)
 T_OPAQUEPTR
-       $var = ($type)SvPV($arg,PL_na)
+       $var = ($type)SvPV_nolen($arg)
 T_PACKED
        $var = XS_unpack_$ntype($arg)
 T_PACKEDARRAY