From e7daade2913335534ea2cdcf9fbee1f74ec83d49 Mon Sep 17 00:00:00 2001 From: Daco Harkes Date: Tue, 12 Mar 2024 08:03:30 +0000 Subject: [PATCH] [gardening] Fix test TEST=tests/ffi/deeply_immutable_c_api_finalizer_test.dart Closes: https://github.com/dart-lang/sdk/issues/55165 Change-Id: I8e5925b978db4591442ca36d57a6a98f85501bbd Cq-Include-Trybots: luci.dart.try:vm-win-debug-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/356801 Reviewed-by: Ben Konyi Commit-Queue: Daco Harkes --- runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc | 4 ++++ tests/ffi/deeply_immutable_c_api_finalizer_test.dart | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc b/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc index aa566ce88fe..a66574162f2 100644 --- a/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc +++ b/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc @@ -617,6 +617,10 @@ DART_EXPORT void ExecuteCallback(Work* work_ptr) { Dart_Port send_port_; +DART_EXPORT void* Calloc(size_t count, size_t size) { + return calloc(count, size); +} + DART_EXPORT void FreeFinalizer(void*, void* value) { free(value); } diff --git a/tests/ffi/deeply_immutable_c_api_finalizer_test.dart b/tests/ffi/deeply_immutable_c_api_finalizer_test.dart index 7d031a9051d..de1e9c9961b 100644 --- a/tests/ffi/deeply_immutable_c_api_finalizer_test.dart +++ b/tests/ffi/deeply_immutable_c_api_finalizer_test.dart @@ -28,7 +28,7 @@ final class MyFinalizable implements Finalizable { MyFinalizable._(this.pointer); factory MyFinalizable() { - final pointer = calloc(10); + final pointer = calloc(sizeOf(), 10).cast(); pointer.value = 123; final result = MyFinalizable._(pointer); newFinalizableHandle( @@ -41,6 +41,10 @@ final class MyFinalizable implements Finalizable { } } +final calloc = dlopenPlatformSpecific("ffi_test_functions") + .lookup Function(Size, Size)>>('Calloc') + .asFunction Function(int, int)>(); + final freeFinalizer = dlopenPlatformSpecific("ffi_test_functions") .lookup>('FreeFinalizer');