copyBytesAndFree method

Uint8List copyBytesAndFree(
  1. Pointer<Uint8> ptr,
  2. int len
)

Copies len bytes from ptr into Dart-managed memory and frees ptr.

Implementation

Uint8List copyBytesAndFree(ffi.Pointer<ffi.Uint8> ptr, int len) {
  if (ptr == ffi.nullptr || len == 0) {
    if (ptr != ffi.nullptr) {
      freePointer(ptr.cast());
    }
    return Uint8List(0);
  }

  final bytes = Uint8List.fromList(ptr.asTypedList(len));
  freePointer(ptr.cast());
  return bytes;
}