Piotr Caban : msvcp90: Added empty locale constructor and destructor implementation.

Alexandre Julliard julliard at winehq.org
Wed Nov 23 13:40:08 CST 2011


Module: wine
Branch: master
Commit: a3c395b7918f3d5f6110ec40a7d9edb30d29e174
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a3c395b7918f3d5f6110ec40a7d9edb30d29e174

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Nov 23 16:14:11 2011 +0100

msvcp90: Added empty locale constructor and destructor implementation.

---

 dlls/msvcp90/locale.c  |   17 +++++++++++++----
 dlls/msvcp90/msvcp90.h |    2 +-
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c
index ad6c44b..f05cc79 100644
--- a/dlls/msvcp90/locale.c
+++ b/dlls/msvcp90/locale.c
@@ -491,8 +491,16 @@ locale* __thiscall locale_ctor_uninitialized(locale *this, int uninitialized)
 DEFINE_THISCALL_WRAPPER(locale_ctor, 4)
 locale* __thiscall locale_ctor(locale *this)
 {
-    FIXME("(%p) stub\n", this);
-    return NULL;
+    TRACE("(%p)\n", this);
+    this->ptr = MSVCRT_operator_new(sizeof(locale__Locimp));
+    if(!this->ptr) {
+        ERR("Out of memory\n");
+        throw_exception(EXCEPTION_BAD_ALLOC, NULL);
+        return NULL;
+    }
+
+    locale__Locimp_ctor(this->ptr);
+    return this;
 }
 
 /* ??1locale at std@@QAE at XZ */
@@ -500,13 +508,14 @@ locale* __thiscall locale_ctor(locale *this)
 DEFINE_THISCALL_WRAPPER(locale_dtor, 4)
 void __thiscall locale_dtor(locale *this)
 {
-    FIXME("(%p) stub\n", this);
+    TRACE("(%p)\n", this);
+    locale__Locimp_dtor(this->ptr);
 }
 
 DEFINE_THISCALL_WRAPPER(MSVCP_locale_vector_dtor, 8)
 locale* __thiscall MSVCP_locale_vector_dtor(locale *this, unsigned int flags)
 {
-    TRACE("(%p %x) stub\n", this, flags);
+    TRACE("(%p %x)\n", this, flags);
     if(flags & 2) {
         /* we have an array, with the number of elements stored before the first object */
         int i, *ptr = (int *)this-1;
diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h
index b9000a4..cb2a9b8 100644
--- a/dlls/msvcp90/msvcp90.h
+++ b/dlls/msvcp90/msvcp90.h
@@ -195,7 +195,7 @@ MSVCP_size_t __stdcall MSVCP_allocator_wchar_max_size(void*);
 /* class locale */
 typedef struct
 {
-    struct locale__Locimp *ptr;
+    struct _locale__Locimp *ptr;
 } locale;
 
 locale* __thiscall locale_ctor(locale*);




More information about the wine-cvs mailing list