mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-22 16:02:29 +02:00
fixed a memory leak when opening a SQLite database fails
This commit is contained in:
@@ -54,8 +54,8 @@ SessionImpl::SessionImpl(const std::string& fileName, std::size_t loginTimeout):
|
||||
open();
|
||||
setConnectionTimeout(loginTimeout);
|
||||
setProperty("handle", _pDB);
|
||||
addFeature("autoCommit",
|
||||
&SessionImpl::autoCommit,
|
||||
addFeature("autoCommit",
|
||||
&SessionImpl::autoCommit,
|
||||
&SessionImpl::isAutoCommit);
|
||||
addProperty("connectionTimeout", &SessionImpl::setConnectionTimeout, &SessionImpl::getConnectionTimeout);
|
||||
}
|
||||
@@ -163,14 +163,15 @@ void SessionImpl::open(const std::string& connect)
|
||||
if (rc == SQLITE_OK) break;
|
||||
if (sw.elapsedSeconds() >= tout)
|
||||
{
|
||||
close();
|
||||
Utility::throwException(_pDB, rc);
|
||||
}
|
||||
else Thread::sleep(10);
|
||||
Thread::sleep(10);
|
||||
close();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (SQLiteException& ex)
|
||||
{
|
||||
close();
|
||||
throw ConnectionFailedException(ex.displayText());
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user