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 859fd417b..aa3982478 100644 --- a/test/tile/vector_tile.test.cpp +++ b/test/tile/vector_tile.test.cpp @@ -86,3 +86,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"} }, {} }); +} \ No newline at end of file