[Issue 18854] New: std.allocator: StatsCollector counts failed deallocations

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat May 12 01:23:28 UTC 2018


https://issues.dlang.org/show_bug.cgi?id=18854

          Issue ID: 18854
           Summary: std.allocator: StatsCollector counts failed
                    deallocations
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: phobos
          Assignee: nobody at puremagic.com
          Reporter: dlang-bugzilla at thecybershadow.net

///////////////////////////// test.d /////////////////////////////
import std.exception : enforce;
import std.experimental.allocator.building_blocks.region;
import std.experimental.allocator.building_blocks.stats_collector;
import std.experimental.allocator.gc_allocator;
import std.typecons : Ternary;

void main()
{
    StatsCollector!(Region!GCAllocator, Options.bytesUsed) s;
    s.parent = Region!GCAllocator(1024);

    auto buf1 = s.allocate(100).enforce();
    auto buf2 = s.allocate(100).enforce();

    if (s.deallocate(buf1))
    {
        // OK
        return;
    }
    else
    {
        // Oops, have to deallocate buf2 first
        s.deallocate(buf2).enforce();
        s.deallocate(buf1).enforce();

        // The region should be empty now, right?
        assert(s.empty != Ternary.no); // Nope!
    }
}
//////////////////////////////////////////////////////////////////

--


More information about the Digitalmars-d-bugs mailing list