summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMolly Lloyd <molly@mapbox.com>2018-09-14 15:09:25 -0700
committerMolly Lloyd <molly@mapbox.com>2018-09-14 15:09:25 -0700
commit6ec957079d6cea7a8cd2d908c7d62ccdeafd6d94 (patch)
tree3c0f615b8151a572d72915bf4cd5b84ebbf76fb8
parent68d463ec2819a2c1e34159c717cfc0166b8ecb02 (diff)
downloadqtlocation-mapboxgl-upstream/pattern-expression-fix.tar.gz
prevent crash when expression evaluates to default, no patternupstream/pattern-expression-fix
m---------mapbox-gl-js0
-rw-r--r--src/mbgl/renderer/paint_property_binder.hpp10
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);