summaryrefslogtreecommitdiff
path: root/src/mbgl/util/worker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/util/worker.cpp')
-rw-r--r--src/mbgl/util/worker.cpp20
1 files changed, 7 insertions, 13 deletions
diff --git a/src/mbgl/util/worker.cpp b/src/mbgl/util/worker.cpp
index d23831b440..49d1c2bc5b 100644
--- a/src/mbgl/util/worker.cpp
+++ b/src/mbgl/util/worker.cpp
@@ -18,18 +18,12 @@ public:
void parseRasterTile(std::unique_ptr<RasterBucket> bucket,
const std::shared_ptr<const std::string> data,
std::function<void(RasterTileParseResult)> callback) {
- PremultipliedImage image;
-
try {
- image = decodeImage(*data);
+ bucket->setImage(decodeImage(*data));
+ callback(RasterTileParseResult(std::move(bucket)));
} catch (...) {
- callback(RasterTileParseResult("error parsing raster image"));
- return;
+ callback(std::current_exception());
}
-
- bucket->setImage(std::move(image));
-
- callback(RasterTileParseResult(std::move(bucket)));
}
void parseGeometryTile(TileWorker* worker,
@@ -39,8 +33,8 @@ public:
std::function<void(TileParseResult)> callback) {
try {
callback(worker->parseAllLayers(std::move(layers), *tile, config));
- } catch (const std::exception& ex) {
- callback(TileParseResult(ex.what()));
+ } catch (...) {
+ callback(std::current_exception());
}
}
@@ -48,8 +42,8 @@ public:
std::function<void(TileParseResult)> callback) {
try {
callback(worker->parsePendingLayers());
- } catch (const std::exception& ex) {
- callback(TileParseResult(ex.what()));
+ } catch (...) {
+ callback(std::current_exception());
}
}