diff options
author | Molly Lloyd <molly@mapbox.com> | 2018-09-14 15:09:25 -0700 |
---|---|---|
committer | Molly Lloyd <molly@mapbox.com> | 2018-09-14 15:09:25 -0700 |
commit | 6ec957079d6cea7a8cd2d908c7d62ccdeafd6d94 (patch) | |
tree | 3c0f615b8151a572d72915bf4cd5b84ebbf76fb8 | |
parent | 68d463ec2819a2c1e34159c717cfc0166b8ecb02 (diff) | |
download | qtlocation-mapboxgl-upstream/pattern-expression-fix.tar.gz |
prevent crash when expression evaluates to default, no patternupstream/pattern-expression-fix
m--------- | mapbox-gl-js | 0 | ||||
-rw-r--r-- | src/mbgl/renderer/paint_property_binder.hpp | 10 |
2 files changed, 8 insertions, 2 deletions
diff --git a/mapbox-gl-js b/mapbox-gl-js -Subproject f66cead4b8f95c696d7d2636f36cafaf4a4c6bc +Subproject 302a8f625b08554b91a3466863afce71db485ed diff --git a/src/mbgl/renderer/paint_property_binder.hpp b/src/mbgl/renderer/paint_property_binder.hpp index 391ecbb174..05611fd533 100644 --- a/src/mbgl/renderer/paint_property_binder.hpp +++ b/src/mbgl/renderer/paint_property_binder.hpp @@ -302,8 +302,14 @@ public: }; void populateVertexVector(const GeometryTileFeature&, std::size_t length, const ImagePositions& patternPositions, const optional<PatternDependency>& patternDependencies) override { - if (!patternDependencies) return; - if (!patternPositions.empty()) { + + if (patternDependencies->mid == "") { + for (std::size_t i = zoomInVertexVector.vertexSize(); i < length; ++i) { + patternToVertexVector.emplace_back(Vertex { std::array<uint16_t, 4>{{0, 0, 0, 0}} }); + zoomInVertexVector.emplace_back(Vertex2 { std::array<uint16_t, 4>{{0, 0, 0, 0}} } ); + zoomOutVertexVector.emplace_back(Vertex2 { std::array<uint16_t, 4>{{0, 0, 0, 0}} }); + } + } else if (!patternPositions.empty()) { const auto min = patternPositions.find(patternDependencies->min); const auto mid = patternPositions.find(patternDependencies->mid); const auto max = patternPositions.find(patternDependencies->max); |