From 4efd1ae7b19e1c510e9e26e5e1b3a62166853c25 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 23 Dec 2006 16:39:28 +0000 Subject: [PATCH] Bugfixes. --- ChangeLog | 11 ++++++++++- src/fieldboolean.c | 15 +++++++++++---- src/fielddatetime.c | 10 +++++++--- src/fieldfloat.c | 15 +++++++++++---- src/fieldinteger.c | 15 +++++++++++---- src/fieldtext.c | 15 +++++++++++---- src/widget.c | 10 ++++++++-- 7 files changed, 69 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index 30474e0..f0e58a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,16 @@ +2006-12-23 Andrea Zagli + + * widget.c: + * fieldboolean.c: + * fielddatetime.c: + * fieldfloat.c: + * fieldinteger.c: + * fieldtext.c: checked if form_widget property isn't set + 2006-12-21 Andrea Zagli * libform.h: - * form.c: form_get_field_from_name, form_get_widget_from_name + * form.c: added form_get_field_from_name, form_get_widget_from_name * libformfield.h: * field.c: added form_field_get_form_widget * libformwidget.h: diff --git a/src/fieldboolean.c b/src/fieldboolean.c index 758b3be..1ffb6d6 100644 --- a/src/fieldboolean.c +++ b/src/fieldboolean.c @@ -140,7 +140,10 @@ const gchar "form-widget", &fw, NULL); - ret = form_widget_get_value_stringify (fw); + if (IS_FORM_WIDGET (fw) + { + ret = form_widget_get_value_stringify (fw); + } return ret; } @@ -153,12 +156,16 @@ const gchar const GValue *form_field_boolean_get_value (FormField *field) { - GValue *ret = g_malloc0 (sizeof (GValue)); + GValue *ret = NULL; const gchar *value = form_field_boolean_get_value_stringify (field); - g_value_init (ret, G_TYPE_BOOLEAN); - g_value_set_boolean (ret, strtol (value, NULL, 10)); + if (value != NULL) + { + ret = g_malloc0 (sizeof (GValue)); + g_value_init (ret, G_TYPE_BOOLEAN); + g_value_set_boolean (ret, strtol (value, NULL, 10)); + } return (const GValue *)ret; } diff --git a/src/fielddatetime.c b/src/fielddatetime.c index a47dbc1..1e89ee7 100644 --- a/src/fielddatetime.c +++ b/src/fielddatetime.c @@ -151,7 +151,10 @@ const gchar "form-widget", &fw, NULL); - ret = form_widget_get_value_stringify (fw); + if (IS_FORM_WIDGET (fw)) + { + ret = form_widget_get_value_stringify (fw); + } return ret; } @@ -165,13 +168,14 @@ const GValue *form_field_datetime_get_value (FormField *field) { struct tm datetime; - GValue *ret = g_malloc0 (sizeof (GValue)); + GValue *ret = NULL; const gchar *format = form_field_get_str_format (field); const gchar *value = form_field_datetime_get_value_stringify (field); - if (strptime (value, format, &datetime) != '\0') + if (value != NULL && strptime (value, format, &datetime) != '\0') { + ret = g_malloc0 (sizeof (GValue)); g_value_init (ret, G_TYPE_POINTER); g_value_set_pointer (ret, &datetime); } diff --git a/src/fieldfloat.c b/src/fieldfloat.c index f4f77fc..ed37547 100644 --- a/src/fieldfloat.c +++ b/src/fieldfloat.c @@ -140,7 +140,10 @@ const gchar "form-widget", &fw, NULL); - ret = g_strdup_printf ("%f", strtod (form_widget_get_value_stringify (fw), NULL)); + if (IS_FORM_WIDGET (fw)) + { + ret = g_strdup_printf ("%f", strtod (form_widget_get_value_stringify (fw), NULL)); + } return ret; } @@ -153,12 +156,16 @@ const gchar const GValue *form_field_float_get_value (FormField *field) { - GValue *ret = g_malloc0 (sizeof (GValue)); + GValue *ret = NULL; const gchar *value = form_field_float_get_value_stringify (field); - g_value_init (ret, G_TYPE_FLOAT); - g_value_set_float (ret, strtod (value, NULL)); + if (value != NULL) + { + ret = g_malloc0 (sizeof (GValue)); + g_value_init (ret, G_TYPE_FLOAT); + g_value_set_float (ret, strtod (value, NULL)); + } return (const GValue *)ret; } diff --git a/src/fieldinteger.c b/src/fieldinteger.c index 5beaffb..32a479a 100644 --- a/src/fieldinteger.c +++ b/src/fieldinteger.c @@ -138,7 +138,10 @@ const gchar "form-widget", &fw, NULL); - ret = g_strdup_printf ("%d", strtol (form_widget_get_value_stringify (fw), NULL, 10)); + if (IS_FORM_WIDGET (fw)) + { + ret = g_strdup_printf ("%d", strtol (form_widget_get_value_stringify (fw), NULL, 10)); + } return ret; } @@ -151,12 +154,16 @@ const gchar const GValue *form_field_integer_get_value (FormField *field) { - GValue *ret = g_malloc0 (sizeof (GValue)); + GValue *ret = NULL; const gchar *value = form_field_integer_get_value_stringify (field); - g_value_init (ret, G_TYPE_INT); - g_value_set_int (ret, atol (value)); + if (value != NULL) + { + ret = g_malloc0 (sizeof (GValue)); + g_value_init (ret, G_TYPE_INT); + g_value_set_int (ret, atol (value)); + } return (const GValue *)ret; } diff --git a/src/fieldtext.c b/src/fieldtext.c index 774e094..29efa8a 100644 --- a/src/fieldtext.c +++ b/src/fieldtext.c @@ -138,7 +138,10 @@ const gchar "form-widget", &fw, NULL); - ret = form_widget_get_value_stringify (fw); + if (IS_FORM_WIDGET (fw)) + { + ret = form_widget_get_value_stringify (fw); + } return ret; } @@ -151,12 +154,16 @@ const gchar const GValue *form_field_text_get_value (FormField *field) { - GValue *ret = g_malloc0 (sizeof (GValue)); + GValue *ret = NULL; const gchar *value = form_field_text_get_value_stringify (field); - g_value_init (ret, G_TYPE_STRING); - g_value_set_string (ret, value); + if (value != NULL) + { + ret = g_malloc0 (sizeof (GValue)); + g_value_init (ret, G_TYPE_STRING); + g_value_set_string (ret, value); + } return (const GValue *)ret; } diff --git a/src/widget.c b/src/widget.c index e4b1bb9..eac6f27 100644 --- a/src/widget.c +++ b/src/widget.c @@ -179,7 +179,10 @@ const gchar const gchar *form_widget_get_value_stringify (FormWidget *fwidget) { - FORM_WIDGET_GET_CLASS (fwidget)->get_value_stringify (fwidget); + if (IS_FORM_WIDGET (fwidget)) + { + FORM_WIDGET_GET_CLASS (fwidget)->get_value_stringify (fwidget); + } } /** @@ -191,7 +194,10 @@ const gchar gboolean form_widget_set_value_stringify (FormWidget *fwidget, const gchar *value) { - FORM_WIDGET_GET_CLASS (fwidget)->set_value_stringify (fwidget, value); + if (IS_FORM_WIDGET (fwidget)) + { + FORM_WIDGET_GET_CLASS (fwidget)->set_value_stringify (fwidget, value); + } } /* PRIVATE */ -- 2.49.0