[tracker/perf: 4/4] libtracker-data: Avoid string manipulation in get_property_values
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/perf: 4/4] libtracker-data: Avoid string manipulation in get_property_values
- Date: Wed, 13 Jan 2010 16:44:59 +0000 (UTC)
commit c3a6783142bb5d5363513cac42d89c29608c98fa
Author: Jürg Billeter <j bitron ch>
Date: Wed Dec 16 16:51:03 2009 +0100
libtracker-data: Avoid string manipulation in get_property_values
src/libtracker-data/tracker-data-update.c | 33 +++++++++++++++--------------
1 files changed, 17 insertions(+), 16 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index d620d02..d6d5ace 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -856,11 +856,6 @@ check_property_domain (TrackerProperty *property)
static GValueArray *
get_property_values (TrackerProperty *property)
{
- TrackerDBInterface *iface;
- TrackerDBStatement *stmt;
- TrackerDBResultSet *result_set;
- gchar *table_name;
- const gchar *field_name;
gboolean multiple_values;
GValueArray *old_values;
@@ -869,16 +864,22 @@ get_property_values (TrackerProperty *property)
old_values = g_value_array_new (multiple_values ? 4 : 1);
g_hash_table_insert (resource_buffer->predicates, g_object_ref (property), old_values);
- if (multiple_values) {
- table_name = g_strdup_printf ("%s_%s",
- tracker_class_get_name (tracker_property_get_domain (property)),
- tracker_property_get_name (property));
- } else {
- table_name = g_strdup (tracker_class_get_name (tracker_property_get_domain (property)));
- }
- field_name = tracker_property_get_name (property);
-
if (!resource_buffer->create) {
+ TrackerDBInterface *iface;
+ TrackerDBStatement *stmt;
+ TrackerDBResultSet *result_set;
+ gchar *table_name;
+ const gchar *field_name;
+
+ if (multiple_values) {
+ table_name = g_strdup_printf ("%s_%s",
+ tracker_class_get_name (tracker_property_get_domain (property)),
+ tracker_property_get_name (property));
+ } else {
+ table_name = g_strdup (tracker_class_get_name (tracker_property_get_domain (property)));
+ }
+ field_name = tracker_property_get_name (property);
+
iface = tracker_db_manager_get_db_interface ();
stmt = tracker_db_interface_create_statement (iface, "SELECT \"%s\" FROM \"%s\" WHERE ID = ?", field_name, table_name);
@@ -906,9 +907,9 @@ get_property_values (TrackerProperty *property)
g_object_unref (result_set);
}
g_object_unref (stmt);
- }
- g_free (table_name);
+ g_free (table_name);
+ }
return old_values;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]