Fix realloc() to match the documented behaviour.
Add a few simple tests for it.
This commit is contained in:
parent
9e85bf3f87
commit
c5150fb682
|
@ -281,5 +281,8 @@ void* MSVCRT_malloc(MSVCRT_size_t size)
|
|||
*/
|
||||
void* MSVCRT_realloc(void* ptr, MSVCRT_size_t size)
|
||||
{
|
||||
return HeapReAlloc(GetProcessHeap(), 0, ptr, size);
|
||||
if (!ptr) return MSVCRT_malloc(size);
|
||||
if (size) return HeapReAlloc(GetProcessHeap(), 0, ptr, size);
|
||||
MSVCRT_free(ptr);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
Makefile
|
||||
cpp.ok
|
||||
file.ok
|
||||
heap.ok
|
||||
msvcrt_test.exe.spec.c
|
||||
scanf.ok
|
||||
testlist.c
|
||||
|
|
|
@ -9,6 +9,7 @@ EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt
|
|||
CTESTS = \
|
||||
cpp.c \
|
||||
file.c \
|
||||
heap.c \
|
||||
scanf.c
|
||||
|
||||
@MAKE_TEST_RULES@
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* Unit test suite for memory functions
|
||||
*
|
||||
* Copyright 2003 Dimitrie O. Paun
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "wine/test.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
static void test_realloc( void )
|
||||
{
|
||||
void *mem = NULL;
|
||||
|
||||
mem = realloc(mem, 10);
|
||||
ok(mem != NULL, "memory not allocated");
|
||||
|
||||
mem = realloc(mem, 20);
|
||||
ok(mem != NULL, "memory not reallocated");
|
||||
|
||||
mem = realloc(mem, 0);
|
||||
ok(mem == NULL, "memory nto freed");
|
||||
}
|
||||
|
||||
START_TEST(heap)
|
||||
{
|
||||
test_realloc();
|
||||
}
|
Loading…
Reference in New Issue