X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FB%2Ftypemap;h=7d14ba6d1206ed91caf22f0588eea51e183fec90;hb=3826db83dfffbbaee62e51e9a0f052b407c24562;hp=febadf8d62f304cef5f1d79862f5f945d60603d5;hpb=5bc28da93666e223bb56098f72517273bc8bcbf9;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/B/typemap b/ext/B/typemap index febadf8..7d14ba6 100644 --- a/ext/B/typemap +++ b/ext/B/typemap @@ -7,9 +7,8 @@ B::LOGOP T_OP_OBJ B::LISTOP T_OP_OBJ B::PMOP T_OP_OBJ B::SVOP T_OP_OBJ -B::GVOP T_OP_OBJ +B::PADOP T_OP_OBJ B::PVOP T_OP_OBJ -B::CVOP T_OP_OBJ B::LOOP T_OP_OBJ B::COP T_OP_OBJ @@ -18,6 +17,7 @@ B::PV T_SV_OBJ B::IV T_SV_OBJ B::NV T_SV_OBJ B::PVMG T_SV_OBJ +B::REGEXP T_SV_OBJ B::PVLV T_SV_OBJ B::BM T_SV_OBJ B::RV T_SV_OBJ @@ -26,10 +26,15 @@ B::CV T_SV_OBJ B::HV T_SV_OBJ B::AV T_SV_OBJ B::IO T_SV_OBJ +B::FM T_SV_OBJ B::MAGIC T_MG_OBJ SSize_t T_IV -STRLEN T_IV +STRLEN T_UV +PADOFFSET T_UV + +B::HE T_HE_OBJ +B::RHE T_RHE_OBJ INPUT T_OP_OBJ @@ -56,6 +61,22 @@ T_MG_OBJ else croak(\"$var is not a reference\") +T_HE_OBJ + if (SvROK($arg)) { + IV tmp = SvIV((SV*)SvRV($arg)); + $var = INT2PTR($type,tmp); + } + else + croak(\"$var is not a reference\") + +T_RHE_OBJ + if (SvROK($arg)) { + IV tmp = SvIV((SV*)SvRV($arg)); + $var = INT2PTR($type,tmp); + } + else + croak(\"$var is not a reference\") + OUTPUT T_OP_OBJ sv_setiv(newSVrv($arg, cc_opclassname(aTHX_ (OP*)$var)), PTR2IV($var)); @@ -66,3 +87,9 @@ T_SV_OBJ T_MG_OBJ sv_setiv(newSVrv($arg, "B::MAGIC"), PTR2IV($var)); + +T_HE_OBJ + sv_setiv(newSVrv($arg, "B::HE"), PTR2IV($var)); + +T_RHE_OBJ + sv_setiv(newSVrv($arg, "B::RHE"), PTR2IV($var));