diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-20 11:37:47 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-20 11:37:47 +0000 |
| commit | 0f0fc5f1987e879ddfffdb0de9214987157eedc2 (patch) | |
| tree | d822459d452f3e7f1d7f49df867363eb01023be5 /src/TrackerWatcherCommand.cc | |
| parent | cb4e25e4b4a2cfa6349a25586a44c932022e6841 (diff) | |
2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use auto_delete_container to delete created Command when exception
is thrown rather than deleting them in catch block.
* src/AbstractCommand.cc
* src/CheckIntegrityCommand.cc
* src/DHTSetup.cc
* src/FileAllocationCommand.cc
* src/TrackerWatcherCommand.cc
* src/a2functional.h
Diffstat (limited to 'src/TrackerWatcherCommand.cc')
| -rw-r--r-- | src/TrackerWatcherCommand.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/TrackerWatcherCommand.cc b/src/TrackerWatcherCommand.cc index 09a29bf0..517f13ad 100644 --- a/src/TrackerWatcherCommand.cc +++ b/src/TrackerWatcherCommand.cc @@ -104,17 +104,17 @@ bool TrackerWatcherCommand::execute() { if(_trackerRequestGroup.isNull()) { _trackerRequestGroup = createAnnounce(); if(!_trackerRequestGroup.isNull()) { - std::vector<Command*> commands; try { - _trackerRequestGroup->createInitialCommand(commands, _e); + std::vector<Command*>* commands = new std::vector<Command*>(); + auto_delete_container<std::vector<Command*> > commandsDel(commands); + _trackerRequestGroup->createInitialCommand(*commands, _e); + _e->addCommand(*commands); + commands->clear(); + if(getLogger()->debug()) { + getLogger()->debug("added tracker request command"); + } } catch(RecoverableException& ex) { getLogger()->error(EX_EXCEPTION_CAUGHT, ex); - std::for_each(commands.begin(), commands.end(), Deleter()); - commands.clear(); - } - _e->addCommand(commands); - if(getLogger()->debug()) { - getLogger()->debug("added tracker request command"); } } } else if(_trackerRequestGroup->downloadFinished()){ |
