[tracker/cursor] Replaced some GValue stuff with better performing get_string
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/cursor] Replaced some GValue stuff with better performing get_string
- Date: Fri, 28 Aug 2009 14:49:59 +0000 (UTC)
commit 5de47ca9d161300cbbae4a5169341e5c411ceb64
Author: Philip Van Hoof <philip codeminded be>
Date: Fri Aug 28 16:49:02 2009 +0200
Replaced some GValue stuff with better performing get_string
src/libtracker-data/tracker-data-update.c | 63 +++++-----------------------
1 files changed, 12 insertions(+), 51 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index c45d5fa..f5e14ff 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -1440,19 +1440,6 @@ tracker_data_commit_transaction (void)
}
}
-static gchar *
-get_string_for_value (GValue *value)
-{
- switch (G_VALUE_TYPE (value)) {
- case G_TYPE_INT:
- return g_strdup_printf ("%d", g_value_get_int (value));
- case G_TYPE_DOUBLE:
- return g_strdup_printf ("%f", g_value_get_double (value));
- default:
- return NULL;
- }
-}
-
/**
* Removes the description of a resource (embedded metadata), but keeps
* annotations (non-embedded/user metadata) stored about the resource.
@@ -1466,10 +1453,9 @@ tracker_data_delete_resource_description (const gchar *uri)
TrackerClass *class;
GString *sql;
TrackerProperty **properties, **property;
- const gchar *class_uri;
+ const gchar *class_uri, *value;
int i;
gboolean first;
- GValue value = { 0 };
gint resource_id;
resource_id = tracker_data_query_resource_id (uri);
@@ -1548,28 +1534,12 @@ tracker_data_delete_resource_description (const gchar *uri)
if (!tracker_property_get_multiple_values (*property)) {
/* single value property, value in single_result_set */
- tracker_db_cursor_get_value (single_cursor, i++, &value);
+ value = tracker_db_cursor_get_string (single_cursor, i++);
- if (G_VALUE_TYPE (&value) == 0) {
- /* NULL, property not set */
- continue;
- }
-
- if (G_VALUE_TYPE (&value) == G_TYPE_STRING) {
- tracker_data_delete_statement (uri,
- tracker_property_get_uri (*property),
- g_value_get_string (&value),
- NULL);
- } else {
- gchar *object = get_string_for_value (&value);
- tracker_data_delete_statement (uri,
- tracker_property_get_uri (*property),
- object,
- NULL);
- g_free (object);
- }
-
- g_value_unset (&value);
+ tracker_data_delete_statement (uri,
+ tracker_property_get_uri (*property),
+ value,
+ NULL);
} else {
/* multi value property, retrieve values from DB */
@@ -1595,21 +1565,12 @@ tracker_data_delete_resource_description (const gchar *uri)
if (multi_cursor) {
while (tracker_db_cursor_iter_next (multi_cursor)) {
- tracker_db_cursor_get_value (multi_cursor, 0, &value);
-
- if (G_VALUE_TYPE (&value) == G_TYPE_STRING) {
- tracker_data_delete_statement (uri,
- tracker_property_get_uri (*property),
- g_value_get_string (&value), NULL);
- } else {
- gchar *object = get_string_for_value (&value);
- tracker_data_delete_statement (uri,
- tracker_property_get_uri (*property),
- object, NULL);
- g_free (object);
- }
+ value = tracker_db_cursor_get_string (multi_cursor, 0);
- g_value_unset (&value);
+ tracker_data_delete_statement (uri,
+ tracker_property_get_uri (*property),
+ value,
+ NULL);
}
@@ -1624,7 +1585,7 @@ tracker_data_delete_resource_description (const gchar *uri)
g_object_unref (single_cursor);
}
- };
+ }
g_object_unref (cursor);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]