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