From b53c57478e47dba3027ca594543cbaa8a32fb103 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 19 Jan 2010 17:24:57 +0100 Subject: Fix more carnage Allocate this big block from the heap to avoid stack corruption --- src/peaks.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/peaks.c') diff --git a/src/peaks.c b/src/peaks.c index 6ded5a22..d5936b17 100644 --- a/src/peaks.c +++ b/src/peaks.c @@ -49,9 +49,11 @@ int image_fom(struct image *image) int x, y; int integr, n; float fintegr, mean, sd, th; - struct peak peaks[MAX_PEAKS]; + struct peak *peaks; int i, n_peaks, n_nearby, n_valid; + peaks = malloc(MAX_PEAKS * sizeof(struct peak)); + /* Measure mean */ integr = 0; n = 0; @@ -117,6 +119,7 @@ int image_fom(struct image *image) } } if ( n_peaks < 1 ) return 0; + do { int max, max_i = -1; @@ -147,7 +150,8 @@ int image_fom(struct image *image) } } if ( adjacent < 1 ) { - peaks[i].invalid = 1; + peaks[max_i].invalid = 1; + /* If invalidated, don't remove nearby peaks */ continue; } @@ -178,6 +182,8 @@ int image_fom(struct image *image) n_valid++; } + free(peaks); + return n_valid; } -- cgit v1.2.3