aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2014-10-22 17:50:37 +0200
committerThomas White <taw@physics.org>2014-10-23 17:02:32 +0200
commit1a37de5cce5c2df83e37fb189409659299594b1b (patch)
treedeb3e7c3b8b661c07aa2a4a4a663c97081d63b05 /src
parent8bdd03533aefabfe13259eb6e9b585420b4ed984 (diff)
Fix a load of memory leaks
Diffstat (limited to 'src')
-rw-r--r--src/im-sandbox.c8
-rw-r--r--src/indexamajig.c2
-rw-r--r--src/process_image.c7
3 files changed, 8 insertions, 9 deletions
diff --git a/src/im-sandbox.c b/src/im-sandbox.c
index 45a058ba..6970a14f 100644
--- a/src/im-sandbox.c
+++ b/src/im-sandbox.c
@@ -476,10 +476,10 @@ static void run_work(const struct index_args *iargs,
ERROR("write P0\n");
}
- free_filename_plus_event(pargs.filename_p_e);
-
}
+ free_filename_plus_event(pargs.filename_p_e);
+
}
free(bd.line);
@@ -780,7 +780,7 @@ static void start_worker_process(struct sandbox *sb, int slot)
free(sb->filename_pipes);
free(sb->result_fhs);
free(sb->pids);
- /* Also prefix, use_this_one_instead and fh */
+ /* Also prefix, tempdir, */
/* Child process gets the 'read' end of the filename
* pipe, and the 'write' end of the result pipe. */
@@ -795,6 +795,8 @@ static void start_worker_process(struct sandbox *sb, int slot)
//close(filename_pipe[0]);
close(result_pipe[1]);
+ free(sb);
+
exit(0);
}
diff --git a/src/indexamajig.c b/src/indexamajig.c
index b139f299..cb4ee084 100644
--- a/src/indexamajig.c
+++ b/src/indexamajig.c
@@ -679,6 +679,8 @@ int main(int argc, char *argv[])
free(prefix);
free(tempdir);
free_detector_geometry(iargs.det);
+ close_stream(st);
+ cleanup_indexing(indm, ipriv);
return 0;
}
diff --git a/src/process_image.c b/src/process_image.c
index 68708fd7..807facd9 100644
--- a/src/process_image.c
+++ b/src/process_image.c
@@ -164,12 +164,6 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs,
mark_resolution_range_as_bad(&image, iargs->highres, +INFINITY);
- hdfile = hdfile_open(image.filename);
- if ( hdfile == NULL ) {
- ERROR("Couldn't open file %s.\n", image.filename);
- return;
- }
-
switch ( iargs->peaks ) {
case PEAK_HDF5:
@@ -224,6 +218,7 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs,
hdfile_close(hdfile);
return;
}
+ free(rn);
pargs->n_crystals = image.n_crystals;
for ( i=0; i<image.n_crystals; i++ ) {