1TYPEMAP 2# Grr can't let it end in OBJ 'cause xsubpp would 3# s/OBJ$/REF/ that for the DESTROY function 4VI T_VIOBJNOMUNGE 5VI::OPT T_VIOBJREF 6VI::MAP T_VIOBJREF 7VI::MARK T_VIOBJREF 8VI::LINE T_VIOBJREF 9VI::TAGQ T_VITAGQ 10VI::TAGQ2 T_VITAGQ2 11AVREF T_AVREFREF 12 13INPUT 14T_AVREFREF 15 if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVAV) 16 $var = (AV *)SvRV($arg); 17 else 18 croak(\"$var is not a reference to an array\") 19T_VIOBJNOMUNGE 20 if (sv_isa($arg, \"VI\")) { 21 IV tmp = SvIV((SV*)SvRV($arg)); 22 $var = ($type) tmp; 23 if (!tmp) 24 croak(\"screen no longer exists\"); 25 } 26 else 27 croak(\"$var is not of type ${ntype}\") 28T_VIOBJREF 29 if (sv_isa($arg, \"${ntype}\")) { 30 IV tmp = SvIV((SV*)SvRV($arg)); 31 if (sv_isa((SV *)tmp, \"VI\")) { 32 IV tmp2 = SvIV((SV*)SvRV((SV *)tmp)); 33 $var = ($type) tmp2; 34 if (!tmp2) 35 croak(\"screen no longer exists\"); 36 } 37 else 38 croak(\"$var is not of type ${ntype}\"); 39 } 40 else 41 croak(\"$var is not of type ${ntype}\") 42T_VITAGQ 43 if (sv_isa($arg, \"VI::TAGQ\")) { 44 $var = ($type) SvIV((SV*)SvRV($arg)); 45 if ($var->tqp == 0) 46 croak(\"Tag queue invalidated\"); 47 } else 48 croak(\"$var is not of type ${ntype}\") 49T_VITAGQ2 50 if (sv_isa($arg, \"VI::TAGQ\")) { 51 $var = ($type) SvIV((SV*)SvRV($arg)); 52 } else 53 croak(\"$var is not of type ${ntype}\") 54 55OUTPUT 56T_VIOBJNOMUNGE 57 newVIrv($arg, $var); 58