summaryrefslogtreecommitdiff
path: root/src/manager/dpl/db/src/sql_connection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/manager/dpl/db/src/sql_connection.cpp')
-rw-r--r--src/manager/dpl/db/src/sql_connection.cpp34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/manager/dpl/db/src/sql_connection.cpp b/src/manager/dpl/db/src/sql_connection.cpp
index cb4ee0bf..902c94dd 100644
--- a/src/manager/dpl/db/src/sql_connection.cpp
+++ b/src/manager/dpl/db/src/sql_connection.cpp
@@ -36,16 +36,6 @@
namespace {
const int MAX_RETRY = 10;
-
-struct ScopedVaList {
- ~ScopedVaList()
- {
- va_end(args);
- }
- va_list args;
-};
-
-#define scoped_va_start(name, param) ScopedVaList name; va_start(name.args, param);
}
namespace CKM {
@@ -952,17 +942,29 @@ void SqlConnection::ExecCommandHelper(Output *out, const char *format,
//LCOV_EXCL_START
void SqlConnection::ExecCommand(Output *out, const char *format, ...)
{
- scoped_va_start(svl, format);
-
- ExecCommandHelper(out, format, svl.args);
+ va_list args;
+ va_start(args, format);
+ try {
+ ExecCommandHelper(out, format, args);
+ } catch (...) {
+ va_end(args);
+ throw;
+ }
+ va_end(args);
}
//LCOV_EXCL_STOP
void SqlConnection::ExecCommand(const char *format, ...)
{
- scoped_va_start(svl, format);
-
- ExecCommandHelper(NULL, format, svl.args);
+ va_list args;
+ va_start(args, format);
+ try {
+ ExecCommandHelper(NULL, format, args);
+ } catch (...) {
+ va_end(args);
+ throw;
+ }
+ va_end(args);
}
SqlConnection::DataCommandUniquePtr SqlConnection::PrepareDataCommand(