(svn r9429) -Fix r9338: when deleting a vehicle which has shared orders with one more vehicle and no orders, segfaulted
authortruelight
Sat, 24 Mar 2007 15:13:46 +0000
changeset 6696 3c2120d41b22
parent 6695 77db45d69005
child 6697 a58fd5043165
(svn r9429) -Fix r9338: when deleting a vehicle which has shared orders with one more vehicle and no orders, segfaulted
src/order_cmd.cpp
--- a/src/order_cmd.cpp	Sat Mar 24 14:42:11 2007 +0000
+++ b/src/order_cmd.cpp	Sat Mar 24 15:13:46 2007 +0000
@@ -463,6 +463,7 @@
  */
 static void RemoveSharedOrderVehicleList(Vehicle *v)
 {
+	assert(v->orders != NULL);
 	WindowClass window_class = WC_NONE;
 
 	switch (v->type) {
@@ -1159,7 +1160,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