Skip to content

Allocate polyLocator as PointOnGeometryLocator[] for Android ART (#1192)#1215

Open
grootstebozewolf wants to merge 1 commit into
locationtech:masterfrom
grootstebozewolf:fix/1192-android-polyLocator-array
Open

Allocate polyLocator as PointOnGeometryLocator[] for Android ART (#1192)#1215
grootstebozewolf wants to merge 1 commit into
locationtech:masterfrom
grootstebozewolf:fix/1192-android-polyLocator-array

Conversation

@grootstebozewolf

Copy link
Copy Markdown
Contributor

Summary

  • Fixes Android ART dex2oat verification failure in RelatePointLocator.init when assigning a ternary of concrete locator arrays to PointOnGeometryLocator[] (reported in Android dex2oatd error #1192).
  • Allocate the declared interface array type instead; locators are still created lazily in getLocator() with the prepared vs simple choice unchanged.
  • Minimal one-site change; no API or behavior change on desktop JVMs.

Test plan

  • mvn -pl modules/core test -Dtest=RelatePointLocatorTest,RelateNGTest,RelateNGGCTest,RelateNGBoundaryNodeRuleTest,RelateNGRobustnessTest,RelatePredicateTest — 133 tests, 0 failures
  • Confirm Android / ART build no longer fails dex2oat on RelatePointLocator (reporter environment if available)

Fixes #1192

…ationtech#1192)

A ternary of IndexedPointInAreaLocator[] vs SimplePointInAreaLocator[]
is verified as Object[] by Android ART and fails dex2oat when assigned
to PointOnGeometryLocator[]. Locators are created lazily in getLocator(),
so allocating the declared interface array type is sufficient and safe.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Android dex2oatd error

1 participant