diff options
-rw-r--r-- | platform/default/asset_request_fs.cpp | 7 | ||||
-rw-r--r-- | platform/default/asset_request_zip.cpp | 7 | ||||
-rw-r--r-- | src/mbgl/storage/asset_request.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/storage/default_file_source.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/storage/shared_request_base.hpp | 4 |
5 files changed, 12 insertions, 11 deletions
diff --git a/platform/default/asset_request_fs.cpp b/platform/default/asset_request_fs.cpp index fbb739c5ca..446f2f3d52 100644 --- a/platform/default/asset_request_fs.cpp +++ b/platform/default/asset_request_fs.cpp @@ -62,7 +62,7 @@ AssetRequestImpl::AssetRequestImpl(AssetRequest *request_, uv_loop_t *loop) : re path = url.substr(8); } else { // This is a relative path. Prefix with the application root. - path = request->source.assetRoot + "/" + url.substr(8); + path = request->assetRoot + "/" + url.substr(8); } uv_fs_open(loop, &req, path.c_str(), O_RDONLY, S_IRUSR, fileOpened); @@ -207,8 +207,9 @@ void AssetRequestImpl::cleanup(uv_fs_t *req) { // ------------------------------------------------------------------------------------------------- -AssetRequest::AssetRequest(DefaultFileSource::Impl &source_, const Resource &resource_) - : SharedRequestBase(source_, resource_) { +AssetRequest::AssetRequest(DefaultFileSource::Impl &source_, const Resource &resource_, const std::string& assetRoot_) + : SharedRequestBase(source_, resource_) + , assetRoot(assetRoot_) { assert(algo::starts_with(resource.url, "asset://")); } diff --git a/platform/default/asset_request_zip.cpp b/platform/default/asset_request_zip.cpp index ba91809f1b..8a471a4fc4 100644 --- a/platform/default/asset_request_zip.cpp +++ b/platform/default/asset_request_zip.cpp @@ -114,7 +114,7 @@ AssetRequestImpl::~AssetRequestImpl() { AssetRequestImpl::AssetRequestImpl(AssetRequest *request_, uv_loop_t *loop) : context(*AssetZipContext::Get(loop)), request(request_), - root(request->source.assetRoot), + root(request->assetRoot), path(std::string { "assets/" } + request->resource.url.substr(8)) { auto zip = context.getHandle(root); if (zip) { @@ -274,8 +274,9 @@ void AssetRequestImpl::cancel() { // ------------------------------------------------------------------------------------------------- -AssetRequest::AssetRequest(DefaultFileSource::Impl &source_, const Resource &resource_) - : SharedRequestBase(source_, resource_) { +AssetRequest::AssetRequest(DefaultFileSource::Impl &source_, const Resource &resource_, const std::string& assetRoot_) + : SharedRequestBase(source_, resource_) + , assetRoot(assetRoot_) { assert(algo::starts_with(resource.url, "asset://")); } diff --git a/src/mbgl/storage/asset_request.hpp b/src/mbgl/storage/asset_request.hpp index 22e63c1add..2a571d2093 100644 --- a/src/mbgl/storage/asset_request.hpp +++ b/src/mbgl/storage/asset_request.hpp @@ -7,7 +7,7 @@ namespace mbgl { class AssetRequest : public SharedRequestBase { public: - AssetRequest(DefaultFileSource::Impl &source, const Resource &resource); + AssetRequest(DefaultFileSource::Impl&, const Resource&, const std::string& assetRoot); void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr); void cancel(); @@ -15,6 +15,7 @@ public: private: ~AssetRequest(); void *ptr = nullptr; + const std::string& assetRoot; friend class AssetRequestImpl; }; diff --git a/src/mbgl/storage/default_file_source.cpp b/src/mbgl/storage/default_file_source.cpp index 6ead7781b2..f4c220e36f 100644 --- a/src/mbgl/storage/default_file_source.cpp +++ b/src/mbgl/storage/default_file_source.cpp @@ -89,7 +89,7 @@ void DefaultFileSource::Impl::add(Request* req, uv_loop_t* loop) { if (!sharedRequest) { // There is no request for this URL yet. Create a new one and start it. if (algo::starts_with(resource.url, "asset://")) { - sharedRequest = new AssetRequest(*this, resource); + sharedRequest = new AssetRequest(*this, resource, assetRoot); } else { sharedRequest = new HTTPRequest(*this, resource); } diff --git a/src/mbgl/storage/shared_request_base.hpp b/src/mbgl/storage/shared_request_base.hpp index ce741ce11e..cf70ac0f04 100644 --- a/src/mbgl/storage/shared_request_base.hpp +++ b/src/mbgl/storage/shared_request_base.hpp @@ -85,10 +85,8 @@ protected: public: const Resource resource; -protected: - DefaultFileSource::Impl &source; - private: + DefaultFileSource::Impl& source; std::set<Request *> observers; }; |