diff options
| -rw-r--r-- | flam3.c | 4 | ||||
| -rw-r--r-- | rect.c | 17 | 
2 files changed, 17 insertions, 4 deletions
| @@ -35,6 +35,7 @@  #include <unistd.h>  #endif  #include <errno.h> +#include <assert.h>  #include <pthread.h> @@ -3259,7 +3260,8 @@ int flam3_estimate_bounding_box(flam3_genome *cp, double eps, int nsamples,     if (nsamples <= 0) nsamples = 10000; -   points = (double4 *) malloc(sizeof(double4) * nsamples); +   int ret = posix_memalign ((void **) &points, sizeof (*points), sizeof(*points) * nsamples); +   assert (ret == 0 && points != NULL);     const double4 start = (double4) { rand_d11(rc), rand_d11(rc), 0.0, 0.0 };     if (prepare_precalc_flags(cp)) @@ -17,6 +17,7 @@  */  #include <assert.h> +#include <stdlib.h>  #include "private.h"  #include "filters.h" @@ -380,14 +381,24 @@ int render_rectangle(flam3_frame *spec, void *out,     nbuckets = (long)fic.width * (long)fic.height; -   double4 * const buckets = malloc (nbuckets * sizeof (*buckets)); +   double4 *buckets; +   int ret = posix_memalign ((void **) &buckets, sizeof (*buckets), +                             nbuckets * sizeof (*buckets)); +   assert (ret == 0);     assert (buckets != NULL); -   double4 * const accumulate = malloc (nbuckets * sizeof (*accumulate)); +   double4 *accumulate; +   ret = posix_memalign ((void **) &accumulate, sizeof (*accumulate), +                         nbuckets * sizeof (*accumulate)); +   assert (ret == 0);     assert (accumulate != NULL);     double4 ** const iter_storage = malloc (spec->nthreads * sizeof (*iter_storage));     assert (iter_storage != NULL);     for (size_t i = 0; i < spec->nthreads; i++) { -      iter_storage[i] = malloc (spec->sub_batch_size * sizeof (*iter_storage[i])); +      ret = posix_memalign ((void **) &iter_storage[i], +	                        sizeof (*iter_storage[i]), +							spec->sub_batch_size * sizeof (*iter_storage[i])); +	  assert (ret == 0); +	  assert (iter_storage[i] != NULL);     }     if (verbose) { | 
