[libgda] Better check for errors in time data entry widgets



commit 4019afd6c919f125568db60bd6f9c7beb740ee55
Author: Vivien Malerba <malerba gnome-db org>
Date:   Sun Aug 1 17:50:36 2010 +0200

    Better check for errors in time data entry widgets

 libgda-ui/data-entries/gdaui-entry-common-time.c |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/libgda-ui/data-entries/gdaui-entry-common-time.c b/libgda-ui/data-entries/gdaui-entry-common-time.c
index 67c4fab..84ecca2 100644
--- a/libgda-ui/data-entries/gdaui-entry-common-time.c
+++ b/libgda-ui/data-entries/gdaui-entry-common-time.c
@@ -410,12 +410,18 @@ real_get_value (GdauiEntryWrapper *mgwrap)
 
 	if (type == G_TYPE_DATE) {
 		str2 = gdaui_formatted_entry_get_text (GDAUI_FORMATTED_ENTRY (mgtim->priv->entry_date));
-		value = gda_data_handler_get_value_from_str (dh, str2, type); /* FIXME: not SQL but STR */
-		g_free (str2);
+		if (str2) {
+			value = gda_data_handler_get_value_from_str (dh, str2, type);
+			g_free (str2);
+		}
 	}
 	else if (type == GDA_TYPE_TIME) {
 		str2 = gdaui_formatted_entry_get_text (GDAUI_FORMATTED_ENTRY (mgtim->priv->entry_time));
-		value = gda_data_handler_get_value_from_str (dh, str2, type);
+		if (str2) {
+			value = gda_data_handler_get_value_from_str (dh, str2, type);
+			g_free (str2);
+		}
+
 		if (value && (G_VALUE_TYPE (value) != GDA_TYPE_NULL) &&
 		    mgtim->priv->last_value_set && 
 		    gda_value_isa (mgtim->priv->last_value_set, GDA_TYPE_TIME)) {
@@ -427,18 +433,19 @@ real_get_value (GdauiEntryWrapper *mgwrap)
 			gda_value_set_time (value, gdatime);
 			g_free (gdatime);
 		}
-		g_free (str2);
 	}
 	else if (type == GDA_TYPE_TIMESTAMP) {
 		gchar *tmpstr, *tmpstr2;
 
 		tmpstr = gdaui_formatted_entry_get_text (GDAUI_FORMATTED_ENTRY (mgtim->priv->entry_time));
 		tmpstr2 = gdaui_formatted_entry_get_text (GDAUI_FORMATTED_ENTRY (mgtim->priv->entry_date));
-		str2 = g_strdup_printf ("%s %s", tmpstr2, tmpstr);
+		if (tmpstr && tmpstr2) {
+			str2 = g_strdup_printf ("%s %s", tmpstr2, tmpstr);
+			value = gda_data_handler_get_value_from_str (dh, str2, type);
+			g_free (str2);
+		}
 		g_free (tmpstr);
 		g_free (tmpstr2);
-		value = gda_data_handler_get_value_from_str (dh, str2, type);
-		g_free (str2);
 		if (value && (G_VALUE_TYPE (value) != GDA_TYPE_NULL) &&
 		    mgtim->priv->last_value_set && 
 		    gda_value_isa (mgtim->priv->last_value_set, GDA_TYPE_TIMESTAMP)) {



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