tracker r3054 - in trunk: . src/libtracker-db
- From: carlosg svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r3054 - in trunk: . src/libtracker-db
- Date: Wed, 11 Mar 2009 13:52:12 +0000 (UTC)
Author: carlosg
Date: Wed Mar 11 13:52:11 2009
New Revision: 3054
URL: http://svn.gnome.org/viewvc/tracker?rev=3054&view=rev
Log:
2009-03-11 Carlos Garnacho <carlos imendio com>
* src/libtracker-db/tracker-db-index.c (indexer_update_word): Ensure
weights are correct before inserting hits for a new word.
Modified:
trunk/ChangeLog
trunk/src/libtracker-db/tracker-db-index.c
Modified: trunk/src/libtracker-db/tracker-db-index.c
==============================================================================
--- trunk/src/libtracker-db/tracker-db-index.c (original)
+++ trunk/src/libtracker-db/tracker-db-index.c Wed Mar 11 13:52:11 2009
@@ -634,18 +634,34 @@
/* New word in the index */
if (previous_hits == NULL) {
- result = dpput (indez,
- word, -1,
- (char *) new_hits->data,
- new_hits->len * sizeof (TrackerDBIndexItem),
- DP_DOVER);
+ pending_hits = g_array_new (FALSE, TRUE, sizeof (TrackerDBIndexItem));
+ result = TRUE;
- if (!result) {
- g_warning ("Could not store word '%s': %s", word, dperrmsg (dpecode));
- return FALSE;
+ /* Ensure weights are correct before inserting */
+ for (j = 0; j < new_hits->len; j++) {
+ new_hit = &g_array_index (new_hits, TrackerDBIndexItem, j);
+ score = tracker_db_index_item_get_score (new_hit);
+
+ if (score > 0) {
+ g_array_append_val (pending_hits, *new_hit);
+ }
}
- return TRUE;
+ if (pending_hits->len > 0) {
+ result = dpput (indez,
+ word, -1,
+ (char *) pending_hits->data,
+ pending_hits->len * sizeof (TrackerDBIndexItem),
+ DP_DOVER);
+
+ if (!result) {
+ g_warning ("Could not store word '%s': %s", word, dperrmsg (dpecode));
+ }
+ }
+
+ g_array_free (pending_hits, TRUE);
+
+ return result;
}
/* Word already exists */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]