commit | 1748715993329c2b96fdb01d9b8baed774417d9e | [log] [tgz] |
---|---|---|
author | Liam Appelbe <liama@google.com> | Wed Nov 29 22:37:19 2023 +1300 |
committer | GitHub <noreply@github.com> | Wed Nov 29 09:37:19 2023 +0000 |
tree | f4ecb7149d577ea6bed927e9931a43af2e266dd3 | |
parent | 50b6a783312b69f253e1d9600c60ea9b68e5dbd8 [diff] |
[ffigen] Only use `objc_msgSend` variants on x64 (#836) `objc_msgSend_stret` and `objc_msgSend_fpret` are only available on x64, so just use the normal `objc_msgSend` on arm64. We can only check the ABI at runtime, so for the stret and fpret variants we need to emit both the variant and the normal `objc_msgSend` function. Then we can decide which to use when the method is invoked at runtime. This runtime check is complicated by the fact that `objc_msgSend_stret` has a different signature than `objc_msgSend` has for the same method. This is because `objc_msgSend_stret` takes a pointer to the return type as its first arg. If it wasn't for this signature difference we could just change the function name string we pass to `DynamicLibrary.lookup`. Fixes #829
This repository is home to Dart packages related to FFI and native assets building and bundling.
Package | Description | Version |
---|---|---|
ffigen | Generator for FFI bindings, using LibClang to parse C, Objective-C, and Swift files. | |
jni | A library to access JNI from Dart and Flutter that acts as a support library for package:jnigen . | |
jnigen | A Dart bindings generator for Java and Kotlin that uses JNI under the hood to interop with Java virtual machine. | |
native_assets_builder | This package is the backend that invokes top-level build.dart scripts. | |
native_assets_cli | A library that contains the argument and file formats for implementing a native assets CLI. | |
native_toolchain_c | A library to invoke the native C compiler installed on the host machine. |
For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.
For additional information about contributing, see our contributing page.