summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/default/asset_request_fs.cpp7
-rw-r--r--platform/default/asset_request_zip.cpp7
-rw-r--r--src/mbgl/storage/asset_request.hpp3
-rw-r--r--src/mbgl/storage/default_file_source.cpp2
-rw-r--r--src/mbgl/storage/shared_request_base.hpp4
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;
};