Check `internal->_search` before using it.

If a search has been set and a user try to get the nextResult or
restart the search, `internal->_search` will be NULL.
This commit is contained in:
Matthieu Gautier 2018-03-12 17:41:40 +01:00
parent 14653c6958
commit ee6831d665
1 changed files with 3 additions and 2 deletions

View File

@ -247,7 +247,7 @@ void Searcher::restart_search()
{ {
if (internal->_xapianSearcher) { if (internal->_xapianSearcher) {
internal->_xapianSearcher->restart_search(); internal->_xapianSearcher->restart_search();
} else { } else if (internal->_search) {
internal->current_iterator = internal->_search->begin(); internal->current_iterator = internal->_search->begin();
} }
} }
@ -256,7 +256,8 @@ Result* Searcher::getNextResult()
{ {
if (internal->_xapianSearcher) { if (internal->_xapianSearcher) {
return internal->_xapianSearcher->getNextResult(); return internal->_xapianSearcher->getNextResult();
} else if (internal->current_iterator != internal->_search->end()) { } else if (internal->_search &&
internal->current_iterator != internal->_search->end()) {
Result* result = new _Result(this, internal->current_iterator); Result* result = new _Result(this, internal->current_iterator);
internal->current_iterator++; internal->current_iterator++;
return result; return result;