diff --git a/ChangeLog b/ChangeLog index ae1d974c..343aac0c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-11-15 Tatsuhiro Tsujikawa + + Use SharedHandle::swap() in some places. + * src/RequestGroup.cc + 2010-11-15 Tatsuhiro Tsujikawa Added SharedHandle::swap diff --git a/src/RequestGroup.cc b/src/RequestGroup.cc index afcd3ca9..22472325 100644 --- a/src/RequestGroup.cc +++ b/src/RequestGroup.cc @@ -238,10 +238,10 @@ SharedHandle RequestGroup::createCheckIntegrityEntry() if(logger_->info()) { logger_->info(MSG_HASH_CHECK_NOT_DONE); } - SharedHandle tempEntry - (new ChecksumCheckIntegrityEntry(this)); + ChecksumCheckIntegrityEntry* tempEntry = + new ChecksumCheckIntegrityEntry(this); tempEntry->setRedownload(true); - checkEntry = tempEntry; + checkEntry.reset(tempEntry); } else #endif // ENABLE_MESSAGE_DIGEST { @@ -259,10 +259,10 @@ SharedHandle RequestGroup::createCheckIntegrityEntry() if(option_->getAsBool(PREF_CHECK_INTEGRITY) && downloadContext_->isChecksumVerificationAvailable()) { loadAndOpenFile(infoFile); - SharedHandle tempEntry - (new ChecksumCheckIntegrityEntry(this)); + ChecksumCheckIntegrityEntry* tempEntry = + new ChecksumCheckIntegrityEntry(this); tempEntry->setRedownload(true); - checkEntry = tempEntry; + checkEntry.reset(tempEntry); } else #endif // ENABLE_MESSAGE_DIGEST { @@ -590,8 +590,9 @@ void RequestGroup::initPieceStorage() #endif // ENABLE_BITTORRENT )) { #ifdef ENABLE_BITTORRENT - SharedHandle ps - (new DefaultPieceStorage(downloadContext_, option_.get())); + DefaultPieceStorage* ps = + new DefaultPieceStorage(downloadContext_, option_.get()); + SharedHandle psHolder(ps); if(downloadContext_->hasAttribute(bittorrent::BITTORRENT)) { if(isUriSuppliedForRequsetFileEntry (downloadContext_->getFileEntries().begin(), @@ -623,27 +624,29 @@ void RequestGroup::initPieceStorage() } } #else // !ENABLE_BITTORRENT - SharedHandle ps - (new DefaultPieceStorage(downloadContext_, option_.get())); + DefaultPieceStorage* ps = + new DefaultPieceStorage(downloadContext_, option_.get()); + SharedHandle psHolder(ps); #endif // !ENABLE_BITTORRENT if(diskWriterFactory_) { ps->setDiskWriterFactory(diskWriterFactory_); } - tempPieceStorage = ps; + tempPieceStorage.swap(psHolder); } else { - UnknownLengthPieceStorageHandle ps - (new UnknownLengthPieceStorage(downloadContext_, option_.get())); + UnknownLengthPieceStorage* ps = + new UnknownLengthPieceStorage(downloadContext_, option_.get()); + SharedHandle psHolder(ps); if(diskWriterFactory_) { ps->setDiskWriterFactory(diskWriterFactory_); } - tempPieceStorage = ps; + tempPieceStorage.swap(psHolder); } tempPieceStorage->initStorage(); SharedHandle tempSegmentMan (new SegmentMan(option_.get(), downloadContext_, tempPieceStorage)); - pieceStorage_ = tempPieceStorage; - segmentMan_ = tempSegmentMan; + pieceStorage_.swap(tempPieceStorage); + segmentMan_.swap(tempSegmentMan); } void RequestGroup::dropPieceStorage()