[GtkSearchEngineQuartz] Don't run off the end of the results array and crash.
This commit is contained in:
@@ -73,12 +73,14 @@ G_DEFINE_TYPE_WITH_PRIVATE (GtkSearchEngineQuartz, _gtk_search_engine_quartz, GT
|
||||
{
|
||||
int i;
|
||||
GList *hits = NULL;
|
||||
/* The max was originally set to 1000 to mimic the Beagle backend. */
|
||||
const unsigned int max_hits = 1000;
|
||||
const unsigned int max_iter = submitted_hits + [ns_query resultCount];
|
||||
/* The max was originally set to 1000 to mimic something called "the
|
||||
* boogie backend". submitted_hits contains the number of hits we've
|
||||
* processed in previous calls to this function.
|
||||
*/
|
||||
const unsigned int max_hits = 1000 - submitted_hits;
|
||||
const unsigned int max_iter = [ns_query resultCount];
|
||||
|
||||
/* Here we submit hits "submitted_hits" to "resultCount" */
|
||||
for (i = submitted_hits; i < max_iter && i < max_hits; ++i)
|
||||
for (i = 0; i < max_iter && i < max_hits; ++i)
|
||||
{
|
||||
id result = [ns_query resultAtIndex:i];
|
||||
const char *result_path;
|
||||
@@ -101,7 +103,7 @@ G_DEFINE_TYPE_WITH_PRIVATE (GtkSearchEngineQuartz, _gtk_search_engine_quartz, GT
|
||||
if (max_iter >= max_hits)
|
||||
[ns_query stopQuery];
|
||||
|
||||
submitted_hits = max_iter;
|
||||
submitted_hits += max_iter;
|
||||
}
|
||||
|
||||
- (void) queryUpdate:(id)sender
|
||||
|
||||
Reference in New Issue
Block a user