alloc: rename 'size' to 'used'
This commit is contained in:
parent
da81fc8355
commit
d232f1c871
@ -73,7 +73,7 @@ linear::capacity (void) const
|
|||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
size_t
|
size_t
|
||||||
linear::size (void) const
|
linear::used (void) const
|
||||||
{
|
{
|
||||||
return m_cursor - m_begin;
|
return m_cursor - m_begin;
|
||||||
}
|
}
|
||||||
@ -83,5 +83,5 @@ linear::size (void) const
|
|||||||
size_t
|
size_t
|
||||||
linear::remain (void) const
|
linear::remain (void) const
|
||||||
{
|
{
|
||||||
return capacity () - size ();
|
return capacity () - used ();
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ namespace util { namespace alloc {
|
|||||||
void reset (void);
|
void reset (void);
|
||||||
|
|
||||||
size_t capacity (void) const;
|
size_t capacity (void) const;
|
||||||
size_t size (void) const;
|
size_t used (void) const;
|
||||||
size_t remain (void) const;
|
size_t remain (void) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -111,7 +111,7 @@ stack::capacity (void) const
|
|||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
size_t
|
size_t
|
||||||
stack::size (void) const
|
stack::used (void) const
|
||||||
{
|
{
|
||||||
return m_cursor - m_begin;
|
return m_cursor - m_begin;
|
||||||
}
|
}
|
||||||
@ -121,5 +121,5 @@ stack::size (void) const
|
|||||||
size_t
|
size_t
|
||||||
stack::remain (void) const
|
stack::remain (void) const
|
||||||
{
|
{
|
||||||
return capacity () - size ();
|
return capacity () - used ();
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ namespace util { namespace alloc {
|
|||||||
void reset (void);
|
void reset (void);
|
||||||
|
|
||||||
size_t capacity (void) const;
|
size_t capacity (void) const;
|
||||||
size_t size (void) const;
|
size_t used (void) const;
|
||||||
size_t remain (void) const;
|
size_t remain (void) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -12,6 +12,8 @@ main (void)
|
|||||||
alignas (std::max_align_t) char memory[BUFFER_SIZE];
|
alignas (std::max_align_t) char memory[BUFFER_SIZE];
|
||||||
util::alloc::linear store (std::begin (memory), std::end (memory));
|
util::alloc::linear store (std::begin (memory), std::end (memory));
|
||||||
|
|
||||||
|
tap.expect_eq (store.capacity (), BUFFER_SIZE, "bytes capacity matches");
|
||||||
|
|
||||||
tap.expect_throw<std::bad_alloc> (
|
tap.expect_throw<std::bad_alloc> (
|
||||||
[&] (void) { store.allocate (BUFFER_SIZE + 1, 1); },
|
[&] (void) { store.allocate (BUFFER_SIZE + 1, 1); },
|
||||||
"excessive allocation throws bad_alloc"
|
"excessive allocation throws bad_alloc"
|
||||||
@ -22,6 +24,9 @@ main (void)
|
|||||||
"maximum allocation succeeds"
|
"maximum allocation succeeds"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
tap.expect_eq (store.used (), BUFFER_SIZE, "bytes used matches");
|
||||||
|
tap.expect_eq (store.remain (), 0u, "bytes remain matches");
|
||||||
|
|
||||||
tap.expect_throw<std::bad_alloc> (
|
tap.expect_throw<std::bad_alloc> (
|
||||||
[&] (void) { store.allocate (1, 1); },
|
[&] (void) { store.allocate (1, 1); },
|
||||||
"minimum allocation fails after exhaustion"
|
"minimum allocation fails after exhaustion"
|
||||||
|
@ -34,6 +34,8 @@ main (void)
|
|||||||
|
|
||||||
util::alloc::stack store (memory, memory + BUFFER_AVAILABLE);
|
util::alloc::stack store (memory, memory + BUFFER_AVAILABLE);
|
||||||
|
|
||||||
|
tap.expect_eq (store.capacity (), BUFFER_AVAILABLE, "bytes capacity matches");
|
||||||
|
|
||||||
// larger than total allocations should throw
|
// larger than total allocations should throw
|
||||||
tap.expect_throw<std::bad_alloc> (
|
tap.expect_throw<std::bad_alloc> (
|
||||||
[&store] (void) { store.allocate (BUFFER_AVAILABLE + 1, 1); },
|
[&store] (void) { store.allocate (BUFFER_AVAILABLE + 1, 1); },
|
||||||
@ -57,6 +59,11 @@ main (void)
|
|||||||
"bad_alloc thrown on exhaustion"
|
"bad_alloc thrown on exhaustion"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// check byte counts are plausible. stacks use some extra memory for book
|
||||||
|
// keeping, so we need to use relational comparison rather than equality.
|
||||||
|
tap.expect_ge (store.used (), BUFFER_REQUEST, "bytes used matches");
|
||||||
|
tap.expect_le (store.remain (), BUFFER_AVAILABLE - BUFFER_REQUEST, "bytes remain matches");
|
||||||
|
|
||||||
// try many allocations again after resetting the allocator to zero usage
|
// try many allocations again after resetting the allocator to zero usage
|
||||||
store.reset ();
|
store.reset ();
|
||||||
tap.expect_nothrow (
|
tap.expect_nothrow (
|
||||||
|
Loading…
Reference in New Issue
Block a user