[php] Fix memory leak and crash with directors
[xapian.git] / search-xapian / typemap
blob77d8e6d5754c7ae3197fc1b06544e65e0af478c1
1 TYPEMAP
2 Database                O_DATABASE
3 Database *              O_DATABASE
4 WritableDatabase        O_WDATABASE
5 WritableDatabase *      O_WDATABASE
6 Enquire *               O_OBJECT
7 Query                   O_QUERY
8 Query *                 O_QUERY
9 QueryParser             O_QUERYPARSER
10 QueryParser *           O_QUERYPARSER
11 TermGenerator           O_TERMGENERATOR
12 TermGenerator *         O_TERMGENERATOR
13 Stopper                 O_STOPPER
14 Stopper *               O_STOPPER
15 SimpleStopper           O_SIMPLESTOPPER
16 SimpleStopper *         O_SIMPLESTOPPER
17 Stem                    O_OBJECT
18 Stem *                  O_OBJECT
19 MSet                    O_MSET
20 MSet *                  O_MSET
21 RSet                    O_RSET
22 RSet *                  O_RSET
23 ESet                    O_ESET
24 ESet *                  O_ESET
25 MSetIterator            O_MSET_I
26 MSetIterator *          O_MSET_I
27 ESetIterator            O_ESET_I
28 ESetIterator *          O_ESET_I
29 Document                O_DOC
30 Document *              O_DOC
31 MatchDecider            O_OBJECT
32 MatchDecider *          O_OBJECT
33 Weight                  O_WEIGHT
34 Weight *                O_WEIGHT
35 BM25Weight              O_WEIGHT
36 BM25Weight *            O_WEIGHT
37 BoolWeight              O_WEIGHT
38 BoolWeight *            O_WEIGHT
39 TradWeight              O_WEIGHT
40 TradWeight *            O_WEIGHT
42 TermIterator            O_TERM_I
43 TermIterator *          O_TERM_I
44 PostingIterator         O_POSTING_I
45 PostingIterator *       O_POSTING_I
46 PositionIterator        O_POSITION_I
47 PositionIterator *      O_POSITION_I
48 ValueIterator           O_VALUE_I
49 ValueIterator *         O_VALUE_I
51 Error                   O_OBJECT
52 Error *                 O_OBJECT
54 ValueRangeProcessor     O_OBJECT
55 ValueRangeProcessor *   O_OBJECT
56 DateValueRangeProcessor         O_OBJECT
57 DateValueRangeProcessor *       O_OBJECT
58 NumberValueRangeProcessor       O_OBJECT
59 NumberValueRangeProcessor *     O_OBJECT
60 StringValueRangeProcessor       O_OBJECT
61 StringValueRangeProcessor *     O_OBJECT
63 MultiValueSorter        O_SORTER
64 MultiValueSorter *      O_SORTER
66 MatchSpy                O_MATCHSPY
67 MatchSpy *              O_MATCHSPY
68 ValueCountMatchSpy      O_MATCHSPY
69 ValueCountMatchSpy *    O_MATCHSPY
71 string                  STRING
73 docid                   T_UV
74 doccount                T_UV
75 doclength               T_UV
76 percent                 T_UV
77 termcount               T_UV
78 termpos                 T_UV
79 valueno                 T_UV
80 weight                  T_NV
84 INPUT
85 STRING
86         {
87                 STRLEN len;
88                 const char * tmp = SvPV($arg, len);
89                 $var.assign(tmp, len);
90         }
92 O_MSET
93         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::MSet\") )
94                 $var = ($type)SvIV((SV*)SvRV( $arg ));
95         else{
96                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::MSet\\\" object\" );
97                 XSRETURN_UNDEF;
98         }
100 O_RSET
101         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::RSet\") )
102                 $var = ($type)SvIV((SV*)SvRV( $arg ));
103         else{
104                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::RSet\\\" object\" );
105                 XSRETURN_UNDEF;
106         }
108 O_ESET
109         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::ESet\") )
110                 $var = ($type)SvIV((SV*)SvRV( $arg ));
111         else{
112                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::ESet\\\" object\" );
113                 XSRETURN_UNDEF;
114         }
116 O_MSET_I
117         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::MSetIterator\") )
118                 $var = ($type)SvIV((SV*)SvRV( $arg ));
119         else{
120                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::MSetIterator\\\" object\" );
121                 XSRETURN_UNDEF;
122         }
124 O_ESET_I
125         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::ESetIterator\") )
126                 $var = ($type)SvIV((SV*)SvRV( $arg ));
127         else{
128                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::ESetIterator\\\" object\" );
129                 XSRETURN_UNDEF;
130         }
132 O_DOC
133         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::Document\") )
134                 $var = ($type)SvIV((SV*)SvRV( $arg ));
135         else{
136                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::Document\\\" object\" );
137                 XSRETURN_UNDEF;
138         }
140 O_QUERY
141         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::Query\") )
142                 $var = ($type)SvIV((SV*)SvRV( $arg ));
143         else{
144                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::Query\\\" object\" );
145                 XSRETURN_UNDEF;
146         }
148 O_QUERYPARSER
149         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::QueryParser\") )
150                 $var = ($type)SvIV((SV*)SvRV( $arg ));
151         else{
152                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::QueryParser\\\" object\" );
153                 XSRETURN_UNDEF;
154         }
156 O_TERMGENERATOR
157         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::TermGenerator\") )
158                 $var = ($type)SvIV((SV*)SvRV( $arg ));
159         else{
160                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::TermGenerator\\\" object\" );
161                 XSRETURN_UNDEF;
162         }
164 O_STOPPER
165         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::Stopper\") )
166                 $var = ($type)SvIV((SV*)SvRV( $arg ));
167         else{
168                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::Stopper\\\" object\" );
169                 XSRETURN_UNDEF;
170         }
172 O_SIMPLESTOPPER
173         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::SimpleStopper\") )
174                 $var = ($type)SvIV((SV*)SvRV( $arg ));
175         else{
176                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::SimpleStopper\\\" object\" );
177                 XSRETURN_UNDEF;
178         }
180 O_DATABASE
181         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::Database\") )
182                 $var = ($type)SvIV((SV*)SvRV( $arg ));
183         else{
184                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::Database\\\" object\" );
185                 XSRETURN_UNDEF;
186         }
188 O_WDATABASE
189         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::WritableDatabase\") )
190                 $var = ($type)SvIV((SV*)SvRV( $arg ));
191         else{
192                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::WritableDatabase\\\" object\" );
193                 XSRETURN_UNDEF;
194         }
196 O_TERM_I
197         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::TermIterator\") )
198                 $var = ($type)SvIV((SV*)SvRV( $arg ));
199         else{
200                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::TermIterator\\\" object\" );
201                 XSRETURN_UNDEF;
202         }
204 O_POSTING_I
205         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::PostingIterator\") )
206                 $var = ($type)SvIV((SV*)SvRV( $arg ));
207         else{
208                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::PostingIterator\\\" object\" );
209                 XSRETURN_UNDEF;
210         }
212 O_POSITION_I
213         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::PositionIterator\") )
214                 $var = ($type)SvIV((SV*)SvRV( $arg ));
215         else{
216                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::PositionIterator\\\" object\" );
217                 XSRETURN_UNDEF;
218         }
220 O_VALUE_I
221         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::ValueIterator\") )
222                 $var = ($type)SvIV((SV*)SvRV( $arg ));
223         else{
224                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::ValueIterator\\\" object\" );
225                 XSRETURN_UNDEF;
226         }
228 O_WEIGHT
229         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::Weight\") )
230                 $var = ($type)SvIV((SV*)SvRV( $arg ));
231         else{
232                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::Weight\\\" object\" );
233                 XSRETURN_UNDEF;
234         }
236 O_SORTER
237         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::MultiValueSorter\") )
238                 $var = ($type)SvIV((SV*)SvRV( $arg ));
239         else{
240                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::MultiValueSorter\\\" object\" );
241                 XSRETURN_UNDEF;
242         }
244 O_MATCHSPY
245         if( sv_isobject($arg) && sv_derived_from($arg, \"Search::Xapian::MatchSpy\") )
246                 $var = ($type)SvIV((SV*)SvRV( $arg ));
247         else{
248                 warn( \"${Package}::$func_name() -- $var is not a \\\"Search::Xapian::MatchSpy\\\" object\" );
249                 XSRETURN_UNDEF;
250         }
252 OUTPUT
253 STRING
254         sv_setpvn((SV*)$arg, (char *) ($var.data()), ($var.size()));
255 O_MSET
256         sv_setref_pv( $arg, "Search::Xapian::MSet", (void*)$var );
257 O_WEIGHT
258         sv_setref_pv( $arg, "Search::Xapian::Weight", (void*)$var );
259 O_RSET
260         sv_setref_pv( $arg, "Search::Xapian::RSet", (void*)$var );
261 O_ESET
262         sv_setref_pv( $arg, "Search::Xapian::ESet", (void*)$var );
263 O_MSET_I
264         sv_setref_pv( $arg, "Search::Xapian::MSetIterator", (void*)$var );
265 O_ESET_I
266         sv_setref_pv( $arg, "Search::Xapian::ESetIterator", (void*)$var );
267 O_DOC
268         sv_setref_pv( $arg, "Search::Xapian::Document", (void*)$var );
269 O_QUERY
270         sv_setref_pv( $arg, "Search::Xapian::Query", (void*)$var );
271 O_QUERYPARSER
272         sv_setref_pv( $arg, "Search::Xapian::QueryParser", (void*)$var );
273 O_TERMGENERATOR
274         sv_setref_pv( $arg, "Search::Xapian::TermGenerator", (void*)$var );
275 O_STOPPER
276         sv_setref_pv( $arg, "Search::Xapian::Stopper", (void*)$var );
277 O_SIMPLESTOPPER
278         sv_setref_pv( $arg, "Search::Xapian::SimpleStopper", (void*)$var );
279 O_DATABASE
280         sv_setref_pv( $arg, "Search::Xapian::Database", (void*)$var );
281 O_WDATABASE
282         sv_setref_pv( $arg, "Search::Xapian::WritableDatabase", (void*)$var );
283 O_TERM_I
284         sv_setref_pv( $arg, "Search::Xapian::TermIterator", (void*)$var );
285 O_POSTING_I
286         sv_setref_pv( $arg, "Search::Xapian::PostingIterator", (void*)$var );
287 O_POSITION_I
288         sv_setref_pv( $arg, "Search::Xapian::PositionIterator", (void*)$var );
289 O_VALUE_I
290         sv_setref_pv( $arg, "Search::Xapian::ValueIterator", (void*)$var );
291 O_SORTER
292         sv_setref_pv( $arg, "Search::Xapian::MultiValueSorter", (void*)$var );
293 O_MATCHSPY
294         sv_setref_pv( $arg, "Search::Xapian::MatchSpy", (void*)$var );