2010-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Use SharedHandle::swap() in some places.
	* src/RequestGroup.cc
pull/1/head
Tatsuhiro Tsujikawa 2010-11-15 12:02:54 +00:00
parent de8598b63a
commit 6a1fe66975
2 changed files with 24 additions and 16 deletions

View File

@ -1,3 +1,8 @@
2010-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use SharedHandle::swap() in some places.
* src/RequestGroup.cc
2010-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2010-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added SharedHandle::swap Added SharedHandle::swap

View File

@ -238,10 +238,10 @@ SharedHandle<CheckIntegrityEntry> RequestGroup::createCheckIntegrityEntry()
if(logger_->info()) { if(logger_->info()) {
logger_->info(MSG_HASH_CHECK_NOT_DONE); logger_->info(MSG_HASH_CHECK_NOT_DONE);
} }
SharedHandle<ChecksumCheckIntegrityEntry> tempEntry ChecksumCheckIntegrityEntry* tempEntry =
(new ChecksumCheckIntegrityEntry(this)); new ChecksumCheckIntegrityEntry(this);
tempEntry->setRedownload(true); tempEntry->setRedownload(true);
checkEntry = tempEntry; checkEntry.reset(tempEntry);
} else } else
#endif // ENABLE_MESSAGE_DIGEST #endif // ENABLE_MESSAGE_DIGEST
{ {
@ -259,10 +259,10 @@ SharedHandle<CheckIntegrityEntry> RequestGroup::createCheckIntegrityEntry()
if(option_->getAsBool(PREF_CHECK_INTEGRITY) && if(option_->getAsBool(PREF_CHECK_INTEGRITY) &&
downloadContext_->isChecksumVerificationAvailable()) { downloadContext_->isChecksumVerificationAvailable()) {
loadAndOpenFile(infoFile); loadAndOpenFile(infoFile);
SharedHandle<ChecksumCheckIntegrityEntry> tempEntry ChecksumCheckIntegrityEntry* tempEntry =
(new ChecksumCheckIntegrityEntry(this)); new ChecksumCheckIntegrityEntry(this);
tempEntry->setRedownload(true); tempEntry->setRedownload(true);
checkEntry = tempEntry; checkEntry.reset(tempEntry);
} else } else
#endif // ENABLE_MESSAGE_DIGEST #endif // ENABLE_MESSAGE_DIGEST
{ {
@ -590,8 +590,9 @@ void RequestGroup::initPieceStorage()
#endif // ENABLE_BITTORRENT #endif // ENABLE_BITTORRENT
)) { )) {
#ifdef ENABLE_BITTORRENT #ifdef ENABLE_BITTORRENT
SharedHandle<DefaultPieceStorage> ps DefaultPieceStorage* ps =
(new DefaultPieceStorage(downloadContext_, option_.get())); new DefaultPieceStorage(downloadContext_, option_.get());
SharedHandle<PieceStorage> psHolder(ps);
if(downloadContext_->hasAttribute(bittorrent::BITTORRENT)) { if(downloadContext_->hasAttribute(bittorrent::BITTORRENT)) {
if(isUriSuppliedForRequsetFileEntry if(isUriSuppliedForRequsetFileEntry
(downloadContext_->getFileEntries().begin(), (downloadContext_->getFileEntries().begin(),
@ -623,27 +624,29 @@ void RequestGroup::initPieceStorage()
} }
} }
#else // !ENABLE_BITTORRENT #else // !ENABLE_BITTORRENT
SharedHandle<DefaultPieceStorage> ps DefaultPieceStorage* ps =
(new DefaultPieceStorage(downloadContext_, option_.get())); new DefaultPieceStorage(downloadContext_, option_.get());
SharedHandle<PieceStorage> psHolder(ps);
#endif // !ENABLE_BITTORRENT #endif // !ENABLE_BITTORRENT
if(diskWriterFactory_) { if(diskWriterFactory_) {
ps->setDiskWriterFactory(diskWriterFactory_); ps->setDiskWriterFactory(diskWriterFactory_);
} }
tempPieceStorage = ps; tempPieceStorage.swap(psHolder);
} else { } else {
UnknownLengthPieceStorageHandle ps UnknownLengthPieceStorage* ps =
(new UnknownLengthPieceStorage(downloadContext_, option_.get())); new UnknownLengthPieceStorage(downloadContext_, option_.get());
SharedHandle<PieceStorage> psHolder(ps);
if(diskWriterFactory_) { if(diskWriterFactory_) {
ps->setDiskWriterFactory(diskWriterFactory_); ps->setDiskWriterFactory(diskWriterFactory_);
} }
tempPieceStorage = ps; tempPieceStorage.swap(psHolder);
} }
tempPieceStorage->initStorage(); tempPieceStorage->initStorage();
SharedHandle<SegmentMan> tempSegmentMan SharedHandle<SegmentMan> tempSegmentMan
(new SegmentMan(option_.get(), downloadContext_, tempPieceStorage)); (new SegmentMan(option_.get(), downloadContext_, tempPieceStorage));
pieceStorage_ = tempPieceStorage; pieceStorage_.swap(tempPieceStorage);
segmentMan_ = tempSegmentMan; segmentMan_.swap(tempSegmentMan);
} }
void RequestGroup::dropPieceStorage() void RequestGroup::dropPieceStorage()