Module: wine Branch: master Commit: 1d1ea6ebf466c653eaaf72bb3aa35d3daf63a988 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1d1ea6ebf466c653eaaf72bb3a... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Tue Jan 14 13:55:15 2014 +0100 msvcp110: Add _New_Locimp implementation. --- dlls/msvcp110/msvcp110.spec | 8 ++++---- dlls/msvcp90/locale.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec index a12b20e..b9d520d 100644 --- a/dlls/msvcp110/msvcp110.spec +++ b/dlls/msvcp110/msvcp110.spec @@ -1637,10 +1637,10 @@ @ stub -arch=win64 ?_Mtx_new(a)threads@stdext@@YAXAEAPEAX(a)Z @ stub -arch=win32 ?_Mtx_unlock(a)threads@stdext@@YAXPAX(a)Z @ stub -arch=win64 ?_Mtx_unlock(a)threads@stdext@@YAXPEAX(a)Z -@ stub -arch=win32 ?_New_Locimp(a)_Locimp@locale(a)std@@CAPAV123(a)ABV123@@Z -@ stub -arch=win64 ?_New_Locimp(a)_Locimp@locale(a)std@@CAPEAV123(a)AEBV123@@Z -@ stub -arch=win32 ?_New_Locimp(a)_Locimp@locale(a)std@@CAPAV123(a)_N@Z -@ stub -arch=win64 ?_New_Locimp(a)_Locimp@locale(a)std@@CAPEAV123(a)_N@Z +@ cdecl -arch=win32 ?_New_Locimp(a)_Locimp@locale(a)std@@CAPAV123(a)ABV123@@Z(ptr) locale__Locimp__New_Locimp +@ cdecl -arch=win64 ?_New_Locimp(a)_Locimp@locale(a)std@@CAPEAV123(a)AEBV123@@Z(ptr) locale__Locimp__New_Locimp +@ cdecl -arch=win32 ?_New_Locimp(a)_Locimp@locale(a)std@@CAPAV123(a)_N@Z(long) locale__Locimp__New_Locimp_transparent +@ cdecl -arch=win64 ?_New_Locimp(a)_Locimp@locale(a)std@@CAPEAV123(a)_N@Z(long) locale__Locimp__New_Locimp_transparent @ stub -arch=win32 ?_Open_dir(a)sys@tr2(a)std@@YAPAXPADPBDAAHAAW4file_type(a)123@@Z @ stub -arch=win64 ?_Open_dir(a)sys@tr2(a)std@@YAPEAXPEADPEBDAEAHAEAW4file_type(a)123@@Z @ stub -arch=win32 ?_Open_dir(a)sys@tr2(a)std@@YAPAXPA_WPB_WAAHAAW4file_type(a)123@@Z diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c index b35eaf5..1b0c891 100644 --- a/dlls/msvcp90/locale.c +++ b/dlls/msvcp90/locale.c @@ -9357,6 +9357,40 @@ locale__Locimp* __thiscall locale__Locimp_vector_dtor(locale__Locimp *this, unsi return this; } +/* ?_New_Locimp(a)_Locimp@locale(a)std@@CAPAV123(a)ABV123@@Z */ +/* ?_New_Locimp(a)_Locimp@locale(a)std@@CAPEAV123(a)AEBV123@@Z */ +locale__Locimp* __cdecl locale__Locimp__New_Locimp(const locale__Locimp *copy) +{ + locale__Locimp *ret; + + TRACE("(%p)\n", copy); + + ret = MSVCRT_operator_new(sizeof(locale__Locimp)); + if(!ret) { + ERR("Out of memory\n"); + throw_exception(EXCEPTION_BAD_ALLOC, NULL); + return NULL; + } + return locale__Locimp_copy_ctor(ret, copy); +} + +/* ?_New_Locimp(a)_Locimp@locale(a)std@@CAPAV123(a)_N@Z */ +/* ?_New_Locimp(a)_Locimp@locale(a)std@@CAPEAV123(a)_N@Z */ +locale__Locimp* __cdecl locale__Locimp__New_Locimp_transparent(MSVCP_bool transparent) +{ + locale__Locimp *ret; + + TRACE("(%x)\n", transparent); + + ret = MSVCRT_operator_new(sizeof(locale__Locimp)); + if(!ret) { + ERR("Out of memory\n"); + throw_exception(EXCEPTION_BAD_ALLOC, NULL); + return NULL; + } + return locale__Locimp_ctor_transparent(ret, transparent); +} + /* ?_Locimp_Addfac(a)_Locimp@locale(a)std@@CAXPAV123(a)PAVfacet@23(a)I@Z */ /* ?_Locimp_Addfac(a)_Locimp@locale(a)std@@CAXPEAV123(a)PEAVfacet@23(a)_K@Z */ void __cdecl locale__Locimp__Locimp_Addfac(locale__Locimp *locimp, locale_facet *facet, MSVCP_size_t id)