TYPEMAP void * T_VPTR char_len * T_CHAR_LEN const char_len * T_CONST_CHAR_LEN ###################################################################### OUTPUT T_POOLOBJ sv_setref_pv($arg, \"${ntype}\", (void*)$var); T_APACHEOBJ sv_setref_pv($arg, \"${ntype}\", (void*)$var); T_HASHOBJ $arg = modperl_hash_tie(aTHX_ \"${ntype}\", $arg, $var); T_VPTR sv_setiv($arg, PTR2IV($var)); T_UVPTR sv_setuv($arg, PTR2UV($var)); T_APR_TIME sv_setnv($arg, (NV)(apr_time_sec($var))); T_UVOBJ modperl_perl_sv_setref_uv(aTHX_ $arg, \"${ntype}\", (UV)$var); ###################################################################### INPUT T_PTROBJ if (SvROK($arg) && sv_derived_from($arg, \"${ntype}\")) { IV tmp = SvIV((SV*)SvRV($arg)); $var = INT2PTR($type, tmp); } else { Perl_croak(aTHX_ SvROK($arg) ? \"$var is not of type ${ntype}\" : \"$var is not a blessed reference\"); } T_POOLOBJ if (SvROK($arg) && sv_derived_from($arg, \"${ntype}\")) { IV tmp = SvIV((SV*)SvRV($arg)); if (tmp == 0) { Perl_croak(aTHX_ \"invalid pool object (already destroyed?)\"); } $var = INT2PTR($type, tmp); } else { Perl_croak(aTHX_ SvROK($arg) ? \"$var is not of type ${ntype}\" : \"$var is not a blessed reference\"); } T_UVOBJ if (SvROK($arg) && sv_derived_from($arg, \"${ntype}\")) { UV tmp = SvUV((SV*)SvRV($arg)); $var = INT2PTR($type, tmp); } else { Perl_croak(aTHX_ SvROK($arg) ? \"$var is not of type ${ntype}\" : \"$var is not a blessed reference\"); } T_APACHEOBJ $var = modperl_xs_sv2request_rec(aTHX_ $arg, \"$ntype\", cv) T_HASHOBJ $var = modperl_hash_tied_object(aTHX_ \"${ntype}\", $arg) T_APACHEREF $var = modperl_xs_sv2request_rec(aTHX_ $arg, \"$ntype\", cv) T_VPTR $var = INT2PTR($type, SvIV(SvROK($arg) ? SvRV($arg) : $arg)) T_UVPTR $var = INT2PTR($type, SvUV(SvROK($arg) ? SvRV($arg) : $arg)) T_APR_TIME $var = (apr_time_t)(apr_time_from_sec(SvNV($arg))) T_CHAR_LEN $var = (char *)SvPV($arg, ${var}_len) T_CONST_CHAR_LEN $var = (const char *)SvPV($arg, ${var}_len)