dart-sdk/sdk/lib
Liam Appelbe edeac698c2 [vm/ffi] Closure callbacks for async callbacks
This change is almost trivial. The closure is stored on the callback's
RawReceivePort, not in the VM. So we can basically just remove the CFE
check and it pretty much works. The only problem is that we can't set
function.FfiCallbackTarget anymore, so most of the CL is dealing with
that.

A few places were deciding whether an FFI trampoline was a call or a
callback based on whether function.FfiCallbackTarget() was null. But
now the target will be null for async callbacks. So instead I've added
a new value to the FfiCallbackKind enum (and renamed it), and changed
those checks.

Sync callback closures will be a separate CL, because they're more
complicated.

Bug: https://github.com/dart-lang/sdk/issues/52689
Change-Id: I8e5dfb557362e679f66195b735c3c382e6792840
TEST=async_void_function_callbacks_test.dart
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/316160
Commit-Queue: Liam Appelbe <liama@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
2023-07-26 23:23:26 +00:00
..
_http Update SDK to prepare for enabling interface-update-2. 2023-07-20 20:14:39 +00:00
_internal [vm/ffi] Closure callbacks for async callbacks 2023-07-26 23:23:26 +00:00
_wasm [dart2wasm] Optimize some list operations 2023-07-21 10:29:46 +00:00
async [vm] Rework awaiter stack unwinding. 2023-06-30 14:03:03 +00:00
cli
collection Add a notice about HashMap keys changing hashCode 2023-06-23 00:10:19 +00:00
convert Make utf8.encode() have Uint8List return type 2023-07-11 08:54:33 +00:00
core Document the return value of any and every for empty values. 2023-07-11 13:05:40 +00:00
developer Update SDK to prepare for enabling interface-update-2. 2023-07-20 20:14:39 +00:00
ffi [vm] Async FFI callbacks 2023-06-28 01:00:18 +00:00
html Reland "[dart:html] Throw exception if Window.open opens null window" and 2023-07-06 15:50:48 +00:00
indexed_db/dart2js Tighten introductory text 2023-05-16 13:55:23 +00:00
internal [cfe] Check @patch annotations 2023-06-13 07:27:08 +00:00
io Use utf8.encode() instead of longer const Utf8Encoder.convert() 2023-07-24 09:28:38 +00:00
isolate [sdk] Provide Isolate.resolvePackageUriSync 2023-07-11 12:59:33 +00:00
js Reland "[pkg:js/dart:js_interop] Move annotations to dart:_js_annotations" 2023-05-02 15:24:18 +00:00
js_interop Reland "[dart:js_interop] Remove Object.toJS and JSNumber.toDart" 2023-07-17 21:16:07 +00:00
js_interop_unsafe [dart:js_interop] Expose dart:js_interop through dart.dev 2023-05-04 17:41:53 +00:00
js_util [js_util] Make callMethod take an Object method. 2023-03-23 00:23:00 +00:00
math Adding class modifiers to dart:math. 2023-03-13 14:01:26 +00:00
mirrors [sdk docs] update sdk libraries to use triple slash docs 2023-03-14 19:10:25 +00:00
svg/dart2js [sdk docs] update sdk libraries to use triple slash docs 2023-03-14 19:10:25 +00:00
typed_data [flip-modifiers]: Reapply "Enforce current library restrictions." 2023-03-03 09:37:38 +00:00
vmservice Make Iterable be the default implementation of itself. 2023-04-04 21:45:19 +00:00
web_audio/dart2js [sdk docs] update sdk libraries to use triple slash docs 2023-03-14 19:10:25 +00:00
web_gl/dart2js [sdk docs] update sdk libraries to use triple slash docs 2023-03-14 19:10:25 +00:00
web_sql/dart2js [sdk docs] update sdk libraries to use triple slash docs 2023-03-14 19:10:25 +00:00
analysis_options.yaml [vm/ffi] Support varargs 2023-01-20 10:30:41 +00:00
libraries.json [dart2wasm] Split more patch files into patch + implementation files 2023-07-24 16:58:52 +00:00
libraries.yaml [dart2wasm] Split more patch files into patch + implementation files 2023-07-24 16:58:52 +00:00
PRESUBMIT.py
vmservice_libraries.json
vmservice_libraries.yaml