mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 05:42:57 +00:00
fixing malloc and realloc so it return right value
do not mix the doc over malloc and realloc. Thanks filip <filip2307> malloc(0) -> valid buffer <GreatLord> then I revert that change <filip2307> realloc(<non-null pointer>, 0) -> NULL <filip2307> realloc(NULL, 0) -> valid buffer svn path=/trunk/; revision=22197
This commit is contained in:
parent
f895d5ab82
commit
4eada6f8bd
1 changed files with 4 additions and 12 deletions
|
@ -36,12 +36,7 @@ extern HANDLE hHeap;
|
||||||
*/
|
*/
|
||||||
void* malloc(size_t _size)
|
void* malloc(size_t _size)
|
||||||
{
|
{
|
||||||
size_t nSize;
|
size_t nSize = ROUND_SIZE(_size);
|
||||||
|
|
||||||
if ( _size == 0)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
nSize = ROUND_SIZE(_size);
|
|
||||||
|
|
||||||
if (nSize<_size)
|
if (nSize<_size)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -65,7 +60,7 @@ void* calloc(size_t _nmemb, size_t _size)
|
||||||
size_t nSize = _nmemb * _size;
|
size_t nSize = _nmemb * _size;
|
||||||
size_t cSize = ROUND_SIZE(nSize);
|
size_t cSize = ROUND_SIZE(nSize);
|
||||||
|
|
||||||
if ((_nmemb > ((size_t)-1 / _size) || (nSize == 0) || (cSize<nSize))
|
if ((_nmemb > ((size_t)-1 / _size) || (cSize<nSize))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return HeapAlloc(hHeap, HEAP_ZERO_MEMORY, cSize );
|
return HeapAlloc(hHeap, HEAP_ZERO_MEMORY, cSize );
|
||||||
|
@ -78,7 +73,7 @@ void* realloc(void* _ptr, size_t _size)
|
||||||
{
|
{
|
||||||
size_t nSize;
|
size_t nSize;
|
||||||
|
|
||||||
if ( _size == 0)
|
if (( _size == 0) && (_ptr !=NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
nSize = ROUND_SIZE(_size);
|
nSize = ROUND_SIZE(_size);
|
||||||
|
@ -99,9 +94,6 @@ void* _expand(void* _ptr, size_t _size)
|
||||||
{
|
{
|
||||||
size_t nSize;
|
size_t nSize;
|
||||||
|
|
||||||
if ( _size == 0)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
nSize = ROUND_SIZE(_size);
|
nSize = ROUND_SIZE(_size);
|
||||||
|
|
||||||
if (nSize<_size)
|
if (nSize<_size)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue