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/waypoint.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/waypoint.cpp')
-rw-r--r-- | src/waypoint.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/waypoint.cpp b/src/waypoint.cpp index 425c7a503..9847c9870 100644 --- a/src/waypoint.cpp +++ b/src/waypoint.cpp @@ -404,17 +404,14 @@ Waypoint::Waypoint(TileIndex tile) Waypoint::~Waypoint() { + if (this->string != STR_NULL) DeleteName(this->string); + + if (CleaningPool()) return; + RemoveOrderFromAllVehicles(OT_GOTO_WAYPOINT, this->index); RedrawWaypointSign(this); this->xy = 0; - - this->QuickFree(); -} - -void Waypoint::QuickFree() -{ - if (this->string != STR_NULL) DeleteName(this->string); } bool Waypoint::IsValid() const |