tracker r2057 - in branches/indexer-split: . src/libtracker-db
- From: carlosg svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r2057 - in branches/indexer-split: . src/libtracker-db
- Date: Tue, 12 Aug 2008 14:57:20 +0000 (UTC)
Author: carlosg
Date: Tue Aug 12 14:57:20 2008
New Revision: 2057
URL: http://svn.gnome.org/viewvc/tracker?rev=2057&view=rev
Log:
2008-08-12 Carlos Garnacho <carlos imendio com>
* src/libtracker-db/tracker-db-indexer.c (indexer_update_word): Behave
nicely with 1-2 elements arrays. Use the correct array index when
doing operations on the element at hand.
Modified:
branches/indexer-split/ChangeLog
branches/indexer-split/src/libtracker-db/tracker-db-index.c
Modified: branches/indexer-split/src/libtracker-db/tracker-db-index.c
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-index.c (original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-index.c Tue Aug 12 14:57:20 2008
@@ -559,7 +559,6 @@
gint score;
gint tsiz;
guint j;
- gint i;
g_return_val_if_fail (index != NULL, FALSE);
g_return_val_if_fail (word != NULL, FALSE);
@@ -610,32 +609,33 @@
* so the insertion is sorted, perform a binary search.
*/
- while (center > 0) {
+ do {
center += left;
if (new_hit->id > previous_hits[center].id) {
left = center;
} else if (new_hit->id < previous_hits[center].id) {
right = center;
- } else if (previous_hits[i].id == new_hit->id) {
+ } else if (new_hit->id == previous_hits[center].id) {
write_back = TRUE;
/* NB the paramter score can be negative */
- score = tracker_db_index_item_get_score (&previous_hits[i]);
+ score = tracker_db_index_item_get_score (&previous_hits[center]);
score += tracker_db_index_item_get_score (new_hit);
+
/* Check for deletion */
if (score < 1) {
/* Shift all subsequent records in array down one place */
- g_memmove (&previous_hits[i], &previous_hits[i + 1],
- (old_hit_count - i) * sizeof (TrackerDBIndexItem));
+ g_memmove (&previous_hits[center], &previous_hits[center + 1],
+ (old_hit_count - center) * sizeof (TrackerDBIndexItem));
old_hit_count--;
} else {
guint32 service_type;
service_type =
- tracker_db_index_item_get_service_type (&previous_hits[i]);
- previous_hits[i].amalgamated =
+ tracker_db_index_item_get_service_type (&previous_hits[center]);
+ previous_hits[center].amalgamated =
tracker_db_index_item_calc_amalgamated (service_type,
score);
}
@@ -645,7 +645,7 @@
}
center = (right - left) / 2;
- }
+ } while (center > 0);
/* Add hits that could not be updated directly here so
* they can be appended later
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]