r22465 - gnucash/trunk/src/engine - Allow SchedXaction to safely handle having g_object_property_set called on

John Ralls jralls at code.gnucash.org
Sat Oct 27 19:30:57 EDT 2012


Author: jralls
Date: 2012-10-27 19:30:56 -0400 (Sat, 27 Oct 2012)
New Revision: 22465
Trac: http://svn.gnucash.org/trac/changeset/22465

Modified:
   gnucash/trunk/src/engine/SchedXaction.c
Log:
Allow SchedXaction to safely handle having g_object_property_set called on
end_date and last_date with invalid GDates.


This happens routinely when those values are empty and are restored from
SQL. Thanks to all warnings being fatal when testing, this caused the dbi
tests to fail.

[BP]

Modified: gnucash/trunk/src/engine/SchedXaction.c
===================================================================
--- gnucash/trunk/src/engine/SchedXaction.c	2012-10-27 23:30:40 UTC (rev 22464)
+++ gnucash/trunk/src/engine/SchedXaction.c	2012-10-27 23:30:56 UTC (rev 22465)
@@ -132,10 +132,16 @@
         g_value_set_boxed(value, &sx->start_date);
         break;
     case PROP_END_DATE:
-        g_value_set_boxed(value, &sx->end_date);
+        /* g_value_set_boxed raises a critical error if sx->end_date
+         * is invalid */
+        if (g_date_valid (&sx->end_date))
+            g_value_set_boxed(value, &sx->end_date);
         break;
     case PROP_LAST_OCCURANCE_DATE:
-        g_value_set_boxed(value, &sx->last_date);
+     /* g_value_set_boxed raises a critical error if sx->last_date
+         * is invalid */
+        if (g_date_valid (&sx->last_date))
+            g_value_set_boxed(value, &sx->last_date);
         break;
     case PROP_INSTANCE_COUNT:
         g_value_set_int(value, sx->instance_num);



More information about the gnucash-changes mailing list