Noise: Prevent unittest crash caused by division by zero
[oweals/minetest.git] / src / rollback.cpp
index ac4324cabd25efd4ff9e858b9723effbbe9e9eca..a77a9ee15d75761ce738143ef6e749f4d4c5b2cc 100644 (file)
@@ -42,6 +42,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
        }
 #define SQLOK(f) SQLRES(f, SQLITE_OK)
 
+#define SQLOK_ERRSTREAM(s, m)                             \
+       if ((s) != SQLITE_OK) {                               \
+               errorstream << "RollbackManager: " << (m) << ": " \
+                       << sqlite3_errmsg(db) << std::endl;           \
+       }
+
+#define FINALIZE_STATEMENT(statement) \
+       SQLOK_ERRSTREAM(sqlite3_finalize(statement), "Failed to finalize " #statement)
 
 class ItemStackRow : public ItemStack {
 public:
@@ -83,8 +91,7 @@ struct Entity {
 
 RollbackManager::RollbackManager(const std::string & world_path,
                IGameDef * gamedef_) :
-       gamedef(gamedef_),
-       current_actor_is_guess(false)
+       gamedef(gamedef_)
 {
        verbosestream << "RollbackManager::RollbackManager(" << world_path
                << ")" << std::endl;
@@ -109,17 +116,17 @@ RollbackManager::~RollbackManager()
 {
        flush();
 
-       SQLOK(sqlite3_finalize(stmt_insert));
-       SQLOK(sqlite3_finalize(stmt_replace));
-       SQLOK(sqlite3_finalize(stmt_select));
-       SQLOK(sqlite3_finalize(stmt_select_range));
-       SQLOK(sqlite3_finalize(stmt_select_withActor));
-       SQLOK(sqlite3_finalize(stmt_knownActor_select));
-       SQLOK(sqlite3_finalize(stmt_knownActor_insert));
-       SQLOK(sqlite3_finalize(stmt_knownNode_select));
-       SQLOK(sqlite3_finalize(stmt_knownNode_insert));
-
-       SQLOK(sqlite3_close(db));
+       FINALIZE_STATEMENT(stmt_insert);
+       FINALIZE_STATEMENT(stmt_replace);
+       FINALIZE_STATEMENT(stmt_select);
+       FINALIZE_STATEMENT(stmt_select_range);
+       FINALIZE_STATEMENT(stmt_select_withActor);
+       FINALIZE_STATEMENT(stmt_knownActor_select);
+       FINALIZE_STATEMENT(stmt_knownActor_insert);
+       FINALIZE_STATEMENT(stmt_knownNode_select);
+       FINALIZE_STATEMENT(stmt_knownNode_insert);
+
+       SQLOK_ERRSTREAM(sqlite3_close(db), "Could not close db");
 }