Piotr Caban : msvcrt: Fix _get/ _set_invalid_parameter_handler implementation.
Alexandre Julliard
julliard at winehq.org
Thu Apr 1 11:25:06 CDT 2010
Module: wine
Branch: master
Commit: abb746002b8b0f60fe7e5b865aedd97a770a0086
URL: http://source.winehq.org/git/wine.git/?a=commit;h=abb746002b8b0f60fe7e5b865aedd97a770a0086
Author: Piotr Caban <piotr at codeweavers.com>
Date: Thu Apr 1 12:40:22 2010 +0200
msvcrt: Fix _get/_set_invalid_parameter_handler implementation.
---
dlls/msvcr80/msvcr80.spec | 6 +++---
dlls/msvcr90/msvcr90.c | 25 -------------------------
dlls/msvcr90/msvcr90.spec | 6 +++---
dlls/msvcrt/errno.c | 19 +++++++++++++++++++
dlls/msvcrt/msvcrt.spec | 6 +++++-
5 files changed, 30 insertions(+), 32 deletions(-)
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 541cf68..b48656e 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -470,7 +470,7 @@
@ stub _get_errno
@ stub _get_fmode
@ stub _get_heap_handle
-@ cdecl _get_invalid_parameter_handler() msvcr90._get_invalid_parameter_handler
+@ cdecl _get_invalid_parameter_handler() msvcrt._get_invalid_parameter_handler
@ cdecl _get_osfhandle(long) msvcrt._get_osfhandle
@ stub _get_osplatform
@ stub _get_osver
@@ -533,7 +533,7 @@
@ stub _inp
@ stub _inpd
@ stub _inpw
-@ extern _invalid_parameter msvcrt._invalid_parameter
+@ stub _invalid_parameter
@ stub _invalid_parameter_noinfo
@ stub _invoke_watson
@ extern _iob msvcrt._iob
@@ -873,7 +873,7 @@
@ stub _set_errno
@ cdecl _set_error_mode(long) msvcrt._set_error_mode
@ stub _set_fmode
-@ cdecl _set_invalid_parameter_handler(ptr) msvcr90._set_invalid_parameter_handler
+@ cdecl _set_invalid_parameter_handler(ptr) msvcrt._set_invalid_parameter_handler
@ stub _set_malloc_crt_max_wait
@ stub _set_output_format
@ stub _set_printf_count_output
diff --git a/dlls/msvcr90/msvcr90.c b/dlls/msvcr90/msvcr90.c
index a1994d8..c3515ee 100644
--- a/dlls/msvcr90/msvcr90.c
+++ b/dlls/msvcr90/msvcr90.c
@@ -27,7 +27,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(msvcr90);
typedef int (CDECL *_INITTERM_E_FN)(void);
-typedef void (__cdecl *_invalid_parameter_handler)(const wchar_t*, const wchar_t*, const wchar_t*, unsigned, unsigned*);
/*********************************************************************
* DllMain (MSVCR90.@)
@@ -78,30 +77,6 @@ void * CDECL _encoded_null(void)
}
/*********************************************************************
- * _get_invalid_parameter_handler (MSVCR90.@)
- */
-_invalid_parameter_handler CDECL _get_invalid_parameter_handler(void)
-{
- TRACE("\n");
- return *((_invalid_parameter_handler*)GetProcAddress(GetModuleHandleA("msvcrt.dll"), "_invalid_parameter"));
-}
-
-/*********************************************************************
- * _set_invalid_parameter_handler (MSVCR90.@)
- */
-_invalid_parameter_handler CDECL _set_invalid_parameter_handler(_invalid_parameter_handler handler)
-{
- _invalid_parameter_handler *ptr = (_invalid_parameter_handler*)GetProcAddress(
- GetModuleHandleA("msvcrt.dll"), "_invalid_parameter");
- _invalid_parameter_handler old = *ptr;
-
- TRACE("(%p)\n", handler);
-
- *ptr = handler;
- return old;
-}
-
-/*********************************************************************
* _initterm_e (MSVCR90.@)
*
* call an array of application initialization functions and report the return value
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 296466a..fd6c8df 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -462,7 +462,7 @@
@ stub _get_errno
@ stub _get_fmode
@ stub _get_heap_handle
-@ cdecl _get_invalid_parameter_handler()
+@ cdecl _get_invalid_parameter_handler() msvcrt._get_invalid_parameter_handler
@ cdecl _get_osfhandle(long) msvcrt._get_osfhandle
@ stub _get_output_format
@ stub _get_pgmptr
@@ -521,7 +521,7 @@
@ stub _inp
@ stub _inpd
@ stub _inpw
-@ extern _invalid_parameter msvcrt._invalid_parameter
+@ stub _invalid_parameter
@ stub _invalid_parameter_noinfo
@ stub _invoke_watson
@ extern _iob msvcrt._iob
@@ -859,7 +859,7 @@
@ stub _set_errno
@ cdecl _set_error_mode(long) msvcrt._set_error_mode
@ stub _set_fmode
-@ cdecl _set_invalid_parameter_handler(ptr)
+@ cdecl _set_invalid_parameter_handler(ptr) msvcrt._set_invalid_parameter_handler
@ stub _set_malloc_crt_max_wait
@ stub _set_output_format
@ stub _set_printf_count_output
diff --git a/dlls/msvcrt/errno.c b/dlls/msvcrt/errno.c
index c4c8618..80dcab6 100644
--- a/dlls/msvcrt/errno.c
+++ b/dlls/msvcrt/errno.c
@@ -286,3 +286,22 @@ void CDECL _seterrormode(int mode)
{
SetErrorMode( mode );
}
+
+/* _get_invalid_parameter_handler - not exported in native msvcrt, added in msvcr80 */
+MSVCRT_invalid_parameter_handler CDECL _get_invalid_parameter_handler(void)
+{
+ TRACE("\n");
+ return MSVCRT_invalid_parameter;
+}
+
+/* _set_invalid_parameter_handler - not exproted in native msvcrt, added in msvcr80 */
+MSVCRT_invalid_parameter_handler CDECL _set_invalid_parameter_handler(
+ MSVCRT_invalid_parameter_handler handler)
+{
+ MSVCRT_invalid_parameter_handler old = MSVCRT_invalid_parameter;
+
+ TRACE("(%p)\n", handler);
+
+ MSVCRT_invalid_parameter = handler;
+ return old;
+}
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 2b6be16..762563e 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -479,7 +479,7 @@
@ stub _inp #(long) -i386
@ stub _inpd #(long) -i386
@ stub _inpw #(long) -i386
-@ extern _invalid_parameter MSVCRT_invalid_parameter
+@ stub _invalid_parameter
@ extern _iob MSVCRT__iob
# stub _isalnum_l
# stub _isalpha_l
@@ -1409,3 +1409,7 @@
# stub wprintf_s
@ varargs wscanf(wstr) MSVCRT_wscanf
# stub wscanf_s
+
+# Functions not exported in native dll:
+@ cdecl _get_invalid_parameter_handler()
+@ cdecl _set_invalid_parameter_handler(ptr)
More information about the wine-cvs
mailing list