File: typemap

package info (click to toggle)
perlipq 1.25-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, sarge
  • size: 104 kB
  • ctags: 36
  • sloc: perl: 201; makefile: 55
file content (29 lines) | stat: -rw-r--r-- 677 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
TYPEMAP
const char *    	T_PV
ipqxs_ctx_t *		T_PTRREF
ipqxs_packet_t *	O_OBJECT

INPUT
T_HvRV
	if( SvROK($arg) && (SvTYPE(SvRV($arg)) == SVt_PVHV) )
		$var = (HV*)SvRV( $arg );
	else {
		warn( \"${Package}::$func_name() -- $var is not an HV reference\" );
		XSRETURN_UNDEF;
	}
                                                                        
O_OBJECT
	if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) )
		$var = ($type)SvIV((SV*)SvRV( $arg ));
	else{
		warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
		XSRETURN_UNDEF;
	}

OUTPUT
T_HvRV
	$arg = newRV((SV*)$var);
        
O_OBJECT
	sv_setref_pv( $arg, CLASS, (void*)$var );