[tracker/tracker-0.6] Revert patch to use binary search with QDBM cache, was causing regressions
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Subject: [tracker/tracker-0.6] Revert patch to use binary search with QDBM cache, was causing regressions
- Date: Thu, 7 May 2009 11:07:34 -0400 (EDT)
commit d0038f826c4f0e416f57277f35a930e614109905
Author: Martyn Russell <martyn imendio com>
Date: Thu May 7 15:06:46 2009 +0100
Revert patch to use binary search with QDBM cache, was causing regressions
---
src/libtracker-db/tracker-db-index.c | 30 +++++++-----------------------
1 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/src/libtracker-db/tracker-db-index.c b/src/libtracker-db/tracker-db-index.c
index e2a17f7..42b5b92 100644
--- a/src/libtracker-db/tracker-db-index.c
+++ b/src/libtracker-db/tracker-db-index.c
@@ -1238,8 +1238,7 @@ tracker_db_index_add_word (TrackerDBIndex *indez,
TrackerDBIndexItem elem;
TrackerDBIndexItem *current;
GArray *array;
- gint64 left, right, center;
- gint64 new_score;
+ guint i;
g_return_if_fail (TRACKER_IS_DB_INDEX (indez));
g_return_if_fail (word != NULL);
@@ -1268,39 +1267,24 @@ tracker_db_index_add_word (TrackerDBIndex *indez,
return;
}
- /* It is not the first time we find the word, perform binary search */
- left = 0;
- right = array->len - 1;
- center = (right - left) / 2;
+ /* It is not the first time we find the word */
+ for (i = 0; i < array->len; i++) {
+ current = &g_array_index (array, TrackerDBIndexItem, i);
- do {
- center += left;
-
- /* For testing */
- /* g_return_if_fail (center < array->len); */
-
- current = &g_array_index (array, TrackerDBIndexItem, center);
-
- if (service_id > current->id) {
- left = center + 1;
- } else if (service_id < current->id) {
- right = center - 1;
- } else if (service_id == current->id) {
+ if (current->id == service_id) {
guint32 serv_type;
+ gint64 new_score;
/* The word was already found in the same
* service_id (file), modify score
*/
new_score = tracker_db_index_item_get_score (current) + weight;
-
serv_type = tracker_db_index_item_get_service_type (current);
current->amalgamated = tracker_db_index_item_calc_amalgamated (serv_type, new_score);
return;
}
-
- center = (right - left) / 2;
- } while (left <= right);
+ }
/* First time in the file */
g_array_append_val (array, elem);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]