Piotr Caban : msvcr90: Added _recalloc implementation.
Alexandre Julliard
julliard at winehq.org
Mon Apr 26 13:59:27 CDT 2010
Module: wine
Branch: master
Commit: 40aa4dc459921631dff66989576bc264ee3a3540
URL: http://source.winehq.org/git/wine.git/?a=commit;h=40aa4dc459921631dff66989576bc264ee3a3540
Author: Piotr Caban <piotr at codeweavers.com>
Date: Mon Apr 26 12:33:02 2010 +0200
msvcr90: Added _recalloc implementation.
---
dlls/msvcr80/msvcr80.spec | 2 +-
dlls/msvcr90/msvcr90.c | 27 +++++++++++++++++++++++++++
dlls/msvcr90/msvcr90.spec | 2 +-
3 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 53cef75..0c69621 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -837,7 +837,7 @@
@ stub _pwctype
@ cdecl _read(long ptr long) msvcrt._read
@ stub _realloc_crt
-@ stub _recalloc
+@ cdecl _recalloc(ptr long long) msvcr90._recalloc
@ stub _recalloc_crt
@ stub _resetstkoflw
@ cdecl _rmdir(str) msvcrt._rmdir
diff --git a/dlls/msvcr90/msvcr90.c b/dlls/msvcr90/msvcr90.c
index 9d03767..eaf9d66 100644
--- a/dlls/msvcr90/msvcr90.c
+++ b/dlls/msvcr90/msvcr90.c
@@ -21,6 +21,8 @@
#include <stdarg.h>
#include "stdlib.h"
+#include "errno.h"
+#include "malloc.h"
#include "windef.h"
#include "winbase.h"
#include "wine/debug.h"
@@ -131,3 +133,28 @@ void CDECL __clean_type_info_names_internal(void *p)
{
FIXME("(%p) stub\n", p);
}
+
+/*********************************************************************
+ * _recalloc (MSVCR90.@)
+ */
+void* CDECL _recalloc(void* mem, size_t num, size_t size)
+{
+ size_t old_size;
+ void *ret;
+
+ if(!mem)
+ return calloc(num, size);
+
+ size = num*size;
+ old_size = _msize(mem);
+
+ ret = realloc(mem, size);
+ if(!ret) {
+ *_errno() = ENOMEM;
+ return NULL;
+ }
+
+ if(size>old_size)
+ memset((BYTE*)mem+old_size, 0, size-old_size);
+ return ret;
+}
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index d8f8e04..3bfd1b8 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -823,7 +823,7 @@
@ stub _pwctype
@ cdecl _read(long ptr long) msvcrt._read
@ stub _realloc_crt
-@ stub _recalloc
+@ cdecl _recalloc(ptr long long)
@ stub _recalloc_crt
@ stub _resetstkoflw
@ cdecl _rmdir(str) msvcrt._rmdir
More information about the wine-cvs
mailing list