diff options
author | rubidium <rubidium@openttd.org> | 2007-08-05 21:20:55 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-08-05 21:20:55 +0000 |
commit | 83e1fdcb0167c36729889511f7b1165038044c88 (patch) | |
tree | bfe043c51f23052fc39f35769a2ede1e66998148 /src/station.cpp | |
parent | ab5fa3add2f5f2feeb8f48127f6ee5ab69d42f65 (diff) | |
download | openttd-83e1fdcb0167c36729889511f7b1165038044c88.tar.xz |
(svn r10799) -Fix: only calling QuickFree and not the destructor on pool cleanups might cause memory leaks due to the way C++ works.
Diffstat (limited to 'src/station.cpp')
-rw-r--r-- | src/station.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/station.cpp b/src/station.cpp index 4633f1d18..150719e8f 100644 --- a/src/station.cpp +++ b/src/station.cpp @@ -64,6 +64,11 @@ Station::~Station() { DEBUG(station, cDebugCtorLevel, "I-%3d", index); + DeleteName(this->string_id); + free(this->speclist); + + if (CleaningPool()) return; + MarkDirty(); RebuildStationLists(); InvalidateWindowClasses(WC_STATION_LIST); @@ -81,14 +86,6 @@ Station::~Station() for (CargoID c = 0; c < NUM_CARGO; c++) { goods[c].cargo.Truncate(0); } - - this->QuickFree(); -} - -void Station::QuickFree() -{ - DeleteName(this->string_id); - free(this->speclist); } /** Called when new facility is built on the station. If it is the first facility |