mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Avoid passing invalid arguments to functions to get rid of some non-fatal asserts.
This commit is contained in:
parent
05fdefa306
commit
054e6f7a22
@ -730,7 +730,8 @@ _find_unreferenced_vars(gchar *key,
|
|||||||
gpointer value,
|
gpointer value,
|
||||||
HashListPair *cb_pair)
|
HashListPair *cb_pair)
|
||||||
{
|
{
|
||||||
if (!g_hash_table_lookup_extended(cb_pair->hash, key, NULL, NULL))
|
if (cb_pair->hash == NULL ||
|
||||||
|
!g_hash_table_lookup_extended(cb_pair->hash, key, NULL, NULL))
|
||||||
{
|
{
|
||||||
g_debug("variable [%s] not found", key);
|
g_debug("variable [%s] not found", key);
|
||||||
cb_pair->list = g_list_append(cb_pair->list, key);
|
cb_pair->list = g_list_append(cb_pair->list, key);
|
||||||
@ -804,20 +805,27 @@ gnc_sx_instance_model_update_sx_instances(GncSxInstanceModel *model, SchedXactio
|
|||||||
|
|
||||||
// handle variables
|
// handle variables
|
||||||
{
|
{
|
||||||
HashListPair removed_cb_data, added_cb_data;
|
|
||||||
GList *removed_var_names = NULL, *added_var_names = NULL;
|
GList *removed_var_names = NULL, *added_var_names = NULL;
|
||||||
GList *inst_iter = NULL;
|
GList *inst_iter = NULL;
|
||||||
|
|
||||||
removed_cb_data.hash = new_instances->variable_names;
|
if (existing->variable_names != NULL)
|
||||||
removed_cb_data.list = NULL;
|
{
|
||||||
g_hash_table_foreach(existing->variable_names, (GHFunc)_find_unreferenced_vars, &removed_cb_data);
|
HashListPair removed_cb_data;
|
||||||
removed_var_names = removed_cb_data.list;
|
removed_cb_data.hash = new_instances->variable_names;
|
||||||
|
removed_cb_data.list = NULL;
|
||||||
|
g_hash_table_foreach(existing->variable_names, (GHFunc)_find_unreferenced_vars, &removed_cb_data);
|
||||||
|
removed_var_names = removed_cb_data.list;
|
||||||
|
}
|
||||||
g_debug("%d removed variables", g_list_length(removed_var_names));
|
g_debug("%d removed variables", g_list_length(removed_var_names));
|
||||||
|
|
||||||
added_cb_data.hash = existing->variable_names;
|
if (new_instances->variable_names != NULL)
|
||||||
added_cb_data.list = NULL;
|
{
|
||||||
g_hash_table_foreach(new_instances->variable_names, (GHFunc)_find_unreferenced_vars, &added_cb_data);
|
HashListPair added_cb_data;
|
||||||
added_var_names = added_cb_data.list;
|
added_cb_data.hash = existing->variable_names;
|
||||||
|
added_cb_data.list = NULL;
|
||||||
|
g_hash_table_foreach(new_instances->variable_names, (GHFunc)_find_unreferenced_vars, &added_cb_data);
|
||||||
|
added_var_names = added_cb_data.list;
|
||||||
|
}
|
||||||
g_debug("%d added variables", g_list_length(added_var_names));
|
g_debug("%d added variables", g_list_length(added_var_names));
|
||||||
|
|
||||||
if (existing->variable_names != NULL)
|
if (existing->variable_names != NULL)
|
||||||
|
@ -633,7 +633,8 @@ xaccSchedXactionSetEndDate( SchedXaction *sx, const GDate *newEnd )
|
|||||||
* the SX is to run "forever". See gnc_sxed_save_sx() and
|
* the SX is to run "forever". See gnc_sxed_save_sx() and
|
||||||
* schedXact_editor_populate() in dialog-sx-editor.c.
|
* schedXact_editor_populate() in dialog-sx-editor.c.
|
||||||
*/
|
*/
|
||||||
if (newEnd == NULL || g_date_compare( newEnd, &sx->start_date ) < 0 )
|
if (newEnd == NULL ||
|
||||||
|
(g_date_valid(newEnd) && g_date_compare( newEnd, &sx->start_date ) < 0 ))
|
||||||
{
|
{
|
||||||
/* XXX: I reject the bad data - is this the right
|
/* XXX: I reject the bad data - is this the right
|
||||||
* thing to do <rgmerk>.
|
* thing to do <rgmerk>.
|
||||||
|
Loading…
Reference in New Issue
Block a user