1
0
mirror of https://github.com/luanti-org/luanti.git synced 2026-01-13 20:55:30 +01:00

Fix memory leak in rollback (and more) (#16644)

This commit is contained in:
sfan5
2025-11-05 11:55:57 +01:00
committed by GitHub
parent 7a6e639d61
commit 2368126d0a
4 changed files with 43 additions and 40 deletions

View File

@@ -9,6 +9,7 @@
#include "rollback_interface.h"
#include <list>
#include <vector>
#include <deque>
#include "sqlite3.h"
class IGameDef;
@@ -16,7 +17,7 @@ class IGameDef;
struct ActionRow;
struct Entity;
class RollbackManager: public IRollbackManager
class RollbackManager final : public IRollbackManager
{
public:
RollbackManager(const std::string & world_path, IGameDef * gamedef);
@@ -67,20 +68,20 @@ private:
std::string current_actor;
bool current_actor_is_guess = false;
std::list<RollbackAction> action_todisk_buffer;
std::list<RollbackAction> action_latest_buffer;
std::vector<RollbackAction> action_todisk_buffer;
std::deque<RollbackAction> action_latest_buffer;
std::string database_path;
sqlite3 * db;
sqlite3_stmt * stmt_insert;
sqlite3_stmt * stmt_replace;
sqlite3_stmt * stmt_select;
sqlite3_stmt * stmt_select_range;
sqlite3_stmt * stmt_select_withActor;
sqlite3_stmt * stmt_knownActor_select;
sqlite3_stmt * stmt_knownActor_insert;
sqlite3_stmt * stmt_knownNode_select;
sqlite3_stmt * stmt_knownNode_insert;
sqlite3 *db = nullptr;
sqlite3_stmt *stmt_insert = nullptr;
sqlite3_stmt *stmt_replace = nullptr;
sqlite3_stmt *stmt_select = nullptr;
sqlite3_stmt *stmt_select_range = nullptr;
sqlite3_stmt *stmt_select_withActor = nullptr;
sqlite3_stmt *stmt_knownActor_select = nullptr;
sqlite3_stmt *stmt_knownActor_insert = nullptr;
sqlite3_stmt *stmt_knownNode_select = nullptr;
sqlite3_stmt *stmt_knownNode_insert = nullptr;
std::vector<Entity> knownActors;
std::vector<Entity> knownNodes;