Re: [PATCH] Re: [PATCH] Re: [Another bug] Re: about Storable perl module (again)
[p5sagit/p5-mst-13.2.git] / ext / B / typemap
index 7206a6a..bafba1c 100644 (file)
@@ -4,11 +4,10 @@ B::OP         T_OP_OBJ
 B::UNOP                T_OP_OBJ
 B::BINOP       T_OP_OBJ
 B::LOGOP       T_OP_OBJ
-B::CONDOP      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
@@ -31,12 +30,13 @@ B::IO               T_SV_OBJ
 B::MAGIC       T_MG_OBJ
 SSize_t                T_IV
 STRLEN         T_IV
+PADOFFSET      T_UV
 
 INPUT
 T_OP_OBJ
        if (SvROK($arg)) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = ($type) tmp;
+           $var = INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not a reference\")
@@ -44,7 +44,7 @@ T_OP_OBJ
 T_SV_OBJ
        if (SvROK($arg)) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = ($type) tmp;
+           $var = INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not a reference\")
@@ -52,18 +52,18 @@ T_SV_OBJ
 T_MG_OBJ
        if (SvROK($arg)) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = ($type) tmp;
+           $var = INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not a reference\")
 
 OUTPUT
 T_OP_OBJ
-       sv_setiv(newSVrv($arg, cc_opclassname((OP*)$var)), (IV)$var);
+       sv_setiv(newSVrv($arg, cc_opclassname(aTHX_ (OP*)$var)), PTR2IV($var));
 
 T_SV_OBJ
-       make_sv_object(($arg), (SV*)($var));
+       make_sv_object(aTHX_ ($arg), (SV*)($var));
 
 
 T_MG_OBJ
-       sv_setiv(newSVrv($arg, "B::MAGIC"), (IV)$var);
+       sv_setiv(newSVrv($arg, "B::MAGIC"), PTR2IV($var));