Skip to content

Commit 18af310

Browse files
goderbauerCommit Queue
authored and
Commit Queue
committed
[vm/ffi] Fix mixin of _BoolArrayList
_BoolArrayList needs to extend FixedLengthListMixin instead of UnmodifiableListMixin since it implements `operator []=`. Also contains some other doc fixes that were brought up post-submit in https://dart-review.googlesource.com/c/sdk/+/414821. TEST=tests/ffi/array_primitive_elements_generated_test.dart CoreLibraryReviewExempt: Dart VM only. Bug: #45508 Change-Id: I7635152283aec51a4f38e06fdfc7da84e93e55ab Cq-Include-Trybots: dart/try:vm-aot-android-release-arm64c-try,vm-aot-android-release-arm_x64-try,vm-aot-asan-linux-release-x64-try,vm-aot-linux-debug-x64-try,vm-aot-linux-debug-x64c-try,vm-aot-mac-release-arm64-try,vm-aot-mac-release-x64-try,vm-aot-msan-linux-release-x64-try,vm-aot-obfuscate-linux-release-x64-try,vm-aot-optimization-level-linux-release-x64-try,vm-aot-tsan-linux-release-x64-try,vm-aot-ubsan-linux-release-x64-try,vm-aot-win-debug-arm64-try,vm-aot-win-debug-x64-try,vm-aot-win-debug-x64c-try,vm-appjit-linux-debug-x64-try,vm-asan-linux-release-arm64-try,vm-asan-linux-release-x64-try,vm-checked-mac-release-arm64-try,vm-eager-optimization-linux-release-ia32-try,vm-eager-optimization-linux-release-x64-try,vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64c-try,vm-ffi-mac-debug-simarm64_arm64-try,vm-ffi-qemu-linux-release-arm-try,vm-ffi-qemu-linux-release-riscv64-try,vm-fuchsia-release-arm64-try,vm-fuchsia-release-x64-try,vm-linux-debug-ia32-try,vm-linux-debug-x64-try,vm-linux-debug-x64c-try,vm-mac-debug-arm64-try,vm-mac-debug-x64-try,vm-msan-linux-release-arm64-try,vm-msan-linux-release-x64-try,vm-reload-linux-debug-x64-try,vm-reload-rollback-linux-debug-x64-try,vm-tsan-linux-release-arm64-try,vm-tsan-linux-release-x64-try,vm-ubsan-linux-release-arm64-try,vm-ubsan-linux-release-x64-try,vm-win-debug-arm64-try,vm-win-debug-x64-try,vm-win-debug-x64c-try,vm-win-release-ia32-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/417100 Reviewed-by: Daco Harkes <[email protected]> Commit-Queue: Michael Goderbauer <[email protected]>
1 parent 9e78d10 commit 18af310

File tree

5 files changed

+310
-20
lines changed

5 files changed

+310
-20
lines changed

runtime/tools/ffi/sdk_lib_ffi_generator.dart

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ void update(Uri fileName, Function(StringBuffer, Config, Container) generator) {
106106

107107
const header = """
108108
//
109-
// The following code is generated, do not edit by hand.
109+
// Generated code, do not edit!
110110
//
111111
// Code generated by `runtime/tools/ffi/sdk_lib_ffi_generator.dart`.
112112
//
@@ -286,14 +286,23 @@ $asTypedList
286286
buffer.write("""
287287
/// Bounds checking indexing methods on [Array]s of [$nativeType].
288288
$since extension ${nativeType}Array on Array<$nativeType> {
289+
/// Loads a Dart value from this array at [index].
290+
///
291+
/// This extension method must be invoked on a receiver of type `Array<T>`
292+
/// where `T` is a compile-time constant type.
289293
external $dartType operator [](int index);
290294
295+
/// Stores a Dart value in this array at [index].
296+
///
297+
/// This extension method must be invoked on a receiver of type `Array<T>`
298+
/// where `T` is a compile-time constant type.
291299
external void operator []=(int index, $dartType value);
292300
293301
/// A list view of the bytes of this array.
294302
///
295303
/// Has the same length and elements (as accessed using the index operator)
296-
/// as this array, and writes to either the list or this arrary are visible in both.
304+
/// as this array, and writes to either the list or this arrary are visible
305+
/// in both.
297306
@Since('3.8')
298307
external $elementsGetterReturnType get elements;
299308
}
@@ -406,7 +415,7 @@ $asTypedList
406415
List<$dartType> get elements => _${nativeType}ArrayList(this);
407416
""";
408417
listHelperClass = """
409-
class _${nativeType}ArrayList with ListMixin<$dartType>, UnmodifiableListMixin<$dartType> {
418+
class _${nativeType}ArrayList with ListMixin<$dartType>, FixedLengthListMixin<$dartType> {
410419
_${nativeType}ArrayList(this._array);
411420
412421
final Array<$nativeType> _array;

sdk/lib/_internal/vm/lib/ffi_patch.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ extension NativeFunctionPointer<NF extends Function>
657657
}
658658

659659
//
660-
// The following code is generated, do not edit by hand.
660+
// Generated code, do not edit!
661661
//
662662
// Code generated by `runtime/tools/ffi/sdk_lib_ffi_generator.dart`.
663663
//
@@ -1401,7 +1401,7 @@ extension BoolArray on Array<Bool> {
14011401
List<bool> get elements => _BoolArrayList(this);
14021402
}
14031403

1404-
class _BoolArrayList with ListMixin<bool>, UnmodifiableListMixin<bool> {
1404+
class _BoolArrayList with ListMixin<bool>, FixedLengthListMixin<bool> {
14051405
_BoolArrayList(this._array);
14061406

14071407
final Array<Bool> _array;

0 commit comments

Comments
 (0)