管理本地堆上的内存。
在分配内存时,建议直接以函数的方式调用此分配器(详情见AllocatorAlloc.call)。
此接口只提供用于分配字节数组的allocate方法和释放这种数组的free方法。实现者只需提供这两个方法。扩展的AllocatorAlloc.call方法是基于这些低级操作定义的。
一个将另一个分配器包装起来以计算分配次数的示例
class CountingAllocator implements Allocator {
final Allocator _wrappedAllocator;
int _totalAllocations = 0;
int _nonFreedAllocations = 0;
CountingAllocator([Allocator? allocator])
: _wrappedAllocator = allocator ?? calloc;
int get totalAllocations => _totalAllocations;
int get nonFreedAllocations => _nonFreedAllocations;
@override
Pointer<T> allocate<T extends NativeType>(int byteCount, {int? alignment}) {
final result =
_wrappedAllocator.allocate<T>(byteCount, alignment: alignment);
_totalAllocations++;
_nonFreedAllocations++;
return result;
}
@override
void free(Pointer<NativeType> pointer) {
_wrappedAllocator.free(pointer);
_nonFreedAllocations--;
}
}
- 可用扩展
- 标注
-
- @Since('2.12')
属性
- hashCode → int
- 此对象的哈希码。无设置器继承的
- runtimeType → Type
- 表示对象运行时类型的表示。无设置器继承的
方法
-
allocate<
T extends NativeType> (int byteCount, {int? alignment}) → Pointer< T> - 在本地堆上分配
byteCount
字节的内存。 -
free(
Pointer< NativeType> pointer) → void - 释放本地堆上分配的内存。
-
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时调用。继承的
-
toString(
) → String - 此对象的字符串表示。继承的
运算符
-
operator ==(
Object other) → bool - 等于运算符。继承的