From 9a9e891e0c07f46b751fa57b4d946e7de227a8bc Mon Sep 17 00:00:00 2001 From: truelight Date: Sat, 24 Mar 2007 15:13:46 +0000 Subject: (svn r9429) -Fix r9338: when deleting a vehicle which has shared orders with one more vehicle and no orders, segfaulted --- src/order_cmd.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index bacf2ab1a..daa2ca366 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -463,6 +463,7 @@ static int32 DecloneOrder(Vehicle *dst, uint32 flags) */ static void RemoveSharedOrderVehicleList(Vehicle *v) { + assert(v->orders != NULL); WindowClass window_class = WC_NONE; switch (v->type) { @@ -1159,7 +1160,7 @@ void DeleteVehicleOrders(Vehicle *v) /* 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 -- cgit v1.2.3-70-g09d2