summaryrefslogtreecommitdiff
path: root/extensions/fts++/task.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/fts++/task.cpp')
-rw-r--r--extensions/fts++/task.cpp32
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);
}
}