From fef3bc2b7748551adf2ca8f576029b6ccb2af173 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 17 Oct 2010 06:34:06 -0600 Subject: [PATCH] initialize `make-flvector' result with default 0.0s Merge to 5.0.2 (cherry picked from commit 51f20afd0b4d93b27645351dbe8b3e903dd4e0b6) --- src/racket/src/number.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/racket/src/number.c b/src/racket/src/number.c index 455eb1009f..a3a0020ff2 100644 --- a/src/racket/src/number.c +++ b/src/racket/src/number.c @@ -3321,6 +3321,8 @@ static Scheme_Object *do_make_flvector (const char *name, int as_shared, int arg { Scheme_Double_Vector *vec; long size; + double d; + int i; if (SCHEME_INTP(argv[0])) size = SCHEME_INT_VAL(argv[0]); @@ -3348,14 +3350,14 @@ static Scheme_Object *do_make_flvector (const char *name, int as_shared, int arg #endif vec = scheme_alloc_flvector(size); - if (argc > 1) { - int i; - double d = SCHEME_DBL_VAL(argv[1]); - for (i = 0; i < size; i++) { - vec->els[i] = d; - } + if (argc > 1) + d = SCHEME_DBL_VAL(argv[1]); + else + d = 0.0; + for (i = 0; i < size; i++) { + vec->els[i] = d; } - + return (Scheme_Object *)vec; }