Is it OK to destroy *self?

I wonder if this could cause a problem given I’m destroying the instance while calling a method (destroy) on one of its fields (allocator).

// self is a *Self (this is at the end of a deinit method)

Should be fine. internally calls, ...) which should always pass the self.ptr by value.
So it won’t keep a hidden reference the self.allocator memory during freeing.