[tracker] libtracker-data: Use int GValues for booleans
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-data: Use int GValues for booleans
- Date: Tue, 1 Sep 2009 10:28:05 +0000 (UTC)
commit edcac3ecf8860f27f2f562000a37f019cace30c8
Author: Jürg Billeter <j bitron ch>
Date: Tue Sep 1 12:23:37 2009 +0200
libtracker-data: Use int GValues for booleans
The tracker_db_*_get_value functions return int GValues for booleans
as that is how they are stored in the database. To allow comparing
GValue instances, we also need to use int GValues for values that
are not yet in the database.
src/libtracker-data/tracker-data-update.c | 11 ++++-------
1 files changed, 4 insertions(+), 7 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 4543a56..885759e 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -322,9 +322,6 @@ statement_bind_gvalue (TrackerDBStatement *stmt,
case G_TYPE_INT64:
tracker_db_statement_bind_int64 (stmt, idx, g_value_get_int64 (value));
break;
- case G_TYPE_BOOLEAN:
- tracker_db_statement_bind_int (stmt, idx, g_value_get_boolean (value));
- break;
case G_TYPE_DOUBLE:
tracker_db_statement_bind_double (stmt, idx, g_value_get_double (value));
break;
@@ -599,8 +596,6 @@ value_equal (GValue *value1,
return (strcmp (g_value_get_string (value1), g_value_get_string (value2)) == 0);
case G_TYPE_INT:
return g_value_get_int (value1) == g_value_get_int (value2);
- case G_TYPE_BOOLEAN:
- return g_value_get_boolean (value1) == g_value_get_boolean (value2);
case G_TYPE_DOUBLE:
/* does RDF define equality for floating point values? */
return g_value_get_double (value1) == g_value_get_double (value2);
@@ -784,8 +779,10 @@ cache_set_metadata_decomposed (TrackerProperty *property,
g_value_set_int (&gvalue, atoi (value));
break;
case TRACKER_PROPERTY_TYPE_BOOLEAN:
- g_value_init (&gvalue, G_TYPE_BOOLEAN);
- g_value_set_boolean (&gvalue, strcmp (value, "true") == 0);
+ /* use G_TYPE_INT to be compatible with value stored in DB
+ (important for value_equal function) */
+ g_value_init (&gvalue, G_TYPE_INT);
+ g_value_set_int (&gvalue, strcmp (value, "true") == 0);
break;
case TRACKER_PROPERTY_TYPE_DOUBLE:
g_value_init (&gvalue, G_TYPE_DOUBLE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]