X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FB%2Ftypemap;h=7d14ba6d1206ed91caf22f0588eea51e183fec90;hb=3826db83dfffbbaee62e51e9a0f052b407c24562;hp=bafba1c8e4b5eadea4f580a2fe4bf562eadb25b9;hpb=1d7c184104c076988718a01b77c8706aae05b092;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/B/typemap b/ext/B/typemap index bafba1c..7d14ba6 100644 --- a/ext/B/typemap +++ b/ext/B/typemap @@ -9,7 +9,6 @@ B::PMOP T_OP_OBJ B::SVOP 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,12 +26,16 @@ 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 if (SvROK($arg)) { @@ -57,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)); @@ -67,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));