From a0a9b8fe74eb058ea36e5076d0c9d0ceb21293d6 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Thu, 23 Mar 2017 11:41:11 +0100 Subject: [PATCH] msvcrt: Add ExternalContextBase::GetId implementation. Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- dlls/msvcrt/scheduler.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dlls/msvcrt/scheduler.c b/dlls/msvcrt/scheduler.c index 257637e4fc6..470d141e42f 100644 --- a/dlls/msvcrt/scheduler.c +++ b/dlls/msvcrt/scheduler.c @@ -33,6 +33,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(msvcrt); +static int context_id = -1; + #ifdef __i386__ #define DEFINE_VTBL_WRAPPER(off) \ @@ -64,6 +66,7 @@ typedef struct { typedef struct { Context context; + unsigned int id; } ExternalContextBase; extern const vtable_ptr MSVCRT_ExternalContextBase_vtable; static void ExternalContextBase_ctor(ExternalContextBase*); @@ -168,8 +171,8 @@ unsigned int __cdecl Context_VirtualProcessorId(void) DEFINE_THISCALL_WRAPPER(ExternalContextBase_GetId, 4) unsigned int __thiscall ExternalContextBase_GetId(const ExternalContextBase *this) { - FIXME("(%p)->() stub\n", this); - return -1; + TRACE("(%p)->()\n", this); + return this->id; } DEFINE_THISCALL_WRAPPER(ExternalContextBase_GetVirtualProcessorId, 4) @@ -225,7 +228,9 @@ Context* __thiscall ExternalContextBase_vector_dtor(ExternalContextBase *this, u static void ExternalContextBase_ctor(ExternalContextBase *this) { + TRACE("(%p)->()\n", this); this->context.vtable = &MSVCRT_ExternalContextBase_vtable; + this->id = InterlockedIncrement(&context_id); } extern const vtable_ptr MSVCRT_type_info_vtable;