msvcr100: Implement invalid_multiple_scheduling exception.

Signed-off-by: Torge Matthies <tmatthies@codeweavers.com>
This commit is contained in:
Torge Matthies 2022-07-15 21:52:01 +02:00 committed by Alexandre Julliard
parent 35a2206d07
commit 013ba6aaa1
6 changed files with 66 additions and 28 deletions

View file

@ -144,12 +144,12 @@
@ stub -arch=arm ??0invalid_link_target@Concurrency@@QAA@XZ
@ stub -arch=i386 ??0invalid_link_target@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_link_target@Concurrency@@QEAA@XZ
@ stub -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z
@ stub -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z
@ stub -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@XZ
@ stub -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ
@ cdecl -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ thiscall -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ cdecl -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@XZ(ptr) invalid_multiple_scheduling_ctor
@ thiscall -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ(ptr) invalid_multiple_scheduling_ctor
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ(ptr) invalid_multiple_scheduling_ctor
@ stub -arch=arm ??0invalid_oversubscribe_operation@Concurrency@@QAA@PBD@Z
@ stub -arch=i386 ??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_oversubscribe_operation@Concurrency@@QEAA@PEBD@Z

View file

@ -94,10 +94,10 @@
@ stub -arch=win64 ??0invalid_link_target@Concurrency@@QEAA@PEBD@Z
@ stub -arch=win32 ??0invalid_link_target@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_link_target@Concurrency@@QEAA@XZ
@ stub -arch=win32 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z
@ stub -arch=win32 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ
@ thiscall -arch=win32 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ thiscall -arch=win32 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ(ptr) invalid_multiple_scheduling_ctor
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ(ptr) invalid_multiple_scheduling_ctor
@ stub -arch=win32 ??0invalid_operation@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_operation@Concurrency@@QEAA@PEBD@Z
@ stub -arch=win32 ??0invalid_operation@Concurrency@@QAE@XZ

View file

@ -167,12 +167,12 @@
@ stub -arch=arm ??0invalid_link_target@Concurrency@@QAA@XZ
@ stub -arch=i386 ??0invalid_link_target@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_link_target@Concurrency@@QEAA@XZ
@ stub -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z
@ stub -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z
@ stub -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@XZ
@ stub -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ
@ cdecl -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ thiscall -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ cdecl -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@XZ(ptr) invalid_multiple_scheduling_ctor
@ thiscall -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ(ptr) invalid_multiple_scheduling_ctor
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ(ptr) invalid_multiple_scheduling_ctor
@ stub -arch=arm ??0invalid_operation@Concurrency@@QAA@PBD@Z
@ stub -arch=i386 ??0invalid_operation@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_operation@Concurrency@@QEAA@PEBD@Z

View file

@ -164,12 +164,12 @@
@ stub -arch=arm ??0invalid_link_target@Concurrency@@QAA@XZ
@ stub -arch=i386 ??0invalid_link_target@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_link_target@Concurrency@@QEAA@XZ
@ stub -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z
@ stub -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z
@ stub -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@XZ
@ stub -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ
@ cdecl -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ thiscall -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z(ptr ptr) invalid_multiple_scheduling_ctor_str
@ cdecl -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@XZ(ptr) invalid_multiple_scheduling_ctor
@ thiscall -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ(ptr) invalid_multiple_scheduling_ctor
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ(ptr) invalid_multiple_scheduling_ctor
@ stub -arch=arm ??0invalid_operation@Concurrency@@QAA@PBD@Z
@ stub -arch=i386 ??0invalid_operation@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_operation@Concurrency@@QEAA@PEBD@Z

View file

@ -162,12 +162,12 @@
@ stub -arch=arm ??0invalid_link_target@Concurrency@@QAA@XZ
@ stub -arch=i386 ??0invalid_link_target@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_link_target@Concurrency@@QEAA@XZ
@ stub -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z
@ stub -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z
@ stub -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@XZ
@ stub -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ
@ stub -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ
@ cdecl -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z(ptr ptr) msvcr120.??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z
@ thiscall -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z(ptr ptr) msvcr120.??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z(ptr ptr) msvcr120.??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z
@ cdecl -arch=arm ??0invalid_multiple_scheduling@Concurrency@@QAA@XZ(ptr) msvcr120.??0invalid_multiple_scheduling@Concurrency@@QAA@XZ
@ thiscall -arch=i386 ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ(ptr) msvcr120.??0invalid_multiple_scheduling@Concurrency@@QAE@XZ
@ cdecl -arch=win64 ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ(ptr) msvcr120.??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ
@ stub -arch=arm ??0invalid_operation@Concurrency@@QAA@PBD@Z
@ stub -arch=i386 ??0invalid_operation@Concurrency@@QAE@PBD@Z
@ stub -arch=win64 ??0invalid_operation@Concurrency@@QEAA@PEBD@Z

View file

@ -329,6 +329,9 @@ extern const vtable_ptr improper_scheduler_attach_vtable;
typedef exception improper_scheduler_detach;
extern const vtable_ptr improper_scheduler_detach_vtable;
typedef exception invalid_multiple_scheduling;
extern const vtable_ptr invalid_multiple_scheduling_vtable;
typedef exception invalid_scheduler_policy_key;
extern const vtable_ptr invalid_scheduler_policy_key_vtable;
@ -451,6 +454,35 @@ improper_scheduler_detach * __thiscall improper_scheduler_detach_copy_ctor(
return __exception_copy_ctor(_this, rhs, &improper_scheduler_detach_vtable);
}
/* ??0invalid_multiple_scheduling@Concurrency@@QAA@PBD@Z */
/* ??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z */
/* ??0invalid_multiple_scheduling@Concurrency@@QEAA@PEBD@Z */
DEFINE_THISCALL_WRAPPER(invalid_multiple_scheduling_ctor_str, 8)
invalid_multiple_scheduling* __thiscall invalid_multiple_scheduling_ctor_str(
invalid_multiple_scheduling *this, const char *str)
{
TRACE("(%p %s)\n", this, str);
return __exception_ctor(this, str, &invalid_multiple_scheduling_vtable);
}
/* ??0invalid_multiple_scheduling@Concurrency@@QAA@XZ */
/* ??0invalid_multiple_scheduling@Concurrency@@QAE@XZ */
/* ??0invalid_multiple_scheduling@Concurrency@@QEAA@XZ */
DEFINE_THISCALL_WRAPPER(invalid_multiple_scheduling_ctor, 4)
invalid_multiple_scheduling* __thiscall invalid_multiple_scheduling_ctor(
invalid_multiple_scheduling *this)
{
return invalid_multiple_scheduling_ctor_str(this, NULL);
}
DEFINE_THISCALL_WRAPPER(invalid_multiple_scheduling_copy_ctor,8)
invalid_multiple_scheduling * __thiscall invalid_multiple_scheduling_copy_ctor(
invalid_multiple_scheduling * _this, const invalid_multiple_scheduling * rhs)
{
TRACE("(%p %p)\n", _this, rhs);
return __exception_copy_ctor(_this, rhs, &invalid_multiple_scheduling_vtable);
}
/* ??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z */
/* ??0invalid_scheduler_policy_key@Concurrency@@QEAA@PEBD@Z */
DEFINE_THISCALL_WRAPPER(invalid_scheduler_policy_key_ctor_str, 8)
@ -583,6 +615,8 @@ DEFINE_RTTI_DATA1(improper_scheduler_attach, 0, &cexception_rtti_base_descriptor
".?AVimproper_scheduler_attach@Concurrency@@")
DEFINE_RTTI_DATA1(improper_scheduler_detach, 0, &cexception_rtti_base_descriptor,
".?AVimproper_scheduler_detach@Concurrency@@")
DEFINE_RTTI_DATA1(invalid_multiple_scheduling, 0, &cexception_rtti_base_descriptor,
".?AVinvalid_multiple_scheduling@Concurrency@@")
DEFINE_RTTI_DATA1(invalid_scheduler_policy_key, 0, &cexception_rtti_base_descriptor,
".?AVinvalid_scheduler_policy_key@Concurrency@@")
DEFINE_RTTI_DATA1(invalid_scheduler_policy_thread_specification, 0, &cexception_rtti_base_descriptor,
@ -610,6 +644,9 @@ __ASM_BLOCK_BEGIN(concurrency_exception_vtables)
__ASM_VTABLE(improper_scheduler_detach,
VTABLE_ADD_FUNC(cexception_vector_dtor)
VTABLE_ADD_FUNC(cexception_what));
__ASM_VTABLE(invalid_multiple_scheduling,
VTABLE_ADD_FUNC(cexception_vector_dtor)
VTABLE_ADD_FUNC(cexception_what));
__ASM_VTABLE(invalid_scheduler_policy_key,
VTABLE_ADD_FUNC(cexception_vector_dtor)
VTABLE_ADD_FUNC(cexception_what));
@ -3042,6 +3079,7 @@ void msvcrt_init_concurrency(void *base)
init_improper_lock_rtti(base);
init_improper_scheduler_attach_rtti(base);
init_improper_scheduler_detach_rtti(base);
init_invalid_multiple_scheduling_rtti(base);
init_invalid_scheduler_policy_key_rtti(base);
init_invalid_scheduler_policy_thread_specification_rtti(base);
init_invalid_scheduler_policy_value_rtti(base);