clsMalloc.cpp 964 Bytes

#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;
	}
}