X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Flinreg.c;h=47d21cf8f5fdfed7f357f96f45038493374b6aab;hb=512f6041e2d0abb9d5f10bac35b52ee341388f04;hp=90c62a5258640fdfb9a1eeb8b29bd4164ba77d29;hpb=81579d9e9f994fb2908f50af41c3eb033d216e58;p=pspp diff --git a/src/math/linreg.c b/src/math/linreg.c index 90c62a5258..47d21cf8f5 100644 --- a/src/math/linreg.c +++ b/src/math/linreg.c @@ -107,23 +107,29 @@ linreg_alloc (const struct variable *depvar, const struct variable **indep_vars, c->pred = NULL; c->resid = NULL; + c->refcnt = 1; return c; } -bool -linreg_free (void *m) +void +linreg_ref (linreg *c) +{ + c->refcnt++; +} + +void +linreg_unref (linreg *c) { - linreg *c = m; - if (c != NULL) + if (c && --c->refcnt == 0) { 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); free (c); } - return true; } static void