# HG changeset patch # User rubidium # Date 1186409305 0 # Node ID 0e3afa8102f075b7d1f52e210b92bcf3a8270354 # Parent 531c4851ba85bcaa1d6a0ff84a0cf2a09d1178d3 (svn r10813) -Fix (r10799): some destructors were performing too much during the pool cleanups, which could cause crashes as already removed pool items could then be dereferenced by other destructors. diff -r 531c4851ba85 -r 0e3afa8102f0 src/industry_cmd.cpp --- a/src/industry_cmd.cpp Mon Aug 06 13:44:50 2007 +0000 +++ b/src/industry_cmd.cpp Mon Aug 06 14:08:25 2007 +0000 @@ -130,6 +130,8 @@ Industry::~Industry() { + if (CleaningPool()) return; + /* Industry can also be destroyed when not fully initialized. * This means that we do not have to clear tiles either. */ if (this->width == 0) { diff -r 531c4851ba85 -r 0e3afa8102f0 src/station.cpp --- a/src/station.cpp Mon Aug 06 13:44:50 2007 +0000 +++ b/src/station.cpp Mon Aug 06 14:08:25 2007 +0000 @@ -391,6 +391,8 @@ */ RoadStop::~RoadStop() { + if (CleaningPool()) return; + /* Clear the slot assignment of all vehicles heading for this road stop */ if (num_vehicles != 0) { Vehicle *v;