[Issue 18259] New: allocatorObject's CAllocatorImpl should store the passed allocator within
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Jan 17 22:03:38 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=18259
Issue ID: 18259
Summary: allocatorObject's CAllocatorImpl should store the
passed allocator within
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: edi33416 at gmail.com
allocatorObject uses the passed allocator to allocate the memory chunk that
will store the CAllocatorImpl instance, and thus, the allocator stored within
the newly created instance should be the one that was passed to the function.
This being said, the unittest below should pass.
unittest
{
import std.conv;
import std.experimental.allocator.mallocator;
import std.experimental.allocator.building_blocks.stats_collector;
alias SCAlloc = StatsCollector!(Mallocator, Options.bytesUsed);
SCAlloc statsCollectorAlloc;
assert(statsCollectorAlloc.bytesUsed == 0);
auto _allocator = allocatorObject(statsCollectorAlloc);
// Ensure that the allocator was passed through in CAllocatorImpl
// This allocator was used to allocate the chunk that holds the
// CAllocatorImpl object; which is it's own wrapper
assert(_allocator.impl.bytesUsed == stateSize!(CAllocatorImpl!(SCAlloc)));
_allocator.allocate(1);
assert(_allocator.impl.bytesUsed == stateSize!(CAllocatorImpl!(SCAlloc)) +
1);
}
--
More information about the Digitalmars-d-bugs
mailing list