[Libreoffice-commits] core.git: 2 commits - comphelper/source sc/source
Tor Lillqvist
tml at collabora.com
Tue Oct 7 00:17:35 PDT 2014
comphelper/source/misc/random.cxx | 3 +++
sc/source/core/opencl/opencl_device.cxx | 2 ++
2 files changed, 5 insertions(+)
New commits:
commit 1b226b02471f2fab5e5e6f79b6593636274d2320
Author: Tor Lillqvist <tml at collabora.com>
Date: Tue Oct 7 10:13:05 2014 +0300
Don't call comphelper::rng::uniform_real_distribution(a,b) with a==b
Change-Id: I95a3ac8da83e02001de13af8d31a04fe0d654dc0
diff --git a/sc/source/core/opencl/opencl_device.cxx b/sc/source/core/opencl/opencl_device.cxx
index 6b99758..917fd24 100644
--- a/sc/source/core/opencl/opencl_device.cxx
+++ b/sc/source/core/opencl/opencl_device.cxx
@@ -171,6 +171,8 @@ double timerCurrent(timer* mytimer)
/* Random number generator */
double random(double min, double max)
{
+ if (min == max)
+ return min;
return comphelper::rng::uniform_real_distribution(min, max);
}
commit 4bb67e666b2ca36a5caa5c3f22d0f1e802db527e
Author: Tor Lillqvist <tml at collabora.com>
Date: Tue Oct 7 10:09:44 2014 +0300
Handle incorrect usage of uniform_real_distribution()
uniform_real_distribution(a,b) should be called with a < b, otherwise
the result is undefined. Currently, when called with both zero, it
gets stuck in a loop. Not sure if a blunt assert() would be the right
thing here, so I just return a if a >= b.
Change-Id: I769688c7192bd02bad24ad597948984db56dd4fc
diff --git a/comphelper/source/misc/random.cxx b/comphelper/source/misc/random.cxx
index c695ed1..9071765 100644
--- a/comphelper/source/misc/random.cxx
+++ b/comphelper/source/misc/random.cxx
@@ -80,6 +80,9 @@ size_t uniform_int_distribution(size_t a, size_t b)
// uniform size_t [a,b) distribution
double uniform_real_distribution(double a, double b)
{
+ // Probably too rude to just assert(a < b), so instead...
+ if (a >= b)
+ return a;
boost::random::uniform_real_distribution<double> dist(a, b);
return dist(theRandomNumberGenerator::get().global_rng);
}
More information about the Libreoffice-commits
mailing list