Piotr Caban : msvcp90: Add _Random_device implementation.
Module: wine Branch: master Commit: 3b96069e587c6f56d62c584d5df21c25d759aea4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3b96069e587c6f56d62c584d5d... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Tue Mar 25 15:26:13 2014 +0100 msvcp90: Add _Random_device implementation. --- dlls/msvcp100/msvcp100.spec | 2 +- dlls/msvcp110/msvcp110.spec | 2 +- dlls/msvcp90/misc.c | 14 ++++++++++++++ dlls/msvcp90/msvcp90.spec | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/dlls/msvcp100/msvcp100.spec b/dlls/msvcp100/msvcp100.spec index e949b98..1dcbded 100644 --- a/dlls/msvcp100/msvcp100.spec +++ b/dlls/msvcp100/msvcp100.spec @@ -1214,7 +1214,7 @@ @ cdecl -arch=win64 ?_Putgrouped@?$num_put(a)_WV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@2(a)V32@PEBD_K_W(a)Z(ptr ptr ptr str long long) num_put_wchar__Putgrouped @ stub -arch=win32 ?_Raise_handler(a)std@@3P6AXABVexception(a)stdext@@@ZA @ stub -arch=win64 ?_Raise_handler(a)std@@3P6AXAEBVexception(a)stdext@@@ZEA -@ stub ?_Random_device(a)tr1@std@@YAIXZ +@ cdecl ?_Random_device(a)tr1@std@@YAIXZ() _Random_device @ cdecl -arch=win32 ?_Rep@?$num_put(a)DV?$ostreambuf_iterator(a)DU?$char_traits(a)D@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator(a)DU?$char_traits(a)D@std@@@2(a)V32@DI(a)Z(ptr ptr long ptr long long) num_put_char__Rep @ cdecl -arch=win64 ?_Rep@?$num_put(a)DV?$ostreambuf_iterator(a)DU?$char_traits(a)D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)DU?$char_traits(a)D@std@@@2(a)V32@D_K(a)Z(ptr ptr ptr long long) num_put_char__Rep @ cdecl -arch=win32 ?_Rep@?$num_put(a)GV?$ostreambuf_iterator(a)GU?$char_traits(a)G@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator(a)GU?$char_traits(a)G@std@@@2(a)V32@GI(a)Z(ptr ptr long ptr long long) num_put_wchar__Rep diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec index 3bdff79..0527936 100644 --- a/dlls/msvcp110/msvcp110.spec +++ b/dlls/msvcp110/msvcp110.spec @@ -1710,7 +1710,7 @@ @ cdecl -arch=win64 ?_Put@?$num_put(a)_WV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@2(a)V32@PEB_W_K(a)Z(ptr ptr ptr wstr long) num_put_wchar__Put @ stub -arch=win32 ?_Raise_handler(a)std@@3P6AXABVexception(a)stdext@@@ZA @ stub -arch=win64 ?_Raise_handler(a)std@@3P6AXAEBVexception(a)stdext@@@ZEA -@ stub ?_Random_device(a)std@@YAIXZ +@ cdecl ?_Random_device(a)std@@YAIXZ() _Random_device @ stub -arch=win32 ?_Read_dir(a)sys@tr2(a)std@@YAPADPADPAXAAW4file_type(a)123@@Z @ stub -arch=win64 ?_Read_dir(a)sys@tr2(a)std@@YAPEADPEADPEAXAEAW4file_type(a)123@@Z @ stub -arch=win32 ?_Read_dir(a)sys@tr2(a)std@@YAPA_WPA_WPAXAAW4file_type(a)123@@Z diff --git a/dlls/msvcp90/misc.c b/dlls/msvcp90/misc.c index f2ae32f..1c3bd2f 100644 --- a/dlls/msvcp90/misc.c +++ b/dlls/msvcp90/misc.c @@ -360,3 +360,17 @@ LONGLONG __cdecl _Xtime_get_ticks(void) GetSystemTimeAsFileTime(&ft); return ((LONGLONG)ft.dwHighDateTime<<32) + ft.dwLowDateTime - TICKS_1601_TO_1970; } + +#if _MSVCP_VER >= 90 +unsigned int __cdecl _Random_device(void) +{ + unsigned int ret; + + TRACE("\n"); + + /* TODO: throw correct exception in case of failure */ + if(rand_s(&ret)) + throw_exception(EXCEPTION, "random number generator failed\n"); + return ret; +} +#endif diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec index a5116fa..fe02bbb 100644 --- a/dlls/msvcp90/msvcp90.spec +++ b/dlls/msvcp90/msvcp90.spec @@ -3062,7 +3062,7 @@ @ stub -arch=win64 ?_Putmfld@?$money_put(a)_WV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@2(a)V32@_NAEAVios_base(a)2@_W1V?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@2@@Z @ stub -arch=win32 ?_Raise_handler(a)std@@3P6AXABVexception(a)stdext@@@ZA @ stub -arch=win64 ?_Raise_handler(a)std@@3P6AXAEBVexception(a)stdext@@@ZEA -@ stub ?_Random_device(a)tr1@std@@YAIXZ +@ cdecl ?_Random_device(a)tr1@std@@YAIXZ() _Random_device @ thiscall -arch=win32 ?_Read_s@?$basic_istream(a)DU?$char_traits(a)D@std@@@std@@QAEAAV12(a)PADIH@Z(ptr ptr long long) basic_istream_char__Read_s @ cdecl -arch=win64 ?_Read_s@?$basic_istream(a)DU?$char_traits(a)D@std@@@std@@QEAAAEAV12(a)PEAD_K_J@Z(ptr ptr long long) basic_istream_char__Read_s @ thiscall -arch=win32 ?_Read_s@?$basic_istream(a)GU?$char_traits(a)G@std@@@std@@QAEAAV12(a)PAGIH@Z(ptr ptr long long) basic_istream_wchar__Read_s
participants (1)
-
Alexandre Julliard