tracker r2681 - in trunk: . src/tracker-indexer



Author: carlosg
Date: Tue Dec  9 14:53:01 2008
New Revision: 2681
URL: http://svn.gnome.org/viewvc/tracker?rev=2681&view=rev

Log:
2008-12-09  Carlos Garnacho  <carlos imendio com>

        * src/tracker-indexer/tracker-module-metadata.c
        (tracker_module_metadata_get_hash_table): Make it return a new
        hashtable with field names as keys for easier use.
        * src/tracker-indexer/tracker-indexer.c (item_add_or_update): Destroy
        the hashtable that tracker_module_metadata_get_hash_table() returns.

Modified:
   trunk/ChangeLog
   trunk/src/tracker-indexer/tracker-indexer.c
   trunk/src/tracker-indexer/tracker-module-metadata.c

Modified: trunk/src/tracker-indexer/tracker-indexer.c
==============================================================================
--- trunk/src/tracker-indexer/tracker-indexer.c	(original)
+++ trunk/src/tracker-indexer/tracker-indexer.c	Tue Dec  9 14:53:01 2008
@@ -1425,18 +1425,21 @@
 		tracker_data_metadata_free (old_metadata_emb);
 		tracker_data_metadata_free (old_metadata_non_emb);
 	} else {
+		GHashTable *data;
+
 		g_debug ("Adding item '%s/%s'",
 			 dirname,
 			 basename);
 
 		/* Service wasn't previously indexed */
 		id = tracker_data_update_get_new_service_id (indexer->private->common);
+		data = tracker_module_metadata_get_hash_table (metadata);
 
 		tracker_data_update_create_service (service,
 						    id,
 						    dirname,
 						    basename,
-						    tracker_module_metadata_get_hash_table (metadata));
+						    data);
 
 		tracker_data_update_create_event (indexer->private->cache, id, "Create");
 		tracker_data_update_increment_stats (indexer->private->common, service);
@@ -1457,6 +1460,8 @@
 			tracker_data_update_set_content (service, id, text);
 			g_free (text);
 		}
+
+		g_hash_table_destroy (data);
 	}
 }
 

Modified: trunk/src/tracker-indexer/tracker-module-metadata.c
==============================================================================
--- trunk/src/tracker-indexer/tracker-module-metadata.c	(original)
+++ trunk/src/tracker-indexer/tracker-module-metadata.c	Tue Dec  9 14:53:01 2008
@@ -364,10 +364,31 @@
 				     user_data);
 }
 
+static void
+get_hash_table_foreach (gpointer key,
+			gpointer value,
+			gpointer user_data)
+{
+	TrackerField *field;
+	GHashTable *table;
+
+	field = TRACKER_FIELD (key);
+	table = user_data;
+
+	g_hash_table_insert (table,
+			     (gpointer) tracker_field_get_name (field),
+			     value);
+}
+
 GHashTable *
 tracker_module_metadata_get_hash_table (TrackerModuleMetadata *metadata)
 {
-	return metadata->table;
+	GHashTable *table;
+
+	table = g_hash_table_new (g_str_hash, g_str_equal);
+	g_hash_table_foreach (metadata->table, (GHFunc) get_hash_table_foreach, table);
+
+	return table;
 }
 
 /**



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]