www.pudn.com > IOCPNet_Demo.zip > SafeDynMem.cpp
////////////////////////////////////////////////////////////////////////////////////////////////////
// Module Name:
// SafeDynMem.cpp
// Author:
// Chun-Hyok, Chong.
// Description:
// It is a safe dynamic allocation class to prevent a project from the memory leak.
////////////////////////////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "SafeDynMem.h"
void OSafeDynMem::Init()
{
m_pMem = NULL;
} // Init()
void OSafeDynMem::DeInit()
{
if (NULL != m_pMem)
{
VirtualFree(m_pMem, 0, MEM_RELEASE);
m_pMem = NULL;
}
} // DeInit()
void *OSafeDynMem::Allocate(DWORD Size)
{
if (NULL != m_pMem)
{
VirtualFree(m_pMem, 0, MEM_RELEASE);
m_pMem = NULL;
}
m_pMem = (void *)VirtualAlloc(NULL, Size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
return m_pMem;
} // Allocate()
BOOL OSafeDynMem::Free()
{
if (NULL != m_pMem)
{
VirtualFree(m_pMem, 0, MEM_RELEASE);
m_pMem = NULL;
return TRUE;
}
else
{
return FALSE;
}
} // Free()