From 8e1490d8499aaa0bf2f0bc7c5c8cb283e1834b5e Mon Sep 17 00:00:00 2001 From: John Ralls Date: Sat, 2 Jan 2016 15:13:51 -0800 Subject: [PATCH] Bug 759570 - Postponing a repeating SX skips over the instance. Reorder the temporal state creation so that it starts with any postponed instances. --- src/app-utils/gnc-sx-instance-model.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app-utils/gnc-sx-instance-model.c b/src/app-utils/gnc-sx-instance-model.c index f14714b2e1..d8e6a6402a 100644 --- a/src/app-utils/gnc-sx-instance-model.c +++ b/src/app-utils/gnc-sx-instance-model.c @@ -377,7 +377,7 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data) const GDate *range_end = (const GDate*)user_data; GDate creation_end, remind_end; GDate cur_date; - void *sequence_ctx; + SXTmpStateData *sequence_ctx = gnc_sx_create_temporal_state(sx); instances->sx = sx; @@ -402,12 +402,14 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data) &inst_date, postponed->data, seq_num); instances->instance_list = g_list_append(instances->instance_list, inst); + gnc_sx_destroy_temporal_state(sequence_ctx); + sequence_ctx = gnc_sx_clone_temporal_state(postponed->data); + gnc_sx_incr_temporal_state(sx, sequence_ctx); } } /* to-create */ g_date_clear(&cur_date, 1); - sequence_ctx = gnc_sx_create_temporal_state(sx); cur_date = xaccSchedXactionGetNextInstance(sx, sequence_ctx); instances->next_instance_date = cur_date; while (g_date_valid(&cur_date) && g_date_compare(&cur_date, &creation_end) <= 0)