Piotr Caban : msvcp100: Added exception throwing helpers.
Alexandre Julliard
julliard at winehq.org
Thu Nov 29 14:15:44 CST 2012
Module: wine
Branch: master
Commit: d55eabbb31f54a50be48aeebea4c7f85114fa4ab
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d55eabbb31f54a50be48aeebea4c7f85114fa4ab
Author: Piotr Caban <piotr at codeweavers.com>
Date: Thu Nov 29 09:22:10 2012 +0000
msvcp100: Added exception throwing helpers.
---
dlls/msvcp100/exception.c | 39 +++++++++++++++++++++++++++++++++++++++
dlls/msvcp100/msvcp100.spec | 18 +++++++++---------
2 files changed, 48 insertions(+), 9 deletions(-)
diff --git a/dlls/msvcp100/exception.c b/dlls/msvcp100/exception.c
index 1f4ffd2..2e9f1aa 100644
--- a/dlls/msvcp100/exception.c
+++ b/dlls/msvcp100/exception.c
@@ -454,6 +454,45 @@ void __cdecl _Nomemory(void)
throw_exception(EXCEPTION_BAD_ALLOC, NULL);
}
+/* ?_Xmem at tr1@std@@YAXXZ */
+void __cdecl _Xmem(void)
+{
+ TRACE("()\n");
+ throw_exception(EXCEPTION_BAD_ALLOC, NULL);
+}
+
+/* ?_Xinvalid_argument at std@@YAXPBD at Z */
+/* ?_Xinvalid_argument at std@@YAXPEBD at Z */
+void __cdecl _Xinvalid_argument(const char *str)
+{
+ TRACE("(%s)\n", debugstr_a(str));
+ throw_exception(EXCEPTION_INVALID_ARGUMENT, str);
+}
+
+/* ?_Xlength_error at std@@YAXPBD at Z */
+/* ?_Xlength_error at std@@YAXPEBD at Z */
+void __cdecl _Xlength_error(const char *str)
+{
+ TRACE("(%s)\n", debugstr_a(str));
+ throw_exception(EXCEPTION_LENGTH_ERROR, str);
+}
+
+/* ?_Xout_of_range at std@@YAXPBD at Z */
+/* ?_Xout_of_range at std@@YAXPEBD at Z */
+void __cdecl _Xout_of_range(const char *str)
+{
+ TRACE("(%s)\n", debugstr_a(str));
+ throw_exception(EXCEPTION_OUT_OF_RANGE, str);
+}
+
+/* ?_Xruntime_error at std@@YAXPBD at Z */
+/* ?_Xruntime_error at std@@YAXPEBD at Z */
+void __cdecl _Xruntime_error(const char *str)
+{
+ TRACE("(%s)\n", debugstr_a(str));
+ throw_exception(EXCEPTION_RUNTIME_ERROR, str);
+}
+
#ifndef __GNUC__
void __asm_dummy_vtables(void) {
#endif
diff --git a/dlls/msvcp100/msvcp100.spec b/dlls/msvcp100/msvcp100.spec
index e4ac191..6a67b3b 100644
--- a/dlls/msvcp100/msvcp100.spec
+++ b/dlls/msvcp100/msvcp100.spec
@@ -1232,17 +1232,17 @@
@ stub ?_XLgamma at tr1@std@@YAOO at Z
@ stub ?_Xbad at tr1@std@@YAXW4error_type at regex_constants@12@@Z
@ stub ?_Xfunc at tr1@std@@YAXXZ
-@ stub -arch=win32 ?_Xinvalid_argument at std@@YAXPBD at Z
-@ stub -arch=win64 ?_Xinvalid_argument at std@@YAXPEBD at Z
-@ stub -arch=win32 ?_Xlength_error at std@@YAXPBD at Z
-@ stub -arch=win64 ?_Xlength_error at std@@YAXPEBD at Z
-@ stub ?_Xmem at tr1@std@@YAXXZ
-@ stub -arch=win32 ?_Xout_of_range at std@@YAXPBD at Z
-@ stub -arch=win64 ?_Xout_of_range at std@@YAXPEBD at Z
+@ cdecl -arch=win32 ?_Xinvalid_argument at std@@YAXPBD at Z(str) _Xinvalid_argument
+@ cdecl -arch=win64 ?_Xinvalid_argument at std@@YAXPEBD at Z(str) _Xinvalid_argument
+@ cdecl -arch=win32 ?_Xlength_error at std@@YAXPBD at Z(str) _Xlength_error
+@ cdecl -arch=win64 ?_Xlength_error at std@@YAXPEBD at Z(str) _Xlength_error
+@ cdecl ?_Xmem at tr1@std@@YAXXZ() _Xmem
+@ cdecl -arch=win32 ?_Xout_of_range at std@@YAXPBD at Z(str) _Xout_of_range
+@ cdecl -arch=win64 ?_Xout_of_range at std@@YAXPEBD at Z(str) _Xout_of_range
@ stub -arch=win32 ?_Xoverflow_error at std@@YAXPBD at Z
@ stub -arch=win64 ?_Xoverflow_error at std@@YAXPEBD at Z
-@ stub -arch=win32 ?_Xruntime_error at std@@YAXPBD at Z
-@ stub -arch=win64 ?_Xruntime_error at std@@YAXPEBD at Z
+@ cdecl -arch=win32 ?_Xruntime_error at std@@YAXPBD at Z(str) _Xruntime_error
+@ cdecl -arch=win64 ?_Xruntime_error at std@@YAXPEBD at Z(str) _Xruntime_error
@ thiscall -arch=win32 ?always_noconv at codecvt_base@std@@QBE_NXZ(ptr) codecvt_base_always_noconv
@ cdecl -arch=win64 ?always_noconv at codecvt_base@std@@QEBA_NXZ(ptr) codecvt_base_always_noconv
@ thiscall -arch=win32 ?bad at ios_base@std@@QBE_NXZ(ptr) ios_base_bad
More information about the wine-cvs
mailing list