From: ian Date: Mon, 5 May 2008 10:42:59 +0000 (+0000) Subject: bugfixes to polarity and reporting X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=a36e1e0ca84e37682d4e2328f92e1ad7a988979b;p=trains.git bugfixes to polarity and reporting --- diff --git a/hostside/safety.c b/hostside/safety.c index 62044bd..a8a58de 100644 --- a/hostside/safety.c +++ b/hostside/safety.c @@ -782,7 +782,8 @@ ErrorCode predict(Train *tra, int accelerate, } if (u.need_polarise && seg->will_polarise) { seg->seg_inverted= seg->tr_backwards ^ u.train_polarity_inverted; - actual_inversions_segment(seg); + if (seg->i->invertible) actual_inversions_segment(seg); + else assert(!seg->seg_inverted); } seg->now_present= seg->pred_present= seg->pred_vacated= seg->will_polarise= 0; @@ -937,6 +938,7 @@ ErrorCode safety_check_movposchange(Segment *seg, PredictionProblemCallback *ppc, void *ppcu) { PredictUserContext u; + memset(&u,0,sizeof(u)); u.problem_callback= ppc; u.problem_callback_u= ppcu; u.train= seg->owner;