aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2011-04-13 22:41:29 +0200
committerThomas White <taw@physics.org>2012-02-22 15:27:24 +0100
commit17f331d526fa68e01e44c55f90a00bb7b9a3d637 (patch)
tree7659452038632ea4792235ad4cd40d1425fc263c /src
parent2b01c35b2e7408b10b7958842ac07f0bb9cc1153 (diff)
Tidy up various memory leaks
Diffstat (limited to 'src')
-rw-r--r--src/indexamajig.c6
-rw-r--r--src/mosflm.c10
2 files changed, 7 insertions, 9 deletions
diff --git a/src/indexamajig.c b/src/indexamajig.c
index a7565d01..ba921e0d 100644
--- a/src/indexamajig.c
+++ b/src/indexamajig.c
@@ -351,6 +351,7 @@ static void process_image(void *pp, int cookie)
/* Only free cell if found */
cell_free(image.indexed_cell);
+ reflist_free(image.reflections);
free(image.data);
if ( image.flags != NULL ) free(image.flags);
image_feature_list_free(image.features);
@@ -383,6 +384,7 @@ static void *get_image(void *qp)
rval = fgets(line, 1023, qargs->fh);
if ( rval == NULL ) {
free(pargs);
+ free(line);
return NULL;
}
chomp(line);
@@ -877,8 +879,8 @@ int main(int argc, char *argv[])
free(indm);
free(ipriv);
free(prefix);
- free(det->panels);
- free(det);
+ free_detector_geometry(det);
+ free(beam);
free(element);
cell_free(cell);
if ( fh != stdin ) fclose(fh);
diff --git a/src/mosflm.c b/src/mosflm.c
index b4906921..9ccbf0d5 100644
--- a/src/mosflm.c
+++ b/src/mosflm.c
@@ -505,7 +505,6 @@ static int mosflm_readable(struct image *image, struct mosflm_data *mosflm)
void run_mosflm(struct image *image, UnitCell *cell)
{
- int fail;
struct mosflm_data *mosflm;
unsigned int opts;
int status;
@@ -531,6 +530,7 @@ void run_mosflm(struct image *image, UnitCell *cell)
mosflm->pid = forkpty(&mosflm->pty, NULL, NULL, NULL);
if ( mosflm->pid == -1 ) {
ERROR("Failed to fork for MOSFLM\n");
+ free(mosflm);
return;
}
if ( mosflm->pid == 0 ) {
@@ -590,12 +590,8 @@ void run_mosflm(struct image *image, UnitCell *cell)
free(mosflm->rbuffer);
waitpid(mosflm->pid, &status, 0);
- /* Read the mosflm NEWMAT file and set cell candidate *
- * Existence of this file means possible success. Pretty shady. */
- fail = read_newmat(mosflm->newmatfile, image);
- if ( fail ) {
- return;
- }
+ /* Read the mosflm NEWMAT file and set cell candidate if found */
+ read_newmat(mosflm->newmatfile, image);
free(mosflm);
}