[PATCH 1/1] Forward _realloc_crt to realloc
Nikolay Sivov
nsivov at codeweavers.com
Thu Jan 27 17:47:31 CST 2011
---
dlls/msvcr100/msvcr100.spec | 2 +-
dlls/msvcr80/msvcr80.spec | 2 +-
dlls/msvcr90/msvcr90.spec | 2 +-
dlls/msvcr90/tests/msvcr90.c | 27 +++++++++++++++++++++++++++
4 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index d079728..703a78d 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1042,7 +1042,7 @@
@ cdecl _putws(wstr) msvcrt._putws
@ stub _pwctype
@ cdecl _read(long ptr long) msvcrt._read
-@ stub _realloc_crt
+@ cdecl _realloc_crt(ptr long) msvcrt.realloc
@ cdecl _recalloc(ptr long long) msvcr90._recalloc
@ stub _recalloc_crt
@ stub _resetstkoflw
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 3ece44c..c622b0e 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -890,7 +890,7 @@
@ cdecl _putws(wstr) msvcrt._putws
@ stub _pwctype
@ cdecl _read(long ptr long) msvcrt._read
-@ stub _realloc_crt
+@ cdecl _realloc_crt(ptr long) msvcrt.realloc
@ cdecl _recalloc(ptr long long) msvcr90._recalloc
@ stub _recalloc_crt
@ stub _resetstkoflw
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 38cf0fb..52f49c5 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -876,7 +876,7 @@
@ cdecl _putws(wstr) msvcrt._putws
@ stub _pwctype
@ cdecl _read(long ptr long) msvcrt._read
-@ stub _realloc_crt
+@ cdecl _realloc_crt(ptr long) msvcrt.realloc
@ cdecl _recalloc(ptr long long)
@ stub _recalloc_crt
@ stub _resetstkoflw
diff --git a/dlls/msvcr90/tests/msvcr90.c b/dlls/msvcr90/tests/msvcr90.c
index eeb8842..7af28f9 100644
--- a/dlls/msvcr90/tests/msvcr90.c
+++ b/dlls/msvcr90/tests/msvcr90.c
@@ -75,6 +75,7 @@ static int (__cdecl *p_atoflt)(_CRT_FLOAT *, char *);
static unsigned int (__cdecl *p_set_abort_behavior)(unsigned int, unsigned int);
static int (__cdecl *p_sopen_s)(int*, const char*, int, int, int);
static int (__cdecl *p_wsopen_s)(int*, const wchar_t*, int, int, int);
+static void* (__cdecl *p_realloc_crt)(void*, size_t);
static void* (WINAPI *pEncodePointer)(void *);
@@ -753,6 +754,30 @@ static void test__wsopen_s(void)
ok(fd == -1, "got %d\n", fd);
}
+static void test__realloc_crt(void)
+{
+ void *mem;
+
+ if(!p_realloc_crt)
+ {
+ win_skip("_realloc_crt not found\n");
+ return;
+ }
+
+ mem = p_realloc_crt(NULL, 10);
+ ok(mem != NULL, "memory not allocated\n");
+
+ mem = p_realloc_crt(mem, 20);
+ ok(mem != NULL, "memory not reallocated\n");
+
+ mem = p_realloc_crt(mem, 0);
+ ok(mem == NULL, "memory not freed\n");
+
+ mem = p_realloc_crt(NULL, 0);
+ ok(mem != NULL, "memory not (re)allocated for size 0\n");
+ free(mem);
+}
+
START_TEST(msvcr90)
{
HMODULE hcrt;
@@ -788,6 +813,7 @@ START_TEST(msvcr90)
p_set_abort_behavior = (void *) GetProcAddress(hcrt, "_set_abort_behavior");
p_sopen_s = (void*) GetProcAddress(hcrt, "_sopen_s");
p_wsopen_s = (void*) GetProcAddress(hcrt, "_wsopen_s");
+ p_realloc_crt = (void*) GetProcAddress(hcrt, "_realloc_crt");
hkernel32 = GetModuleHandleA("kernel32.dll");
pEncodePointer = (void *) GetProcAddress(hkernel32, "EncodePointer");
@@ -804,4 +830,5 @@ START_TEST(msvcr90)
test__set_abort_behavior();
test__sopen_s();
test__wsopen_s();
+ test__realloc_crt();
}
--
1.5.6.5
--------------060601090202030803030306--
More information about the wine-patches
mailing list