File: typemap

package info (click to toggle)
perl 5.8.8-7etch6
  • links: PTS
  • area: main
  • in suites: etch
  • size: 60,396 kB
  • ctags: 33,629
  • sloc: perl: 199,713; ansic: 160,511; sh: 33,095; pascal: 8,270; lisp: 6,121; makefile: 2,373; cpp: 2,035; yacc: 1,047; java: 23
file content (24 lines) | stat: -rw-r--r-- 596 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Thread		T_XSCPTR

INPUT
T_XSCPTR
	STMT_START {
	    MAGIC *mg;
	    SV *sv = ($arg);

	    if (!sv_isobject(sv))
		croak(\"$var is not an object\");
	    sv = (SV*)SvRV(sv);
	    if (!SvRMAGICAL(sv) || !(mg = mg_find(sv, '~'))
		|| mg->mg_private != ${ntype}_MAGIC_SIGNATURE)
		croak(\"XSUB ${func_name}: $var is a forged ${ntype} object\");
	    $var = ($type) SvPVX(mg->mg_obj);
	    DEBUG_S(PerlIO_printf(Perl_debug_log,
				  \"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\")