Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ElmerGUI/netgen/libsrc/general/optmem.hpp
3206 views
1
#ifndef FILE_OPTMEM
2
#define FILE_OPTMEM
3
4
/**************************************************************************/
5
/* File: optmem.hh */
6
/* Author: Joachim Schoeberl */
7
/* Date: 04. Apr. 97 */
8
/**************************************************************************/
9
10
/**
11
Optimized Memory allocation classes
12
*/
13
14
class BlockAllocator
15
{
16
private:
17
///
18
unsigned size, blocks;
19
///
20
void * freelist;
21
///
22
ARRAY<char*> bablocks;
23
public:
24
///
25
BlockAllocator (unsigned asize, unsigned ablocks = 100);
26
///
27
~BlockAllocator ();
28
///
29
30
void * Alloc ();
31
/*
32
{
33
if (!freelist)
34
Alloc2();
35
36
void * p = freelist;
37
// freelist = *(void**)freelist;
38
freelist = *static_cast<void**> (freelist);
39
40
return p;
41
}
42
*/
43
44
45
///
46
void Free (void * p)
47
{
48
*(void**)p = freelist;
49
freelist = p;
50
}
51
52
53
private:
54
// void Alloc2 ();
55
};
56
57
58
59
#endif
60
61