pointer ⇢ reference

This commit is contained in:
John Firebaugh
2015-04-13 14:37:57 -07:00
parent 9a0005fdea
commit f4adef1889
8 changed files with 15 additions and 20 deletions

View File

@@ -397,7 +397,7 @@ void HTTPRequestImpl::restart(uv_timer_t *timer, int) {
// -------------------------------------------------------------------------------------------------
HTTPRequest::HTTPRequest(DefaultFileSource::Impl *source, const Resource &resource)
HTTPRequest::HTTPRequest(DefaultFileSource::Impl &source, const Resource &resource)
: SharedRequestBase(source, resource) {
}

View File

@@ -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->source.assetRoot + "/" + url.substr(8);
}
uv_fs_open(loop, &req, path.c_str(), O_RDONLY, S_IRUSR, fileOpened);
@@ -207,7 +207,7 @@ void AssetRequestImpl::cleanup(uv_fs_t *req) {
// -------------------------------------------------------------------------------------------------
AssetRequest::AssetRequest(DefaultFileSource::Impl *source_, const Resource &resource_)
AssetRequest::AssetRequest(DefaultFileSource::Impl &source_, const Resource &resource_)
: SharedRequestBase(source_, resource_) {
assert(algo::starts_with(resource.url, "asset://"));
}

View File

@@ -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->source.assetRoot),
path(std::string { "assets/" } + request->resource.url.substr(8)) {
auto zip = context.getHandle(root);
if (zip) {
@@ -129,7 +129,6 @@ void AssetRequestImpl::openZipArchive() {
req->data = this;
assert(request);
assert(request->source);
// We're using uv_fs_open first to obtain a file descriptor. Then, uv_zip_fdopen will operate
// on a read-only file.
@@ -275,7 +274,7 @@ void AssetRequestImpl::cancel() {
// -------------------------------------------------------------------------------------------------
AssetRequest::AssetRequest(DefaultFileSource::Impl *source_, const Resource &resource_)
AssetRequest::AssetRequest(DefaultFileSource::Impl &source_, const Resource &resource_)
: SharedRequestBase(source_, resource_) {
assert(algo::starts_with(resource.url, "asset://"));
}

View File

@@ -722,7 +722,7 @@ void HTTPRequestImpl::handleResult(CURLcode code) {
// -------------------------------------------------------------------------------------------------
HTTPRequest::HTTPRequest(DefaultFileSource::Impl *source_, const Resource &resource_)
HTTPRequest::HTTPRequest(DefaultFileSource::Impl &source_, const Resource &resource_)
: SharedRequestBase(source_, resource_) {
}

View File

@@ -7,7 +7,7 @@ namespace mbgl {
class AssetRequest : public SharedRequestBase {
public:
AssetRequest(DefaultFileSource::Impl *source, const Resource &resource);
AssetRequest(DefaultFileSource::Impl &source, const Resource &resource);
void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr);
void cancel();

View File

@@ -89,9 +89,9 @@ 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);
} else {
sharedRequest = new HTTPRequest(this, resource);
sharedRequest = new HTTPRequest(*this, resource);
}
const bool inserted = pending.emplace(resource, sharedRequest).second;

View File

@@ -7,7 +7,7 @@ namespace mbgl {
class HTTPRequest : public SharedRequestBase {
public:
HTTPRequest(DefaultFileSource::Impl *source, const Resource &resource);
HTTPRequest(DefaultFileSource::Impl &source, const Resource &resource);
void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr);
void cancel();

View File

@@ -26,7 +26,7 @@ protected:
MBGL_STORE_THREAD(tid)
public:
SharedRequestBase(DefaultFileSource::Impl *source_, const Resource &resource_)
SharedRequestBase(DefaultFileSource::Impl &source_, const Resource &resource_)
: resource(resource_), source(source_) {}
virtual void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr) = 0;
@@ -35,9 +35,7 @@ public:
void notify(std::shared_ptr<const Response> response, FileCache::Hint hint) {
MBGL_VERIFY_THREAD(tid);
if (source) {
source->notify(this, observers, response, hint);
}
source.notify(this, observers, response, hint);
}
void subscribe(Request *request) {
@@ -53,10 +51,8 @@ public:
if (abandoned()) {
// There are no observers anymore. We are initiating cancelation.
if (source) {
// First, remove this SharedRequestBase from the source.
source->notify(this, observers, nullptr, FileCache::Hint::No);
}
// First, remove this SharedRequestBase from the source.
source.notify(this, observers, nullptr, FileCache::Hint::No);
// Then, initiate cancelation of this request
cancel();
@@ -95,7 +91,7 @@ public:
const Resource resource;
protected:
DefaultFileSource::Impl *source = nullptr;
DefaultFileSource::Impl &source;
private:
std::set<Request *> observers;