From 77be95cdce7f875a10576ac72624024b04b86a65 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 3 Jun 2011 23:37:23 -0400 Subject: [PATCH] GRand: avoid overflow Otherwise, g_random_double_range (-G_MAXDOUBLE, G_MAXDOUBLE) doesn't work as expected. https://bugzilla.gnome.org/show_bug.cgi?id=502560 --- glib/grand.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/glib/grand.c b/glib/grand.c index b97617bf2..bb1bffe1b 100644 --- a/glib/grand.c +++ b/glib/grand.c @@ -586,7 +586,11 @@ g_rand_double (GRand* rand) gdouble g_rand_double_range (GRand* rand, gdouble begin, gdouble end) { - return g_rand_double (rand) * (end - begin) + begin; + gdouble r; + + r = g_rand_double (rand); + + return r * end - (r - 1) * begin; } /**