Skip to content
This repository has been archived by the owner on Apr 29, 2024. It is now read-only.

Fix windows #335

Merged
merged 5 commits into from
Jul 31, 2023
Merged

Fix windows #335

merged 5 commits into from
Jul 31, 2023

Conversation

HosseinYousefi
Copy link
Contributor

@HosseinYousefi HosseinYousefi commented Jul 29, 2023

Closes dart-lang/native#592.

Also fixes the leaking of global references by cleaning them up after use in Java.


The fix for windows is a single line removal from dartjni.h. Windows doesn't have a function to destroy condition variable but I accidentally used the function to destroy the mutex for it. See the commit with 🤦‍♂️!


The rest of the PR is fixing a memory ownership problem. Instead of attaching the return value of the implemented method to a NativeFinalizer. We are passing the global reference to Java first and get an object from it. And then deleting the global reference used.

We can't do this cleanly in a single native function because if we delete the global reference, we can no longer return the result object.

Since Dart doesn't know that this global reference is still used, it might garbage collect it via NativeFinalizer thus making it invalid. So I'm letting Java handle the clean up and use setAsDeleted to detach the native finalizer from the return value in Dart.

@coveralls
Copy link

coveralls commented Jul 29, 2023

Pull Request Test Coverage Report for Build 5698374749

  • 3 of 3 (100.0%) changed or added relevant lines in 1 file are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.003%) to 90.289%

Totals Coverage Status
Change from base Build 5658078280: 0.003%
Covered Lines: 2966
Relevant Lines: 3285

💛 - Coveralls

Copy link
Contributor

@dcharkes dcharkes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no description on the PR what we're fixing (and I have trouble reverse engineering the issue from the diff 🙃).

attach_thread();
load_class_global_ref(&_c_Object, "java/lang/Object");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this racy? assigning to a global variable?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

load_class_global_ref acquires a lock.

return _invoke(port, threadId, functionPtr, proxy, getDescriptor(method), args);
public Object invoke(Object proxy, Method method, Object[] args) {
Object[] result = _invoke(port, threadId, functionPtr, proxy, getDescriptor(method), args);
_cleanUp((Long) result[0]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does calling two native methods instead of 1 make a difference? Shouldn't we be able to do in a single C function what we can do in two?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explained below.

load_class_global_ref(&_c_Long, "java/lang/Long");
load_method(_c_Long, &_m_Long_init, "<init>", "(J)V");
jobject first = (*env)->NewObject(env, _c_Long, _m_Long_init, (jlong)result);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand correctly, we're boxing here. Why do we need boxing for Windows?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're returning an array of Objects so unfortunately, we have to box the long value.

@HosseinYousefi
Copy link
Contributor Author

There's no description on the PR what we're fixing (and I have trouble reverse engineering the issue from the diff 🙃).

The fix for windows is a single line removal from dartjni.h. Windows doesn't have a function to destroy condition variable but I accidentally used the function to destroy the mutex for it. See the commit with 🤦‍♂️!


The rest of the PR is fixing a memory ownership problem. Instead of attaching the return value of the implemented method to a NativeFinalizer. We are passing the global reference to Java first and get an object from it. And then deleting the global reference used.

We can't do this cleanly in a single native function because if we delete the global reference, we can no longer return the result object.

Since Dart doesn't know that this global reference is still used, it might garbage collect it via NativeFinalizer thus making it invalid. So I'm letting Java handle the clean up and use setAsDeleted to detach the native finalizer from the return value in Dart.

@dcharkes
Copy link
Contributor

The rest of the PR is fixing a memory ownership problem. Instead of attaching the return value of the implemented method to a NativeFinalizer. We are passing the global reference to Java first and get an object from it. And then deleting the global reference used.

We can't do this cleanly in a single native function because if we delete the global reference, we can no longer return the result object.

Since Dart doesn't know that this global reference is still used, it might garbage collect it via NativeFinalizer thus making it invalid. So I'm letting Java handle the clean up and use setAsDeleted to detach the native finalizer from the return value in Dart.

Ah, that makes sense. 👍 Please add that as some documentation in the code and on the PR.

@HosseinYousefi HosseinYousefi merged commit b6f97bf into main Jul 31, 2023
4 of 14 checks passed
@HosseinYousefi HosseinYousefi deleted the fix-windows branch July 31, 2023 10:55
HosseinYousefi added a commit to dart-lang/native that referenced this pull request Nov 16, 2023
…rface implementation (dart-archive/jnigen#335)

Since Dart doesn't know that this global reference is still used, it might garbage collect it via NativeFinalizer thus making it invalid. We're letting Java handle the clean up and use setAsDeleted to detach the native finalizer from the return value in Dart.
copybara-service bot pushed a commit to dart-lang/sdk that referenced this pull request Nov 19, 2023
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>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Fix interface implementation test on Windows
3 participants