代码拉取完成,页面将自动刷新
同步操作将从 beykery/cocosocket 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "MemoryPool.h"
MemoryPool::MemoryPool(unsigned int size, unsigned int increase /*= 64*/)
{
m_size = size;
m_increase = increase;
MemoryList *list = (MemoryList*) malloc(sizeof (MemoryList));
m_handle = (MemoryList*) malloc(sizeof (MemoryList));
if (list == NULL || m_handle == NULL)
{
return;
}
list->memory = malloc(size);
m_memory_list_header = list;
MemoryList *handle = NULL;
for (unsigned int i = 1; i < m_increase * 2; ++i)
{
handle = (MemoryList*) malloc(sizeof (MemoryList));
handle->memory = malloc(size);
list->next = handle;
list = list->next;
}
list->next = NULL;
}
MemoryPool::~MemoryPool()
{
MemoryList *handle = NULL;
while (m_memory_list_header->next != NULL)
{
handle = m_memory_list_header;
m_memory_list_header = m_memory_list_header->next;
free(handle);
}
}
void * MemoryPool::Alloc()
{
static void * handle = NULL;
if (m_memory_list_header->next == NULL)
{
MemoryList *handle = NULL;
MemoryList *list = (MemoryList*) malloc(sizeof (MemoryList));
if (list == NULL)
{
return NULL;
}
list->memory = malloc(m_size);
m_memory_list_header->next = list;
for (unsigned int i = 1; i < m_increase; ++i)
{
handle = (MemoryList*) malloc(sizeof (MemoryList));
if (handle == NULL)
{
break;
}
handle->memory = malloc(m_size);
list->next = handle;
list = list->next;
}
list->next = NULL;
}
handle = m_memory_list_header->memory;
m_memory_list_header = m_memory_list_header->next;
return handle;
}
void MemoryPool::Free(void *m)
{
if (m == NULL)
{
return;
}
if (m_handle == NULL)
{
m_handle = (MemoryList*) malloc(sizeof (MemoryList));
}
m_handle->memory = m;
m_handle->next = m_memory_list_header;
m_memory_list_header = m_handle;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。