From 1edbb0f24b3b405bfc203803fffb1fa1ed68f142 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 28 Mar 2017 16:02:48 -0700 Subject: [PATCH] [core] check null data in query source features (#8553) * [core] check null data in query source features * Include what you use --- src/mbgl/tile/geometry_tile.cpp | 5 +++++ test/tile/vector_tile.test.cpp | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp index 5f1fc5de6..5ccc037ce 100644 --- a/src/mbgl/tile/geometry_tile.cpp +++ b/src/mbgl/tile/geometry_tile.cpp @@ -165,6 +165,11 @@ void GeometryTile::queryRenderedFeatures( void GeometryTile::querySourceFeatures( std::vector& result, const style::SourceQueryOptions& options) { + + // Data not yet available + if (!data) { + return; + } // No source layers, specified, nothing to do if (!options.sourceLayers) { diff --git a/test/tile/vector_tile.test.cpp b/test/tile/vector_tile.test.cpp index 49fdcbd9f..f9bdafa5d 100644 --- a/test/tile/vector_tile.test.cpp +++ b/test/tile/vector_tile.test.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -86,3 +87,12 @@ TEST(VectorTile, Issue7615) { EXPECT_EQ(symbolBucket.get(), tile.getBucket(symbolLayer)); } + +TEST(VectorTile, Issue8542) { + VectorTileTest test; + VectorTile tile(OverscaledTileID(0, 0, 0), "source", test.updateParameters, test.tileset); + + // Query before data is set + std::vector result; + tile.querySourceFeatures(result, { { {"layer"} }, {} }); +}