mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-31 19:26:42 +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:
@@ -36,12 +36,7 @@ extern HANDLE hHeap;
|
||||
*/
|
||||
void* malloc(size_t _size)
|
||||
{
|
||||
size_t nSize;
|
||||
|
||||
if ( _size == 0)
|
||||
return NULL;
|
||||
|
||||
nSize = ROUND_SIZE(_size);
|
||||
size_t nSize = ROUND_SIZE(_size);
|
||||
|
||||
if (nSize<_size)
|
||||
return NULL;
|
||||
@@ -65,7 +60,7 @@ void* calloc(size_t _nmemb, size_t _size)
|
||||
size_t nSize = _nmemb * _size;
|
||||
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 HeapAlloc(hHeap, HEAP_ZERO_MEMORY, cSize );
|
||||
@@ -78,7 +73,7 @@ void* realloc(void* _ptr, size_t _size)
|
||||
{
|
||||
size_t nSize;
|
||||
|
||||
if ( _size == 0)
|
||||
if (( _size == 0) && (_ptr !=NULL)
|
||||
return NULL;
|
||||
|
||||
nSize = ROUND_SIZE(_size);
|
||||
@@ -98,10 +93,7 @@ void* realloc(void* _ptr, size_t _size)
|
||||
void* _expand(void* _ptr, size_t _size)
|
||||
{
|
||||
size_t nSize;
|
||||
|
||||
if ( _size == 0)
|
||||
return NULL;
|
||||
|
||||
|
||||
nSize = ROUND_SIZE(_size);
|
||||
|
||||
if (nSize<_size)
|
||||
|
||||
Reference in New Issue
Block a user