dart-sdk/runtime/include
Daco Harkes 4558112105 Rereland "[vm/ffi] Disallow Pointers and structs in finalizers and expandos"
`Dart_NewWeakPersistentHandle` and `Dart_NewFinalizableHandle` in
`dart_api.h` do no longer accept `Pointer`s and subtypes of `Struct`s
as values passed in to the `object` parameter.

Expandos no longer accept `Pointer`s and subtypes of `Struct`s
as values passed in to the `object` parameter.

Cleans up unused object_store->ffi_struct_class.

Reland 1: Allow importing `dart:ffi` from `dart:core` with
          `--enable-ffi=false`.
Reland 2: Allow the new `_Compound` class to extend `NativeType`. (This
          got triggered in this CL on the build because of the import
          from `dart:core`.)

Closes: https://github.com/dart-lang/sdk/issues/45071
Breaking change: https://github.com/dart-lang/sdk/issues/45072

TEST=vm/cc/DartAPI_FinalizableHandleErrors
TEST=vm/cc/DartAPI_WeakPersistentHandleErrors
TEST=tests/ffi(_2)/expando_test.dart

Change-Id: I133278e16bd75cd2bb6234e7ddf042ffa0a54fd6
Cq-Include-Trybots: luci.dart.try:dart-sdk-linux-try,dart-sdk-mac-try,dart-sdk-win-try,vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-mac-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-linux-debug-x64-try,vm-kernel-nnbd-linux-debug-x64-try,vm-kernel-nnbd-linux-debug-ia32-try,vm-kernel-nnbd-mac-release-x64-try,vm-kernel-nnbd-win-debug-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-simarm_x64-try,vm-kernel-precomp-nnbd-linux-debug-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-reload-linux-debug-x64-try,vm-kernel-reload-rollback-linux-debug-x64-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,vm-kernel-msan-linux-release-x64-try,vm-kernel-precomp-msan-linux-release-x64-try,vm-kernel-precomp-android-release-arm_x64-try,analyzer-analysis-server-linux-try,vm-kernel-precomp-linux-debug-x64c-try,vm-kernel-linux-debug-x64c-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195079
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2021-04-14 12:07:18 +00:00
..
bin Rollforward of the dart_io_api.h include change, with a fix for flutter. 2018-11-19 18:16:11 +00:00
internal [vm/ffi] Change dart_api_dl.cc to dart_api_dl.c 2020-08-10 15:11:21 +00:00
dart_api.h Rereland "[vm/ffi] Disallow Pointers and structs in finalizers and expandos" 2021-04-14 12:07:18 +00:00
dart_api_dl.c [vm] Change import paths inside runtime/include 2020-09-25 11:09:44 +00:00
dart_api_dl.h [vm] Native API: Make Dart_NewWeakPersistentHandle not auto delete 2020-11-03 10:27:44 +00:00
dart_embedder_api.h [vm] Avoid allocating Monitor/Mutex/... with global initializer, use Init()/Cleanup() functions instead 2020-03-17 08:49:52 +00:00
dart_native_api.h [vm] Native API: Make Dart_NewWeakPersistentHandle not auto delete 2020-11-03 10:27:44 +00:00
dart_tools_api.h [ VM ] Remove requirement for presence of current isolate for 2021-03-10 00:42:37 +00:00
dart_version.h [vm] Native API: Make Dart_NewWeakPersistentHandle not auto delete 2020-11-03 10:27:44 +00:00