diff options
Diffstat (limited to 'src/AsyncAlgorithm.cpp')
-rw-r--r-- | src/AsyncAlgorithm.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/AsyncAlgorithm.cpp b/src/AsyncAlgorithm.cpp index 54083a3..a53fb00 100644 --- a/src/AsyncAlgorithm.cpp +++ b/src/AsyncAlgorithm.cpp @@ -72,11 +72,13 @@ bool CAsyncAlgorithm::initialize(const Config& _cfg) m_pAlg = 0; m_bDone = false; - m_pAlg = CAlgorithmFactory::getSingleton().create(_cfg); - if (m_pAlg && !m_pAlg->isInitialized()) { - if (m_bAutoFree) - delete m_pAlg; - m_pAlg = 0; + m_pAlg = CAlgorithmFactory::getSingleton().create(_cfg.self.getAttribute("type")); + if (m_pAlg) { + if (!m_pAlg->initialize(_cfg)) { + if (m_bAutoFree) + delete m_pAlg; + m_pAlg = 0; + } } m_bInitialized = (m_pAlg != 0); m_bAutoFree = true; |