Piotr Caban : msvcp90: Added basic_streambuf<char>::{Lock, Unlock} implementation.
Module: wine Branch: master Commit: 4fd4a8aeb35d5ce73aa21f4699557ab899049fb4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4fd4a8aeb35d5ce73aa21f4699... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Wed Aug 24 14:39:12 2011 +0200 msvcp90: Added basic_streambuf<char>::{Lock, Unlock} implementation. --- dlls/msvcp90/ios.c | 9 +++++++-- dlls/msvcp90/msvcp90.h | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index eef506a..84dfb17 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -923,6 +923,7 @@ basic_streambuf_char* __thiscall basic_streambuf_char_ctor_uninitialized(basic_s { TRACE("(%p %d)\n", this, uninitialized); this->vtable = &MSVCP_basic_streambuf_char_vtable; + mutex_ctor(&this->lock); return this; } @@ -934,6 +935,7 @@ basic_streambuf_char* __thiscall basic_streambuf_char_ctor(basic_streambuf_char TRACE("(%p)\n", this); this->vtable = &MSVCP_basic_streambuf_char_vtable; + mutex_ctor(&this->lock); this->loc = MSVCRT_operator_new(sizeof(locale)); locale_ctor(this->loc); basic_streambuf_char__Init_empty(this); @@ -948,6 +950,7 @@ void __thiscall basic_streambuf_char_dtor(basic_streambuf_char *this) { TRACE("(%p)\n", this); + mutex_dtor(&this->lock); locale_dtor(this->loc); MSVCRT_operator_delete(this->loc); } @@ -1051,7 +1054,8 @@ void __thiscall basic_streambuf_char__Init_empty(basic_streambuf_char *this) DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock, 4) void __thiscall basic_streambuf_char__Lock(basic_streambuf_char *this) { - FIXME("(%p) stub\n", this); + TRACE("(%p)\n", this); + mutex_lock(&this->lock); } /* ?_Pnavail@?$basic_streambuf(a)DU?$char_traits(a)D@std@@@std@@IBEHXZ */ @@ -1087,7 +1091,8 @@ streamsize __thiscall basic_streambuf_char__Sgetn_s(basic_streambuf_char *this, DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock, 4) void __thiscall basic_streambuf_char__Unlock(basic_streambuf_char *this) { - FIXME("(%p) stub\n", this); + TRACE("(%p)\n", this); + mutex_unlock(&this->lock); } /* ?_Xsgetn_s@?$basic_streambuf(a)DU?$char_traits(a)D@std@@@std@@MAEHPADIH(a)Z */ diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h index d80c361..7c331b5 100644 --- a/dlls/msvcp90/msvcp90.h +++ b/dlls/msvcp90/msvcp90.h @@ -218,3 +218,8 @@ void __thiscall _Lockit_dtor(_Lockit*); typedef struct { void *mutex; } mutex; + +mutex* __thiscall mutex_ctor(mutex*); +void __thiscall mutex_dtor(mutex*); +void __thiscall mutex_lock(mutex*); +void __thiscall mutex_unlock(mutex*);
participants (1)
-
Alexandre Julliard