clsMalloc.cpp
964 Bytes
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<malloc.h>
#include "clsMalloc.h"
#include<cstring>
namespace DmapCore_30
{
clsMalloc::clsMalloc()
{
m_iN = 1;
mem = NULL;
}
clsMalloc::clsMalloc(size_t size)
{
m_iN = 1;
mem = (char *)malloc(size);
std::memset(mem, 0, size);
}
clsMalloc::clsMalloc(char *c)
{
m_iN = 1;
mem = c;
}
clsMalloc::~clsMalloc(void)
{
if (mem)
{
free(mem);
mem = 0;
}
}
bool clsMalloc::AddRef()
{
m_iN++;
return true;
}
bool clsMalloc::Release()
{
m_iN--;
if (m_iN < 0)
return false;
if (!m_iN)
delete this;
return true;
}
bool clsMalloc::Destroy()
{
delete this;
return true;
}
bool clsMalloc::MemSet(int value, size_t size)
{
memset(mem, value, size);
return true;
}
void clsMalloc::ReMalloc(size_t size)
{
free(mem);
mem = (char*)malloc(size);
memset(mem, 0, size);
}
void clsMalloc::SetSize(size_t size)
{
this->size = size;
}
size_t clsMalloc::GetSize()
{
return size;
}
}