diff options
author | tlatorre <tlatorre@uchicago.edu> | 2018-09-18 10:35:20 -0500 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2018-09-18 10:35:20 -0500 |
commit | 81953f2131f8badd065f82585c7c06edf3c5d1e1 (patch) | |
tree | 291f393bdbfcd31fc995c2c5c1747efa1ec32bae /src | |
parent | 833819200e38b1e6386e62bbf28cc8f5c78d2e05 (diff) | |
download | sddm-81953f2131f8badd065f82585c7c06edf3c5d1e1.tar.gz sddm-81953f2131f8badd065f82585c7c06edf3c5d1e1.tar.bz2 sddm-81953f2131f8badd065f82585c7c06edf3c5d1e1.zip |
add free_charge() to free memory used to interpolate the charge distributions
Diffstat (limited to 'src')
-rw-r--r-- | src/fit.c | 9 | ||||
-rw-r--r-- | src/sno_charge.c | 13 | ||||
-rw-r--r-- | src/sno_charge.h | 1 | ||||
-rw-r--r-- | src/test-charge.c | 2 | ||||
-rw-r--r-- | src/test.c | 2 |
5 files changed, 27 insertions, 0 deletions
@@ -5467,6 +5467,7 @@ int main(int argc, char **argv) } free_interpolation(); + free_charge(); pmt_response_free(); db_free(db); @@ -5478,7 +5479,15 @@ int main(int argc, char **argv) return 0; err: + free_interpolation(); + free_charge(); + pmt_response_free(); + + db_free(db); + + if (fout) fclose(fout); zebra_close(f); + return 1; } diff --git a/src/sno_charge.c b/src/sno_charge.c index f96655b..1f39706 100644 --- a/src/sno_charge.c +++ b/src/sno_charge.c @@ -243,3 +243,16 @@ void init_charge(void) free(x); free(y); } + +void free_charge(void) +{ + size_t i; + + for (i = 0; i < MAX_PE; i++) { + gsl_spline_free(splines[i]); + } + + gsl_interp_accel_free(acc); + + initialized = 0; +} diff --git a/src/sno_charge.h b/src/sno_charge.h index bd95cc4..1004e30 100644 --- a/src/sno_charge.h +++ b/src/sno_charge.h @@ -5,5 +5,6 @@ void init_charge(void); double pq(double q, int n); double get_log_pmiss(int n); double spe_pol2exp(double q); +void free_charge(void); #endif diff --git a/src/test-charge.c b/src/test-charge.c index 0b73d24..2fe199b 100644 --- a/src/test-charge.c +++ b/src/test-charge.c @@ -82,5 +82,7 @@ int main(int argc, char **argv) free(x); + free_charge(); + return 0; } @@ -284,6 +284,8 @@ int test_sno_charge_integral(char *err) goto err; } + free_charge(); + gsl_integration_cquad_workspace_free(w); return 0; |