File: typemap

package info (click to toggle)
libxml-hash-xs-perl 0.64-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 736 kB
  • sloc: ansic: 5,177; perl: 322; xml: 15; makefile: 9
file content (29 lines) | stat: -rw-r--r-- 857 bytes parent folder | download | duplicates (2)
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
xh_opts_t  * T_CONV
xmlNodePtr   O_NODE_OBJECT

INPUT
O_NODE_OBJECT
    if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) {
            $var = INT2PTR($type,PmmSvNode($arg));
            if ( $var == NULL ) {
               croak( \"${Package}::$func_name() -- $var contains no data\" );
               XSRETURN_UNDEF;
            }
    }
    else {
            croak( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
            XSRETURN_UNDEF;
    }
T_CONV
    if (sv_isa($arg, \"XML::Hash::XS\")) {
        IV tmp = SvIV((SV *) SvRV($arg));
        $var = INT2PTR(xh_opts_t *, tmp);
    } else
        Perl_croak(aTHX_ \"%s: %s is not of type XML::Hash::XS\",
            ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
            \"$var\")

OUTPUT
T_CONV
    sv_setref_pv($arg, \"XML::Hash::XS\", (void *) $var);