(svn r9430) [0.5] -Backport r9429: when deleting a vehicle which has shared orders with one more vehicle and no orders, segfaulted 0.5
authortruelight
Sat, 24 Mar 2007 15:16:41 +0000
branch0.5
changeset 5479 375ee63acb9c
parent 5478 8067046917c1
child 5480 497f842b10bf
(svn r9430) [0.5] -Backport r9429: when deleting a vehicle which has shared orders with one more vehicle and no orders, segfaulted
order_cmd.c
--- a/order_cmd.c	Fri Mar 23 22:54:19 2007 +0000
+++ b/order_cmd.c	Sat Mar 24 15:16:41 2007 +0000
@@ -463,6 +463,8 @@
 {
 	WindowClass window_class;
 
+	assert(v->orders != NULL);
+
 	switch (v->type) {
 		default: NOT_REACHED();
 		case VEH_Train:    window_class = WC_TRAINS_LIST;   break;
@@ -1161,7 +1163,7 @@
 
 		/* If we are the only one left in the Shared Order Vehicle List,
 		 *  remove it, as we are no longer a Shared Order Vehicle */
-		if (u->prev_shared == NULL && u->next_shared == NULL) RemoveSharedOrderVehicleList(u);
+		if (u->prev_shared == NULL && u->next_shared == NULL && u->orders != NULL) RemoveSharedOrderVehicleList(u);
 
 		/* We only need to update this-one, because if there is a third
 		 *  vehicle which shares the same order-list, nothing will change. If