From ab035176948556f0bc4d5eea8dae3bbab5e0b654 Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 14 Dec 2009 20:50:32 +0000 Subject: [PATCH] (svn r18500) [0.7] -Backport from trunk: - Fix: Read after free in case no network connection could be made with the content server (r18493) - Fix: [NoAI] AIOrder::SkipToOrder did not properly resolve ORDER_CURRENT (r18471) [0.7] -Prepare for 0.7.5-RC1 --- changelog.txt | 21 +++++++++++++++++++++ os/debian/changelog | 6 ++++++ os/win32/installer/install.nsi | 6 +++--- src/ai/api/ai_order.cpp | 2 ++ src/ai/api/ai_vehicle.cpp | 6 +----- src/network/network_content_gui.cpp | 1 + 6 files changed, 34 insertions(+), 8 deletions(-) diff --git a/changelog.txt b/changelog.txt index f2ace51345..f4912e05cb 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,24 @@ +0.7.5-RC1 (2009-12-14) +------------------------------------------------------------------------ +- Add: Some missing latin-ish characters from the OpenGFX set (r18431) +- Change [FS#3349]: Recolour the bubble generator just like any other industry (r18409) +- Fix: Read after free in case no network connection could be made with the content server (r18493) +- Fix: [NewGRF] Initialisation of cargo payment was broken for NewGRF cargos [FS#3344] (r18475) +- Fix: [NoAI] AIOrder::SkipToOrder did not properly resolve ORDER_CURRENT (r18471) +- Fix: When moving a wagon and only the last part of a dual headed engine you could split the dual headed engine over two vehicles (r18462) +- Fix: [Windows] Forgot to load the symbol from SDL.dll (r18439) +- Fix: Do not run the 'jam protection' for vehicles in a depot [FS#3360] (r18428) +- Fix: [Windows] the help window would be too large in some cases [FS#3327] (r18424) +- Fix: Under some circumstances a pointer could be left untouched and then freed. Make sure this does not happen by ensuring it starts out as NULL instead of 'garbage' [FS#3298] (r18418) +- Fix: On slopes the original and better road layouts did not check their minimum distance requirements [FS#3332] (r18415) +- Fix: Aqueducts were not influenced by the 'long bridges' setting [FS#3338] (r18407) +- Fix: Drive through road stops did not get flooded (r18401) +- Fix: [YAPP] Trains on bridges were not found, when searching for the origin of a reservation [FS#3345] (r18392) +- Fix: (Invalid) GRFs could trigger invalid reads (r18391) +- Fix: One could not share orders between buses carrying different cargos (r18380) +- Fix: Off-by-one in the preconfigured music lists [FS#3339] (r18369) + + 0.7.4 (2009-12-01) ------------------------------------------------------------------------ - Fix: Endianness issue with saving the zoom level [FS#3333] (r18351) diff --git a/os/debian/changelog b/os/debian/changelog index b82642f25c..4f520ede93 100644 --- a/os/debian/changelog +++ b/os/debian/changelog @@ -1,3 +1,9 @@ +openttd (0.7.5~RC1) unstable; urgency=low + + * New upstream release. + + -- Matthijs Kooijman Mon, 14 Dec 2009 19:28:37 +0100 + openttd (0.7.4) unstable; urgency=low * New upstream release. diff --git a/os/win32/installer/install.nsi b/os/win32/installer/install.nsi index f9359fe99e..1f18ddc03b 100644 --- a/os/win32/installer/install.nsi +++ b/os/win32/installer/install.nsi @@ -1,7 +1,7 @@ !define APPNAME "OpenTTD" ; Define application name -!define APPVERSION "0.7.4" ; Define application version -!define APPVERSIONINTERNAL "0.7.4.0" ; Define application version in X.X.X.X -!define INSTALLERVERSION 70 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!! +!define APPVERSION "0.7.5-RC1" ; Define application version +!define APPVERSIONINTERNAL "0.7.5.0" ; Define application version in X.X.X.X +!define INSTALLERVERSION 71 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!! !include ${VERSION_INCLUDE} !define APPURLLINK "http://www.openttd.org" diff --git a/src/ai/api/ai_order.cpp b/src/ai/api/ai_order.cpp index 1a21ab9e4e..37f30a25d3 100644 --- a/src/ai/api/ai_order.cpp +++ b/src/ai/api/ai_order.cpp @@ -393,6 +393,8 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or /* static */ bool AIOrder::SkipToOrder(VehicleID vehicle_id, OrderPosition next_order) { + next_order = AIOrder::ResolveOrderPosition(vehicle_id, next_order); + EnforcePrecondition(false, IsValidVehicleOrder(vehicle_id, next_order)); return AIObject::DoCommand(0, vehicle_id, next_order, CMD_SKIP_TO_ORDER); diff --git a/src/ai/api/ai_vehicle.cpp b/src/ai/api/ai_vehicle.cpp index 86e8bc7b1b..6108da376d 100644 --- a/src/ai/api/ai_vehicle.cpp +++ b/src/ai/api/ai_vehicle.cpp @@ -188,11 +188,7 @@ /* static */ bool AIVehicle::SkipToVehicleOrder(VehicleID vehicle_id, AIOrder::OrderPosition order_position) { - order_position = AIOrder::ResolveOrderPosition(vehicle_id, order_position); - - EnforcePrecondition(false, AIOrder::IsValidVehicleOrder(vehicle_id, order_position)); - - return AIObject::DoCommand(0, vehicle_id, order_position, CMD_SKIP_TO_ORDER); + return AIOrder::SkipToOrder(vehicle_id, order_position); } /* static */ bool AIVehicle::ReverseVehicle(VehicleID vehicle_id) diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 3fc7635597..cb51ccef2f 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -711,6 +711,7 @@ public: if (!success) { ShowErrorMessage(INVALID_STRING_ID, STR_CONTENT_ERROR_COULD_NOT_CONNECT, 0, 0); delete this; + return; } this->SetDirty();