Added lzma_memlimit_count().
This commit is contained in:
parent
19389f2b82
commit
5b5b13c7bb
|
@ -92,6 +92,16 @@ extern size_t lzma_memlimit_get(const lzma_memlimit *mem);
|
||||||
extern size_t lzma_memlimit_used(const lzma_memlimit *mem);
|
extern size_t lzma_memlimit_used(const lzma_memlimit *mem);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Gets the number of allocations owned by the memory limitter
|
||||||
|
*
|
||||||
|
* The count does not include the helper structures; if no memory has
|
||||||
|
* been allocated with lzma_memlimit_alloc() or all memory allocated
|
||||||
|
* has been freed or detached, this will return zero.
|
||||||
|
*/
|
||||||
|
extern size_t lzma_memlimit_count(const lzma_memlimit *mem);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Allocates memory with malloc() if memory limit allows
|
* \brief Allocates memory with malloc() if memory limit allows
|
||||||
*
|
*
|
||||||
|
|
|
@ -85,6 +85,25 @@ lzma_memlimit_used(const lzma_memlimit *mem)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern LZMA_API size_t
|
||||||
|
lzma_memlimit_count(const lzma_memlimit *mem)
|
||||||
|
{
|
||||||
|
// This is slow; we could have a counter in lzma_memlimit
|
||||||
|
// for fast version. I expect the primary use of this
|
||||||
|
// function to be limited to easy checking of memory leaks,
|
||||||
|
// in which this implementation is just fine.
|
||||||
|
size_t count = 0;
|
||||||
|
const lzma_memlimit_list *record = mem->list;
|
||||||
|
|
||||||
|
while (record != NULL) {
|
||||||
|
++count;
|
||||||
|
record = record->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
extern LZMA_API void
|
extern LZMA_API void
|
||||||
lzma_memlimit_end(lzma_memlimit *mem, lzma_bool free_allocated)
|
lzma_memlimit_end(lzma_memlimit *mem, lzma_bool free_allocated)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue