Fix -Wterminate warnings in rollback.cpp as well
authorest31 <MTest31@outlook.com>
Fri, 8 Jul 2016 05:26:00 +0000 (07:26 +0200)
committerest31 <MTest31@outlook.com>
Fri, 8 Jul 2016 05:27:49 +0000 (07:27 +0200)
Fix #4137 for rollback.cpp as well.

src/rollback.cpp

index ac4324cabd25efd4ff9e858b9723effbbe9e9eca..4d34decf3264d5f851e7460878f1e03e8c537b2b 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:
@@ -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");
 }