diff options
Diffstat (limited to 'intern/audaspace/FX/AUD_DoubleFactory.cpp')
-rw-r--r-- | intern/audaspace/FX/AUD_DoubleFactory.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/intern/audaspace/FX/AUD_DoubleFactory.cpp b/intern/audaspace/FX/AUD_DoubleFactory.cpp index 402d884be9f..9f625d0763f 100644 --- a/intern/audaspace/FX/AUD_DoubleFactory.cpp +++ b/intern/audaspace/FX/AUD_DoubleFactory.cpp @@ -27,29 +27,24 @@ #include "AUD_DoubleReader.h" AUD_DoubleFactory::AUD_DoubleFactory(AUD_IFactory* factory1, AUD_IFactory* factory2) : - m_factory1(factory1), m_factory2(factory2) {} + m_factory1(factory1), m_factory2(factory2) +{ +} -AUD_IReader* AUD_DoubleFactory::createReader() +AUD_IReader* AUD_DoubleFactory::createReader() const { AUD_IReader* reader1 = m_factory1->createReader(); - if(!reader1) - return 0; AUD_IReader* reader2; + try { reader2 = m_factory2->createReader(); - if(!reader2) - { - delete reader1; AUD_DELETE("reader") - return 0; - } } catch(AUD_Exception&) { - delete reader1; AUD_DELETE("reader") + delete reader1; throw; } - AUD_IReader* reader = new AUD_DoubleReader(reader1, reader2); - return reader; + return new AUD_DoubleReader(reader1, reader2); } |