diff --git a/src/mbgl/storage/default_file_source.cpp b/src/mbgl/storage/default_file_source.cpp index 8833f78fe..b652e5e71 100644 --- a/src/mbgl/storage/default_file_source.cpp +++ b/src/mbgl/storage/default_file_source.cpp @@ -42,7 +42,7 @@ Request* DefaultFileSource::request(const Resource& resource, // This function can be called from any thread. Make sure we're executing the actual call in the // file source loop by sending it over the queue. - thread->invoke(&Impl::add, req, thread->get()); + thread->invoke(&Impl::add, req); return req; } @@ -61,8 +61,10 @@ void DefaultFileSource::cancel(Request *req) { // ----- Impl ----- -DefaultFileSource::Impl::Impl(uv_loop_t*, FileCache* cache_, const std::string& root) - : cache(cache_), assetRoot(root.empty() ? platform::assetRoot() : root) { +DefaultFileSource::Impl::Impl(uv_loop_t* loop_, FileCache* cache_, const std::string& root) + : loop(loop_), + cache(cache_), + assetRoot(root.empty() ? platform::assetRoot() : root) { } DefaultFileRequest* DefaultFileSource::Impl::find(const Resource& resource) { @@ -73,7 +75,7 @@ DefaultFileRequest* DefaultFileSource::Impl::find(const Resource& resource) { return nullptr; } -void DefaultFileSource::Impl::add(Request* req, uv_loop_t* loop) { +void DefaultFileSource::Impl::add(Request* req) { const Resource& resource = req->resource; DefaultFileRequest* request = find(resource); @@ -82,7 +84,7 @@ void DefaultFileSource::Impl::add(Request* req, uv_loop_t* loop) { return; } - request = &pending.emplace(resource, DefaultFileRequest(resource, loop)).first->second; + request = &pending.emplace(resource, DefaultFileRequest(resource)).first->second; request->observers.insert(req); if (cache) { @@ -128,9 +130,9 @@ void DefaultFileSource::Impl::startRealRequest(const Resource& resource, std::sh }; if (algo::starts_with(resource.url, "asset://")) { - request->request = new AssetRequest(resource, callback, request->loop, assetRoot); + request->request = new AssetRequest(resource, callback, loop, assetRoot); } else { - request->request = new HTTPRequest(resource, callback, request->loop, response); + request->request = new HTTPRequest(resource, callback, loop, response); } } diff --git a/src/mbgl/storage/default_file_source_impl.hpp b/src/mbgl/storage/default_file_source_impl.hpp index 50935ea3d..1d42f474f 100644 --- a/src/mbgl/storage/default_file_source_impl.hpp +++ b/src/mbgl/storage/default_file_source_impl.hpp @@ -14,19 +14,18 @@ class RequestBase; struct DefaultFileRequest { const Resource resource; - uv_loop_t* loop; std::set observers; RequestBase* request = nullptr; - DefaultFileRequest(const Resource& resource_, uv_loop_t* loop_) - : resource(resource_), loop(loop_) {} + DefaultFileRequest(const Resource& resource_) + : resource(resource_) {} }; class DefaultFileSource::Impl { public: Impl(uv_loop_t*, FileCache*, const std::string& = ""); - void add(Request*, uv_loop_t*); + void add(Request*); void cancel(Request*); private: @@ -37,6 +36,7 @@ private: void notify(DefaultFileRequest*, std::shared_ptr, FileCache::Hint); std::unordered_map pending; + uv_loop_t* loop = nullptr; FileCache* cache = nullptr; const std::string assetRoot; }; diff --git a/src/mbgl/util/thread.hpp b/src/mbgl/util/thread.hpp index 036ac33c9..9a1a7b013 100644 --- a/src/mbgl/util/thread.hpp +++ b/src/mbgl/util/thread.hpp @@ -76,8 +76,6 @@ public: // destroying the Thread. void pumpingStop(std::function); - uv_loop_t* get() { return loop->get(); } - private: Thread(const Thread&) = delete; Thread(Thread&&) = delete;