address property
The memory address of the underlying data.
An expression of the form expression.address
denoting this address
can only occurr as an entire argument expression in the invocation of
a leaf Native external function.
Example:
@Native<Void Function(Pointer<Int8>)>(isLeaf: true)
external void myFunction(Pointer<Int8> pointer);
void main() {
final list = Int8List(10);
myFunction(list.address);
}
The expression before .address
is evaluated like the left-hand-side of
an assignment, to something that gives access to the storage behind the
expression, which can be used both for reading and writing. The .address
then gives a native pointer to that storage.
The .address
is evaluated just before calling into native code when
invoking a leaf Native external function. This ensures the Dart garbage
collector will not move the object that the address points in to.
Implementation
external Pointer<Int8> get address;