diff -ru Search-Xapian-1.2.15.0.0/Xapian/QueryParser.pm Search-Xapian-1.2.15.0/Xapian/QueryParser.pm
|
old
|
new
|
|
| 34 | 34 | return $qp; |
| 35 | 35 | } |
| 36 | 36 | |
| 37 | | my %subrefs; |
| 38 | | |
| 39 | | sub add_valuerangeprocessor { |
| 40 | | my ($self, $vrp) = @_; |
| 41 | | $self->add_valuerangeprocessor0($vrp); |
| 42 | | push @{$subrefs{"$self"}}, $vrp; # keep a reference |
| 43 | | } |
| 44 | | |
| 45 | | sub set_stopper { |
| 46 | | my ($self, $stopper) = @_; |
| 47 | | $self->set_stopper0($stopper); |
| 48 | | push @{$subrefs{"$self"}}, $stopper; # keep a reference |
| 49 | | } |
| 50 | | |
| 51 | | sub _delete_subrefs { delete $subrefs{"$_[0]"} } |
| 52 | | |
| 53 | 37 | 1; |
| 54 | 38 | |
| 55 | 39 | __END__ |
diff -ru Search-Xapian-1.2.15.0.0/XS/QueryParser.xs Search-Xapian-1.2.15.0/XS/QueryParser.xs
|
old
|
new
|
|
| 22 | 22 | THIS->set_stemming_strategy(static_cast<QueryParser::stem_strategy>(strategy)); |
| 23 | 23 | |
| 24 | 24 | void |
| 25 | | QueryParser::set_stopper0(stopper) |
| | 25 | QueryParser::set_stopper(stopper) |
| 26 | 26 | Stopper * stopper |
| 27 | 27 | CODE: |
| | 28 | // FIXME: no corresponding SvREFCNT_dec(), but a leak seems better than |
| | 29 | // a SEGV! |
| | 30 | SvREFCNT_inc(ST(1)); |
| 28 | 31 | THIS->set_stopper(stopper); |
| 29 | 32 | |
| 30 | 33 | void |
| … |
… |
|
| 113 | 116 | QueryParser::get_description() |
| 114 | 117 | |
| 115 | 118 | void |
| 116 | | QueryParser::add_valuerangeprocessor0(ValueRangeProcessor * vrproc) |
| | 119 | QueryParser::add_valuerangeprocessor(ValueRangeProcessor * vrproc) |
| 117 | 120 | CODE: |
| | 121 | // FIXME: no corresponding SvREFCNT_dec(), but a leak seems better than |
| | 122 | // a SEGV! |
| | 123 | SvREFCNT_inc(ST(1)); |
| 118 | 124 | THIS->add_valuerangeprocessor(vrproc); |
| 119 | 125 | |
| 120 | 126 | void |
| 121 | 127 | QueryParser::DESTROY() |
| 122 | | CODE: |
| 123 | | { |
| 124 | | dSP; |
| 125 | | ENTER; |
| 126 | | SAVETMPS; |
| 127 | | PUSHMARK( sp); |
| 128 | | XPUSHs( ST(0) ); |
| 129 | | PUTBACK; |
| 130 | | perl_call_method("_delete_subrefs", G_DISCARD); |
| 131 | | SPAGAIN; |
| 132 | | FREETMPS; |
| 133 | | LEAVE; |
| 134 | | } |
| 135 | | delete THIS; |