summaryrefslogtreecommitdiff
path: root/src/mbgl/sprite/sprite_store.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/sprite/sprite_store.cpp')
-rw-r--r--src/mbgl/sprite/sprite_store.cpp30
1 files changed, 6 insertions, 24 deletions
diff --git a/src/mbgl/sprite/sprite_store.cpp b/src/mbgl/sprite/sprite_store.cpp
index f54f3f18fd..0c3a7d3ba0 100644
--- a/src/mbgl/sprite/sprite_store.cpp
+++ b/src/mbgl/sprite/sprite_store.cpp
@@ -9,7 +9,6 @@
#include <cassert>
#include <string>
-#include <sstream>
namespace mbgl {
@@ -48,14 +47,11 @@ void SpriteStore::setURL(const std::string& url) {
loader->jsonRequest = nullptr;
if (res.error) {
- std::stringstream message;
- message << "Failed to load [" << jsonURL << "]: " << res.error->message;
- emitSpriteLoadingFailed(message.str());
- return;
+ observer->onSpriteError(std::make_exception_ptr(std::runtime_error(res.error->message)));
} else {
loader->json = res.data;
+ emitSpriteLoadedIfComplete();
}
- emitSpriteLoadedIfComplete();
});
loader->spriteRequest =
@@ -68,14 +64,11 @@ void SpriteStore::setURL(const std::string& url) {
loader->spriteRequest = nullptr;
if (res.error) {
- std::stringstream message;
- message << "Failed to load [" << spriteURL << "]: " << res.error->message;
- emitSpriteLoadingFailed(message.str());
- return;
+ observer->onSpriteError(std::make_exception_ptr(std::runtime_error(res.error->message)));
} else {
loader->image = res.data;
+ emitSpriteLoadedIfComplete();
}
- emitSpriteLoadedIfComplete();
});
}
@@ -91,23 +84,12 @@ void SpriteStore::emitSpriteLoadedIfComplete() {
if (result.is<Sprites>()) {
loaded = true;
setSprites(result.get<Sprites>());
- if (observer) {
- observer->onSpriteLoaded();
- }
+ observer->onSpriteLoaded();
} else {
- emitSpriteLoadingFailed(result.get<std::string>());
+ observer->onSpriteError(result.get<std::exception_ptr>());
}
}
-void SpriteStore::emitSpriteLoadingFailed(const std::string& message) {
- if (!observer) {
- return;
- }
-
- auto error = std::make_exception_ptr(util::SpriteLoadingException(message));
- observer->onSpriteLoadingFailed(error);
-}
-
void SpriteStore::setObserver(Observer* observer_) {
observer = observer_;
}