diff --git a/dlls/concrt140/concrt140.spec b/dlls/concrt140/concrt140.spec index 4d01027783ae055fc7f8c78b2ca222b22852fd2d..13eb662a6f3c59875c934186088b4935fc53f4b9 100644 --- a/dlls/concrt140/concrt140.spec +++ b/dlls/concrt140/concrt140.spec @@ -112,10 +112,10 @@ @ stub -arch=win64 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QEAA@PEBD@Z @ stub -arch=win32 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ @ stub -arch=win64 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QEAA@XZ -@ stub -arch=win32 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z -@ stub -arch=win32 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z(ptr str) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z(ptr str) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ(ptr) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ(ptr) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ @ stub -arch=win32 ??0message_not_found@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0message_not_found@Concurrency@@QEAA@PEBD@Z @ stub -arch=win32 ??0message_not_found@Concurrency@@QAE@XZ diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 6b13f0400da607c9430f649ff15fe4024e29aeb0..f6079c7c1b2073e97ac950ff3d283fa11dedd3cd 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -114,10 +114,10 @@ @ stub -arch=win64 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QEAA@PEBD@Z @ stub -arch=win32 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ @ stub -arch=win64 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QEAA@XZ -@ stub -arch=win32 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z -@ stub -arch=win32 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z(ptr str) invalid_scheduler_policy_value_ctor_str +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z(ptr str) invalid_scheduler_policy_value_ctor_str +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ(ptr) invalid_scheduler_policy_value_ctor +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ(ptr) invalid_scheduler_policy_value_ctor @ stub -arch=win32 ??0message_not_found@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0message_not_found@Concurrency@@QEAA@PEBD@Z @ stub -arch=win32 ??0message_not_found@Concurrency@@QAE@XZ diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index f6cf189592ffb550e77a26e0332631260344b2bd..1b8392a5314dca78e0f40aa02b0404dc92778c40 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -197,12 +197,12 @@ @ stub -arch=arm ??0invalid_scheduler_policy_thread_specification@Concurrency@@QAA@XZ @ stub -arch=i386 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ @ stub -arch=win64 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@PBD@Z -@ stub -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z -@ stub -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@PBD@Z(ptr str) invalid_scheduler_policy_value_ctor_str +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z(ptr str) invalid_scheduler_policy_value_ctor_str +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z(ptr str) invalid_scheduler_policy_value_ctor_str +@ cdecl -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@XZ(ptr) invalid_scheduler_policy_value_ctor +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ(ptr) invalid_scheduler_policy_value_ctor +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ(ptr) invalid_scheduler_policy_value_ctor @ stub -arch=arm ??0message_not_found@Concurrency@@QAA@PBD@Z @ stub -arch=i386 ??0message_not_found@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0message_not_found@Concurrency@@QEAA@PEBD@Z diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 4a1d2ac0cd332e87cd94d654c2c50e73023aa900..266b840b1ab03c9e681e2f431d8e3fa3b9c19e8a 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -194,12 +194,12 @@ @ stub -arch=arm ??0invalid_scheduler_policy_thread_specification@Concurrency@@QAA@XZ @ stub -arch=i386 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ @ stub -arch=win64 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@PBD@Z -@ stub -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z -@ stub -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@PBD@Z(ptr str) invalid_scheduler_policy_value_ctor_str +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z(ptr str) invalid_scheduler_policy_value_ctor_str +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z(ptr str) invalid_scheduler_policy_value_ctor_str +@ cdecl -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@XZ(ptr) invalid_scheduler_policy_value_ctor +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ(ptr) invalid_scheduler_policy_value_ctor +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ(ptr) invalid_scheduler_policy_value_ctor @ stub -arch=arm ??0message_not_found@Concurrency@@QAA@PBD@Z @ stub -arch=i386 ??0message_not_found@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0message_not_found@Concurrency@@QEAA@PEBD@Z diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index c0b399f71f21cbde8432fe3252cea3df411099a8..3536f0ecd6e1e269f6e21f3b51ff68e1444e056b 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -192,12 +192,12 @@ @ stub -arch=arm ??0invalid_scheduler_policy_thread_specification@Concurrency@@QAA@XZ @ stub -arch=i386 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ @ stub -arch=win64 ??0invalid_scheduler_policy_thread_specification@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@PBD@Z -@ stub -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z -@ stub -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@PBD@Z(ptr str) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QAA@PBD@Z +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z(ptr str) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z(ptr str) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z +@ cdecl -arch=arm ??0invalid_scheduler_policy_value@Concurrency@@QAA@XZ(ptr) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QAA@XZ +@ thiscall -arch=i386 ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ(ptr) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ(ptr) msvcr120.??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ @ stub -arch=arm ??0message_not_found@Concurrency@@QAA@PBD@Z @ stub -arch=i386 ??0message_not_found@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0message_not_found@Concurrency@@QEAA@PEBD@Z diff --git a/dlls/msvcrt/cpp.c b/dlls/msvcrt/cpp.c index c7c24ed3dec1befe00faeb426a2d84d9e898aadd..ddb6c620be9dd171397acf03d0b62fb37147f0e2 100644 --- a/dlls/msvcrt/cpp.c +++ b/dlls/msvcrt/cpp.c @@ -817,6 +817,48 @@ void __thiscall MSVCRT_invalid_scheduler_policy_key_dtor( TRACE("(%p)\n", _this); MSVCRT_exception_dtor(_this); } + +typedef exception invalid_scheduler_policy_value; +extern const vtable_ptr MSVCRT_invalid_scheduler_policy_value_vtable; + +/* ??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z */ +/* ??0invalid_scheduler_policy_value@Concurrency@@QEAA@PEBD@Z */ +DEFINE_THISCALL_WRAPPER(invalid_scheduler_policy_value_ctor_str, 8) +invalid_scheduler_policy_value* __thiscall invalid_scheduler_policy_value_ctor_str( + invalid_scheduler_policy_value *this, const char *str) +{ + TRACE("(%p %p)\n", this, str); + MSVCRT_exception_ctor(this, &str); + this->vtable = &MSVCRT_invalid_scheduler_policy_value_vtable; + return this; +} + +/* ??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ */ +/* ??0invalid_scheduler_policy_value@Concurrency@@QEAA@XZ */ +DEFINE_THISCALL_WRAPPER(invalid_scheduler_policy_value_ctor, 4) +invalid_scheduler_policy_value* __thiscall invalid_scheduler_policy_value_ctor( + invalid_scheduler_policy_value *this) +{ + return invalid_scheduler_policy_value_ctor_str(this, NULL); +} + +DEFINE_THISCALL_WRAPPER(MSVCRT_invalid_scheduler_policy_value_copy_ctor,8) +invalid_scheduler_policy_value * __thiscall MSVCRT_invalid_scheduler_policy_value_copy_ctor( + invalid_scheduler_policy_value * _this, const invalid_scheduler_policy_value * rhs) +{ + TRACE("(%p %p)\n", _this, rhs); + MSVCRT_exception_copy_ctor(_this, rhs); + _this->vtable = &MSVCRT_invalid_scheduler_policy_value_vtable; + return _this; +} + +DEFINE_THISCALL_WRAPPER(MSVCRT_invalid_scheduler_policy_value_dtor,4) +void __thiscall MSVCRT_invalid_scheduler_policy_value_dtor( + invalid_scheduler_policy_value * _this) +{ + TRACE("(%p)\n", _this); + MSVCRT_exception_dtor(_this); +} #endif #ifndef __GNUC__ @@ -855,6 +897,9 @@ __ASM_VTABLE(improper_lock, __ASM_VTABLE(invalid_scheduler_policy_key, VTABLE_ADD_FUNC(MSVCRT_exception_vector_dtor) VTABLE_ADD_FUNC(MSVCRT_what_exception)); +__ASM_VTABLE(invalid_scheduler_policy_value, + VTABLE_ADD_FUNC(MSVCRT_exception_vector_dtor) + VTABLE_ADD_FUNC(MSVCRT_what_exception)); #endif #ifndef __GNUC__ @@ -881,6 +926,8 @@ DEFINE_RTTI_DATA1(scheduler_resource_allocation_error, 0, &exception_rtti_base_d DEFINE_RTTI_DATA1(improper_lock, 0, &exception_rtti_base_descriptor, ".?AVimproper_lock@Concurrency@@" ) DEFINE_RTTI_DATA1(invalid_scheduler_policy_key, 0, &exception_rtti_base_descriptor, ".?AVinvalid_scheduler_policy_key@Concurrency@@" ) +DEFINE_RTTI_DATA1(invalid_scheduler_policy_value, 0, &exception_rtti_base_descriptor, + ".?AVinvalid_scheduler_policy_value@Concurrency@@" ) #endif DEFINE_EXCEPTION_TYPE_INFO( exception, 0, NULL, NULL ) @@ -894,6 +941,7 @@ DEFINE_EXCEPTION_TYPE_INFO( bad_alloc, 1, &exception_cxx_type_info, NULL ) DEFINE_EXCEPTION_TYPE_INFO(scheduler_resource_allocation_error, 1, &exception_cxx_type_info, NULL) DEFINE_EXCEPTION_TYPE_INFO(improper_lock, 1, &exception_cxx_type_info, NULL) DEFINE_EXCEPTION_TYPE_INFO(invalid_scheduler_policy_key, 1, &exception_cxx_type_info, NULL) +DEFINE_EXCEPTION_TYPE_INFO(invalid_scheduler_policy_value, 1, &exception_cxx_type_info, NULL) #endif void msvcrt_init_exception(void *base) @@ -912,6 +960,7 @@ void msvcrt_init_exception(void *base) init_scheduler_resource_allocation_error_rtti(base); init_improper_lock_rtti(base); init_invalid_scheduler_policy_key_rtti(base); + init_invalid_scheduler_policy_value_rtti(base); #endif init_exception_cxx(base); @@ -925,6 +974,7 @@ void msvcrt_init_exception(void *base) init_scheduler_resource_allocation_error_cxx(base); init_improper_lock_cxx(base); init_invalid_scheduler_policy_key_cxx(base); + init_invalid_scheduler_policy_value_cxx(base); #endif #endif } @@ -954,6 +1004,11 @@ void throw_exception(exception_type et, HRESULT hr, const char *str) invalid_scheduler_policy_key_ctor_str(&e, str); _CxxThrowException(&e, &invalid_scheduler_policy_key_exception_type); } + case EXCEPTION_INVALID_SCHEDULER_POLICY_VALUE: { + invalid_scheduler_policy_value e; + invalid_scheduler_policy_value_ctor_str(&e, str); + _CxxThrowException(&e, &invalid_scheduler_policy_value_exception_type); + } #endif } } diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 608902213532bd425952c369ee76f6605b170410..73b7dd00582f85c5af3bb245f33398dc2f6c39e6 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -289,6 +289,7 @@ typedef enum { EXCEPTION_SCHEDULER_RESOURCE_ALLOCATION_ERROR, EXCEPTION_IMPROPER_LOCK, EXCEPTION_INVALID_SCHEDULER_POLICY_KEY, + EXCEPTION_INVALID_SCHEDULER_POLICY_VALUE, #endif } exception_type; void throw_exception(exception_type, HRESULT, const char*) DECLSPEC_HIDDEN;