diff options
author | Rubidium <rubidium@openttd.org> | 2021-05-12 23:06:35 +0200 |
---|---|---|
committer | rubidium42 <rubidium42@users.noreply.github.com> | 2021-05-13 10:03:26 +0200 |
commit | 187a3f20bfd7578362f666b869580bafe25ffd0b (patch) | |
tree | 5fcc3ca99b265880771c083252cd2eb2c3ed559a /src/network/core/tcp.cpp | |
parent | 7755f81bb8ba1c6a47e3a528acbbc462e56adaff (diff) | |
download | openttd-187a3f20bfd7578362f666b869580bafe25ffd0b.tar.xz |
Codechange: remove pointless close call due to resolving virtual functions statically in destructors
In the destructors of many of the network related classes Close() is called, just like the
top class in that hierarchy. However, due to virtual functions getting resolved statically
in the destructor it would always call the empty Close() of the top class.
Document the other cases where a virtual call is resolved statically.
Diffstat (limited to 'src/network/core/tcp.cpp')
-rw-r--r-- | src/network/core/tcp.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/network/core/tcp.cpp b/src/network/core/tcp.cpp index 3bba291c7..5c436edf0 100644 --- a/src/network/core/tcp.cpp +++ b/src/network/core/tcp.cpp @@ -29,7 +29,8 @@ NetworkTCPSocketHandler::NetworkTCPSocketHandler(SOCKET s) : NetworkTCPSocketHandler::~NetworkTCPSocketHandler() { - this->CloseConnection(); + /* Virtual functions get called statically in destructors, so make it explicit to remove any confusion. */ + this->NetworkTCPSocketHandler::CloseConnection(); if (this->sock != INVALID_SOCKET) closesocket(this->sock); this->sock = INVALID_SOCKET; |