blob: 05c9ddb3b01717ec2fc3038517686f5cbafefbdb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/*
* Allocation Tracker
* (C) 2014 Jack Lloyd
*
* Botan is released under the Simplified BSD License (see license.txt)
*/
#include <botan/internal/comp_util.h>
#include <botan/mem_ops.h>
#include <cstdlib>
namespace Botan {
void* Compression_Alloc_Info::do_malloc(size_t n, size_t size)
{
const size_t total_sz = n * size;
void* ptr = std::malloc(total_sz);
m_current_allocs[ptr] = total_sz;
return ptr;
}
void Compression_Alloc_Info::do_free(void* ptr)
{
if(ptr)
{
auto i = m_current_allocs.find(ptr);
if(i == m_current_allocs.end())
throw std::runtime_error("Compression_Alloc_Info::free got pointer not allocated by us");
zero_mem(ptr, i->second);
std::free(ptr);
m_current_allocs.erase(i);
}
}
}
|