-
Notifications
You must be signed in to change notification settings - Fork 12
Conversation
* remove flutter sdk dependency from main package * update workflows (and add some) * remove threads.h dependency & attribute(used) to build on windows * Remove type casts according to Androids jni.h * Fix function signatures in header (add explicit void)
Pull Request Test Coverage Report for Build 2684650644
💛 - Coveralls |
It looks like there's something wrong with the coverage configuration. |
Oops, we have to upload coverage info from both packages. I googled a little. It seems one will be overwritten if we do that. Can I move the |
Maybe @liamappelbe as author knows how to deal with multi-packages. Do we need coverage per subpackage? (With then coverage badges on the nested readme's) Or can we combine it somehow? |
It seems like more of an issue with coveralls. Let me try the parallel build example. |
I'm surprised we even have 25% coverage. jni_bindings_generated.dart should probably be excluded from coverage because it contains functions for every corner of JNI, many of which are pretty obscure. I should probably figure out how to generate tests for the utility functions generated using |
Re: badge. The current badge only shows build passing or failing right? |
See badge on https://github.com/dart-lang/ffigen |
On surface, coveralls doesn't seem to provide badges for individual jobs. |
There seems to be an issue with windows CI fetching dev dependencies from git. Should not be a problem after ffigen_patch is vendored. Removing that test until then. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First round of comments.
Super cool that it all works! 🎸
(JNI is very "reflection-ish", calling method by name and passing an array of arguments. Hopefully JNIgen will provide a fully strongly typed API! 😄)
.github/workflows/test-package.yml
Outdated
@@ -76,32 +76,6 @@ jobs: | |||
parallel: true | |||
path-to-lcov: ./jni_gen/coverage/lcov.info | |||
|
|||
test_jni_windows: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What we usually do as a process is:
- File a an issue on GitHub.
- Leave a comment here with
// TODO(https://github.com/dart-lang/jni_gen/issues/<number>): Short description.
.
That way we can easily find back things without having to go through the comments of previous PRs. 🙂 And the issuelist on Github can function as a todo-list for my forgetful mind! 🙃
uses: coverallsapp/github-action@master | ||
with: | ||
github-token: ${{ secrets.github_token }} | ||
parallel-finished: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice!
jni/README.md
Outdated
|
||
## Project stucture | ||
* Functions to spawn a JVM on desktop platforms. (`Jni.spawn`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use consistent punctuation (also above and below).
I think the best solution here would be:
- Functions to spawn a JVM on desktop platforms (
Jni.spawn
).
Period ad the end of the sentence, the brackets within the sentence.
The following two punctuation approaches don't work [for reasons added in the square brackets].
- Functions to spawn a JVM on desktop platforms. (
Jni.spawn
). [The last part is not a sentence. A sentence needs a verb. So it shouldn't have a period.] - Functions to spawn a JVM on desktop platforms. (
Jni.spawn
) [The symbol within brackets belongs to the previous sentence, but now it looks like it stands on its own.]
jni/README.md
Outdated
|
||
This template uses the following structure: | ||
* Some utility functions to make it easier to work with JNI in Dart; eg: To convert a java string object to Dart string. (mostly as extension methods on `Pointer<JniEnv>`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Either
- Some utility functions to make it easier to work with JNI in Dart; eg: To convert a java string object to Dart string (mostly as extension methods on
Pointer<JniEnv>
).
Or
- Some utility functions to make it easier to work with JNI in Dart; eg: To convert a java string object to Dart string. (Mostly as extension methods on
Pointer<JniEnv>
.)
Probably the first one if we want to keep it consistent with the previous bullet points (also below).
jni/README.md
Outdated
|
||
* `lib`: Contains the Dart code that defines the API of the plugin, and which | ||
calls into the native code using `dart:ffi`. | ||
* Some helper classes and functions to simplify one-off uses. (`JniObject` and `JniClass` intended for calling functions by just specifying the name and arguments. It will reduce some boilerplate when you're debugging. That said, this API is slightly incomplete.) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid "you". Maybe use the following: It will reduce some boilerplate during debugging.
Avoid speaking language: "That said, ". Maybe use the following: Please note this API is incomplete.
## If this is vendored directly, it will not be possible to | ||
## review changes in ffigen. | ||
# | ||
## Will be removed in a later PR by vendoring the patched ffigen. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please file an issue and add a TODO here.
/// | ||
/// However, functions prefixed JNI_ are not usable because they are in a different shared library. | ||
/// | ||
/// Regenerate bindings with `flutter pub run path_to_ffigen.dart --config ffigen.yaml`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
flutter pub run ffigen --config ffigen.yaml
and dart run ffigen --config ffigen.yaml
should work without having to find a path to ffigen.dart
. (It is the magic of bin/<package-name>.dart
.)
|
||
/// Delete the local reference contained by this object. | ||
/// | ||
/// Do not use a JniObject after calling [delete]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a boolean _deleted = false;
to class JniObject
. Set it to true here. And check in all methods that it is false before using it.
* Add TODO in workflow for windows * Move jni_bindings_generated.dart to lib/src/third_party * Best effort punctuation in README * Add TODO for vendoring package in pubspec * Add AOSP license in preamble of jni_bindings_generated.dart
* Fix documentation punctuation. * Add HelperNotFoundException * Rename template files
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the slow review, I've been out of town. I haven't read every message in the chat thread, so some of my comments might be duplicates.
jni/lib/src/jni.dart
Outdated
/// the time, we need a direct method. | ||
JniClass findJniClass(String qualifiedName) { | ||
var nameChars = qualifiedName.toNativeChars(); | ||
final cls = _bindings.LoadClass(nameChars); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe call findClass
, to reduce repetition? Also newInstance
could probably call findJniClass
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
findClass returns a raw JClass (seemed consistent with getApplicationContext etc..), findJniClass returns a JniClass wrapper.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, but it looks like this function shares a lot of code with findClass
, so you can do this:
JniClass findJniClass(String qualifiedName) {
return JniClass.of(getEnv(), findClass(qualifiedName));
}
And newInstance
can similarly call findJniClass
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah didn't notice this. thanks.
* Use final_locals lint rule * Fix HelperNotFoundException breaking on flutter * Prevent memory leak in presence of exceptions * Documentation changes * Use inheritStdio in setup.dart Hopefully most reviews are covered. There might be a few that I missed. Thanks @liamappelbe and @dcharkes for very detailed reviews!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this PR can be submitted soon. You don't have to fix all the things we've talked about before submitting. Big PRs get hard to follow if we try to fix too many things at once. Just make sure you file bugs for anything you're going to do later, so we don't forget it.
As long as the test coverage stuff is working, we can fix the rest bit by bit. The coverage number is artificially low right now, because it's including all the *_generated.dart
files. Try adding // coverage:ignore-file
to all those files (put it in the preamble:
of whatever ffigen config made these files).
jni/lib/src/jni.dart
Outdated
/// the time, we need a direct method. | ||
JniClass findJniClass(String qualifiedName) { | ||
var nameChars = qualifiedName.toNativeChars(); | ||
final cls = _bindings.LoadClass(nameChars); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, but it looks like this function shares a lot of code with findClass
, so you can do this:
JniClass findJniClass(String qualifiedName) {
return JniClass.of(getEnv(), findClass(qualifiedName));
}
And newInstance
can similarly call findJniClass
/// Convenience wrapper around a JNI local class reference. | ||
/// | ||
/// Reference lifetime semantics are same as [JniObject]. | ||
class JniClass { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed, this should be follow up work. Just file a bug to remind yourself to look into it later.
Agreed. 🚀 I'll be out next week, feel free to submit this PR and follow up PRs without me looking at it. |
* Fix CMake arguments in bin/setup.dart * Throw UnsupportedError / StateError instead of exception * Reuse code in Jni#findJniClass and Jni#newInstance * Add instructions to use LSP with C library * Refactor C library and move inline functions to headers (for use by jni_gen)
@mahesh-hegde & @liamappelbe is this ready to be merged? 🎸 |
Changes: ``` > git log --format="%C(auto) %h %s" eaea725..5dca10e https://dart.googlesource.com/native.git/+/5dca10ea [style] Enable `dangling_library_doc_comments` lint (809) https://dart.googlesource.com/native.git/+/4179fbd1 Merge pull request 545 from dart-lang/merge-jnigen https://dart.googlesource.com/native.git/+/9d35138f Merge package:jni and package:jnigen into shared native repository https://dart.googlesource.com/native.git/+/37789d66 [jnigen] Add paths to github workflow https://dart.googlesource.com/native.git/+/05994dd7 [jnigen] Fix beta CI and print the analyzer failures (https://github.com/dart-lang/jnigen/issues/418) https://dart.googlesource.com/native.git/+/3f34c6cd [jnigen] Reformat with the latest version of dart format (https://github.com/dart-lang/jnigen/issues/417) https://dart.googlesource.com/native.git/+/c64e9c87 [ffigen] Stable release 10.0.0 (202) https://dart.googlesource.com/native.git/+/e3e63406 [ffigen] Update urls after repo merge (203) https://dart.googlesource.com/native.git/+/b90e4e83 update the package markdown table; update the issue templates (197) https://dart.googlesource.com/native.git/+/c0018281 update repo references from the move (198) https://dart.googlesource.com/native.git/+/29e423c7 Merge pull request 185 from dart-lang/merge-ffigen-package https://dart.googlesource.com/native.git/+/ff474966 Switch publish workflow to use the beta SDK https://dart.googlesource.com/native.git/+/36342298 Merge package:ffigen into dart-lang/native https://dart.googlesource.com/native.git/+/85e4257b [ffigen] Change ffigen to use dart-lang/native's directory stucture https://dart.googlesource.com/native.git/+/1920cc98 [ffigen] Prepare for merge into dart-lang/native (641) https://dart.googlesource.com/native.git/+/69c3e21e [jnigen] Fix buffer overflow issue when converting strings from JNI to Dart (https://github.com/dart-lang/jnigen/issues/416) https://dart.googlesource.com/native.git/+/b4a59e2e [jnigen] Remove macos plugin from package:jni (https://github.com/dart-lang/jnigen/issues/415) https://dart.googlesource.com/native.git/+/8974cb0b [jnigen] Bump actions/checkout from 4.1.0 to 4.1.1 (https://github.com/dart-lang/jnigen/issues/412) https://dart.googlesource.com/native.git/+/2491826d [ffigen] ObjC static functions (633) https://dart.googlesource.com/native.git/+/e2d6f4c9 [ffigen] Bump actions/checkout from 4.1.0 to 4.1.1 (636) https://dart.googlesource.com/native.git/+/bf2e60dd [ffigen] Bump dart-lang/setup-dart from 1.5.1 to 1.6.0 (637) https://dart.googlesource.com/native.git/+/9dcd6ef6 [ffigen] Bump subosito/flutter-action from 2.10.0 to 2.12.0 (638) https://dart.googlesource.com/native.git/+/039040ec [jnigen] Bump subosito/flutter-action from 2.10.0 to 2.12.0 (https://github.com/dart-lang/jnigen/issues/411) https://dart.googlesource.com/native.git/+/0d205b90 [ffigen] Fix generated asset/assetId property for ffi-native (634) https://dart.googlesource.com/native.git/+/8aeb62c9 [ffigen] Use getDartType rather than getFfiDartType in ObjC block codegen (632) https://dart.googlesource.com/native.git/+/86abba53 [ffigen] Enable use_super_parameters lint (631) https://dart.googlesource.com/native.git/+/f2a82d87 [jnigen] Bump actions/checkout from 3.6.0 to 4.1.0 (https://github.com/dart-lang/jnigen/issues/404) https://dart.googlesource.com/native.git/+/8b765d73 [ffigen] Typedefs for Dart types (625) https://dart.googlesource.com/native.git/+/c71d38bd [ffigen] Refactor `sameFfiDartAndCType` to not require a `Writer` (629) https://dart.googlesource.com/native.git/+/0f1ed374 [ffigen] Bump dart-lang/setup-dart from 1.5.0 to 1.5.1 (627) https://dart.googlesource.com/native.git/+/4b6894f5 [ffigen] Bump actions/checkout from 3.6.0 to 4.1.0 (626) https://dart.googlesource.com/native.git/+/f2b92916 [ffigen] Bump coverallsapp/github-action from 2.2.1 to 2.2.3 (628) https://dart.googlesource.com/native.git/+/abcebe00 [jnigen] Bump coverallsapp/github-action from 2.2.1 to 2.2.3 (https://github.com/dart-lang/jnigen/issues/403) https://dart.googlesource.com/native.git/+/917ed4d2 [jnigen] Bump actions/setup-java from 3.12.0 to 3.13.0 (https://github.com/dart-lang/jnigen/issues/402) https://dart.googlesource.com/native.git/+/24d7b679 [ffigen] Handle ObjC nullable annotations (624) https://dart.googlesource.com/native.git/+/8456a7c3 [jnigen] Add `JLazyReference` and `JFinalString` (https://github.com/dart-lang/jnigen/issues/400) https://dart.googlesource.com/native.git/+/5c7b78c3 [ffigen] Separate getDartType and getUserType (623) https://dart.googlesource.com/native.git/+/266ab71c [jnigen] Use Dart 3 class modifiers in `package:jni` (https://github.com/dart-lang/jnigen/issues/398) https://dart.googlesource.com/native.git/+/cb147547 [ffigen] Better typedefs for `NativeFunction`s (621) https://dart.googlesource.com/native.git/+/9fafeacb [jnigen] Convert incorrect exceptions into errors (https://github.com/dart-lang/jnigen/issues/397) https://dart.googlesource.com/native.git/+/f3b2369b [ffigen] Simplify flutter_plugin_ffi_test (620) https://dart.googlesource.com/native.git/+/e8e0a98e [jnigen] Add `JBuffer`, `JByteBuffer` to enable fast copying to and from `Uint8List` (https://github.com/dart-lang/jnigen/issues/390) https://dart.googlesource.com/native.git/+/e0b74862 [ffigen] Fix ObjC `instancetype` inheritance issue. (618) https://dart.googlesource.com/native.git/+/eb49cbab [jnigen] Add `ignore_for_file: lines_longer_than_80_chars` to generated files (https://github.com/dart-lang/jnigen/issues/386) https://dart.googlesource.com/native.git/+/619b5023 [jnigen] Add correct cast to interface method invocation (https://github.com/dart-lang/jnigen/issues/385) https://dart.googlesource.com/native.git/+/4e53697f [ffigen] Better block names (606) https://dart.googlesource.com/native.git/+/1e1eeee8 [ffigen] Use stret and fpret variants of objc_msgSend where appropriate (613) https://dart.googlesource.com/native.git/+/1d469856 [jnigen] Specify JDK min and max version in README (https://github.com/dart-lang/jnigen/issues/384) https://dart.googlesource.com/native.git/+/908ae22f [ffigen] Merge pull request 610 from dart-lang/roll-stable-to-9.0.1 https://dart.googlesource.com/native.git/+/fa984640 [ffigen] Bump actions/checkout from 3.5.3 to 3.6.0 (611) https://dart.googlesource.com/native.git/+/6606892f [jnigen] jni-0.6.1 fix number of topics (https://github.com/dart-lang/jnigen/issues/382) https://dart.googlesource.com/native.git/+/35d75221 [jnigen] Bump actions/checkout from 3.5.3 to 3.6.0 (https://github.com/dart-lang/jnigen/issues/381) https://dart.googlesource.com/native.git/+/7684bdb8 [jnigen] Configure autopublishing (https://github.com/dart-lang/jnigen/issues/380) https://dart.googlesource.com/native.git/+/1176680a [ffigen] Merge commit 'ac1b0498ecc81ef4f358c4fc93c770c7ff07d9a6' into stable https://dart.googlesource.com/native.git/+/79e36f0a [ffigen] Fix 577 (609) https://dart.googlesource.com/native.git/+/2042ea0b [ffigen] fix: objc block trampoline invalid return type (607) https://dart.googlesource.com/native.git/+/92d51378 [ffigen] Fix null inference weirdness (605) https://dart.googlesource.com/native.git/+/e0814e1a [ffigen] Listener/Async Blocks (601) https://dart.googlesource.com/native.git/+/bd8aae49 [jnigen] Rename `delete` to `release` (https://github.com/dart-lang/jnigen/issues/379) https://dart.googlesource.com/native.git/+/244596e9 [jnigen] Throw DartExceptions in Java (https://github.com/dart-lang/jnigen/issues/376) https://dart.googlesource.com/native.git/+/128d61ec [ffigen] Mention installing xcode command line tools on mac https://dart.googlesource.com/native.git/+/b7cc0489 [jnigen] Run Java GC using jcmd in tests (https://github.com/dart-lang/jnigen/issues/371) https://dart.googlesource.com/native.git/+/95c8375a [jnigen] Finalize interfaces in Java (https://github.com/dart-lang/jnigen/issues/369) https://dart.googlesource.com/native.git/+/4f85cedc [jnigen] Add tests on summary content (https://github.com/dart-lang/jnigen/issues/353) https://dart.googlesource.com/native.git/+/204d8695 [jnigen] Rename ctor to new (https://github.com/dart-lang/jnigen/issues/362) https://dart.googlesource.com/native.git/+/fa5ff14b [jnigen] Check for free in reference getter (https://github.com/dart-lang/jnigen/issues/361) https://dart.googlesource.com/native.git/+/7c9cca95 [jnigen] Use isolate_id instead of thread_id (https://github.com/dart-lang/jnigen/issues/360) https://dart.googlesource.com/native.git/+/651320e4 [jnigen] Update Dart API headers (https://github.com/dart-lang/jnigen/issues/358) https://dart.googlesource.com/native.git/+/17d48f8e [jnigen] Clean up interface implementation using auxiliary generated classes (https://github.com/dart-lang/jnigen/issues/349) https://dart.googlesource.com/native.git/+/9492c196 [jnigen] Bump actions/setup-java from 3.11.0 to 3.12.0 (https://github.com/dart-lang/jnigen/issues/338) https://dart.googlesource.com/native.git/+/b5b238c9 [ffigen] Bump coverallsapp/github-action from 2.2.0 to 2.2.1 (596) https://dart.googlesource.com/native.git/+/2527e476 [jnigen] Bump coverallsapp/github-action from 2.2.0 to 2.2.1 (https://github.com/dart-lang/jnigen/issues/339) https://dart.googlesource.com/native.git/+/db9185a3 [jnigen] Override JObject's toString with appropriate Java's toString (https://github.com/dart-lang/jnigen/issues/337) https://dart.googlesource.com/native.git/+/bb1c49fd [jnigen] Closes https://github.com/dart-lang/jnigen/issues/325 (https://github.com/dart-lang/jnigen/issues/336) https://dart.googlesource.com/native.git/+/ef333492 [jnigen] Fix windows specifics and global reference ownership in interface implementation (https://github.com/dart-lang/jnigen/issues/335) https://dart.googlesource.com/native.git/+/7e690dde [jnigen] Fix CI (https://github.com/dart-lang/jnigen/issues/330) https://dart.googlesource.com/native.git/+/06730492 [jnigen] Interface implementation (https://github.com/dart-lang/jnigen/issues/326) https://dart.googlesource.com/native.git/+/ac1b0498 [ffigen] Allow extern inline functions to be generated. (594) https://dart.googlesource.com/native.git/+/cc604f91 [ffigen] Fix doc comment missing on struct/union array fields, update test, ve… (593) https://dart.googlesource.com/native.git/+/3a5a9bea [ffigen] Add ffigen yaml schema (586) https://dart.googlesource.com/native.git/+/7960c768 [jnigen] Fix summarizer nested class bug (https://github.com/dart-lang/jnigen/issues/312) https://dart.googlesource.com/native.git/+/e6bdddbf [jnigen] Bump actions/checkout from 3.5.2 to 3.5.3 (https://github.com/dart-lang/jnigen/issues/311) https://dart.googlesource.com/native.git/+/fc8bd8ec [jnigen] Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (https://github.com/dart-lang/jnigen/issues/310) https://dart.googlesource.com/native.git/+/34714a4e [ffigen] Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (590) https://dart.googlesource.com/native.git/+/4854160d [ffigen] Bump actions/checkout from 3.5.2 to 3.5.3 (589) https://dart.googlesource.com/native.git/+/fc6688da [jnigen] Parse Kotlin's metadata + Remove `suspend_fun_to_async` flag in config (https://github.com/dart-lang/jnigen/issues/308) https://dart.googlesource.com/native.git/+/cda65643 [jnigen] Added the namespace property in build.gradle if the field is necessary. (https://github.com/dart-lang/jnigen/issues/306) https://dart.googlesource.com/native.git/+/9ef4d1f8 [jnigen] Non static nested class construction (https://github.com/dart-lang/jnigen/issues/297) https://dart.googlesource.com/native.git/+/72e7019d [jnigen] Add proguard-rules for kotlin_plugin (https://github.com/dart-lang/jnigen/issues/296) https://dart.googlesource.com/native.git/+/4827fc35 [jnigen] remove simpleName and packageName (https://github.com/dart-lang/jnigen/issues/294) https://dart.googlesource.com/native.git/+/756cd11a [jnigen] Generating List/Map/... from classes in `package:jni` (https://github.com/dart-lang/jnigen/issues/291) https://dart.googlesource.com/native.git/+/19ff0d27 [jnigen] Using a yaml symbols file instead of hard coding package:jni exported classes (https://github.com/dart-lang/jnigen/issues/289) https://dart.googlesource.com/native.git/+/09eeb536 [ffigen] add LLVM installation instructions for Fedora (584) https://dart.googlesource.com/native.git/+/32d057e3 [jnigen] blast_repo fixes (https://github.com/dart-lang/jnigen/issues/283) https://dart.googlesource.com/native.git/+/19c89a3c [ffigen] Rename `master` branch to `main` (582) https://dart.googlesource.com/native.git/+/cd0d7545 [ffigen] blast_repo fixes (576) https://dart.googlesource.com/native.git/+/1ecd702b [jnigen] Refactor C bindings generation (https://github.com/dart-lang/jnigen/issues/282) https://dart.googlesource.com/native.git/+/31eb7b8b [jnigen] Fix encoding bug (https://github.com/dart-lang/jnigen/issues/279) https://dart.googlesource.com/native.git/+/7452aae5 [jnigen] closes https://github.com/dart-lang/jnigen/issues/280 (https://github.com/dart-lang/jnigen/issues/281) https://dart.googlesource.com/native.git/+/29739cfd [ffigen] Fixed invalid code generated due to zero-length arrays in structs/union. (575) https://dart.googlesource.com/native.git/+/58a1e635 [jnigen] CI fix (https://github.com/dart-lang/jnigen/issues/277) https://dart.googlesource.com/native.git/+/ede5a9cc [ffigen] Set SDK version to 3.0 stable (573) https://dart.googlesource.com/native.git/+/6648a18a [ffigen] Fix invalid code generated due to anoymous structs/unions (572) https://dart.googlesource.com/native.git/+/d6a05944 [jnigen] Summarizer fix class listing (https://github.com/dart-lang/jnigen/issues/272) https://dart.googlesource.com/native.git/+/6822f909 [jnigen] improve coverage (https://github.com/dart-lang/jnigen/issues/274) https://dart.googlesource.com/native.git/+/06afdf11 [jnigen] Boxed types + Map + Set + List (https://github.com/dart-lang/jnigen/issues/271) https://dart.googlesource.com/native.git/+/013eee20 [ffigen] Add the ability to get a pointer to an objective C object (568) https://dart.googlesource.com/native.git/+/995c530a [jnigen] 0.4.0 (https://github.com/dart-lang/jnigen/issues/270) https://dart.googlesource.com/native.git/+/c06c2336 [ffigen] Bump version to 8.0.0 stable (566) https://dart.googlesource.com/native.git/+/8059f72b [ffigen] Add topics in pubspec.yaml (567) https://dart.googlesource.com/native.git/+/fa265a8c [jnigen] Stress tests and a few runtime fixes (https://github.com/dart-lang/jnigen/issues/264) https://dart.googlesource.com/native.git/+/21c4801b [ffigen] Bump coverallsapp/github-action from 2.0.0 to 2.1.2 (564) https://dart.googlesource.com/native.git/+/41754390 [ffigen] Bump actions/checkout from 3.5.0 to 3.5.2 (563) https://dart.googlesource.com/native.git/+/cf3db198 [jnigen] Bump coverallsapp/github-action from 2.0.0 to 2.1.2 (https://github.com/dart-lang/jnigen/issues/269) https://dart.googlesource.com/native.git/+/16f2d4ec [jnigen] Bump actions/checkout from 3.5.0 to 3.5.2 (https://github.com/dart-lang/jnigen/issues/268) https://dart.googlesource.com/native.git/+/79e845f7 [ffigen] Support for generating Variadic functions (515) https://dart.googlesource.com/native.git/+/f0ab18e8 [ffigen] Use `@Native` syntax (562) https://dart.googlesource.com/native.git/+/e9f16e67 [jnigen] Support Maven version 4 (https://github.com/dart-lang/jnigen/issues/261) https://dart.googlesource.com/native.git/+/1efea342 [ffigen] Merge stable to master, bump version (561) https://dart.googlesource.com/native.git/+/54215ca1 [ffigen] Handle multi anonymous struct with same USR (559) https://dart.googlesource.com/native.git/+/f129cdfc [jnigen] Add FAQ entry about references (https://github.com/dart-lang/jnigen/issues/259) https://dart.googlesource.com/native.git/+/730a9978 [ffigen] Merge pull request 560 from dart-lang/stable-to-7-x https://dart.googlesource.com/native.git/+/e01f63d2 [ffigen] Merge commit 'ac318a25ecd7bea6685f8b3f8cabbdea16519936' into stable-to-7-x https://dart.googlesource.com/native.git/+/1753fed9 [jnigen] Bunch of small testsuite improvements (https://github.com/dart-lang/jnigen/issues/257) https://dart.googlesource.com/native.git/+/80808dac [jnigen] Further FFI improvements (https://github.com/dart-lang/jnigen/issues/254) https://dart.googlesource.com/native.git/+/97f6ecc0 [ffigen] Add description to typedef test (557) https://dart.googlesource.com/native.git/+/ba48bf74 [ffigen] Change native test bindings name for consistency (556) https://dart.googlesource.com/native.git/+/767f2449 [ffigen] 3.0 Class modifiers (553) https://dart.googlesource.com/native.git/+/24f449b0 [jnigen] Fix summary generation tests (https://github.com/dart-lang/jnigen/issues/253) https://dart.googlesource.com/native.git/+/215832ae [jnigen] Remove FFI patch and use mutex around method/field lookups (https://github.com/dart-lang/jnigen/issues/246) https://dart.googlesource.com/native.git/+/ac318a25 [ffigen] Explicit '' as name for anon structs/unions (552) https://dart.googlesource.com/native.git/+/e279dd5a [jnigen] Make README more approachable. (https://github.com/dart-lang/jnigen/issues/235) https://dart.googlesource.com/native.git/+/d21b6729 [jnigen] (An attempt to) Improve CI workflows (https://github.com/dart-lang/jnigen/issues/222) https://dart.googlesource.com/native.git/+/af0ee4fd [jnigen] Type inference for generics (https://github.com/dart-lang/jnigen/issues/236) https://dart.googlesource.com/native.git/+/b7db0faf [jnigen] Rethrow exception in gradle stub (https://github.com/dart-lang/jnigen/issues/237) https://dart.googlesource.com/native.git/+/fd98f927 [ffigen] Add common code path for test configs (491) https://dart.googlesource.com/native.git/+/4d24823d [jnigen] Add ability to use source dependencies from Gradle (https://github.com/dart-lang/jnigen/issues/231) https://dart.googlesource.com/native.git/+/e998636a [jnigen] JAR handling improvements (https://github.com/dart-lang/jnigen/issues/220) https://dart.googlesource.com/native.git/+/c9c73a09 [jnigen] 1.5x the timeout for the other kotlin test (https://github.com/dart-lang/jnigen/issues/229) https://dart.googlesource.com/native.git/+/0dd2f0d0 [jnigen] Use `package:cli_config` (https://github.com/dart-lang/jnigen/issues/197) https://dart.googlesource.com/native.git/+/95435836 [ffigen] Update version and changelog (546) https://dart.googlesource.com/native.git/+/8bfec3dc [ffigen] Bump coverallsapp/github-action from 1.2.4 to 2.0.0 (543) https://dart.googlesource.com/native.git/+/a80742b9 [ffigen] Parameter names in function pointer fields (537) https://dart.googlesource.com/native.git/+/732f363c [jnigen] Bump coverallsapp/github-action from 1.2.4 to 2.0.0 (https://github.com/dart-lang/jnigen/issues/224) https://dart.googlesource.com/native.git/+/eea221db [jnigen] Bump subosito/flutter-action from 2.8.0 to 2.10.0 (https://github.com/dart-lang/jnigen/issues/223) https://dart.googlesource.com/native.git/+/92509331 [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/226) https://dart.googlesource.com/native.git/+/0279f344 [ffigen] Bump actions/checkout from 3.3.0 to 3.5.0 (542) https://dart.googlesource.com/native.git/+/ea63bdf9 [jnigen] Bump actions/checkout from 3.3.0 to 3.5.0 (https://github.com/dart-lang/jnigen/issues/225) https://dart.googlesource.com/native.git/+/6110c118 [ffigen] Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (541) https://dart.googlesource.com/native.git/+/0727f8a0 [ffigen] Bump subosito/flutter-action from 2.8.0 to 2.10.0 (544) https://dart.googlesource.com/native.git/+/f16de6d4 [jnigen] 1.5x the timeout for the kotlin test (https://github.com/dart-lang/jnigen/issues/221) https://dart.googlesource.com/native.git/+/5883326d [jnigen] Remove array extensions from the generated code (https://github.com/dart-lang/jnigen/issues/217) https://dart.googlesource.com/native.git/+/a16ad441 [jnigen] Generate JValue wrapper classes in pure Dart bindings (https://github.com/dart-lang/jnigen/issues/212) https://dart.googlesource.com/native.git/+/4562edc8 [jnigen] Add Coverage badge (https://github.com/dart-lang/jnigen/issues/205) https://dart.googlesource.com/native.git/+/15668264 [jnigen] Refactor into Visitor pattern (https://github.com/dart-lang/jnigen/issues/200) https://dart.googlesource.com/native.git/+/d7eb3f1c [ffigen] Detect Scoop LLVM installation on Windows (535) https://dart.googlesource.com/native.git/+/b26e13d9 [ffigen] Automatically generate `ignore_for_file: type=lint` if not specified in preamble. (532) https://dart.googlesource.com/native.git/+/11611875 [ffigen] Bump dependencies and fix lints (527) https://dart.googlesource.com/native.git/+/06d224f0 [ffigen] Fix macro file parser (524) https://dart.googlesource.com/native.git/+/64fec925 [jnigen] Bump coverallsapp/github-action from 1.1.3 to 1.2.4 (https://github.com/dart-lang/jnigen/issues/192) https://dart.googlesource.com/native.git/+/b54e1cbe [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/191) https://dart.googlesource.com/native.git/+/abace99f [ffigen] Bump coverallsapp/github-action from 1.1.3 to 1.2.4 (523) https://dart.googlesource.com/native.git/+/b94aa02b [ffigen] Bump SDK constraint to 4.0.0 (517) https://dart.googlesource.com/native.git/+/ce9e59e7 [jnigen] Bump SDK constraint to 4.0.0 (https://github.com/dart-lang/jnigen/issues/190) https://dart.googlesource.com/native.git/+/f27c722c [ffigen] Fix path normalization for absolute paths and globs starting with ** (516) https://dart.googlesource.com/native.git/+/2267ff48 [jnigen] 0.3.0 (https://github.com/dart-lang/jnigen/issues/189) https://dart.googlesource.com/native.git/+/4f770ade [jnigen] Convert Kotlin's `suspend fun` to Dart's async methods (https://github.com/dart-lang/jnigen/issues/171) https://dart.googlesource.com/native.git/+/5ab08fdb [ffigen] Add support nested anonymous union/struct (511) https://dart.googlesource.com/native.git/+/6c47900c [ffigen] Bump dart-lang/setup-dart from 1.3 to 1.4 (508) https://dart.googlesource.com/native.git/+/bcdbe76b [ffigen] Bump actions/checkout from 3.2.0 to 3.3.0 (507) https://dart.googlesource.com/native.git/+/55b84ad4 [ffigen] Fix formatting (509) https://dart.googlesource.com/native.git/+/466ed3f7 [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/179) https://dart.googlesource.com/native.git/+/800a1102 [jnigen] Bump egor-tensin/setup-clang from 1.3 to 1.4 (https://github.com/dart-lang/jnigen/issues/180) https://dart.googlesource.com/native.git/+/e22150db [jnigen] fix link (https://github.com/dart-lang/jnigen/issues/177) https://dart.googlesource.com/native.git/+/6c6b5f5f [jnigen] 0.2.1 (https://github.com/dart-lang/jnigen/issues/175) https://dart.googlesource.com/native.git/+/7bf0a717 [jnigen] 0.2.0 (https://github.com/dart-lang/jnigen/issues/174) https://dart.googlesource.com/native.git/+/d9ae6e2f [ffigen] Add a bit more introduction to readme (505) https://dart.googlesource.com/native.git/+/87bba4e4 [jnigen] Bump actions/checkout from 3.1.0 to 3.3.0 (https://github.com/dart-lang/jnigen/issues/169) https://dart.googlesource.com/native.git/+/540922a3 [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/167) https://dart.googlesource.com/native.git/+/4e3eeb51 [ffigen] Bump actions/checkout from 3.1.0 to 3.2.0 (502) https://dart.googlesource.com/native.git/+/8f00f5f7 [ffigen] Update example in README.md (501) https://dart.googlesource.com/native.git/+/659e626c [jnigen] Exclude methods and fields of excluded classes (https://github.com/dart-lang/jnigen/issues/164) https://dart.googlesource.com/native.git/+/4c5f570f [ffigen] Add new supported typedef - `uintptr_t` (mapped to `ffi.UintPtr`). (499) https://dart.googlesource.com/native.git/+/611c9646 [jnigen] Use .jar metadata to generate generic types (https://github.com/dart-lang/jnigen/issues/158) https://dart.googlesource.com/native.git/+/82c0e16f [ffigen] Code cleanup (496) https://dart.googlesource.com/native.git/+/faebd8b4 [ffigen] Allow user compiler options to override built-in options (495) https://dart.googlesource.com/native.git/+/c1954121 [jnigen] Bump coverallsapp/github-action from 1.1.2 to 1.1.3 (https://github.com/dart-lang/jnigen/issues/154) https://dart.googlesource.com/native.git/+/c470670f [jnigen] blast_repo fixes (https://github.com/dart-lang/jnigen/issues/152) https://dart.googlesource.com/native.git/+/8460b264 [jnigen] fixed the problem with annotations containing enums + reg tests (https://github.com/dart-lang/jnigen/issues/150) https://dart.googlesource.com/native.git/+/51f71d85 [jnigen] Updated docs to reflect renames (https://github.com/dart-lang/jnigen/issues/146) https://dart.googlesource.com/native.git/+/e19d7d66 [ffigen] Added new llvm versions to linuxDylibLocations (489) https://dart.googlesource.com/native.git/+/da1647c7 [jnigen] Generic support (https://github.com/dart-lang/jnigen/issues/136) https://dart.googlesource.com/native.git/+/878ec39b [ffigen] Remove the built in flag from ObjC interfaces (487) https://dart.googlesource.com/native.git/+/d057af5d [jnigen] Add some documentation (https://github.com/dart-lang/jnigen/issues/115) https://dart.googlesource.com/native.git/+/a9e526b3 [jnigen] Improve coverage (https://github.com/dart-lang/jnigen/issues/134) https://dart.googlesource.com/native.git/+/77ee8707 [ffigen] Bump coverallsapp/github-action from 1.1.2 to 1.1.3 (482) https://dart.googlesource.com/native.git/+/18f94998 [ffigen] blast_repo fixes (481) https://dart.googlesource.com/native.git/+/1d36198e [jnigen] added .filled ctor to JArray (https://github.com/dart-lang/jnigen/issues/130) https://dart.googlesource.com/native.git/+/a80a3780 [jnigen] `JniX` to `JX` rename (https://github.com/dart-lang/jnigen/issues/126) https://dart.googlesource.com/native.git/+/068d88fe [jnigen] Array support (https://github.com/dart-lang/jnigen/issues/118) https://dart.googlesource.com/native.git/+/5e87326a [jnigen] Summarizer fix (https://github.com/dart-lang/jnigen/issues/116) https://dart.googlesource.com/native.git/+/cbe33448 [jnigen] Some summarizer improvements (https://github.com/dart-lang/jnigen/issues/114) https://dart.googlesource.com/native.git/+/35f1ba8d [jnigen] Pure dart bindings (https://github.com/dart-lang/jnigen/issues/110) https://dart.googlesource.com/native.git/+/88dcfc93 [jnigen] fix: pr_checks now works on macOS (https://github.com/dart-lang/jnigen/issues/108) https://dart.googlesource.com/native.git/+/27ca3100 [jnigen] Add regenerate script (https://github.com/dart-lang/jnigen/issues/106) https://dart.googlesource.com/native.git/+/f5b33be0 [jnigen] colorized warning in logger (https://github.com/dart-lang/jnigen/issues/107) https://dart.googlesource.com/native.git/+/1972596e [ffigen] Prevent warnings in FfiNative example (479) https://dart.googlesource.com/native.git/+/a9446e7f [jnigen] Array signatures fix (https://github.com/dart-lang/jnigen/issues/105) https://dart.googlesource.com/native.git/+/07d8c725 [ffigen] Symbol file import export (468) https://dart.googlesource.com/native.git/+/e50394b8 [ffigen] Use tmpDir over working directory (464) https://dart.googlesource.com/native.git/+/5cb0060d [jnigen] Reduce concatenation in binding generator code (https://github.com/dart-lang/jnigen/issues/102) https://dart.googlesource.com/native.git/+/226e60f3 [jnigen] File-per-class and single file bindings (https://github.com/dart-lang/jnigen/issues/98) https://dart.googlesource.com/native.git/+/644e75fb [jnigen] Make jni:setup build all native libraries (https://github.com/dart-lang/jnigen/issues/96) https://dart.googlesource.com/native.git/+/637134b2 [ffigen] Zero initialize unused Block fields (475) https://dart.googlesource.com/native.git/+/9cb65f6a [jnigen] bump jackson-databind to 2.14.0-rc2 (https://github.com/dart-lang/jnigen/issues/97) https://dart.googlesource.com/native.git/+/3e801f95 [jnigen] Move output related configuration to single place (https://github.com/dart-lang/jnigen/issues/93) https://dart.googlesource.com/native.git/+/0fb321c5 [ffigen] Add a step for building cursor definition map. (474) https://dart.googlesource.com/native.git/+/81bda33f [jnigen] Few improvements in generated C code including exception support. (https://github.com/dart-lang/jnigen/issues/87) https://dart.googlesource.com/native.git/+/5563b5cb [ffigen] Fix some noisy warnings that often show up in ObjC binding generation (469) https://dart.googlesource.com/native.git/+/848ac943 [ffigen] Remove unnecessary root cursor filtering (471) https://dart.googlesource.com/native.git/+/d6fed49b [jnigen] tools: generate_ide_files.dart and pre_commit_checks.dart (https://github.com/dart-lang/jnigen/issues/86) https://dart.googlesource.com/native.git/+/abb3c7b5 [jnigen] General cleanup (https://github.com/dart-lang/jnigen/issues/80) https://dart.googlesource.com/native.git/+/0aba098b [ffigen] Remove ignoreFilter from typedef parsing. (462) https://dart.googlesource.com/native.git/+/30cc93d5 [ffigen] Assume relative paths are relative to the config file (465) https://dart.googlesource.com/native.git/+/27d9b9f0 [ffigen] Fix mac bot (466) https://dart.googlesource.com/native.git/+/a719f3b5 [jnigen] LICENSE trailer for generated code (https://github.com/dart-lang/jnigen/issues/63) https://dart.googlesource.com/native.git/+/4fe87834 [ffigen] Update LICENSE (457) https://dart.googlesource.com/native.git/+/2a430c67 [ffigen] NativeFunc's child should be a FunctionType (461) https://dart.googlesource.com/native.git/+/5c4b3abc [ffigen] Pointer.fromFunction leaks, so store result in static variable (459) https://dart.googlesource.com/native.git/+/6ef32d59 [ffigen] Remove list_diff package (456) https://dart.googlesource.com/native.git/+/550b27e5 [jnigen] Windows support (https://github.com/dart-lang/jnigen/issues/59) https://dart.googlesource.com/native.git/+/820c2b1e [ffigen] Correctly handle strings with null characters (454) https://dart.googlesource.com/native.git/+/a2465f94 [ffigen] Work around analyzer bug for FfiNatives (455) https://dart.googlesource.com/native.git/+/33105e76 [jnigen] Update pubspec.yaml (https://github.com/dart-lang/jnigen/issues/58) https://dart.googlesource.com/native.git/+/ac9f26aa [jnigen] Update pubspec.yaml (https://github.com/dart-lang/jnigen/issues/57) https://dart.googlesource.com/native.git/+/e53465bd [jnigen] Jni refactor (https://github.com/dart-lang/jnigen/issues/53) https://dart.googlesource.com/native.git/+/cd369f0b [jnigen] logging (https://github.com/dart-lang/jnigen/issues/48) https://dart.googlesource.com/native.git/+/a1bd070d [jnigen] Rename to jnigen (https://github.com/dart-lang/jnigen/issues/47) https://dart.googlesource.com/native.git/+/41e7871e [jnigen] Android plugin example (https://github.com/dart-lang/jnigen/issues/46) https://dart.googlesource.com/native.git/+/ef4a9f83 [jnigen] Jni_gen Examples (https://github.com/dart-lang/jnigen/issues/36) https://dart.googlesource.com/native.git/+/91a41f6d [jnigen] Rename java package of simple_test to com.github.dart_lang.... (https://github.com/dart-lang/jnigen/issues/35) https://dart.googlesource.com/native.git/+/0f7ced71 [jnigen] Add basic YAML config support (https://github.com/dart-lang/jnigen/issues/32) https://dart.googlesource.com/native.git/+/b5160496 [jnigen] Initial code generator support (https://github.com/dart-lang/jnigen/issues/19) https://dart.googlesource.com/native.git/+/2081ac09 [ffigen] Fix function deduplication (450) https://dart.googlesource.com/native.git/+/4d938396 [ffigen] `ffi-native` -> `asset` stop logger warning (449) https://dart.googlesource.com/native.git/+/50f06156 [ffigen] `FfiNative` support (447) https://dart.googlesource.com/native.git/+/22c90064 [ffigen] Add a swift example (441) https://dart.googlesource.com/native.git/+/a97fe3fa [ffigen] Increase timeout Flutter integration test (446) https://dart.googlesource.com/native.git/+/a88db78f [ffigen] Run Flutter FFI plugin template ffigen on CI (433) https://dart.googlesource.com/native.git/+/409e87a6 [ffigen] Fix obscure NSTimeZone parsing bug (440) https://dart.googlesource.com/native.git/+/f28313b2 [ffigen] Add an objective-C module prefix option (438) https://dart.googlesource.com/native.git/+/43a485c9 [ffigen] Add exclude-all-by-default config flag (431) https://dart.googlesource.com/native.git/+/7592ecb7 [ffigen] Memory management for Blocks (429) https://dart.googlesource.com/native.git/+/a06690e8 [jnigen] Initial JNI support (https://github.com/dart-lang/jnigen/issues/11) https://dart.googlesource.com/native.git/+/e0dc7c5d [ffigen] Throw an error if ObjC class fails to load (423) https://dart.googlesource.com/native.git/+/5507e994 [ffigen] Update clang to fix CI failure (425) https://dart.googlesource.com/native.git/+/c71be7b5 [ffigen] ObjC example (416) https://dart.googlesource.com/native.git/+/691eb2b6 [ffigen] Check that property types aren't incomplete (415) https://dart.googlesource.com/native.git/+/ed819e35 [ffigen] Skip methods that have incomplete types (412) https://dart.googlesource.com/native.git/+/3dee1d86 [jnigen] Create FFI plugin (https://github.com/dart-lang/jnigen/issues/8) https://dart.googlesource.com/native.git/+/63534577 [jnigen] Top level project information files (https://github.com/dart-lang/jnigen/issues/6) https://dart.googlesource.com/native.git/+/837ceb41 [jnigen] Move stub package to its own folder (https://github.com/dart-lang/jnigen/issues/2) https://dart.googlesource.com/native.git/+/982a2679 [jnigen] Delete CONTRIBUTING.md (https://github.com/dart-lang/jnigen/issues/4) https://dart.googlesource.com/native.git/+/151ed121 [ffigen] Fixing mac bot by explicitly setting the objective C sysroot (414) https://dart.googlesource.com/native.git/+/04dc916d [ffigen] Add a call method to Blocks (407) https://dart.googlesource.com/native.git/+/b15555b2 [ffigen] Bump `package:ffi` (405) https://dart.googlesource.com/native.git/+/153aad5c [ffigen] Use `ldconfig` to find libclang (403) https://dart.googlesource.com/native.git/+/0179324d [ffigen] More ways to find XCode's libclang on MacOS (402) https://dart.googlesource.com/native.git/+/6cad2383 [ffigen] Add Windows CI (399) https://dart.googlesource.com/native.git/+/e1d384dd [ffigen] Fix `include-directives` on Windows (397) https://dart.googlesource.com/native.git/+/3742faa3 [jnigen] Add build badge (https://github.com/dart-lang/jnigen/issues/1) https://dart.googlesource.com/native.git/+/9858cfc5 [ffigen] Update README.md (396) https://dart.googlesource.com/native.git/+/4cf58c70 [ffigen] bump package:ffi (394) https://dart.googlesource.com/native.git/+/2a39260b [jnigen] Initial commit https://dart.googlesource.com/native.git/+/c3643b60 [ffigen] Removed config `dart-bool`. Booleans are now always generated with `bool` (391) https://dart.googlesource.com/native.git/+/edd60410 [ffigen] Test assign/retain/copy properties (390) https://dart.googlesource.com/native.git/+/b54e57d1 [ffigen] Test autorelease pools and more copying cases (385) https://dart.googlesource.com/native.git/+/50e0ba86 [ffigen] Add the ability to control reference counting behavior in castFromPointer (388) https://dart.googlesource.com/native.git/+/4e2b86de [ffigen] Add xcode tools llvm as default path (389) https://dart.googlesource.com/native.git/+/9f466919 [ffigen] Add a static isInstance method to ObjC classes (383) https://dart.googlesource.com/native.git/+/3f345cbc [ffigen] Handle NS_RETURNS_RETAINED and methods that start with new/alloc or contain copy (380) https://dart.googlesource.com/native.git/+/5c613df6 [ffigen] docs(changelog): remove extra (377) https://dart.googlesource.com/native.git/+/50065811 [ffigen] Support constructing blocks from closures (382) https://dart.googlesource.com/native.git/+/b6033532 [ffigen] Initialize the Block isa field (378) https://dart.googlesource.com/native.git/+/6ba5f5c1 [ffigen] Automatic ref counting for ObjC objects (372) https://dart.googlesource.com/native.git/+/7258410a [ffigen] Use `package:ffi` 1.2.1 (371) https://dart.googlesource.com/native.git/+/01d9ba63 [ffigen] Fix coverage for ObjC tests (370) https://dart.googlesource.com/native.git/+/383859ae [ffigen] Cleanup some code around ObjC goldens (368) https://dart.googlesource.com/native.git/+/04332def [ffigen] Update pubspec of examples (367) https://dart.googlesource.com/native.git/+/2a05b4f1 [ffigen] Mention ObjectiveC support in changelog (366) https://dart.googlesource.com/native.git/+/7b376dbb [ffigen] Use ABI-specific integers from `dart:ffi` (365) https://dart.googlesource.com/native.git/+/cd1fec4f [ffigen] Remove ObjC tests that check golden generated code (363) https://dart.googlesource.com/native.git/+/3e584af3 [ffigen] Update names of compound members to reflect what is generated (361) https://dart.googlesource.com/native.git/+/32162936 [ffigen] Add a registry for ObjC built in interfaces (358) https://dart.googlesource.com/native.git/+/9148781b [ffigen] Don't remove trailing underscores from method names (357) https://dart.googlesource.com/native.git/+/60883c96 [ffigen] Fix ObjC @class declarations (352) https://dart.googlesource.com/native.git/+/f22e7460 [ffigen] Fix a bug where duplicate methods were added to some classes. (354) https://dart.googlesource.com/native.git/+/287abc4a [ffigen] Block support (333) https://dart.googlesource.com/native.git/+/c1bafec4 [ffigen] Categories (349) https://dart.googlesource.com/native.git/+/47d147ee [ffigen] Fix coverage configuration (337) https://dart.googlesource.com/native.git/+/7aa6d589 [ffigen] Make properties that set/get objective-c instances nullable (348) https://dart.googlesource.com/native.git/+/3ce29269 [ffigen] Add the ability to cast from a pointer to an interface. (346) https://dart.googlesource.com/native.git/+/afe4f0d9 [ffigen] Don't automatically include system headers (342) https://dart.googlesource.com/native.git/+/0b95430f [ffigen] Make all NSObject references nullable in the generated dart bindings. (339) https://dart.googlesource.com/native.git/+/4da279f3 [ffigen] Move ObjC classes and SELs to NativeLibrary (331) https://dart.googlesource.com/native.git/+/e317fc2e [ffigen] Improve Type deduping in objc_msgSend (326) https://dart.googlesource.com/native.git/+/4af99f99 [ffigen] Configurable filtering for ObjC interfaces (313) https://dart.googlesource.com/native.git/+/5560f587 [ffigen] Update pubspec.yaml (332) https://dart.googlesource.com/native.git/+/cb7825b0 [ffigen] Create more tests and move them to separate files. (330) https://dart.googlesource.com/native.git/+/66f0cc0b [ffigen] Provide a command to regenerate golden bindings. (322) https://dart.googlesource.com/native.git/+/205549b1 [ffigen] Move ObjCBuiltInFunctions to its own file and its singleton to data.dart (325) https://dart.googlesource.com/native.git/+/a6c2e234 [ffigen] Generate a nice error if files generated by test/setup.dart are not present https://dart.googlesource.com/native.git/+/07af7fb7 [ffigen] Move property tests into "native_objc_test" group https://dart.googlesource.com/native.git/+/d461aa87 [ffigen] Fix instructions for adding `package:ffi` (318) https://dart.googlesource.com/native.git/+/2015d3e1 [ffigen] Generate complete method signatures. (319) https://dart.googlesource.com/native.git/+/fc201ac2 [ffigen] Add support for readonly and class properties (314) https://dart.googlesource.com/native.git/+/01511cfa [ffigen] Coerce BOOL to bool (311) https://dart.googlesource.com/native.git/+/eece4afe [ffigen] NSString <-> String converters (310) https://dart.googlesource.com/native.git/+/3c6c3761 [ffigen] Fix handling of void methods (308) https://dart.googlesource.com/native.git/+/54ced0d7 [ffigen] Add an integration test for objective C (293) https://dart.googlesource.com/native.git/+/4f93f6e8 [ffigen] Make type polymorphic (290) https://dart.googlesource.com/native.git/+/cecaba72 [ffigen] Remove bool special casing (294) https://dart.googlesource.com/native.git/+/bdfd97a3 [ffigen] Add a warning message to objective C support (292) https://dart.googlesource.com/native.git/+/ecbdca2d [ffigen] Add contributing info (291) https://dart.googlesource.com/native.git/+/730572f8 [ffigen] Objective C interfaces (287) https://dart.googlesource.com/native.git/+/793585f8 [ffigen] Test on mac, to cover objective C (289) https://dart.googlesource.com/native.git/+/f2a92398 [ffigen] First bits of Objective C support (281) https://dart.googlesource.com/native.git/+/489e1e64 [ffigen] BindingsIndex refactor (283) https://dart.googlesource.com/native.git/+/b570afb6 [ffigen] Add default location for LLVM on M1 Mac (278) https://dart.googlesource.com/native.git/+/3f80cd0d [ffigen] Fix size_t and wchar_t default dart types. (274) https://dart.googlesource.com/native.git/+/b1d4a132 [ffigen] Merge pull request 269 from mannprerak2/merge_stable https://dart.googlesource.com/native.git/+/bf2f951f [ffigen] Merge branch 'stable' into merge_stable https://dart.googlesource.com/native.git/+/f210680f [ffigen] Release Patch 4.1.3 (266) https://dart.googlesource.com/native.git/+/a8305d64 [ffigen] Move to new analyzer checks (264) https://dart.googlesource.com/native.git/+/0f708a7b [ffigen] Support for ABI-specific integers (261) https://dart.googlesource.com/native.git/+/68a2e76e [ffigen] Suggest using `dart pub add -d ffigen` (259) https://dart.googlesource.com/native.git/+/b74c78a2 [ffigen] Exclude all on empty include list (254) https://dart.googlesource.com/native.git/+/ba4d058e [ffigen] Added fix for member name and type name collision in structs/unions. (256) https://dart.googlesource.com/native.git/+/94464ea2 [ffigen] Added support for marking functions as Leaf. (252) https://dart.googlesource.com/native.git/+/c7a25fb4 [ffigen] Bump version to 4.0.0 (247) https://dart.googlesource.com/native.git/+/76464220 [ffigen] Update library.dart dartfmt comment (234) https://dart.googlesource.com/native.git/+/9a5ceb77 [ffigen] Added config for exposing typedefs to Native and Dart type. (231) https://dart.googlesource.com/native.git/+/16ecf9f6 [ffigen] Move from package:pedantic to pacakge:lints (230) https://dart.googlesource.com/native.git/+/eb7b6545 [ffigen] Generate dart typedefs for C typedefs (224) https://dart.googlesource.com/native.git/+/ae89d3ff [ffigen] Add `structs` and `enums`'s rename to readme (225) https://dart.googlesource.com/native.git/+/4bed0754 [ffigen] Allow users to specify complete dylib path (221) https://dart.googlesource.com/native.git/+/362cc702 [ffigen] Added support for generating Unions (215) https://dart.googlesource.com/native.git/+/09e8bedb [ffigen] Bump version to 3.0.0 (216) https://dart.googlesource.com/native.git/+/53a193df [ffigen] Update readme to clarify C support. (209) https://dart.googlesource.com/native.git/+/78cafc8f [ffigen] Support for inline arrays in structs (206) https://dart.googlesource.com/native.git/+/9f8e6d4f [ffigen] Support for Packed struct (205) https://dart.googlesource.com/native.git/+/1d65b284 [ffigen] Update LICENSE (203) https://dart.googlesource.com/native.git/+/6152bb44 [ffigen] Fix error caused by duplicate declaration names and collision with ffi library prefix (200) https://dart.googlesource.com/native.git/+/14f7c969 [ffigen] Support Char_U type kind (202) https://dart.googlesource.com/native.git/+/108d09f5 [ffigen] Add /usr/lib to default locations and update readme. (196) https://dart.googlesource.com/native.git/+/8d26a111 [ffigen] Added key `llvm-path`. Deprecate `llvm-lib`. (194) https://dart.googlesource.com/native.git/+/7e106e41 [ffigen] Automatically add std lib for macos, allow passing list to compiler-opts. (193) https://dart.googlesource.com/native.git/+/8fb2f9f6 [ffigen] Added new command-line option `--compiler-opts`. (192) https://dart.googlesource.com/native.git/+/02ef1a37 [ffigen] Fix global rename in README.md (188) https://dart.googlesource.com/native.git/+/3c138e56 [ffigen] Fix `sort: true` not working, remove //+ from full comments. (187) https://dart.googlesource.com/native.git/+/1c59892b [ffigen] Added option to generate dependency-only structs as opaque (181) https://dart.googlesource.com/native.git/+/710842f4 [ffigen] Fixed generation of empty Opaque structs due to forward declarations. (180) https://dart.googlesource.com/native.git/+/e2038adf [ffigen] Fix generation of duplicate constants with multiple entry points (178) https://dart.googlesource.com/native.git/+/18189c4a [ffigen] Added subkey symbol-address to expose native pointers and typedefs. (175) https://dart.googlesource.com/native.git/+/8cd3d694 [ffigen] Support for Dynamic linking (174) https://dart.googlesource.com/native.git/+/a34723ff [ffigen] Ignore name of typedef struct pointer declaration, recursively create directories for output. (172) https://dart.googlesource.com/native.git/+/d1a04a04 [ffigen] Fixes for `const` in name error, unnamed inline structs and empty structs. (169) https://dart.googlesource.com/native.git/+/d785fee7 [ffigen] Stable release: Update dependencies to sound null safety, minor changes. (168) https://dart.googlesource.com/native.git/+/3cf6fc05 [ffigen] Skip inline functions (147) (167) https://dart.googlesource.com/native.git/+/f75b3e82 [ffigen] Use Opaque to represent empty Structs (142, 143) (166) https://dart.googlesource.com/native.git/+/bd781397 [ffigen] Added support for Global variables (139) (165) https://dart.googlesource.com/native.git/+/7ae4d240 [ffigen] Remove setup phase and usage of --no-sound-null-safety flag (135, 137) (164) https://dart.googlesource.com/native.git/+/bee5db2f [ffigen] Support for passing/returning Structs by value. (134) (163) https://dart.googlesource.com/native.git/+/7f3948fd [ffigen] Support for Nested structs (133) (161) https://dart.googlesource.com/native.git/+/06131d63 [ffigen] Update README.md (152) https://dart.googlesource.com/native.git/+/4a9672f1 [ffigen] Removed usage of --no-sound-null-safety flag. (136) https://dart.googlesource.com/native.git/+/fb8ac4ee [ffigen] Add include path for systems with LLVM 11 (e.g. Debian 11) (125) https://dart.googlesource.com/native.git/+/2ab4701a [ffigen] Remove usage of package:collection. (130) https://dart.googlesource.com/native.git/+/d98fee1a [ffigen] Null safety migration (122) https://dart.googlesource.com/native.git/+/68e4fa04 [ffigen] Migrate to GitHub Actions (124) https://dart.googlesource.com/native.git/+/3f867137 [ffigen] Added support for Dart_Handle to be generated as Handle (121) https://dart.googlesource.com/native.git/+/59708c61 [ffigen] Added workaround to map typedef names to a NativeType. (119) https://dart.googlesource.com/native.git/+/7a7a823a [ffigen] Fixed missing typedefs nested under return type of another typedef (116) https://dart.googlesource.com/native.git/+/13a64f3d [ffigen] Handled proper conversion of macro doubles. (113) https://dart.googlesource.com/native.git/+/a4923ab3 [ffigen] Updated tool to use dart format when sdk >=2.10.0 (110) https://dart.googlesource.com/native.git/+/46dc6244 [ffigen] Fixed errors due to extended ASCII and control characters in macros (106) https://dart.googlesource.com/native.git/+/ed2cf4d0 [ffigen] Update readme (104) https://dart.googlesource.com/native.git/+/026ffe19 [ffigen] Handle function types in functions/typedefs as function pointers (103) https://dart.googlesource.com/native.git/+/ad561043 [ffigen] Bump version to 1.0.0, minor fixes (101) https://dart.googlesource.com/native.git/+/74a89af3 [ffigen] Update lib/src/README.md (100) https://dart.googlesource.com/native.git/+/4a17f0de [ffigen] Update README.md (97) https://dart.googlesource.com/native.git/+/8e287ce5 [ffigen] Added support for including/excluding/renaming unnamed_enums (96) https://dart.googlesource.com/native.git/+/f760287e [ffigen] Clarify LLVM error messages (93) https://dart.googlesource.com/native.git/+/eb3cae23 [ffigen] Added support for c99 bool (86) https://dart.googlesource.com/native.git/+/9566c7e4 [ffigen] Removed dart:cli usage, use dylib version from ffigen's pubspec.yaml (88) https://dart.googlesource.com/native.git/+/82875d4c [ffigen] Improve logs (87) https://dart.googlesource.com/native.git/+/74a808bb [ffigen] Fix missing typedef dependencies (90) https://dart.googlesource.com/native.git/+/e07937e0 [ffigen] Remove structs members for bit field members, Added tests (85) https://dart.googlesource.com/native.git/+/12f79c8c [ffigen] update meta (82) https://dart.googlesource.com/native.git/+/1a260ce3 [ffigen] Updated parsing of typedef enclosed declarations (83) https://dart.googlesource.com/native.git/+/5a96775b [ffigen] Update readme - added FAQ, fixed config table (78) https://dart.googlesource.com/native.git/+/ece2197c [ffigen] Update licenses for third_party (76) https://dart.googlesource.com/native.git/+/c6f7ec49 [ffigen] Fixes for typedefs (75) https://dart.googlesource.com/native.git/+/cad06e0a [ffigen] Update public API (70) https://dart.googlesource.com/native.git/+/1596489c [ffigen] Handled flexible array members in structs (69) https://dart.googlesource.com/native.git/+/a8551680 [ffigen] Regexp based Member renaming (66) https://dart.googlesource.com/native.git/+/f6b92474 [ffigen] Simpler include/exclude, regexp based renaming for declarations (62) https://dart.googlesource.com/native.git/+/09af0376 [ffigen] Escaped special characters $ and ' from string macros. (64) https://dart.googlesource.com/native.git/+/d80fa0ae [ffigen] Update headers config. (60) https://dart.googlesource.com/native.git/+/be939f4b [ffigen] Added support for parsing macros and anonymous unnamed enums (35) https://dart.googlesource.com/native.git/+/c1048a0c [ffigen] Update config specification for Comments (48) https://dart.googlesource.com/native.git/+/c07219b8 [ffigen] Handle function argument dart keywords and setup travis (49) https://dart.googlesource.com/native.git/+/4439a4ee [ffigen] Update README.md (46) https://dart.googlesource.com/native.git/+/6afbceb5 [ffigen] Fixed wrapper not found error when running pub run ffigen (42) https://dart.googlesource.com/native.git/+/f2f4eb43 [ffigen] Address pub score (37) https://dart.googlesource.com/native.git/+/5f8de9fd [ffigen] Prepare for pub release (36) https://dart.googlesource.com/native.git/+/832458d3 [ffigen] Name conflict resolution with reserved Dart Keywords (34) https://dart.googlesource.com/native.git/+/c499fe52 [ffigen] Added large tests, bug fixes (33) https://dart.googlesource.com/native.git/+/e8034cc5 [ffigen] Fixes for running on MacOS (32) https://dart.googlesource.com/native.git/+/2b7eb311 [ffigen] Update readme (31) https://dart.googlesource.com/native.git/+/b60cc611 [ffigen] Added wrapper over lookUpbindings, fixed merge conflicts, migrated code (25) https://dart.googlesource.com/native.git/+/d3c91ade [ffigen] Support for Prefix and Names in config. (20) https://dart.googlesource.com/native.git/+/27d83703 [ffigen] Support for array parameters in functions, array workarounds in Structs (18) https://dart.googlesource.com/native.git/+/5d438979 [ffigen] Add gitignores for IDEs and debuggers (19) https://dart.googlesource.com/native.git/+/01378b8d [ffigen] Improved generated comments (16) https://dart.googlesource.com/native.git/+/ee580636 [ffigen] Simplified run command (15) https://dart.googlesource.com/native.git/+/39b1468c [ffigen] Initial generator: functions, structs, enums (2) https://dart.googlesource.com/native.git/+/ff1ac4a1 [ffigen] Update README.md (9) https://dart.googlesource.com/native.git/+/8417b07c [ffigen] Remove/fix references to dartlang.org (1) https://dart.googlesource.com/native.git/+/50fc8c44 [ffigen] Initialize repo https://dart.googlesource.com/native.git/+/9bfe8e78 [ffigen] Initial commit ``` Diff: https://dart.googlesource.com/native.git/+/eaea725b0939815e7d007a34808a7293b179a2ad..5dca10ea324bb19f104126d72472280091829873/ Change-Id: I1c5a08859945442d968ff7dba333c0649b11f26c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/336826 Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Daco Harkes <dacoharkes@google.com>
This PR adds JNI support on Android and Linux.
Notes on generated files:
The generated files account for majority of code.
lib/src/jni_bindings_generated.dart is generated using a personal fork of FFIGEN, which I am not vendoring in this PR because once vendored, we can't see the diff from original. So I have added a git dependency if you want to see the JNI-specific patch to FFIGEN.
The bindings can be regenerated by running
dart run ffigen --config ffigen.yaml
injni/
. When they are regenerated, there should be no change to any files in the working tree. (Can be verified using git status).It generates bindings for
third_party/jni.h
which is copied from Android NDK and annotated (I copied the file from NDK 23.1, but the file doesn't seem to be updated in a while anyway.I will vendor ffigen_patch_jni in a later PR
lib/src/{jni_object_methods_generated.dart, jni_class_methods_generated.dart, direct_methods_generated.dart}
are generated using a script in tool/ directory. Rerunning it from package root should result in no changes to these files.Context on platform support: