Piotr Caban : msvcp90: Add _Random_device implementation.

Alexandre Julliard julliard at winehq.org
Tue Mar 25 14:27:44 CDT 2014


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

Author: Piotr Caban <piotr at 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 at _WV?$ostreambuf_iterator at _WU?$char_traits at _W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator at _WU?$char_traits at _W@std@@@2 at V32@PEBD_K_W at Z(ptr ptr ptr str long long) num_put_wchar__Putgrouped
 @ stub -arch=win32 ?_Raise_handler at std@@3P6AXABVexception at stdext@@@ZA
 @ stub -arch=win64 ?_Raise_handler at std@@3P6AXAEBVexception at stdext@@@ZEA
-@ stub ?_Random_device at tr1@std@@YAIXZ
+@ cdecl ?_Random_device at tr1@std@@YAIXZ() _Random_device
 @ cdecl -arch=win32 ?_Rep@?$num_put at DV?$ostreambuf_iterator at DU?$char_traits at D@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator at DU?$char_traits at D@std@@@2 at V32@DI at Z(ptr ptr long ptr long long) num_put_char__Rep
 @ cdecl -arch=win64 ?_Rep@?$num_put at DV?$ostreambuf_iterator at DU?$char_traits at D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator at DU?$char_traits at D@std@@@2 at V32@D_K at Z(ptr ptr ptr long long) num_put_char__Rep
 @ cdecl -arch=win32 ?_Rep@?$num_put at GV?$ostreambuf_iterator at GU?$char_traits at G@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator at GU?$char_traits at G@std@@@2 at V32@GI at 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 at _WV?$ostreambuf_iterator at _WU?$char_traits at _W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator at _WU?$char_traits at _W@std@@@2 at V32@PEB_W_K at Z(ptr ptr ptr wstr long) num_put_wchar__Put
 @ stub -arch=win32 ?_Raise_handler at std@@3P6AXABVexception at stdext@@@ZA
 @ stub -arch=win64 ?_Raise_handler at std@@3P6AXAEBVexception at stdext@@@ZEA
-@ stub ?_Random_device at std@@YAIXZ
+@ cdecl ?_Random_device at std@@YAIXZ() _Random_device
 @ stub -arch=win32 ?_Read_dir at sys@tr2 at std@@YAPADPADPAXAAW4file_type at 123@@Z
 @ stub -arch=win64 ?_Read_dir at sys@tr2 at std@@YAPEADPEADPEAXAEAW4file_type at 123@@Z
 @ stub -arch=win32 ?_Read_dir at sys@tr2 at std@@YAPA_WPA_WPAXAAW4file_type at 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 at _WV?$ostreambuf_iterator at _WU?$char_traits at _W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator at _WU?$char_traits at _W@std@@@2 at V32@_NAEAVios_base at 2@_W1V?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2@@Z
 @ stub -arch=win32 ?_Raise_handler at std@@3P6AXABVexception at stdext@@@ZA
 @ stub -arch=win64 ?_Raise_handler at std@@3P6AXAEBVexception at stdext@@@ZEA
-@ stub ?_Random_device at tr1@std@@YAIXZ
+@ cdecl ?_Random_device at tr1@std@@YAIXZ() _Random_device
 @ thiscall -arch=win32 ?_Read_s@?$basic_istream at DU?$char_traits at D@std@@@std@@QAEAAV12 at PADIH@Z(ptr ptr long long) basic_istream_char__Read_s
 @ cdecl -arch=win64 ?_Read_s@?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAAEAV12 at PEAD_K_J@Z(ptr ptr long long) basic_istream_char__Read_s
 @ thiscall -arch=win32 ?_Read_s@?$basic_istream at GU?$char_traits at G@std@@@std@@QAEAAV12 at PAGIH@Z(ptr ptr long long) basic_istream_wchar__Read_s




More information about the wine-cvs mailing list