[tracker/tracker-0.6] Revert patch to use binary search with QDBM cache, was causing regressions



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]