Thread T_XSOBJ INPUT T_XSOBJ STMT_START { MAGIC *mg; SV *sv = ($arg); if (!sv_isobject(sv)) croak(\"$var is not an object\"); if (!SvRMAGICAL(sv) || !(mg = mg_find(sv, '~'))) croak(\"$arg is a counterfeit ${ntype} object\"); $var = ($type) SvPVX(mg->mg_obj); DEBUG_L(PerlIO_printf(PerlIO_stderr(), \"XSUB ${func_name}: %p\\n\", $var);) } STMT_END T_IVREF if (SvROK($arg)) $var = ($type) SvIV((SV*)SvRV($arg)); else croak(\"$var is not a reference\")