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
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
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
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
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 = *($type *) tmp;
+ $var = *INT2PTR($type *, tmp);
}
else
Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
T_REF_IV_PTR
if (sv_isa($arg, \"${ntype}\")) {
IV tmp = SvIV((SV*)SvRV($arg));
- $var = ($type) tmp;
+ $var = INT2PTR($type, tmp);
}
else
Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
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