diff options
author | zmiao <miao.zhao@mapbox.com> | 2020-04-06 13:45:35 +0300 |
---|---|---|
committer | zmiao <miao.zhao@mapbox.com> | 2020-04-07 13:39:33 +0300 |
commit | e1ff66cac4727790a4d0e7d253245d959dbb0b12 (patch) | |
tree | 5525a9fa0c9377d91c3429135a95f8c951799c83 | |
parent | 56945b1ae27080a6dc5570f0617838c5efd89a19 (diff) | |
download | qtlocation-mapboxgl-upstream/zmiao-fix-undefined-behaviour.tar.gz |
Address review findingsupstream/zmiao-fix-undefined-behaviour
-rw-r--r-- | src/mbgl/layout/symbol_layout.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_line_layer.cpp | 6 |
2 files changed, 2 insertions, 6 deletions
diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index f16f310a06..d996041ebe 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -743,7 +743,7 @@ std::vector<float> SymbolLayout::calculateTileDistances(const GeometryCoordinate if (i != 0u) { sumBackwardLength += util::dist<float>(line[i - 1], line[i]); } else { - break; + break; // Add break to avoid unsigned integer overflow when i==0 } } } diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp index 249248e666..b03ac8027b 100644 --- a/src/mbgl/renderer/layers/render_line_layer.cpp +++ b/src/mbgl/renderer/layers/render_line_layer.cpp @@ -242,11 +242,7 @@ GeometryCollection offsetLine(const GeometryCollection& rings, double offset) { Point<double> extrude = util::unit(aToB + bToC); const double cosHalfAngle = extrude.x * bToC.x + extrude.y * bToC.y; - if (cosHalfAngle == 0) { - extrude = zero; - } else { - extrude *= (1.0 / cosHalfAngle); - } + extrude *= (cosHalfAngle != 0) ? (1.0 / cosHalfAngle) : 0; newRing.emplace_back(convertPoint<int16_t>(extrude * offset) + p); } |