Commit | Line | Data |
---|---|---|
8df6cea6 | 1 | Thread T_XSCPTR |
d9bb3666 | 2 | |
3 | INPUT | |
8df6cea6 | 4 | T_XSCPTR |
683929b4 | 5 | STMT_START { |
6 | MAGIC *mg; | |
7 | SV *sv = ($arg); | |
8 | ||
9 | if (!sv_isobject(sv)) | |
10 | croak(\"$var is not an object\"); | |
8df6cea6 | 11 | sv = (SV*)SvRV(sv); |
683929b4 | 12 | if (!SvRMAGICAL(sv) || !(mg = mg_find(sv, '~'))) |
8df6cea6 | 13 | croak(\"XSUB ${func_name}: $var is a forged ${ntype} object\"); |
683929b4 | 14 | $var = ($type) SvPVX(mg->mg_obj); |
dd32f564 | 15 | DEBUG_L(PerlIO_printf(PerlIO_stderr(), |
683929b4 | 16 | \"XSUB ${func_name}: %p\\n\", $var);) |
17 | } STMT_END | |
734689b1 | 18 | T_IVREF |
19 | if (SvROK($arg)) | |
20 | $var = ($type) SvIV((SV*)SvRV($arg)); | |
21 | else | |
22 | croak(\"$var is not a reference\") | |
d9bb3666 | 23 |