Fixed some of the leaks in REGRESSION 20120729000504/pspp
authorJohn Darrington <john@darrington.wattle.id.au>
Sat, 28 Jul 2012 16:27:22 +0000 (18:27 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 28 Jul 2012 16:27:22 +0000 (18:27 +0200)
src/language/stats/regression.c
src/math/linreg.c

index 0a2e2a8cf67c08fae3bdd26f658654176f63e348..9974ea4c2c2155c140e072e48c8e27701b2e8033 100644 (file)
@@ -403,9 +403,15 @@ cmd_regression (struct lexer *lexer, struct dataset *ds)
     subcommand_save (&regression);
  
 
+  free (regression.models);
+  free (regression.vars);
+  free (regression.dep_vars);
   return CMD_SUCCESS;
   
  error:
+  free (regression.models);
+  free (regression.vars);
+  free (regression.dep_vars);
   return CMD_FAILURE;
 }
 
@@ -671,10 +677,10 @@ run_regression (const struct regression *cmd, struct casereader *input)
        }
       else
        {
-         msg (SE,
+          msg (SE,
               _("No valid data found. This command was skipped."));
-         linreg_free (models[k]);
-         models[k] = NULL;
+          linreg_free (models[k]);
+          models[k] = NULL;
        }
       gsl_matrix_free (this_cm);
     }
index 90c62a5258640fdfb9a1eeb8b29bd4164ba77d29..7c85634a50fd28e558cdb8cfef0d38d30da79838 100644 (file)
@@ -118,6 +118,7 @@ linreg_free (void *m)
     {
       gsl_vector_free (c->indep_means);
       gsl_vector_free (c->indep_std);
+      gsl_vector_free (c->ss_indeps);
       gsl_matrix_free (c->cov);
       free (c->indep_vars);
       free (c->coeff);