Tatsuhiro Tsujikawa 8 年之前
父節點
當前提交
9eff8100ef
共有 2 個文件被更改,包括 25 次插入25 次删除
  1. 13 13
      src/BtFileAllocationEntry.cc
  2. 12 12
      src/StreamFileAllocationEntry.cc

+ 13 - 13
src/BtFileAllocationEntry.cc

@@ -60,30 +60,30 @@ BtFileAllocationEntry::~BtFileAllocationEntry() = default;
 void BtFileAllocationEntry::prepareForNextAction(
     std::vector<std::unique_ptr<Command>>& commands, DownloadEngine* e)
 {
-  auto& option = getRequestGroup()->getOption();
+  auto rg = getRequestGroup();
+  auto& dctx = rg->getDownloadContext();
+  auto& ps = rg->getPieceStorage();
+  auto diskAdaptor = ps->getDiskAdaptor();
+  auto& option = rg->getOption();
 
-  BtSetup().setup(commands, getRequestGroup(), e, option.get());
+  BtSetup().setup(commands, rg, e, option.get());
   if (option->getAsBool(PREF_ENABLE_MMAP) &&
       option->get(PREF_FILE_ALLOCATION) != V_NONE &&
-      getRequestGroup()->getPieceStorage()->getDiskAdaptor()->size() <=
-          option->getAsLLInt(PREF_MAX_MMAP_LIMIT)) {
-    getRequestGroup()->getPieceStorage()->getDiskAdaptor()->enableMmap();
+      diskAdaptor->size() <= option->getAsLLInt(PREF_MAX_MMAP_LIMIT)) {
+    diskAdaptor->enableMmap();
   }
-  if (!getRequestGroup()->downloadFinished()) {
+  if (!rg->downloadFinished()) {
     // For DownloadContext::resetDownloadStartTime(), see also
     // RequestGroup::createInitialCommand()
-    getRequestGroup()->getDownloadContext()->resetDownloadStartTime();
-    const std::vector<std::shared_ptr<FileEntry>>& fileEntries =
-        getRequestGroup()->getDownloadContext()->getFileEntries();
+    dctx->resetDownloadStartTime();
+    const auto& fileEntries = dctx->getFileEntries();
     if (isUriSuppliedForRequsetFileEntry(std::begin(fileEntries),
                                          std::end(fileEntries))) {
-      getRequestGroup()->createNextCommandWithAdj(commands, e, 0);
+      rg->createNextCommandWithAdj(commands, e, 0);
     }
   }
   else {
 #ifdef __MINGW32__
-    const std::shared_ptr<DiskAdaptor>& diskAdaptor =
-        getRequestGroup()->getPieceStorage()->getDiskAdaptor();
     if (!diskAdaptor->isReadOnlyEnabled()) {
       // On Windows, if aria2 opens files with GENERIC_WRITE access
       // right, some programs cannot open them aria2 is seeding. To
@@ -96,7 +96,7 @@ void BtFileAllocationEntry::prepareForNextAction(
       diskAdaptor->openFile();
     }
 #endif // __MINGW32__
-    getRequestGroup()->enableSeedOnly();
+    rg->enableSeedOnly();
   }
 }
 

+ 12 - 12
src/StreamFileAllocationEntry.cc

@@ -60,28 +60,28 @@ StreamFileAllocationEntry::~StreamFileAllocationEntry() = default;
 void StreamFileAllocationEntry::prepareForNextAction(
     std::vector<std::unique_ptr<Command>>& commands, DownloadEngine* e)
 {
-  auto& option = getRequestGroup()->getOption();
+  auto rg = getRequestGroup();
+  auto& dctx = rg->getDownloadContext();
+  auto& ps = rg->getPieceStorage();
+  auto diskAdaptor = ps->getDiskAdaptor();
+  auto& option = rg->getOption();
 
   // For DownloadContext::resetDownloadStartTime(), see also
   // RequestGroup::createInitialCommand()
-  getRequestGroup()->getDownloadContext()->resetDownloadStartTime();
+  dctx->resetDownloadStartTime();
   if (option->getAsBool(PREF_ENABLE_MMAP) &&
       option->get(PREF_FILE_ALLOCATION) != V_NONE &&
-      getRequestGroup()->getPieceStorage()->getDiskAdaptor()->size() <=
-          option->getAsLLInt(PREF_MAX_MMAP_LIMIT)) {
-    getRequestGroup()->getPieceStorage()->getDiskAdaptor()->enableMmap();
+      diskAdaptor->size() <= option->getAsLLInt(PREF_MAX_MMAP_LIMIT)) {
+    diskAdaptor->enableMmap();
   }
   if (getNextCommand()) {
     // Reset download start time of PeerStat because it is started
     // before file allocation begins.
-    const std::shared_ptr<DownloadContext>& dctx =
-        getRequestGroup()->getDownloadContext();
-    const std::vector<std::shared_ptr<FileEntry>>& fileEntries =
-        dctx->getFileEntries();
+    const auto& fileEntries = dctx->getFileEntries();
     for (auto& f : fileEntries) {
       const auto& reqs = f->getInFlightRequests();
       for (auto& req : reqs) {
-        const std::shared_ptr<PeerStat>& peerStat = req->getPeerStat();
+        const auto& peerStat = req->getPeerStat();
         if (peerStat) {
           peerStat->downloadStart();
         }
@@ -92,10 +92,10 @@ void StreamFileAllocationEntry::prepareForNextAction(
     e->setNoWait(true);
     commands.push_back(popNextCommand());
     // try remaining uris
-    getRequestGroup()->createNextCommandWithAdj(commands, e, -1);
+    rg->createNextCommandWithAdj(commands, e, -1);
   }
   else {
-    getRequestGroup()->createNextCommandWithAdj(commands, e, 0);
+    rg->createNextCommandWithAdj(commands, e, 0);
   }
 }