The main point of this is to fix the division by 0 when there are no primary features in a tile, which is currently breaking the debug build (which this PR also reenables).
There are a few additional changes to fix the use of other undefined behaviors:
Fix a shift by a negative number
Fix examination of a value past the end of a vector
Fix a pointer into a string that has gone out of scope
Fix overflow of signed subtraction in feature value hashes
Fix overflow of intermediate values in line simplification
The last of these unfortunately ripples into many tests because of the slight changes to simplification decisions, which fortunately at least remain stable between ARM and x86.
One example of the simplification changes is visible in the overzoomed z0 tile of tippecanoe -zg -D10 -f -o after.mbtiles ne_10m_ocean.geojsonseq.json, before and after:
The main point of this is to fix the division by 0 when there are no primary features in a tile, which is currently breaking the debug build (which this PR also reenables).
There are a few additional changes to fix the use of other undefined behaviors:
The last of these unfortunately ripples into many tests because of the slight changes to simplification decisions, which fortunately at least remain stable between ARM and x86.
One example of the simplification changes is visible in the overzoomed z0 tile of
tippecanoe -zg -D10 -f -o after.mbtiles ne_10m_ocean.geojsonseq.json
, before and after: