diff --git a/libraries/networking/src/ResourceCache.cpp b/libraries/networking/src/ResourceCache.cpp index 9738233c85..3de94ed839 100644 --- a/libraries/networking/src/ResourceCache.cpp +++ b/libraries/networking/src/ResourceCache.cpp @@ -423,12 +423,12 @@ void Resource::handleReplyFinished() { auto result = _request->getResult(); if (result == ResourceRequest::Success) { + _data = _request->getData(); auto extraInfo = _url == _activeUrl ? "" : QString(", %1").arg(_activeUrl.toDisplayString()); qCDebug(networking).noquote() << QString("Request finished for %1%2").arg(_url.toDisplayString(), extraInfo); - auto data = _request->getData(); - emit loaded(data); - downloadFinished(data); + emit loaded(_data); + downloadFinished(_data); } else { switch (result) { case ResourceRequest::Result::Timeout: { diff --git a/libraries/networking/src/ResourceCache.h b/libraries/networking/src/ResourceCache.h index fd3dd75d15..77878794b5 100644 --- a/libraries/networking/src/ResourceCache.h +++ b/libraries/networking/src/ResourceCache.h @@ -194,6 +194,7 @@ public: Q_INVOKABLE void allReferencesCleared(); const QUrl& getURL() const { return _url; } + const QByteArray& getData() const { return _data; } signals: /// Fired when the resource has been downloaded. @@ -234,6 +235,7 @@ protected: QHash, float> _loadPriorities; QWeakPointer _self; QPointer _cache; + QByteArray _data; private slots: void handleDownloadProgress(uint64_t bytesReceived, uint64_t bytesTotal);