Piotr Caban : msvcp100: Improve is_current_task_group_canceling function stub.
Alexandre Julliard
julliard at winehq.org
Fri Mar 24 16:24:24 CDT 2017
Module: wine
Branch: master
Commit: 7ec727b31c98802a7e9ab1cfbae9e3539a279c2e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7ec727b31c98802a7e9ab1cfbae9e3539a279c2e
Author: Piotr Caban <piotr at codeweavers.com>
Date: Fri Mar 24 12:45:10 2017 +0100
msvcp100: Improve is_current_task_group_canceling function stub.
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msvcp100/msvcp100.spec | 2 +-
dlls/msvcp110/msvcp110.spec | 2 +-
dlls/msvcp120/msvcp120.spec | 2 +-
dlls/msvcp120_app/msvcp120_app.spec | 2 +-
dlls/msvcp90/misc.c | 10 ++++------
dlls/msvcp90/msvcp90.h | 4 ++++
dlls/msvcp90/msvcp_main.c | 10 +++++++++-
7 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/dlls/msvcp100/msvcp100.spec b/dlls/msvcp100/msvcp100.spec
index 6841678..7042598 100644
--- a/dlls/msvcp100/msvcp100.spec
+++ b/dlls/msvcp100/msvcp100.spec
@@ -2068,7 +2068,7 @@
@ extern ?is_bounded at _Num_base@std@@2_NB std_Num_base_is_bounded
@ extern ?is_bounded at _Num_float_base@std@@2_NB std_Num_float_base_is_bounded
@ extern ?is_bounded at _Num_int_base@std@@2_NB std_Num_int_base_is_bounded
-@ cdecl ?is_current_task_group_canceling at Concurrency@@YA_NXZ(ptr) is_current_task_group_canceling
+@ cdecl ?is_current_task_group_canceling at Concurrency@@YA_NXZ() is_current_task_group_canceling
@ extern ?is_exact at _Num_base@std@@2_NB std_Num_base_is_exact
@ extern ?is_exact at _Num_float_base@std@@2_NB std_Num_float_base_is_exact
@ extern ?is_exact at _Num_int_base@std@@2_NB std_Num_int_base_is_exact
diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec
index 602cb2b..52524c5 100644
--- a/dlls/msvcp110/msvcp110.spec
+++ b/dlls/msvcp110/msvcp110.spec
@@ -2832,7 +2832,7 @@
@ cdecl -arch=arm ?is@?$ctype at _W@std@@QBA_NF_W at Z(ptr long long) ctype_wchar_is_ch
@ thiscall -arch=i386 ?is@?$ctype at _W@std@@QBE_NF_W at Z(ptr long long) ctype_wchar_is_ch
@ cdecl -arch=win64 ?is@?$ctype at _W@std@@QEBA_NF_W at Z(ptr long long) ctype_wchar_is_ch
-@ cdecl ?is_current_task_group_canceling at Concurrency@@YA_NXZ(ptr) is_current_task_group_canceling
+@ cdecl ?is_current_task_group_canceling at Concurrency@@YA_NXZ() is_current_task_group_canceling
@ stub ?is_task_cancellation_requested at Concurrency@@YA_NXZ
@ cdecl -arch=arm ?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAAXXZ(ptr) basic_istream_char_isfx
@ thiscall -arch=i386 ?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAEXXZ(ptr) basic_istream_char_isfx
diff --git a/dlls/msvcp120/msvcp120.spec b/dlls/msvcp120/msvcp120.spec
index a839575..173728a 100644
--- a/dlls/msvcp120/msvcp120.spec
+++ b/dlls/msvcp120/msvcp120.spec
@@ -2774,7 +2774,7 @@
@ cdecl -arch=arm ?is@?$ctype at _W@std@@QBA_NF_W at Z(ptr long long) ctype_wchar_is_ch
@ thiscall -arch=i386 ?is@?$ctype at _W@std@@QBE_NF_W at Z(ptr long long) ctype_wchar_is_ch
@ cdecl -arch=win64 ?is@?$ctype at _W@std@@QEBA_NF_W at Z(ptr long long) ctype_wchar_is_ch
-@ cdecl ?is_current_task_group_canceling at Concurrency@@YA_NXZ(ptr) is_current_task_group_canceling
+@ cdecl ?is_current_task_group_canceling at Concurrency@@YA_NXZ() is_current_task_group_canceling
@ cdecl -arch=arm ?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAAXXZ(ptr) basic_istream_char_isfx
@ thiscall -arch=i386 ?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAEXXZ(ptr) basic_istream_char_isfx
@ cdecl -arch=win64 ?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAXXZ(ptr) basic_istream_char_isfx
diff --git a/dlls/msvcp120_app/msvcp120_app.spec b/dlls/msvcp120_app/msvcp120_app.spec
index 6bc6e5a..8a03b41 100644
--- a/dlls/msvcp120_app/msvcp120_app.spec
+++ b/dlls/msvcp120_app/msvcp120_app.spec
@@ -2774,7 +2774,7 @@
@ cdecl -arch=arm ?is@?$ctype at _W@std@@QBA_NF_W at Z(ptr long long) msvcp120.?is@?$ctype at _W@std@@QBA_NF_W at Z
@ thiscall -arch=i386 ?is@?$ctype at _W@std@@QBE_NF_W at Z(ptr long long) msvcp120.?is@?$ctype at _W@std@@QBE_NF_W at Z
@ cdecl -arch=win64 ?is@?$ctype at _W@std@@QEBA_NF_W at Z(ptr long long) msvcp120.?is@?$ctype at _W@std@@QEBA_NF_W at Z
-@ cdecl ?is_current_task_group_canceling at Concurrency@@YA_NXZ(ptr) msvcp120.?is_current_task_group_canceling at Concurrency@@YA_NXZ
+@ cdecl ?is_current_task_group_canceling at Concurrency@@YA_NXZ() msvcp120.?is_current_task_group_canceling at Concurrency@@YA_NXZ
@ cdecl -arch=arm ?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAAXXZ(ptr) msvcp120.?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAAXXZ
@ thiscall -arch=i386 ?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAEXXZ(ptr) msvcp120.?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QAEXXZ
@ cdecl -arch=win64 ?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAXXZ(ptr) msvcp120.?isfx@?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAXXZ
diff --git a/dlls/msvcp90/misc.c b/dlls/msvcp90/misc.c
index 81a6f81..fa5ac1d 100644
--- a/dlls/msvcp90/misc.c
+++ b/dlls/msvcp90/misc.c
@@ -1400,15 +1400,13 @@ void __cdecl _Unlock_shared_ptr_spin_lock(void)
}
#endif
+#if _MSVCP_VER >= 100
/* ?is_current_task_group_canceling at Concurrency@@YA_NXZ */
-MSVCP_bool __cdecl is_current_task_group_canceling(void *this)
+MSVCP_bool __cdecl is_current_task_group_canceling(void)
{
- static int once;
-
- if (!once++)
- FIXME("(%p) stub\n", this);
- return FALSE;
+ return Context_IsCurrentTaskCollectionCanceling();
}
+#endif
#if _MSVCP_VER >= 140
typedef struct {
diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h
index 86b787b..d751186 100644
--- a/dlls/msvcp90/msvcp90.h
+++ b/dlls/msvcp90/msvcp90.h
@@ -72,6 +72,10 @@ extern void (__thiscall *critical_section_unlock)(critical_section*);
extern MSVCP_bool (__thiscall *critical_section_trylock)(critical_section*);
#endif
+#if _MSVCP_VER >= 100
+extern MSVCP_bool (__cdecl *Context_IsCurrentTaskCollectionCanceling)(void);
+#endif
+
/* basic_string<char, char_traits<char>, allocator<char>> */
typedef struct
{
diff --git a/dlls/msvcp90/msvcp_main.c b/dlls/msvcp90/msvcp_main.c
index 377ae01..3898c9d 100644
--- a/dlls/msvcp90/msvcp_main.c
+++ b/dlls/msvcp90/msvcp_main.c
@@ -68,6 +68,10 @@ void (__thiscall *critical_section_unlock)(critical_section*);
MSVCP_bool (__thiscall *critical_section_trylock)(critical_section*);
#endif
+#if _MSVCP_VER >= 100
+MSVCP_bool (__cdecl *Context_IsCurrentTaskCollectionCanceling)(void);
+#endif
+
#define VERSION_STRING(ver) #ver
#if _MSVCP_VER >= 140
#define MSVCRT_NAME(ver) "ucrtbase.dll"
@@ -133,7 +137,7 @@ int __cdecl sprintf(char *buf, const char *fmt, ...)
static void init_cxx_funcs(void)
{
HMODULE hmod = GetModuleHandleA( MSVCRT_NAME(_MSVCP_VER) );
-#if _MSVCP_VER >= 110
+#if _MSVCP_VER >= 100
HMODULE hcon = hmod;
#endif
@@ -187,6 +191,10 @@ static void init_cxx_funcs(void)
#endif
}
#endif /* _MSVCP_VER >= 110 */
+
+#if _MSVCP_VER >= 100
+ Context_IsCurrentTaskCollectionCanceling = (void*)GetProcAddress(hcon, "?IsCurrentTaskCollectionCanceling at Context@Concurrency@@SA_NXZ");
+#endif
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
More information about the wine-cvs
mailing list