diff --git a/src/Context.cc b/src/Context.cc index 58f166f2..bef22e54 100644 --- a/src/Context.cc +++ b/src/Context.cc @@ -280,7 +280,8 @@ Context::Context(bool standalone, !uriListParser) { global::cout()->printf("%s\n", MSG_NO_FILES_TO_DOWNLOAD); } else { - reqinfo.reset(new MultiUrlRequestInfo(requestGroups, op, getStatCalc(op), + reqinfo.reset(new MultiUrlRequestInfo(std::move(requestGroups), + op, getStatCalc(op), getSummaryOut(op), uriListParser)); } diff --git a/src/DownloadEngineFactory.cc b/src/DownloadEngineFactory.cc index 8c7ace30..3f3bad54 100644 --- a/src/DownloadEngineFactory.cc +++ b/src/DownloadEngineFactory.cc @@ -86,7 +86,7 @@ DownloadEngineFactory::DownloadEngineFactory() {} std::shared_ptr DownloadEngineFactory::newDownloadEngine -(Option* op, const std::vector >& requestGroups) +(Option* op, std::vector > requestGroups) { const size_t MAX_CONCURRENT_DOWNLOADS = op->getAsInt(PREF_MAX_CONCURRENT_DOWNLOADS); @@ -149,9 +149,8 @@ DownloadEngineFactory::newDownloadEngine std::shared_ptr e(new DownloadEngine(eventPoll)); e->setOption(op); - std::shared_ptr - requestGroupMan(new RequestGroupMan(requestGroups, MAX_CONCURRENT_DOWNLOADS, - op)); + auto requestGroupMan = std::make_shared + (std::move(requestGroups), MAX_CONCURRENT_DOWNLOADS, op); requestGroupMan->initWrDiskCache(); e->setRequestGroupMan(requestGroupMan); e->setFileAllocationMan diff --git a/src/DownloadEngineFactory.h b/src/DownloadEngineFactory.h index 14c75b5a..7675971c 100644 --- a/src/DownloadEngineFactory.h +++ b/src/DownloadEngineFactory.h @@ -52,7 +52,7 @@ public: std::shared_ptr newDownloadEngine - (Option* op, const std::vector >& requestGroups); + (Option* op, std::vector > requestGroups); }; } // namespace aria2 diff --git a/src/MultiUrlRequestInfo.cc b/src/MultiUrlRequestInfo.cc index e99d4f7d..bb054469 100644 --- a/src/MultiUrlRequestInfo.cc +++ b/src/MultiUrlRequestInfo.cc @@ -104,12 +104,13 @@ void handler(int signal) { } // namespace MultiUrlRequestInfo::MultiUrlRequestInfo -(std::vector >& requestGroups, +(std::vector > requestGroups, const std::shared_ptr