summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlfousse <lfousse@280ebfd0-de03-0410-8827-d642c229c3f4>2011-01-14 16:34:48 +0000
committerlfousse <lfousse@280ebfd0-de03-0410-8827-d642c229c3f4>2011-01-14 16:34:48 +0000
commitdf72699d68e63fb05d56a301bb780eda8ffb02de (patch)
tree03dd5a3c53411f3e80042ddacdd9a7f9d240c2a7
parent8eddbe5e62da39356cab5a3b30160118c3b47572 (diff)
downloadmpfr-df72699d68e63fb05d56a301bb780eda8ffb02de.tar.gz
[src/urandom_gaussian.c] Add missing inits/clears.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@7363 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r--src/urandom_gaussian.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/urandom_gaussian.c b/src/urandom_gaussian.c
index 2a875a6f7..0c6f1fbb9 100644
--- a/src/urandom_gaussian.c
+++ b/src/urandom_gaussian.c
@@ -60,19 +60,21 @@ mpfr_urandom_gaussian (mpfr_ptr rop1, mpfr_ptr rop2, gmp_randstate_t rstate, mpf
mpz_init (xp);
mpz_init (yp);
-
mpz_init (x);
mpz_init (y);
-
mpz_init (t);
mpz_init (s);
+ mpz_init (a);
+ mpz_init (b);
+ mpfr_init2 (sfr, MPFR_PREC_MIN);
+ mpfr_init2 (l, MPFR_PREC_MIN);
+ mpfr_init2 (r1, MPFR_PREC (rop1));
+ if (rop2 != NULL)
+ mpfr_init2 (r2, MPFR_PREC (rop2));
mpz_set_ui (xp, 0);
mpz_set_ui (yp, 0);
- mpfr_init2 (sfr, MPFR_PREC_MIN);
- mpfr_init2 (l, MPFR_PREC_MIN);
-
for (;;)
{
tprec = tprec0;
@@ -165,8 +167,13 @@ mpfr_urandom_gaussian (mpfr_ptr rop1, mpfr_ptr rop2, gmp_randstate_t rstate, mpf
}
inex1 = mpfr_check_range (rop1, inex1, rnd);
+ if (rop2 != NULL)
+ mpfr_clear (r2);
+ mpfr_clear (r1);
mpfr_clear (l);
mpfr_clear (sfr);
+ mpz_clear (b);
+ mpz_clear (a);
mpz_clear (s);
mpz_clear (t);
mpz_clear (y);