Piotr Caban : msvcp90: Don't use throw_exception helper for rethrow.

Alexandre Julliard julliard at winehq.org
Thu Aug 26 15:22:31 CDT 2021


Module: wine
Branch: master
Commit: eebc5c505e4eecb31d7829715b4bb1df393a9ea9
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=eebc5c505e4eecb31d7829715b4bb1df393a9ea9

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Aug 26 14:21:03 2021 +0200

msvcp90: Don't use throw_exception helper for rethrow.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msvcp60/ios.c       | 2 +-
 dlls/msvcp60/msvcp.h     | 2 ++
 dlls/msvcp90/cxx.h       | 1 -
 dlls/msvcp90/details.c   | 2 +-
 dlls/msvcp90/exception.c | 3 ---
 dlls/msvcp90/ios.c       | 2 +-
 dlls/msvcp90/msvcp90.h   | 2 ++
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/msvcp60/ios.c b/dlls/msvcp60/ios.c
index 764ec72e264..8657fd9b3e5 100644
--- a/dlls/msvcp60/ios.c
+++ b/dlls/msvcp60/ios.c
@@ -4847,7 +4847,7 @@ void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, bool
         return;
 
     if(reraise)
-        throw_exception(EXCEPTION_RERAISE, NULL);
+        _CxxThrowException(NULL, NULL);
     else if(this->state & this->except & IOSTATE_eofbit)
         throw_exception(EXCEPTION_FAILURE, "eofbit is set");
     else if(this->state & this->except & IOSTATE_failbit)
diff --git a/dlls/msvcp60/msvcp.h b/dlls/msvcp60/msvcp.h
index fa42ba1b6be..d60a588b3eb 100644
--- a/dlls/msvcp60/msvcp.h
+++ b/dlls/msvcp60/msvcp.h
@@ -483,3 +483,5 @@ typedef struct {
     double real;
     double imag;
 } complex_double;
+
+void WINAPI DECLSPEC_NORETURN _CxxThrowException(exception*,const cxx_exception_type*);
diff --git a/dlls/msvcp90/cxx.h b/dlls/msvcp90/cxx.h
index 012354ac9c8..50d78dbddb6 100644
--- a/dlls/msvcp90/cxx.h
+++ b/dlls/msvcp90/cxx.h
@@ -316,7 +316,6 @@ typedef struct __exception
 
 /* Internal: throws selected exception */
 typedef enum __exception_type {
-    EXCEPTION_RERAISE,
     EXCEPTION,
     EXCEPTION_BAD_ALLOC,
     EXCEPTION_BAD_CAST,
diff --git a/dlls/msvcp90/details.c b/dlls/msvcp90/details.c
index 4d3abf46141..b265bf1be71 100644
--- a/dlls/msvcp90/details.c
+++ b/dlls/msvcp90/details.c
@@ -526,7 +526,7 @@ static void concurrent_vector_alloc_segment(_Concurrent_vector_base_v4 *this,
         __EXCEPT_ALL
         {
             this->segment[seg] = NULL;
-            throw_exception(EXCEPTION_RERAISE, NULL);
+            _CxxThrowException(NULL, NULL);
         }
         __ENDTRY
         if(!this->segment[seg])
diff --git a/dlls/msvcp90/exception.c b/dlls/msvcp90/exception.c
index 7b87c44c1af..4eac9e92bc8 100644
--- a/dlls/msvcp90/exception.c
+++ b/dlls/msvcp90/exception.c
@@ -31,7 +31,6 @@ CREATE_TYPE_INFO_VTABLE
 #define CLASS_IS_SIMPLE_TYPE          1
 #define CLASS_HAS_VIRTUAL_BASE_CLASS  4
 
-void WINAPI _CxxThrowException(exception*,const cxx_exception_type*);
 int* __cdecl __processing_throw(void);
 
 #if _MSVCP_VER >= 70 || defined(_MSVCIRT)
@@ -1044,8 +1043,6 @@ void throw_exception(exception_type et, const char *str)
     exception_name name = EXCEPTION_NAME(str);
 
     switch(et) {
-    case EXCEPTION_RERAISE:
-        _CxxThrowException(NULL, NULL);
     case EXCEPTION: {
         exception e;
         MSVCP_exception_ctor(&e, name);
diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c
index ea0c8783491..8275635096a 100644
--- a/dlls/msvcp90/ios.c
+++ b/dlls/msvcp90/ios.c
@@ -5264,7 +5264,7 @@ void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, bool
         return;
 
     if(reraise)
-        throw_exception(EXCEPTION_RERAISE, NULL);
+        _CxxThrowException(NULL, NULL);
     else if(this->state & this->except & IOSTATE_eofbit)
         throw_exception(EXCEPTION_FAILURE, "eofbit is set");
     else if(this->state & this->except & IOSTATE_failbit)
diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h
index a525c8adc1e..94098d84135 100644
--- a/dlls/msvcp90/msvcp90.h
+++ b/dlls/msvcp90/msvcp90.h
@@ -662,3 +662,5 @@ static inline int mbstowcs_wrapper( size_t *ret, wchar_t *wcs, size_t size, cons
 #define mbstowcs_s( ret, wcs, size, mbs, count ) mbstowcs_wrapper( ret, wcs, size, mbs, count )
 #define hypotf( x, y ) ((float)hypot( (double)(x), (double)(y) ))
 #endif
+
+void WINAPI _CxxThrowException(exception*,const cxx_exception_type*);




More information about the wine-cvs mailing list