diff options
Diffstat (limited to 'intern/audaspace/FX/AUD_PingPongFactory.cpp')
-rw-r--r-- | intern/audaspace/FX/AUD_PingPongFactory.cpp | 45 |
1 files changed, 15 insertions, 30 deletions
diff --git a/intern/audaspace/FX/AUD_PingPongFactory.cpp b/intern/audaspace/FX/AUD_PingPongFactory.cpp index 8b72afe05e7..b3aaa9e80a4 100644 --- a/intern/audaspace/FX/AUD_PingPongFactory.cpp +++ b/intern/audaspace/FX/AUD_PingPongFactory.cpp @@ -28,40 +28,25 @@ #include "AUD_ReverseFactory.h" AUD_PingPongFactory::AUD_PingPongFactory(AUD_IFactory* factory) : - AUD_EffectFactory(factory) {} - -AUD_IReader* AUD_PingPongFactory::createReader() + AUD_EffectFactory(factory) { - if(m_factory == 0) - return 0; +} - AUD_IReader* reader = m_factory->createReader(); +AUD_IReader* AUD_PingPongFactory::createReader() const +{ + AUD_IReader* reader = getReader(); + AUD_IReader* reader2; + AUD_ReverseFactory factory(m_factory); - if(reader != 0) + try { - AUD_IReader* reader2; - AUD_ReverseFactory factory(m_factory); - - try - { - reader2 = factory.createReader(); - } - catch(AUD_Exception) - { - reader2 = 0; - } - - if(reader2 != 0) - { - reader = new AUD_DoubleReader(reader, reader2); - AUD_NEW("reader") - } - else - { - delete reader; AUD_DELETE("reader") - reader = 0; - } + reader2 = factory.createReader(); + } + catch(AUD_Exception&) + { + delete reader; + throw; } - return reader; + return new AUD_DoubleReader(reader, reader2); } |