msvcp100: Improve is_current_task_group_canceling function stub.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Piotr Caban 2017-03-24 12:45:10 +01:00 committed by Alexandre Julliard
parent 159d3642e1
commit 7ec727b31c
7 changed files with 21 additions and 11 deletions

View file

@ -2068,7 +2068,7 @@
@ extern ?is_bounded@_Num_base@std@@2_NB std_Num_base_is_bounded
@ extern ?is_bounded@_Num_float_base@std@@2_NB std_Num_float_base_is_bounded
@ extern ?is_bounded@_Num_int_base@std@@2_NB std_Num_int_base_is_bounded
@ cdecl ?is_current_task_group_canceling@Concurrency@@YA_NXZ(ptr) is_current_task_group_canceling
@ cdecl ?is_current_task_group_canceling@Concurrency@@YA_NXZ() is_current_task_group_canceling
@ extern ?is_exact@_Num_base@std@@2_NB std_Num_base_is_exact
@ extern ?is_exact@_Num_float_base@std@@2_NB std_Num_float_base_is_exact
@ extern ?is_exact@_Num_int_base@std@@2_NB std_Num_int_base_is_exact

View file

@ -2832,7 +2832,7 @@
@ cdecl -arch=arm ?is@?$ctype@_W@std@@QBA_NF_W@Z(ptr long long) ctype_wchar_is_ch
@ thiscall -arch=i386 ?is@?$ctype@_W@std@@QBE_NF_W@Z(ptr long long) ctype_wchar_is_ch
@ cdecl -arch=win64 ?is@?$ctype@_W@std@@QEBA_NF_W@Z(ptr long long) ctype_wchar_is_ch
@ cdecl ?is_current_task_group_canceling@Concurrency@@YA_NXZ(ptr) is_current_task_group_canceling
@ cdecl ?is_current_task_group_canceling@Concurrency@@YA_NXZ() is_current_task_group_canceling
@ stub ?is_task_cancellation_requested@Concurrency@@YA_NXZ
@ cdecl -arch=arm ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAAXXZ(ptr) basic_istream_char_isfx
@ thiscall -arch=i386 ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ(ptr) basic_istream_char_isfx

View file

@ -2774,7 +2774,7 @@
@ cdecl -arch=arm ?is@?$ctype@_W@std@@QBA_NF_W@Z(ptr long long) ctype_wchar_is_ch
@ thiscall -arch=i386 ?is@?$ctype@_W@std@@QBE_NF_W@Z(ptr long long) ctype_wchar_is_ch
@ cdecl -arch=win64 ?is@?$ctype@_W@std@@QEBA_NF_W@Z(ptr long long) ctype_wchar_is_ch
@ cdecl ?is_current_task_group_canceling@Concurrency@@YA_NXZ(ptr) is_current_task_group_canceling
@ cdecl ?is_current_task_group_canceling@Concurrency@@YA_NXZ() is_current_task_group_canceling
@ cdecl -arch=arm ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAAXXZ(ptr) basic_istream_char_isfx
@ thiscall -arch=i386 ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ(ptr) basic_istream_char_isfx
@ cdecl -arch=win64 ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ(ptr) basic_istream_char_isfx

View file

@ -2774,7 +2774,7 @@
@ cdecl -arch=arm ?is@?$ctype@_W@std@@QBA_NF_W@Z(ptr long long) msvcp120.?is@?$ctype@_W@std@@QBA_NF_W@Z
@ thiscall -arch=i386 ?is@?$ctype@_W@std@@QBE_NF_W@Z(ptr long long) msvcp120.?is@?$ctype@_W@std@@QBE_NF_W@Z
@ cdecl -arch=win64 ?is@?$ctype@_W@std@@QEBA_NF_W@Z(ptr long long) msvcp120.?is@?$ctype@_W@std@@QEBA_NF_W@Z
@ cdecl ?is_current_task_group_canceling@Concurrency@@YA_NXZ(ptr) msvcp120.?is_current_task_group_canceling@Concurrency@@YA_NXZ
@ cdecl ?is_current_task_group_canceling@Concurrency@@YA_NXZ() msvcp120.?is_current_task_group_canceling@Concurrency@@YA_NXZ
@ cdecl -arch=arm ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAAXXZ(ptr) msvcp120.?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAAXXZ
@ thiscall -arch=i386 ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ(ptr) msvcp120.?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ
@ cdecl -arch=win64 ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ(ptr) msvcp120.?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ

View file

@ -1400,15 +1400,13 @@ void __cdecl _Unlock_shared_ptr_spin_lock(void)
}
#endif
#if _MSVCP_VER >= 100
/* ?is_current_task_group_canceling@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 {

View file

@ -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
{

View file

@ -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@Context@Concurrency@@SA_NXZ");
#endif
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)