@override void free(Pointer ptr) { if (!ptr.safe && ptr.refCount == 0) { _memoryPool.deallocate(ptr); _allocatedPointers.remove(ptr); } }