mirror of https://github.com/OpenTTD/OpenTTD.git
![]() In particular this crash can be observed when using the bootstrap GUI to download the base graphics. In ClientNetworkContentSocketHandler::OnReceiveContentInfo ClientNetworkContentSocketHandler::callbacks is iterated, using an iterator cb->OnReceiveContentInfo() is called (cb is of type BootstrapAskForDownloadWindow) This calls new BootstrapContentDownloadStatusWindow() This inherits from BaseNetworkContentDownloadStatusWindow The constructor of which calls _network_content_client.AddCallback(this) This reallocates the std::vector which is being iterated in ClientNetworkContentSocketHandler::OnReceiveContentInfo This results in iter being invalid, and an assertion failure occurs shortly afterwards due to its use in the next iteration of cb->OnReceiveContentInfo() Adjust all locations where ClientNetworkContentSocketHandler::callbacks is iterated to avoid problematic behaviour |
||
---|---|---|
.. | ||
core | ||
network.cpp | ||
network.h | ||
network_admin.cpp | ||
network_admin.h | ||
network_base.h | ||
network_chat_gui.cpp | ||
network_client.cpp | ||
network_client.h | ||
network_command.cpp | ||
network_content.cpp | ||
network_content.h | ||
network_content_gui.cpp | ||
network_content_gui.h | ||
network_func.h | ||
network_gamelist.cpp | ||
network_gamelist.h | ||
network_gui.cpp | ||
network_gui.h | ||
network_internal.h | ||
network_server.cpp | ||
network_server.h | ||
network_type.h | ||
network_udp.cpp | ||
network_udp.h |