aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rollback.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/rollback.cpp b/src/rollback.cpp
index ac4324cab..4d34decf3 100644
--- a/src/rollback.cpp
+++ b/src/rollback.cpp
@@ -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:
@@ -109,17 +117,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");
}