# HG changeset patch # User Paul Boddie # Date 1616963925 -7200 # Node ID e7a9e8c6995f4a51c7b18d88100ed18cada009af # Parent f8ab10de2f5ec25369e373f372d9a541368800c0 Support the release of preallocated memory. diff -r f8ab10de2f5e -r e7a9e8c6995f memory/memory_preallocated.cc --- a/memory/memory_preallocated.cc Sat Mar 27 22:12:12 2021 +0100 +++ b/memory/memory_preallocated.cc Sun Mar 28 22:38:45 2021 +0200 @@ -22,6 +22,19 @@ } } +/* Discard all unused regions. */ + +MemoryPreallocated::~MemoryPreallocated() +{ + while (!_regions.empty()) + { + Region *region = _regions.front(); + + _regions.pop_front(); + _memory->release(region); + } +} + /* Obtain an allocated region. */ Region *MemoryPreallocated::region() diff -r f8ab10de2f5e -r e7a9e8c6995f memory/memory_preallocated.h --- a/memory/memory_preallocated.h Sat Mar 27 22:12:12 2021 +0100 +++ b/memory/memory_preallocated.h Sun Mar 28 22:38:45 2021 +0200 @@ -25,6 +25,8 @@ explicit MemoryPreallocated(); + virtual ~MemoryPreallocated(); + virtual Region *region(); virtual offset_t region_size()