diff --git a/src/base/random/cl_random_from.cc b/src/base/random/cl_random_from.cc index 0470a4e..2ea2481 100644 --- a/src/base/random/cl_random_from.cc +++ b/src/base/random/cl_random_from.cc @@ -1,4 +1,7 @@ // random_state constructor. +#if defined(_WIN32) +#include // for GetCurrentProcessId() +#endif // General includes. #include "cl_sysdep.h" @@ -9,10 +12,6 @@ #include "cln/random.h" // Implementation. -#if defined(_WIN32) -#include // for GetCurrentProcessId() -#endif - #include "cl_base_config.h" #include "cl_low.h" #include // declares rand() @@ -31,12 +30,14 @@ #else extern "C" int gettimeofday (struct timeval * tp, GETTIMEOFDAY_TZP_T tzp); #endif +namespace cln { inline uint32 get_seed (void) { var struct timeval tv; gettimeofday(&tv,0); - return cln::highlow32(tv.tv_sec,tv.tv_usec); // 16+16 zuf�llige Bits + return ::cln::highlow32(tv.tv_sec,tv.tv_usec); // 16+16 zuf�llige Bits } +} // namespace cln #elif defined(HAVE_TIMES_CLOCK) @@ -67,7 +68,7 @@ inline uint32 get_seed (void) { struct timeb timebuf; ftime(&timebuf); - return cln::highlow32(timebuf.time, (long)(timebuf.millitm)*1000); + return highlow32(timebuf.time, (long)(timebuf.millitm)*1000); } } // namespace cln @@ -84,14 +85,14 @@ random_state::random_state () var uint32 seed_hi; var uint32 seed_lo; #if defined(unix) || defined(__unix) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(_AIX) || defined(sinix) || (defined(__MACH__) && defined(__APPLE__)) || (defined(__CYGWIN__) && defined(__GNUC__)) || defined(__BEOS__) - seed_lo = ::get_seed(); + seed_lo = get_seed(); seed_hi = (rand() // zuf�llige 31 Bit (bei UNIX_BSD) bzw. 16 Bit (bei UNIX_SYSV) << 8) ^ (uintL)(getpid()); // ca. 8 Bit von der Process ID #elif defined(__OpenBSD__) seed_lo = arc4random(); seed_hi = arc4random(); #elif defined(_WIN32) - seed_lo = ::get_seed(); + seed_lo = get_seed(); seed_hi = (rand() << 8) ^ (uintL)(GetCurrentProcessId()); #elif defined(__atarist) seed_lo = highlow32(GEMDOS_GetDate(),GEMDOS_GetTime()); // 16+16 zuf�llige Bits