Free linreg struct if no valid data; fc11-i386-build83 fc11-x64-build80 lenny-x64-build98 sid-i386-build150
authorJason H Stover <jhs@math.gcsu.edu>
Fri, 29 Jan 2010 19:01:58 +0000 (14:01 -0500)
committerJason H Stover <jhs@math.gcsu.edu>
Fri, 29 Jan 2010 19:01:58 +0000 (14:01 -0500)
no not attempt to save residuals or predicted values in this case

src/language/stats/regression.q
src/math/linreg.c

index 5b063950753c3c959cded0b4ff15e08240c36ff9..abb3bd353aebea6814d55c7b7c00ab0be926f95a 100644 (file)
@@ -659,8 +659,6 @@ subcommand_save (struct dataset *ds, int save, linreg ** models)
   int n_trns = 0;
   int i;
 
-  assert (models != NULL);
-
   if (save)
     {
       /* Count the number of transformations we will need. */
@@ -954,6 +952,8 @@ run_regression (struct casereader *input, struct cmd_regression *cmd,
        {
          msg (SE,
               gettext ("No valid data found. This command was skipped."));
+         linreg_free (models[k]);
+         models[k] = NULL;
        }
     }
 
index b6d1c16c7c6105629dfa28b448cb46fd873cf7b2..bb4de0c21c57a08faaf46e76022d52485c8f800f 100644 (file)
@@ -71,7 +71,7 @@ linreg_alloc (const struct variable *depvar, const struct variable **indep_vars,
 {
   linreg *c;
 
-  c = (linreg *) malloc (sizeof (linreg));
+  c = xmalloc (sizeof (linreg));
   c->depvar = depvar;
   c->indep_vars = indep_vars;
   c->indep_means = gsl_vector_alloc (p);