diff options
Diffstat (limited to 'extensions/fts++/task.cpp')
-rw-r--r-- | extensions/fts++/task.cpp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/extensions/fts++/task.cpp b/extensions/fts++/task.cpp index 67346ac6..caa17ced 100644 --- a/extensions/fts++/task.cpp +++ b/extensions/fts++/task.cpp @@ -23,10 +23,36 @@ namespace ZeitgeistFTS { void IndexEventsTask::Process (Indexer *indexer) { - unsigned end_index = MIN (start_index + event_count, events->len); - for (unsigned i = start_index; i < end_index; i++) + if (events) { - indexer->IndexEvent ((ZeitgeistEvent*) g_ptr_array_index (events, i)); + unsigned end_index = MIN (start_index + event_count, events->len); + for (unsigned i = start_index; i < end_index; i++) + { + indexer->IndexEvent ((ZeitgeistEvent*) g_ptr_array_index (events, i)); + } + } + else if (!event_ids.empty ()) + { + GError *error = NULL; + GPtrArray *results = zeitgeist_db_reader_get_events (zg_reader, + &event_ids[0], + event_ids.size (), + NULL, + &error); + if (error) + { + g_warning ("Unable to get events: %s", error->message); + return; + } + else + { + for (unsigned i = 0; i < results->len; i++) + { + indexer->IndexEvent ((ZeitgeistEvent*) g_ptr_array_index (results, i)); + } + } + + g_ptr_array_unref (results); } } |