diff options
Diffstat (limited to 'src/mbgl/tile/tile_loader_impl.hpp')
-rw-r--r-- | src/mbgl/tile/tile_loader_impl.hpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/mbgl/tile/tile_loader_impl.hpp b/src/mbgl/tile/tile_loader_impl.hpp index 5bf9988485..dc57d61e5a 100644 --- a/src/mbgl/tile/tile_loader_impl.hpp +++ b/src/mbgl/tile/tile_loader_impl.hpp @@ -53,11 +53,10 @@ void TileLoader<T>::loadOptional() { assert(!request); resource.necessity = Resource::Optional; +// fprintf(stderr, "requesting %s\n", resource.url.c_str()); request = fileSource.request(resource, [this](Response res) { request.reset(); - tile.setTriedOptional(); - if (res.error && res.error->status == ResourceStatus::NotFoundError) { // When the optional request could not be satisfied, don't treat it as an error. // Instead, we make sure that the next request knows that there has been an optional @@ -92,18 +91,18 @@ template <typename T> void TileLoader<T>::loadedData(const Response& res) { const bool complete = necessity == Necessity::Optional || resource.necessity == Necessity::Required; if (res.error) { - tile.setError(std::make_exception_ptr(util::ResourceError(res.error->message, resource.kind, - res.error->status, resource.url)), - complete); + util::ResourceError err(res.error->message, resource.kind, res.error->status, resource.url); + tile.setError(std::make_exception_ptr(err), complete); } else if (res.notModified) { resource.priorExpires = res.expires; - // Do not notify the tile; when we get this message, it already has the current + tile.setData({}, res.modified, res.expires, complete); + // Do not notify the tile of new data; when we get this message, it already has the current // version of the data. } else { resource.priorModified = res.modified; resource.priorExpires = res.expires; resource.priorEtag = res.etag; - tile.setData(res.noContent ? nullptr : res.data, res.modified, res.expires, complete); + tile.setData({ res.noContent ? nullptr : res.data }, res.modified, res.expires, complete); } } @@ -112,7 +111,9 @@ void TileLoader<T>::loadRequired() { assert(!request); resource.necessity = Resource::Required; +// fprintf(stderr, "requesting %s\n", resource.url.c_str()); request = fileSource.request(resource, [this](Response res) { loadedData(res); }); } } // namespace mbgl + |