summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-10-17 09:10:50 -0700
committerBruno de Oliveira Abinader <bruno@mapbox.com>2017-10-26 01:37:08 +0300
commit9f50e095205765a7dbe978d3673a07f8e8f3c64f (patch)
tree6ee77b6076a370139560c5c20b5e1e255507e25d
parent424ba0d9dec06b17741a8ac386e1ca77fc41a4d5 (diff)
downloadqtlocation-mapboxgl-upstream/querysourcefeatures-fix.tar.gz
[core] fix crash when querying GeoJSON tilesupstream/querysourcefeatures-fix
-rw-r--r--src/mbgl/tile/geojson_tile.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/mbgl/tile/geojson_tile.cpp b/src/mbgl/tile/geojson_tile.cpp
index d648d2e5ff..bbec899950 100644
--- a/src/mbgl/tile/geojson_tile.cpp
+++ b/src/mbgl/tile/geojson_tile.cpp
@@ -23,19 +23,19 @@ void GeoJSONTile::querySourceFeatures(
const SourceQueryOptions& options) {
// Ignore the sourceLayer, there is only one
- auto layer = getData()->getLayer({});
-
- if (layer) {
- auto featureCount = layer->featureCount();
- for (std::size_t i = 0; i < featureCount; i++) {
- auto feature = layer->getFeature(i);
-
- // Apply filter, if any
- if (options.filter && !(*options.filter)(*feature)) {
- continue;
+ if (auto tileData = getData()) {
+ if (auto layer = tileData->getLayer({})) {
+ auto featureCount = layer->featureCount();
+ for (std::size_t i = 0; i < featureCount; i++) {
+ auto feature = layer->getFeature(i);
+
+ // Apply filter, if any
+ if (options.filter && !(*options.filter)(*feature)) {
+ continue;
+ }
+
+ result.push_back(convertFeature(*feature, id.canonical));
}
-
- result.push_back(convertFeature(*feature, id.canonical));
}
}
}