std.expreimantal.allocator deallocate
Petar
Petar
Sun Jan 24 18:38:42 UTC 2021
On Sunday, 24 January 2021 at 14:56:25 UTC, Paul Backus wrote:
> On Sunday, 24 January 2021 at 11:00:17 UTC, vitamin wrote:
>> It is Ok when I call deallocate with smaller slice or I need
>> track exact lengtht?
>
> It depends on the specific allocator, but in general, it is
> only guaranteed to work correctly if the slice you pass to
> deallocate is exactly the same as the one you got from allocate.
To add to that, if an allocator defines `resolveInternalPointer`
[0][1] you could be able to get the original slice that was
allocated (and then pass that to `deallocate`, but not all
allocators define `resolveInternalPointer` and also even if they
do define it, they're not required to maintain complete
book-keeping as doing so could have bad performance implications
(i.e. calling say `a.resolveInternalPointer(a.allocate(10)[3 ..
6].ptr, result)` can return `Ternary.unknown`.
[0]:
https://dlang.org/phobos/std_experimental_allocator.html#.IAllocator.resolveInternalPointer
[1]:
https://dlang.org/phobos/std_experimental_allocator_building_blocks.html
More information about the Digitalmars-d-learn
mailing list