chiark / gitweb /
bugfixes to polarity and reporting
authorian <ian>
Mon, 5 May 2008 10:42:59 +0000 (10:42 +0000)
committerian <ian>
Mon, 5 May 2008 10:42:59 +0000 (10:42 +0000)
hostside/safety.c

index 62044bdbe180fdfeaca40fa02d17a8c199bc5826..a8a58de0b8aa97e7f522845808dc740cc62ff509 100644 (file)
@@ -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;