As discussed in the issue, passing duplicate hexagon indices into cellsToMultiPolygon can cause a SIGSEGV crash in the underlying C library.
This PR enforces uniqueness at the API level by updating the method signatures in H3Core to require a Set instead of a Collection.
Changes included:
Updated cellsToMultiPolygon and cellAddressesToMultiPolygon in H3Core.java to require Set.
Updated the H3CoreV3 backward-compatibility layer to wrap incoming Collections in a HashSet before delegating to the core API, ensuring legacy users don't experience breaking API changes.
Updated the test suite (swapped ImmutableList for ImmutableSet and wrapped legacy list variables) to compile against the new stricter API.
Testing
Local Java compilation succeeds. Relying on CI to execute the test suite against the compiled native binaries.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Fixes #158.
As discussed in the issue, passing duplicate hexagon indices into cellsToMultiPolygon can cause a SIGSEGV crash in the underlying C library.
This PR enforces uniqueness at the API level by updating the method signatures in H3Core to require a Set instead of a Collection.
Changes included:
Testing
Local Java compilation succeeds. Relying on CI to execute the test suite against the compiled native binaries.