aboutsummaryrefslogtreecommitdiffstats
path: root/src/platforms/posix/posixHandler.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2009-12-08 10:03:34 +0000
committerVincent Richard <[email protected]>2009-12-08 10:03:34 +0000
commita3bf37fb4f758469b7b68ad7dcca170913fcd912 (patch)
tree9004b6aca2e4e749212f959011417d52f21c5cb9 /src/platforms/posix/posixHandler.cpp
parentInitialize multi-threading for GNUTLS/GCrypt (thanks to Bartek Szurgot). (diff)
downloadvmime-a3bf37fb4f758469b7b68ad7dcca170913fcd912.tar.gz
vmime-a3bf37fb4f758469b7b68ad7dcca170913fcd912.zip
Fixed not exception-safe constructor, which could lead to possible memory leak (thanks to Bartek Szurgot). Get rid of const-ness on factories.
Diffstat (limited to 'src/platforms/posix/posixHandler.cpp')
-rw-r--r--src/platforms/posix/posixHandler.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/platforms/posix/posixHandler.cpp b/src/platforms/posix/posixHandler.cpp
index f43972ee..104bc404 100644
--- a/src/platforms/posix/posixHandler.cpp
+++ b/src/platforms/posix/posixHandler.cpp
@@ -55,18 +55,14 @@ posixHandler::posixHandler()
m_socketFactory = vmime::create <posixSocketFactory>();
#endif
#if VMIME_HAVE_FILESYSTEM_FEATURES
- m_fileSysFactory = new posixFileSystemFactory();
- m_childProcFactory = new posixChildProcessFactory();
+ m_fileSysFactory = vmime::create <posixFileSystemFactory>();
+ m_childProcFactory = vmime::create <posixChildProcessFactory>();
#endif
}
posixHandler::~posixHandler()
{
-#if VMIME_HAVE_FILESYSTEM_FEATURES
- delete (m_fileSysFactory);
- delete (m_childProcFactory);
-#endif
}
@@ -173,9 +169,9 @@ unsigned int posixHandler::getProcessId() const
#if VMIME_HAVE_MESSAGING_FEATURES
-ref <vmime::net::socketFactory> posixHandler::getSocketFactory() const
+ref <vmime::net::socketFactory> posixHandler::getSocketFactory()
{
- return m_socketFactory.dynamicCast <vmime::net::socketFactory>();
+ return m_socketFactory;
}
#endif
@@ -183,15 +179,15 @@ ref <vmime::net::socketFactory> posixHandler::getSocketFactory() const
#if VMIME_HAVE_FILESYSTEM_FEATURES
-vmime::utility::fileSystemFactory* posixHandler::getFileSystemFactory() const
+ref <vmime::utility::fileSystemFactory> posixHandler::getFileSystemFactory()
{
- return (m_fileSysFactory);
+ return m_fileSysFactory;
}
-vmime::utility::childProcessFactory* posixHandler::getChildProcessFactory() const
+ref <vmime::utility::childProcessFactory> posixHandler::getChildProcessFactory()
{
- return (m_childProcFactory);
+ return m_childProcFactory;
}
#endif