Fix an edge-case in Dummy backend's random generator
authorRobin Gareus <robin@gareus.org>
Mon, 22 Oct 2018 13:46:39 +0000 (15:46 +0200)
committerRobin Gareus <robin@gareus.org>
Mon, 22 Oct 2018 13:46:59 +0000 (15:46 +0200)
INT_MAX == 2^31 is not a valid random seed for this LCG.

libs/backends/dummy/dummy_audiobackend.cc

index 8f0daf6aec5e1e831436a516c4023af1a295b5ee..e32eed8852bf530d20a4688617417d2281c8addd 100644 (file)
@@ -1664,13 +1664,13 @@ void DummyPort::setup_random_number_generator ()
 #ifdef PLATFORM_WINDOWS
        LARGE_INTEGER Count;
        if (QueryPerformanceCounter (&Count)) {
-               _rseed = Count.QuadPart % UINT_MAX;
+               _rseed = Count.QuadPart;
        } else
 #endif
        {
-       _rseed = g_get_monotonic_time() % UINT_MAX;
+       _rseed = g_get_monotonic_time();
        }
-       _rseed = (_rseed + (uint64_t)this) % UINT_MAX;
+       _rseed = (_rseed + (uint64_t)this) % INT_MAX;
        if (_rseed == 0) _rseed = 1;
 }