mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-11 17:51:04 +00:00
Server: properly delete ServerMap on interrupted startups
A static mod error (e.g. typo) would abort the initialization but never free ServerMap
This commit is contained in:
parent
9b64834c6a
commit
d287da184c
3 changed files with 9 additions and 1 deletions
|
@ -351,6 +351,7 @@ Server::~Server()
|
|||
// Deinitialize scripting
|
||||
infostream << "Server: Deinitializing scripting" << std::endl;
|
||||
delete m_script;
|
||||
delete m_startup_server_map; // if available
|
||||
delete m_game_settings;
|
||||
|
||||
while (!m_unsent_map_edit_queue.empty()) {
|
||||
|
@ -399,6 +400,7 @@ void Server::init()
|
|||
|
||||
// Create the Map (loads map_meta.txt, overriding configured mapgen params)
|
||||
ServerMap *servermap = new ServerMap(m_path_world, this, m_emerge, m_metrics_backend.get());
|
||||
m_startup_server_map = servermap;
|
||||
|
||||
// Initialize scripting
|
||||
infostream << "Server: Initializing Lua" << std::endl;
|
||||
|
@ -440,6 +442,7 @@ void Server::init()
|
|||
m_craftdef->initHashes(this);
|
||||
|
||||
// Initialize Environment
|
||||
m_startup_server_map = nullptr; // Ownership moved to ServerEnvironment
|
||||
m_env = new ServerEnvironment(servermap, m_script, this, m_path_world);
|
||||
|
||||
m_inventory_mgr->setEnv(m_env);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue