[tracker/wip/carlosg/double-precision: 2/4] libtracker-data: Use g_ascii_dtostr/strtod to transform doubles
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/double-precision: 2/4] libtracker-data: Use g_ascii_dtostr/strtod to transform doubles
- Date: Sat, 2 Mar 2019 19:06:30 +0000 (UTC)
commit b7cb039ce452d8d4f869134060a321a8e1c3269e
Author: Carlos Garnacho <carlosg gnome org>
Date: Sat Mar 2 17:40:18 2019 +0100
libtracker-data: Use g_ascii_dtostr/strtod to transform doubles
Using locale dependent variants is a very very bad idea. Use the
locale-independent glib API.
src/libtracker-data/tracker-data-update.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 47426f674..c5d2941fc 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -1659,7 +1659,7 @@ string_to_gvalue (const gchar *value,
break;
case TRACKER_PROPERTY_TYPE_DOUBLE:
g_value_init (gvalue, G_TYPE_DOUBLE);
- g_value_set_double (gvalue, atof (value));
+ g_value_set_double (gvalue, g_ascii_strtod (value, NULL));
break;
case TRACKER_PROPERTY_TYPE_DATE:
g_value_init (gvalue, G_TYPE_INT64);
@@ -1700,7 +1700,9 @@ gvalue_to_string (TrackerPropertyType type,
retval = g_value_get_int64 (gvalue) == 0 ? g_strdup ("false") : g_strdup ("true");
break;
case TRACKER_PROPERTY_TYPE_DOUBLE:
- retval = g_strdup_printf ("%f", g_value_get_double (gvalue));
+ retval = g_new0 (char, G_ASCII_DTOSTR_BUF_SIZE);
+ g_ascii_dtostr (retval, G_ASCII_DTOSTR_BUF_SIZE,
+ g_value_get_double (gvalue));
break;
case TRACKER_PROPERTY_TYPE_DATE:
datet = g_value_get_int64 (gvalue);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]