[libgda] DataHanlder: return NULL on invalid time
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [libgda] DataHanlder: return NULL on invalid time
- Date: Wed, 18 Mar 2020 19:16:45 +0000 (UTC)
commit 89a5667d0f58716723443ab31b9017f7380c9ecc
Author: Daniel Espinosa <esodan gmail com>
Date:   Wed Mar 18 13:14:23 2020 -0600
    DataHanlder: return NULL on invalid time
 libgda/gda-util.c                  | 13 ++++++++++---
 libgda/handlers/gda-handler-time.c |  2 +-
 2 files changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/libgda/gda-util.c b/libgda/gda-util.c
index 0fc9ca0d4..7d49a0daf 100644
--- a/libgda/gda-util.c
+++ b/libgda/gda-util.c
@@ -3257,12 +3257,16 @@ _parse_iso8601_time (const gchar *value, gchar sep, glong timezone, const char *
                }
                for (; *endptr; endptr++);
        }
-       GdaTime *dt = (GdaTime*) g_date_time_new (tz, 1978, 1, 1, h, m, seconds);
+       GDateTime *dt = g_date_time_new (tz, 1978, 1, 1, h, m, seconds);
 
        g_time_zone_unref (tz);
 
        *out_endptr = endptr;
-       return dt;
+  if (dt != NULL) {
+    return (GdaTime*)  dt;
+  }
+
+       return NULL;
 }
 
 /**
@@ -3286,7 +3290,10 @@ gda_parse_iso8601_time (const gchar *value)
   dt = g_date_time_new_from_iso8601 (str, tz);
   g_time_zone_unref (tz);
   g_free (str);
-  return (GdaTime*) dt;
+  if (dt != NULL) {
+    return (GdaTime*) dt;
+  }
+  return NULL;
 }
 
 /**
diff --git a/libgda/handlers/gda-handler-time.c b/libgda/handlers/gda-handler-time.c
index 312ba1fea..954d50e2a 100644
--- a/libgda/handlers/gda-handler-time.c
+++ b/libgda/handlers/gda-handler-time.c
@@ -792,7 +792,7 @@ gda_handler_time_get_value_from_locale (GdaDataHandler *iface, const gchar *sql,
                }
        }
        else
-               g_assert_not_reached ();
+               return NULL;
 
        return value;
 }
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]