Re: Compress::Zlib, pack "C" and utf-8 [PATCH]
[p5sagit/p5-mst-13.2.git] / ext / B / typemap
index bafba1c..b94d2a6 100644 (file)
@@ -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
 
@@ -26,12 +25,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 +60,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 +86,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));