forked from shlomif/perl-XML-LibXML
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtypemap
108 lines (94 loc) · 3.56 KB
/
typemap
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
TYPEMAP
const char * T_PV
xmlParserCtxtPtr O_PARSER_OBJECT
xmlRelaxNGPtr O_OBJECT
xmlPatternPtr O_PATTERN_OBJECT
xmlRegexpPtr O_REGEXP_OBJECT
xmlSchemaPtr O_OBJECT
xmlNodeSetPtr O_OBJECT
perlxmlParserObjectPtr O_OBJECT
xmlDocPtr O_DOC_OBJECT
xmlNodePtr O_NODE_OBJECT
xmlDtdPtr O_NODE_OBJECT
xmlTextReaderPtr O_OBJECT
xmlErrorPtr O_OBJECT
xmlHashTablePtr O_OBJECT
xmlXPathCompExprPtr O_XPATH_OBJECT
INPUT
O_OBJECT
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) )
$var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
else{
warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
XSRETURN_UNDEF;
}
O_DOC_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;
}
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;
}
O_PARSER_OBJECT
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) {
$var = PmmSvContext($arg);
if ( $var == NULL ) {
croak( \"${Package}::$func_name() -- $var contains no parse context\" );
XSRETURN_UNDEF;
}
}
else {
croak( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
XSRETURN_UNDEF;
}
O_XPATH_OBJECT
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) && sv_isa($arg,\"XML::LibXML::XPathExpression\"))
$var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
else{
warn( \"${Package}::$func_name() -- $var is not a XML::LibXML::XPathExpression\" );
XSRETURN_UNDEF;
}
O_PATTERN_OBJECT
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) && sv_isa($arg,\"XML::LibXML::Pattern\"))
$var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
else{
warn( \"${Package}::$func_name() -- $var is not a XML::LibXML::Pattern\" );
XSRETURN_UNDEF;
}
O_REGEXP_OBJECT
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) && sv_isa($arg,\"XML::LibXML::RegExp\"))
$var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
else{
warn( \"${Package}::$func_name() -- $var is not a XML::LibXML::RegExp\" );
XSRETURN_UNDEF;
}
OUTPUT
# The Perl object is blessed into 'CLASS', which should be a
# char* having the name of the package for the blessing.
O_OBJECT
sv_setref_pv( $arg, (char *)CLASS, (void*)$var );
O_PATTERN_OBJECT
sv_setref_pv( $arg, (char *)\"XML::LibXML::Pattern\", (void*)$var );
O_REGEXP_OBJECT
sv_setref_pv( $arg, (char *)\"XML::LibXML::RegExp\", (void*)$var );
O_XPATH_OBJECT
sv_setref_pv( $arg, (char *)\"XML::LibXML::XPathExpression\", (void*)$var );
O_PARSER_OBJECT
$arg = PmmContextSv( $var );