diff options
Diffstat (limited to 'src/manager/dpl/db/src/sql_connection.cpp')
-rw-r--r-- | src/manager/dpl/db/src/sql_connection.cpp | 34 |
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( |