ffi_pl_string T_FFI_PL_STRING
ffi_pl_type* T_FFI_PL_TYPE
ffi_pl_function* T_FFI_PL_FUNCTION
ffi_pl_closure* T_FFI_PL_CLOSURE_DATA
ffi_pl_arguments* T_FFI_PL_ARGUMENTS
OUTPUT
T_FFI_PL_STRING
$var != NULL ? sv_setpv((SV*)$arg, $var) : sv_setsv((SV*)$arg, &PL_sv_undef);
T_FFI_PL_TYPE
sv_setref_pv($arg, \"FFI::Platypus::Type\", (void *) $var);
T_FFI_PL_FUNCTION
sv_setref_pv($arg, \"FFI::Platypus::Function::Function\", (void *) $var);
T_FFI_PL_CLOSURE_DATA
sv_setref_pv($arg, \"FFI::Platypus::ClosureData\", (void *) $var);
INPUT
T_FFI_PL_STRING
$var = SvOK($arg) ? ($type)SvPV_nolen($arg) : NULL;
T_FFI_PL_TYPE
if(sv_isobject($arg) && sv_derived_from($arg, \"FFI::Platypus::Type\"))
$var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
else
Perl_croak(aTHX_ \"$var is not of type FFI::Platypus::Type\");
T_FFI_PL_FUNCTION
if(sv_isobject($arg) && sv_derived_from($arg, \"FFI::Platypus::Function::Function\"))
$var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
else
Perl_croak(aTHX_ \"$var is not of type FFI::Platypus::Function::Function\");
T_FFI_PL_CLOSURE_DATA
if(sv_isobject($arg) && sv_derived_from($arg, \"FFI::Platypus::ClosureData\"))
$var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
else
Perl_croak(aTHX_ \"$var is not of type FFI::Platypus::ClosureData\");
T_FFI_PL_ARGUMENTS
if(sv_isobject($arg) && sv_derived_from($arg, \"FFI::Platypus::API::ARGV\"))
$var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
else
Perl_croak(aTHX_ \"$var is not of type FFI::Platypus::API::ARGV\");