summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Seelenbinder <me@lukeseelenbinder.com>2020-04-16 21:54:39 +0200
committerLuke Seelenbinder <me@lukeseelenbinder.com>2020-04-16 21:54:39 +0200
commit52ade30fa5365d165cf81cc4a35da20d97347247 (patch)
tree7f851de2cd52fcd3f711efbf37113a72774c14c0
parenta71e672dfaef8a5cdb13f2331b2e6e74c182ac45 (diff)
downloadqtlocation-mapboxgl-52ade30fa5365d165cf81cc4a35da20d97347247.tar.gz
Fix segfault resulting from an invalid geometry.
-rw-r--r--src/mbgl/layout/symbol_layout.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp
index d996041ebe..ae0f96c8ac 100644
--- a/src/mbgl/layout/symbol_layout.cpp
+++ b/src/mbgl/layout/symbol_layout.cpp
@@ -695,8 +695,11 @@ void SymbolLayout::addFeature(const std::size_t layoutFeatureIndex,
}
} else if (type == FeatureType::LineString) {
for (const auto& line : feature.geometry) {
- Anchor anchor(line[0].x, line[0].y, 0, minScale);
- addSymbolInstance(anchor, createSymbolInstanceSharedData(line));
+ // Skip invalid LineStrings.
+ if (line.size() > 0) {
+ Anchor anchor(line[0].x, line[0].y, 0, minScale);
+ addSymbolInstance(anchor, createSymbolInstanceSharedData(line));
+ }
}
} else if (type == FeatureType::Point) {
for (const auto& points : feature.geometry) {