Daniel Lehman : msvcp120: Implement concurrent_vector:: _Internal_throw_exception.
Alexandre Julliard
julliard at winehq.org
Fri Oct 20 15:09:36 CDT 2017
Module: wine
Branch: master
Commit: 237788a56e54c1b9e58d7aa269d2b201e061380b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=237788a56e54c1b9e58d7aa269d2b201e061380b
Author: Daniel Lehman <dlehman at esri.com>
Date: Fri Oct 20 13:02:23 2017 +0200
msvcp120: Implement concurrent_vector::_Internal_throw_exception.
Signed-off-by: Daniel Lehman <dlehman at esri.com>
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/concrt140/concrt140.spec | 4 ++--
dlls/msvcp100/msvcp100.spec | 4 ++--
dlls/msvcp110/msvcp110.spec | 6 +++---
dlls/msvcp120/msvcp120.spec | 6 +++---
dlls/msvcp120_app/msvcp120_app.spec | 6 +++---
dlls/msvcp90/misc.c | 20 ++++++++++++++++++++
6 files changed, 33 insertions(+), 13 deletions(-)
diff --git a/dlls/concrt140/concrt140.spec b/dlls/concrt140/concrt140.spec
index eb0c9fb..0f96d7e 100644
--- a/dlls/concrt140/concrt140.spec
+++ b/dlls/concrt140/concrt140.spec
@@ -385,8 +385,8 @@
@ stub -arch=win64 ?_Internal_swap at _Concurrent_vector_base_v4@details at Concurrency@@IEAAXAEAV123@@Z
@ stub -arch=i386 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IBEXXZ
@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IEBAXXZ
-@ stub -arch=i386 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z
-@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z
+@ thiscall -arch=i386 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z(ptr long) msvcp120.?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z
+@ cdecl -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z(ptr long) msvcp120.?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z
@ stub -arch=i386 ?_IsCanceling at _StructuredTaskCollection@details at Concurrency@@QAE_NXZ
@ stub -arch=win64 ?_IsCanceling at _StructuredTaskCollection@details at Concurrency@@QEAA_NXZ
@ stub -arch=i386 ?_IsCanceling at _TaskCollection@details at Concurrency@@QAE_NXZ
diff --git a/dlls/msvcp100/msvcp100.spec b/dlls/msvcp100/msvcp100.spec
index 8bffda2..d557a4a 100644
--- a/dlls/msvcp100/msvcp100.spec
+++ b/dlls/msvcp100/msvcp100.spec
@@ -1061,8 +1061,8 @@
@ stub -arch=win64 ?_Internal_swap at _Concurrent_vector_base_v4@details at Concurrency@@IEAAXAEAV123@@Z
@ stub -arch=win32 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IBEXXZ
@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IEBAXXZ
-@ stub -arch=win32 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z
-@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z
+@ thiscall -arch=win32 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z(ptr long) _vector_base_v4__Internal_throw_exception
+@ cdecl -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z(ptr long) _vector_base_v4__Internal_throw_exception
@ cdecl -arch=win32 ?_Ios_base_dtor at ios_base@std@@CAXPAV12@@Z(ptr) ios_base_Ios_base_dtor
@ cdecl -arch=win64 ?_Ios_base_dtor at ios_base@std@@CAXPEAV12@@Z(ptr) ios_base_Ios_base_dtor
@ thiscall -arch=win32 ?_Ipfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAE_N_N at Z(ptr long) basic_istream_char__Ipfx
diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec
index c912202..aa8adaf 100644
--- a/dlls/msvcp110/msvcp110.spec
+++ b/dlls/msvcp110/msvcp110.spec
@@ -1539,9 +1539,9 @@
@ stub -arch=arm ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IBAXXZ
@ stub -arch=i386 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IBEXXZ
@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IEBAXXZ
-@ stub -arch=arm ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBAXI at Z
-@ stub -arch=i386 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z
-@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z
+@ cdecl -arch=arm ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBAXI at Z(ptr long) _vector_base_v4__Internal_throw_exception
+@ thiscall -arch=i386 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z(ptr long) _vector_base_v4__Internal_throw_exception
+@ cdecl -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z(ptr long) _vector_base_v4__Internal_throw_exception
@ cdecl -arch=win32 ?_Ios_base_dtor at ios_base@std@@CAXPAV12@@Z(ptr) ios_base_Ios_base_dtor
@ cdecl -arch=win64 ?_Ios_base_dtor at ios_base@std@@CAXPEAV12@@Z(ptr) ios_base_Ios_base_dtor
@ cdecl -arch=arm ?_Ipfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAA_N_N at Z(ptr long) basic_istream_char__Ipfx
diff --git a/dlls/msvcp120/msvcp120.spec b/dlls/msvcp120/msvcp120.spec
index 61d7c7d..e26e3cb 100644
--- a/dlls/msvcp120/msvcp120.spec
+++ b/dlls/msvcp120/msvcp120.spec
@@ -1500,9 +1500,9 @@
@ stub -arch=arm ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IBAXXZ
@ stub -arch=i386 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IBEXXZ
@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IEBAXXZ
-@ stub -arch=arm ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBAXI at Z
-@ stub -arch=i386 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z
-@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z
+@ cdecl -arch=arm ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBAXI at Z(ptr long) _vector_base_v4__Internal_throw_exception
+@ thiscall -arch=i386 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z(ptr long) _vector_base_v4__Internal_throw_exception
+@ cdecl -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z(ptr long) _vector_base_v4__Internal_throw_exception
@ cdecl -arch=win32 ?_Ios_base_dtor at ios_base@std@@CAXPAV12@@Z(ptr) ios_base_Ios_base_dtor
@ cdecl -arch=win64 ?_Ios_base_dtor at ios_base@std@@CAXPEAV12@@Z(ptr) ios_base_Ios_base_dtor
@ cdecl -arch=arm ?_Ipfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAA_N_N at Z(ptr long) basic_istream_char__Ipfx
diff --git a/dlls/msvcp120_app/msvcp120_app.spec b/dlls/msvcp120_app/msvcp120_app.spec
index e63b3f7..03df113 100644
--- a/dlls/msvcp120_app/msvcp120_app.spec
+++ b/dlls/msvcp120_app/msvcp120_app.spec
@@ -1500,9 +1500,9 @@
@ stub -arch=arm ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IBAXXZ
@ stub -arch=i386 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IBEXXZ
@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IEBAXXZ
-@ stub -arch=arm ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBAXI at Z
-@ stub -arch=i386 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z
-@ stub -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z
+@ cdecl -arch=arm ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBAXI at Z(ptr long) msvcp120.?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBAXI at Z
+@ thiscall -arch=i386 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z(ptr long) msvcp120.?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z
+@ cdecl -arch=win64 ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z(ptr long) msvcp120.?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z
@ cdecl -arch=win32 ?_Ios_base_dtor at ios_base@std@@CAXPAV12@@Z(ptr) msvcp120.?_Ios_base_dtor at ios_base@std@@CAXPAV12@@Z
@ cdecl -arch=win64 ?_Ios_base_dtor at ios_base@std@@CAXPEAV12@@Z(ptr) msvcp120.?_Ios_base_dtor at ios_base@std@@CAXPEAV12@@Z
@ cdecl -arch=arm ?_Ipfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAA_N_N at Z(ptr long) msvcp120.?_Ipfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAA_N_N at Z
diff --git a/dlls/msvcp90/misc.c b/dlls/msvcp90/misc.c
index 9f26a48..901930b 100644
--- a/dlls/msvcp90/misc.c
+++ b/dlls/msvcp90/misc.c
@@ -1702,4 +1702,24 @@ MSVCP_size_t __cdecl _vector_base_v4__Segment_index_of(MSVCP_size_t x)
return log2i(x);
}
+
+/* ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IBEXI at Z */
+/* ?_Internal_throw_exception at _Concurrent_vector_base_v4@details at Concurrency@@IEBAX_K at Z */
+DEFINE_THISCALL_WRAPPER(_vector_base_v4__Internal_throw_exception, 8)
+void __thiscall _vector_base_v4__Internal_throw_exception(void/*_vector_base_v4*/ *this, MSVCP_size_t idx)
+{
+ static const struct {
+ exception_type type;
+ const char *msg;
+ } exceptions[] = {
+ { EXCEPTION_OUT_OF_RANGE, "Index out of range" },
+ { EXCEPTION_OUT_OF_RANGE, "Index out of segments table range" },
+ { EXCEPTION_RANGE_ERROR, "Index is inside segment which failed to be allocated" },
+ };
+
+ TRACE("(%p %lu)\n", this, idx);
+
+ if(idx < sizeof(exceptions)/sizeof(exceptions[0]))
+ throw_exception(exceptions[idx].type, exceptions[idx].msg);
+}
#endif
More information about the wine-cvs
mailing list