deps(ui-android): jni 0.22 with the code migration (from #9454) - #9476
Merged
Conversation
Bumps [jni](https://github.com/jni-rs/jni-rs) from 0.21.1 to 0.22.4. - [Release notes](https://github.com/jni-rs/jni-rs/releases) - [Changelog](https://github.com/jni-rs/jni-rs/blob/master/CHANGELOG.md) - [Commits](jni-rs/jni-rs@v0.21.1...v0.22.4) --- updated-dependencies: - dependency-name: jni dependency-version: 0.22.4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Behaviour-preserving migration accompanying the dependabot bump: JValueGen and generic GlobalRef reshapes, JObject::from_raw taking env, JNI_OnLoad on FFI-safe raw types, and compatibility push/pop_local_frame helpers over JNI v1.2's raw frame functions so every existing frame push capacity, pop location and branch path stays one-for-one. Thread attachment remains permanent with the former pending-exception policy. Runtime behaviour under ART is not verifiable off-device; the migration is compile-verified against aarch64-linux-android with -D warnings clean.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (69)
📝 WalkthroughWalkthroughThe Android UI crate was migrated from ChangesAndroid JNI migration
Estimated code review effort: 4 (Complex) | ~60 minutes ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Lands dependabot's #9454 with the migration it was missing. The bump commit is dependabot's; the migration was done by a codex agent I ran with a working Android cross-check as its loop, and I verified the result independently.
Why the bump alone couldn't merge: jni 0.22 is a breaking release. Measured, not inferred —
mainpasses theaarch64-linux-androidcross-check in ~25s; the bump as filed fails with 1,601 errors (JValueGenremoved,GlobalRefnow generic). And the break would have been silent: the crate is# andbuild-crossisfail-fast: false, so it would present as a missing Android UI bundle, not a red job.The migration, per the agent's report and my audit: JValueGen/GlobalRef reshapes,
JObject::from_raw(env, raw),JNI_OnLoadover FFI-safe raw types, and compatibilitypush/pop_local_framehelpers over JNI v1.2's raw frame functions. Exported C/JNI ABI unchanged; no crate outsideperry-ui-androidtouched.What I verified myself, not from the report:
mainhas 233pop_local_frame/ 202push_local_framelines in the crate; the migrated tree has 234/204 — exactly the two new helper definitions. An over-released JNI local is a device-only use-after-free, so this was the audit's focus.Stated limit: runtime behaviour under ART is not verifiable off-device. The migration is compile-verified and structure-preserving; the first on-device exercise will be the real test, which is also true of every change to this crate.
Summary by CodeRabbit