version 1.3, 2015/04/20 18:10:13
|
version 1.4, 2015/04/20 18:19:53
|
|
|
if (!self) | if (!self) |
return NULL; | return NULL; |
| |
p = (MOF_Block*)malloc(sizeof(MOF_Block) + size); |
p = (MOF_Block*)PAL_Malloc(sizeof(MOF_Block) + size); |
| |
if (!p) | if (!p) |
return NULL; | return NULL; |
|
|
memset((char*)ptr + size, 0xDD, p->size - size); | memset((char*)ptr + size, 0xDD, p->size - size); |
#endif | #endif |
| |
p = (MOF_Block*)realloc(p, sizeof(MOF_Block) + size); |
p = (MOF_Block*)PAL_Realloc(p, sizeof(MOF_Block) + size); |
| |
if (!p) | if (!p) |
return NULL; | return NULL; |
|
|
/* Fill released memory with 0xDD characters */ | /* Fill released memory with 0xDD characters */ |
memset(p, 0xDD, sizeof(MOF_Block) + p->size); | memset(p, 0xDD, sizeof(MOF_Block) + p->size); |
| |
free(p); |
PAL_Free(p); |
} | } |
| |
void MOF_Release(MOF_Heap* self) | void MOF_Release(MOF_Heap* self) |
|
|
for (p = self->head; p; ) | for (p = self->head; p; ) |
{ | { |
MOF_Block* next = p->next; | MOF_Block* next = p->next; |
free(p); |
PAL_Free(p); |
p = next; | p = next; |
} | } |
| |