X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Ftypemap;h=b8e1a4d50bcce32e036f6efae6b8eb48b8f398ab;hb=bf00339bb4a4582979bfe26e714b9f1f6e8a0870;hp=ce9cd7b302275037888b39ab142e1f0b8db39590;hpb=1b64d24db900d804a3619e9e30d55c54c165e40a;p=catagits%2Ffcgi2.git diff --git a/perl/typemap b/perl/typemap index ce9cd7b..b8e1a4d 100644 --- a/perl/typemap +++ b/perl/typemap @@ -1,5 +1,8 @@ TYPEMAP -FCGI T_FCGIOBJNOMUNGE +FCGI T_FCGIOBJNOMUNGE +FCGI::Stream T_FCGISTREAM +GLOBREF T_GLOBREF +HASHREF T_HASHREF INPUT T_FCGIOBJNOMUNGE @@ -7,3 +10,18 @@ T_FCGIOBJNOMUNGE $var = ($type) SvIV((SV*)SvRV($arg)); } else croak(\"$var is not of type ${ntype}\") +T_FCGISTREAM + if (sv_isa($arg, \"FCGI::Stream\")) { + $var = ($type) SvIV((SV*)SvRV($arg)); + } else + croak(\"$var is not of type ${ntype}\") +T_GLOBREF + if (SvROK($arg) && isGV(SvRV($arg))) { + $var = (GV*)SvRV($arg); + } else + croak(\"$var is not a GLOB reference\"); +T_HASHREF + if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV) { + $var = (HV*)SvRV($arg); + } else + croak(\"$var is not a reference to a hash\");